In my last semester (hopefully!), I chose to take course which will give me opportunity to code more. By that reason, I chose two courses : Pengembangan Aplikasi Media Interaktif/PAMI (Interactive Media Development) and Tech-Based Business. Today, I will tell more about my final project in PAMI. I also developed something for my tech-based business class, but I will tell you about it later.
For the final project in PAMI, we were asked to build an interactive application (which mostly will associate it with ‘Game’) using one of many tools : Myo Armband, Intel Galileo, and Leap Motion. First, we’re asked to propose the idea for the final project. The general requirement is “develop something that can also improve your skill in real life”.
After discussed the idea, our team (oh, our team consists of me, Andre, and Wono) came up with JagoanGitar! JagoanGitar! (which is Bahasa Indonesia-literal-translation for Guitar Hero, our role model for this game, hahaha) is a desktop-game which developed to help you learn to play guitar by reading tab. For development, we chose Intel Galileo as our tools. Why? We want to create experience for user as they play using their guitar. Intel Galileo will be used as a middleware to detect input from guitar to desktop via electric signal as the user play his/her guitar.
But, as it turns out, we developed our game using Arduino. We found an example code to read signal from guitar, but it involves a low-level programming and we didn’t have many time to learn and convert it to similar code in Intel Galileo. Besides that, we stumbled on problem about how to calibrate the input signal. Because of resonance, we got so many input with various value and so far range. We tried to tackle this by using heuristic : if one of the value is in correct range in desired note, we count it as true! (for the list of notes, we use this list). It’s quite good to tackle problem to recognize a note via their frequency, but not much in case two same notes was strummed twice. (Btw, if you have experience about this problem, maybe you can share how you tackled this problem).
For game development, we mainly use Unity as our engine, using C# script. For connecting input from Ardunio to the main game, we use serialization. For a sneak peek, you can see it from video below, or for the code base you can see it on github (we do so many iteration for the level struct haha).
At the end, I, myself, think that our execution is not fulfill what we really planned before. Besides problem I mentioned before, we also stumbled on problem like : why the input modul –somehow– did not work (which usually worked before). We tried to re-build the circuit in arduino many times, but , still, nothing happens. And finally we realize the problem is not in the circuit, but in the cable from guitar to arduino (which we realize after the guitar was also not working in my
In our final presentation, we got many feedbacks from our lecturer. Mostly about our execution, in game-concept-related. From the feedbacks, we realize what really miss in our project : our team has no game-developer background! We are so focused about the technical side and basic requirement, but not develop it until game-ready-phase. And also, from the screenshot, you can tell that we have no designer hahaha.
We also forgot about the means of the course. We spent so many time in “how we get correct input from guitar”, which the course actually emphasize on “how you develop better interaction and experience for your user”. I think we should choose the right idea and tools. Hahaha.
But, after all, it was both amazing experience and exciting project for me.
(For me, the best project for this course is developed by Ardi, Midum, and Gilang, but I can’t find the video)