Monthly Archives: June 2013

Mobile Game Part 1 : Getting started

Following the last post lets get started  by setting up the development environment and the tools to make this  work.

But before that let me give a little background about how I started my game:

When I began my project a few months ago I want it to be released initially for the android market (since I am more  familiar with android development) and also to be able to make  it work for iOS and ouya (android based) in the  future, my development was be to done in c/c++ to be cross-platform (android, iOS and windows)  using open source libraries.

I’m of those who like games to run smooth as silk, every single game from the nes/snes(no sfx chip) era where designed to run at constant 60 fps, why? because those old crt TVs (and current mobile handsets) have a refresh  rate of at least 50/60fps, so it makes sense to draw each frame of animation at the speed of the refresh rate providing  users a fast responding game.  With the advent of 3d games and the processing power of the early 3d consoles it was very difficult to sustain 60fps, for me it was ok if not passable to have games like ocarina of time running at barely 20-25 fps, but right now with current multi core processors, parallel gpus I think  there is no excuse for not providing 60fps gaming (http://n4g.com/news/1227581/60-fps-should-be-standard-in-next-gen-consoles I like that post), I’ll stop here since this always causes such a debate :s.

The rendering part of the game has to be really fast, we need to take advantage of hardware acceleration,  the good news is that the majority of current handsets support hardware accelerated 3d graphics with opengl es 2.0, my  choice for handling the rendering is with the Irrlich engine.

The Irrlicht engine is cross-platform, supports either opengl or direct3d, it is simple and easy to use and can be easily adapted to your own needs.

Since I’m a little impatient I started to look around if someone else has already setup an android project with Irrlicht and for my luck there it was 🙂 http://gitorious.org/irrlichtandroid, these guys already did the task to adapt Irrlicht with an opengl ES 2.0 renderer  with a working android demo (yes I know this is cheating, shame on me).  This was the starting point of my project.

OK so what we are going to do is a “hello world” game demo : a breakout clone.

– All the graphics are going to be neon like (like those of geometry wars)
– Have a nice 3d model rotating in the background  or a fancy background deformation
– We are going to use a particle system for the explosions (when the ball destroys a brick)
– The explosion particles will be done using vertex shaders, so we can have thousands of them
– Box2d wil take care of all the collisions
– Sfx and  background music
– Basic score at the top of the screen (courtesy of librocket)
– Run at smooth 60fps
– Running in both Windows and Android

Here are some initial screenshots (video at the end of this post)

neon figures

neon figures

vertex shader explosions

vertex shader explosions

Below is a little diagram describing each component (library) for our game.

Components

Components

Ok this is the list of things that you need to get familiar with. there is plenty of information on the net on how to setup your android and windows development environment, etc:

To make this as fast as posible in the next post I’ll submit a working demo to a public svn repository (with all  the open source libraries included) and from there I’ll explain each part of the code so you can start your own projects.

In the meantime you can look at this video showing up some of the features that our “hello world” game will have (this is running at 50/60fps on my Nexus 7):

Be patient for the next post…

Advertisements

iaco79 blog is starting…

Hi everybody…

This is the very first entry in this blog, my intention is to provide guidance and also to receive feedback for many of you interested in developing mobile applications (mainly the cool stuff  sound, graphics and games) , and perhaps other not game related projects

I’ll start by talking a little bit of myself:

I’m from Monterrey, Mexico and got my Bachelor Degree in Computer Science in 2004 from the “Universidad Autonoma de Nuevo Leon”, throughout my professional career I have participated in several projects mostly working with Object Oriented languages such as c#, c++, java and javascript

I grow up in the 80s and 90s during the golden age of the console wars (nintendo vs sega) and the emerge of the very first 3d consoles, now as a grownup I still recall those good old times and very good old games

So that’s why I’m here as I’ve been trying to release a game of my own, and as of right now it has never been easy than ever before to achieve this:  you have at your disposal google play market, apple store , steam , ouya , all those markets are waiting for you to publish your very own new blockbuster app, there are also available thousands of open source engines and resources on the net that can teach you how to develop your game from the ground up.

At this moment I’m in the final phase of my game project to be released initially for the android market, all the development was done with open source libraries with zlib and mit license (free as free)

In the following posts I’ll describe the basic building blocks that made up this project so you can use it as a base for your own developments,  I’m not going to describe how to build a complete integrated game engine , but an example of how to assemble different open source libraries (listed below) and make a complete mobile application with the following features:

All of the above are c / c++ based and are cross-platform which means that with little effort you can have your game running in android , ios and windows (For instance I do all my development and testing in a windows machine, and then I do an Android APK build to share with my friends so they can give me their feedback)

Also my main goal is to work at a native level to learn as much as possible how thing works under the hood , so I’m avoiding working with complete game development packages such as unity 3d

Well I think that’s it for now…

Tagged , , , , , ,