Showing posts with label Vinyl. Show all posts
Showing posts with label Vinyl. Show all posts

Tuesday, 4 February 2014

How we are generating our track

Vinyl had a code-generated spiral track for most of development. At the beginning of this semester, we decided to try multiple track styles. There were two ways we could do it:
1. procedural generation
2. algorithm generation
Whatever we decided to use, we wanted the track to be interesting and not as boring as the spiral track.

Tuesday, 14 January 2014

New track curve

I heard about this suggestion before and finally we had it as one of the task in the first scrum of this semester. No one seems to have idea what to do to make the S-shaped track. Yes, the easiest idea is using the sin or cos wave. Still, no engineers seem to have better idea what function to use.

Having a cool function on mind, I decided to take this job and... I made it. At the moment I hard coded all the variant of the track. Oh... the mathematical function I used for this is Lissajous curve. There are three variants in this function that I can use to generate different curve.

Some of Lissajous curve variation

Thursday, 9 January 2014

Improved the EQ

On my first day of class, I made a big improvement on PD and Unity related to the EQ. Before, I made 101 network connection every 4 frames to get the audio data required for the EQ. Now I made only 1 network request every 4 frames. With all the improvement iJason made on the GUI (he was making new style on OnGui function which apparently the main cause), the game is so much less jittery now.

Friday, 29 November 2013

JJ had too much fun with PD

This week I am supposed to implement two new filters for the genre changer in our game: classical HOV filter and rock HOV filter. I though this won't be a big deal. I had already gave JJ the filter library I had. What I need to do was look into the filters, took the part JJ used and patched it into our game. Sounds easy, right?

Well, it's not. The problem was JJ had too much fun with PD. That's good. Really good for Vinyl. I was happy with his excitement with our game which we, frankly, didn't see in the first 3 months. But... it's not good for me. My task was blown up. When it's supposed to be 3 hours it becomes 6 hours.

Monday, 18 November 2013

Equalizer background is up

The only task I have this week is to implement the equalizer background. Frankly, I still felt reluctant to implement something that you won't see most the time. But I was super glad we didn't have to use that pixelated movie background which DOESN'T MATCH the song at all!!

As I previously, expected the networking communication between PD and Unity to get the latest audio data was slowing down the game. I made the equalizer updated every 4 frames (so the equalizer has 4 frames to scale itself to where it supposed to be). Still, it consumed quiet a time.

Thursday, 7 November 2013

I tamed PD - I hope~~~

Since we published our first installer in our website, we got random feedback mentioning that they couldn't install our game. We had tested our game in several computer in lab and all works well. Could it be because of different computer hardware? Highly probable.

To help us debugging it, we got the Apple computer from the IT guys in South Lab and worked on it. After working for a while, it becomes clear to me that the problem is PD! To be exact, PD is really slow in the first time launching after restart or power on. And in our setup, we run PD with a batch file and close the batch file after a few milliseconds. The number I picked was the number based on the time it takes for PD to launch 100% on the computers available around me. Of course this is not true in every case. In several computers, it took longer for PD to launch. Thus this hard-coded timeout is not working for us! But... if we didn't kill the batch file, it will always run in the background. What should I do??

Tuesday, 5 November 2013

Vinyl needs efficiency!!!!!!!!!

This had been the most issue I complained about: no efficiency!!! This team really good at wandering around, circling around, staying around, whatever you want to say. Almost every time we had a meeting, it always goes off the purpose of the meeting. During the post mortem this morning, this problem becomes apparent. Almost everyone said that the meeting is always off the topic. For me, the reason is not only that but also the management issue. These are the reasons for me:

  1. off topic: Brianne suggested to have a list of meeting topic and the one who host the meeting need to stick on it. Roger suggested instead of having discussion during meeting, we need to make decision during meeting. Both suggestions are really nice. I hope the producers will take it into action and importantly, the meeting host need to be strict!
  2. everyone is equal: With everyone is equal, everyone has the equal authority to make the design. This will bring the game nowhere. We need a hierarchy. We need a system! The lead designer decided the game design and everyone can gives him input. When the lead designer told the team the design changes during meeting, the meeting shouldn't be another design discussion! If someone has argument, the lead designer should talk in person with that person. Roger also mentioned a good point today. Instead of trying to buy everyone into the changes, be a strict person. Put the design change into action and deal with the complain later. No one can make everyone happy. So, again, when it's necessary the producers are OK for be mean.

Sunday, 20 October 2013

Is it worth or is it just wasting my time?

Vinyl's background
I am not sure whether what I did this evening worth the time I spend or just wasting my time. Yes, I kept complaining while doing it so that Cody fed up with me. But I really felt I was wasting my time putting something that's not even well-themed with our game in Vinyl. Total it took me more than two hours from figuring out how to implement the MovieTexture in Unity3D, download QuickTime and install, convert the movie files (I doubt this is also part of engineer's job), wait for Unity to import those >13MB videos and finally put everything back to server.

Thursday, 17 October 2013

This is our third bad obstacle's sound filter

It took me a while to find another bad filter that doesn't sound like the distortion filter or the oscillation filter that we use for the other two obstacles. I am so glad that I didn't have to spend a lot of time searching for a bad filter. I saw this pitch shifter filter and I thought it would be the one we are looking for. And I am right! This pitch shifter can sound good if we tune it to the good values. However, we want it to be a bad filter so we insanely tune it into a value that corrupt the song in a way that it sounds weird like it's played from a really bad audio playback. Now with all the obstacles doing bad filter with the song, I feel the sound effect of the game is getting more and more themed =)

