Tuesday, March 25, 2008

Circle Man

Finally, spring break is here and I can devote some time to game development!

This semester has me fairly busy with web development, fuzzy inference output analysis, and so on. Which is why I'm excited to start working with Gosu to build some quick PC games. This project is also going to use Erin Catto's Box2D library. If you are not familiar with either of these, you owe it to yourself to take a look. Myself and Mike Daly (who worked with me on the DS homebrew 2d physics project) are the only ones working on this project.



The premise of this game is that you are this stick man stuck in some sort of bubble. You are able to roll it around, and are for some reason in these environments with wall portions ("interactives") that physically alter your movement. As of now, there are four types of interactives:
Bounce - propels the player away from the wall
Magnet - alters gravity to pull player toward wall while against it
Push - keeps the player from touching it
Sticky - player will stick to these, and be able to swing from them to access certain areas
With these, we hope to create an interesting play experience. The goal of the game is to find all of the "keys" (right now I don't care what they are, just that you collect something) to escape from your spherical prison.

With this project, we finally get to use C++ and test our previously inactive knowledge of the language. So far, I've established a simple class hierarchy for our levels, player, walls, and "key" objects. From a brief standpoint, these classes have four main member functions: the constructor, update, render, and destructor. I'm hoping to keep the high level logic very clean, and keep all the actual play logic inside the classes. This entails that the level objects handle any and all wall object logic (all physical operations that do not operate on callbacks, and rendering). There will likely be some helper functions created, and some variants established during the optimization phase of development.

No comments: