home

June 17 2015:

GravSpace is a game I developed back in 2010 as part of an effort to improve my C++ skills and IOS apps development knowledge.
GravSpace was heavily influenced by 'Thrust' (https://en.wikipedia.org/wiki/Thrust_(video_game)) which I spent many hours playing on a BBC micro as a kid, and being a relatively simple concept I thought it would make an ideal first game project for me.

GravSpace is currently no longer available on the IOS app store as I didn't renew my developer fees in the last couple of years, where I've been too busy with full-time work to continue with maintaining this game or creating others.

I've kept this website up for historical purposes and am updating the landing page just to make it clear what the status is for this game now.

The original pages are found in the Overview section of this site.

I have renewed my Apple developer ID recently and I'm beginning to get back up to speed with the latest developments in IOS, so in my spare time I may work on some new projects - updates about that can be found at http://www.thesoundofinevitability.com/

There are some videos showing the game on my youtube account: https://www.youtube.com/user/2dcubed/videos

Some facts/trivia:

I learnt a lot about game programming in the process of writing GravSpace, where I ended up developing my own C++ game engine and Open GL graphics rendering code (I started out following some SDL tutorials at www.lazyfoo.net, and then some IOS Objective C tutorials from Michael Daley at www.71squared.com). 
I'm just scratching the surface, but here are a few technical notes about the game code, graphics and sound:
The scrolling caves are actually rendered by using a tile map system, with the original graphics being in black and white, and then different colour filters applied for each level.
The various beams, explosions, lasers and also the moving stars background are all generated from a particle effects class.
The text in the menus is rendered by drawing lines directly into a bitmap then converted to a openGL texture - sequences of which are defined for each letter - it is effectively a crude vector font that can be scaled to any size.
The LED style numbers showing the scores are actually printed using individual segments and the driver code is adapted from some old display driver projects used for actual 'starburst' LCD displays used in DAB radios.
Many of the game 'actors' such as the cannons and enemy ships are hacked graphics which I edited/chopped up in 'Gimp' originally from Daniel Cook of www.lostgarden.com (from an old bitmap shooter game) which he released for free use. 
As the game engine I developed is C++ code, there are only a few IOS specific files, such as capturing touch/accelerometer and setting up the Open GL screen, otherwise I have the same code running happily in Android (via NDK), Mac (Codelite/SDL) and Windows (Visual studio/SDL).
At the time I'd not learnt about STL, so I wrote my own single & double-linked list implementations to handle render queues, particle lists, and event listener registrations etc. much used classes.
I developed a simple object counting system to avoid memory leaks, as for each page/screen in the game all objects are dynamically added and destroyed on scene switching (a benefit being there is no lengthy load time).
I didn't use a physics library, and basically 'faked' the gravity and pendulum effects.. but it worked out ok.
For collision detection I used multi-line polygon definitions to wrap the 'actors' and main ship, and used line intersection calculations. Each particle in the particle system class is able to be collision detected against any other objects in the scene (circle to line check).
Sound was played back with OpenAL (music composed by myself), and effects were recorded off a Korg Kaosilator and processed in 'Audacity'.

As a one man team, I learnt that even a simple looking game such as this one could take many months of work to develop and involve many late nights, and commercial success is a tough call when you don't have the experience or financial ability for promotion. 

Comments/questions welcome at 2dcubed@gmail.com - Paul.









more screenshots: here



Comments