Tuesday, August 5, 2014

Kubulio! (2009)

 Tools: C++, DirectX, Visual Studio 2008

Kubulio! was made by myself and three other students, back in 2009, in our Structures of Game Production (SGP) class. The class was split into groups of four students each, all programmers, and we had two months to design, prototype and develop a game from the ground up. We made a design doc, built a prototype in GameMaker Studio, diagrammed the whole game structure beforehand with UML, built tools to make the development easier, and then developed the game itself (in C++ and DirectX), all in the span of two months.

On the first day each group was given a genre at random which their game had to fit, and then they had an afternoon to brainstorm and come up with their game concepts. The genre we got was "Experimental", which gave us a whole lot of freedom compared to other groups. We could do basically anything we wanted as long as it hadn't been seen before.

Here is what we came up with:

Kubulio!
You are the deity assigned to protect Kubulio, a planet that is in the early stages of its development. It is entirely liquid rock, and you are to see that it is protected while it cools down naturally. Unfortunately, an evil race of aliens has other plans for your infant planet. They have sent several fleets of ships to artificially cool down the planet so they can colonize it, and use it in their evil plans to conquer the universe. It is your job to use the resources available to fend off the invaders.


Enemies will use cooling weapons to try to solidify the planet and make it habitable. The game will be over when the planet’s temperature becomes too low. Use your godlike powers to warp space-time, and manipulate the planet’s lava to kill enemies. Pull and push the lava by creating distortions in gravity.


Download the final game and GameMaker prototype:
http://www.mediafire.com/download/1s2n92n49zdl40k/Kubulio!.7z

Each person in the group was responsible for a different aspect of the game. I was responsible for any "Gameplay" elements of the game, so I programmed the enemies, all of the "physics", the orbiting mechanics for enemies and lava that is near the planet, etc. Since the gameplay elements turned out to be something like 80% of the code James took a few of them off my plate after he was done with the "tech" side of things, but I still got to work on most of the fun features.

My favorite feature that I worked on for the game actually isn't visible in the final version, with the lava particles turned on. To show the heat level of the lava blobs when they were represented by circle sprites instead of particles, they actually changed color based on their temperature, ranging from yellow for hot, to brown for cool/solid, to blueish-white for freezing. Since each blob is constantly exchanging heat with cooler blobs next to them, when a cold blob hit the planet you would see an awesome ripple of coolness go through the lava as the temperature evened out between the blobs. There was something extremely aesthetically pleasing about that effect, and I was disappointed that we didn't manage to translate that to the particle effects. Given more time we would have gotten it working, but it was very low priority during the pre-release crunch.

All-in-all, SGP was my favorite experience at Full Sail. Our group was extremely happy with the end result, and feedback from our class and others who played the game was extremely positive. Sure, it's not as polished as you'd expect from a published game from a professional developer, but the quality is pretty high for the amount of time and the kind of resources we had to work with.

And at least it's better than Flappy Bird.