The kickoff meeting

std::cout << “Hello World!”;

My name is Raphael Cruzeiro and I’m part of the mobile development team here at Inspira (though I still continue to participate on our other projects as I am more of a generalist programmer).  If you want to know more about me you can check my blog.

Laying the foundation

Today we had our first meeting on this project here at Inspira and it couldn’t have been better. Everyone was really excited and the meeting turned into a full fledged brainstorm (there was even more excitement then there was that time we bought those remote controlled helicopters). We’ve established not only the basic concepts of our game but we also laid out the basic architecture of the project and discussed the game mechanics. The game will be at first released for the iPhone and the iPad but we have plans to later port it to Android devices (I will discuss the details of how we plan to do this later) Oh, and we also have a codename for our game! Tubesliders.

Basically the concept we came up with is a small (and yet intellectually challenging for the team) but fun racing game. Two players will slide down a water tube; They can jump over one another, collide and the player will also have to compensate for the centripetal force on curves or he’ll fall off the tube.

Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away

Antoine de Saint-Exuper


Basic concepts of TubeslidersAs it is usual with several games, our map will be drawn with tiles and though the players will be drawn on a separate layer their path will be controlled by each piece of the track. Both players will be surrounded with a dynamic area on which we will apply physics algorithms (these dynamic areas exist as there is no need to apply physics to portions of the map that are distant from the players). On this dynamic layer we will move the player accordingly to it’s vector, the centripetal force of the curve and the player’s compensation.

The game will support both single and two-player mode one the same device (there are plans to add network multiplayer on the future).

Aiming for portability

As I said at the beginning of this post the initial release of our game will be for this iPhone and the iPad, however, we also have plans to port the game to Android Devices on the future and we want to do that with as little hassle as we can. With this in mind we have decided to separate the game in two layers: the device dependent and the portable core layer.

The architecture of TubeslidersThe device dependent layer is where we will leverage the capabilities of the cocos2d framework to draw and animate our game objects, handle user interactions, play audio, etc. As this layer will responsible for basically only the drawing and the user interactions all actions that change the game state will be delegated to the portable core layer. The device dependent layer will be written in Objective-C (with a little of C++ mixed in as we need to communicate with our portable core layer).

The portable core layer is where the heavy logic of the game will be (physics, game mechanics, etc). To be fully portable this layer will be fully written in platform agnostic C++. Not only this choice of language will create a portable core of logic and physics for our game but it will also help us in writing the most complex parts of our code as we can leverage from C++’s operator overload and template capabilities to greatly simplify the syntax our code leaving it more semantic and ,who knows, maybe we will even use the STL for some complex data structure, algorithm.

What’s next

We’ve finished the meeting with a list of initial tasks:

  • CK, Fukui and Alexandre will be responsible for the initial modeling of the game’s entities.
  • I’ll be responsible for creating the initial project structure, setting up our repository (we’ve decided to host this project on a Git server that I’ve setup on our Linux server) and, of course, writing this post to document this first stage.

About raphaelcruzeiro

My name is Raphael Cruzeiro and I am a software developer currently living in São Paulo, Brazil. My interests vary from computer programming, technology, math, astronomy, history and philosophy. My repertoire of programming languages include: C, C , Python , Objective-C, Javascript, shell script, C#, Java and some other languages that some may argue whether they really are programming languages at all. View all posts by raphaelcruzeiro

2 Responses to “The kickoff meeting”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.