Before I forget, this is the pitch shifter filter.

Pitch shifter filter

Wednesday, 16 October 2013

The Vinyl effect!

Yap, I am getting much better with PD. Today when trying to find a new bad filter for our third obstacle, I found a way to make the effect to make the song sounds like played in old gramophone or old audio playback. I called it vinyl effect!

The vinyl filter

Wednesday, 9 October 2013

We might fail (at the moment) in the faculties eyes but we learnt tons of thing

Yap, on presentation last Thursday and today mid-term evaluation our team seemed not doing well. In other words, we failed. We couldn't express our game properly during the presentation to the faculties. We also had communication problem between team member and faculty. Each member of the team has different game in their head. The result is everyone thinks that we are circling around during the whole summer and the first half of the semester. To be frank, I didn't quiet see what's the problem but after talking with several team members and the faculty, I see what's the problem.

Wednesday, 2 October 2013

Vinyl, what's happen to your art?

This has been a long discussion amongst us, the engineers and Mikeh: what happen to our art team? It's been third of the semester, however we are still far away from alpha. We decided to have a 2 weeks build goal last two week but we couldn't make it. The engineers were close with the exception some feature was implemented in minimum requirement. The arts....(break) well.... we only have the first pass of the in game UI. The character rigging didn't work - we got it just a day before the build date target. The obstacle we got was far away from what we had been discussing all this semester even through last semester. We decided to go with low poly - simple geometric shape. With our very limited-skilled artist (one decided to focus on UI and the other one (or 'half' in our word) is a technical artist who had just started learning Maya in the end of this summer. However...

Tuesday, 24 September 2013

We love this phaser filter

Yeah, we all love this phaser filter. This morning in our scrum meeting, we chose between flanger and phaser filter to add as our second good filter. Everyone decided to go with phaser filter. It didn't took me long to implement this filter. Cody had already told me about this weeks ago and I had already searched a way to implement it. The result is.... everyone in Vinyl team loves it! It made the song sound cool! This is how I implement it:

Our phaser filter

Wednesday, 11 September 2013

Yup, finally I got the external sound effect done

It took me quiet a long time to figure out how to send message to instance of my abstraction individually in PD. I knew how to create a subpatch. Now I knew how to create abstraction. I knew that every time an instance of an abstraction is created, PD will give it a number started from 1000. The problem is I don't know how to get that number. I couldn't hard coded it because PD will randomly generated the number the first time the patch is run. So my only option is to name the instance and send message to the named-variable.

Tuesday, 10 September 2013

There is a way in PD to store a value!?? No way!

Really? There is a way in PD to store a value and called it later? I never knew it before. I had searched for it when I did my audio looping and didn't find it. I found it while doing searching for the external sound effect. Well, sometimes things show up when you don't mean to look for it.

Anyways, with this new knowledge to store value with [value] and restore it using [bang], I redo my audio looping. It looked so much clean and nice now. In the same time, it also showed me the problem we had with the first attempt of audio looping. Well, sometimes, when you code something in better way, bad things that you put there pops out.

With this [value] the PD runs more efficiently, at least I don't have to create another timer and send the looping information every milliseconds. It also make the patch cleaner. Don't you agree that I am getting better at PD?

New PD looping

Saturday, 7 September 2013

Is it wrong to have a game without a goal?

So, this has been a long discussion between us - Cody, Mikeh and I - during summer about the goal of our game. This week it was pointed out again by Roger and Jose. We all like the game even though there is no goal or score. During our playtest, no one care about it. The people we asked to play test our game enjoyed the game even though there is no goal. So, what's the problem with it?

Friday, 30 August 2013

Team Vinyl is back!

Yay! Team Vinyl is back! I am so happy to see everyone: the Jasons, Wang, JJ, and those who were around during summer break. With more people in the team - more engineers - I believe the progress will be faster. And it is proved. The Jasons helped fix the bugs that Cody and I created - of course unintentionally. One thing that keep worried me, though, is the art.

Mikeh asked Alice to make a style guide for Vinyl. He even gave her the example of style guide but.... she didn't seem to be fond of making one. I did pointed out my worry to Brianne and she told me not to worry about it. It's the producer's job. Really? We had that worry for the whole summer holiday and in the end of the holiday, we still had no progress on art! Well.... it's holiday so I guess thing will be different this summer.

Now I hope everyone who put the schedule really works to make it happen. Thankfully, we are engineering heavy game and we have a solid engineers core.

Monday, 29 July 2013

Stupid Unity, why did you allow me to have 2 exactly the same class!???

I spent my whole weekend learning how to work with networking programming. It was my very first network programming. Yes, Unity communicate with PD through TCP network. However, it wasn't my code. It was some open-source library I found on internet: KalimbaPD. And it doesn't satisfy our usage. We need to know where PD is at to sync the audio to the track. In short, we need a way for PD to communicate with Unity. So, with Cody's help I created a new network channel for Unity to receive message from PD.

Monday, 8 July 2013

The audio speed is back!!!!

Yes, the audio speed manipulation that JP loves is finally back!

Well, it was there for a long time but we always forgot about it. I had implemented it in the PureData since the first time I had it integrated into Unity. I did mention it to the team that they could connect the player speed to the audio speed however they were busy with other mechanics. Then, when I changed the PureData to enable it play any song given by Unity, it was broken. Now, I had the audio looping done and in the same time, I got the audio speed and audio pause done! The game was much more fun with the audio speed. It gave you a reason to keep your position as close as to the needle. We love it, too, though when the audio was slowed down when you fell behind the needle.