I recently made the decision to stop messing about with Blitz and get into Swift so Aaron and I could start working on IOS development. However, because I got a Mac-mini to enable me to do all this by having XCode, I thought I’d put up some of the questionably better stuff I’ve done with it up here. The “Dexterity Design” website for our partnership should be left just for our collaborative efforts with Swift.
Luckily I made him a cup of tea so he consented to me hijacking our hosting for my own blog so I could actually put up this stuff myself. These links are now hosted directly via the blog so should always be available now.
Gravity force is a simple hybrid of both Mission Command and Asteroids and the idea is to stop the meteor shower raining into Earths atmosphere as best you can. There’s no end to the game and it’s broken down into stages so, eventually, it’s all going to be over. However, our planet does have a primitive shield outside the ozone layer that will work for a while and deflect the rocks but once that’s gone then you’re going to be pretty lonely out in space. If the destruction of the planet does not wipe you out as well.
The game was written over a period of 27 days in a few sessions, allowing for my work schedule. I have documented further down how these were broken down. You can download the game from these two links, depending on what platform you are using.
The PC Version is here :- Windows Download
The OSX version is here :- Mac Download
I’m not really using the PC much, if at all, these days so I can’t really update that version but the Mac build does fix a couple of cosmetic bugs as well as fix the backdrop toggling while you’re entering a high score. No idea how that little gem slipped through.
As for the game itself, I could have done better and got it working with multiple screen resolutions – something that was glaringly obvious once I started using a Mac and a better resolution monitor – but that’s not really a priority right now. The game was written as a test-run for creating a mini-game a month as an exersize in improving my knowledge of Blitz and also focus on getting things completed, which I have struggled with in the past. I can’t really continue with the one a month format I set myself to do over a year now, but I’m still pretty proud of how much I learnt just from knocking this one out between the 4th to the 31st of March of 2015. I’m not likely to go back and work on this some more to improve on it as the exersize served its purpose of deadline programming and getting the job done. There’s plenty I can nab from the source should I ever go back to working on Blitz again, however unlikely.
What I actually learnt just from this game was:-
Using multiple objects in a game with a types structute so much better.
Actually having proper progressive difficulty as the game advances levels. It’s borked after around level six really but, for a mini-game, it functions well enough.
Using images much more effectively using MidHandle() and other new tricks I learnt. If I’d had more time then I’d have sloped the shield around the earth but it was only near the end I considered it and I’d run out of time.
Explosions using sprite images and basic particle systems.
Speech effects – all done by me using Audacity with a PC text to speech program. The echo on “You have a new High Score” I’m particuarly proud of.
And so many other things that I should have noted at the time in the worklog I wrote while creating this game. This was one of a couple of new things I tried with the game so I could get an idea of how well I was working or lazy I was on a particular day. This is the document pasted right into here for the curious…..
Wednesday March 4th. 2.5 hours
SFX/Music playback functions
Start of front end
Starfield (already had this and just merged in)
Saturday March 7th.. 2 hours
Voice effects and editing with Audacity
Half coded high score stuff.
Sunday March 8th. 3 hours
Much reworking of front end. Changing how stars work and debug sound/music.
Added scoring and graphics for the earth as well as new cross hair.
Merged in high score table code and reworked for this game.
Sunday March 15th. 1 hour
Implement Earth shield display and fire functions. You can shoot earth yourself if careless.
Tuesday March 17th. 3 hours
Asteroids are in and moving around. Need work to scale number based on level system.
New sounds added for shield bouncing and Earth destruction warning.
Implemented the shield. Asteroids will bounce off this until its depleted then you’re done.
Wednesday March 18th. 4 hours
Changed some sounds to be less annoying.
Collision detection implemented so asteroids can now be shot down.
Background asteroid movement on the title.
Much work on the main objects to make it easier to spawn new asteroids and have gameplay.
Thursday March 19th. 3 hours
Rewrite object handler
Fix collisions and reset image positions with use of AutoMidHandle.
New graphics for the asteroids. 3 different types so large ones can go on title screen and no need to use ScaleImage anymore which made collision detection tricky.
Friday March 20th. 4 hours
Temporary transition screens for game over and new level
50 asteroids per level set up.
Fixed large asteroids on title screen.
More work on collision detection for laser v asteroid.
Reworked scoring system.
Thursday March 26th. 2 hours
Rewrote sound system and changed some of the sounds to be less annoying as well as using more channels to eliminate the choppy fx.
Implemented a progressive difficulty into the game as the levels progress.
Fixed the asteroids moving off screen in-game which made them too hard to destroy.
Fixed the delays between transition screens so they aren’t accidentally clicked through in play.
Monday March 30th/Tuesday March 31st. 5.5 hours.
Final sprint to tidy up and optimise some of the bloated sections.
Implement Pause mode (how did I forget this?)
Tweaked the sound effects again. End of wave sound could induce heart failure previously.
Reworked the asteroids patterns – they no longer bounce off shields as it felt wrong.
Implemented explosion effects.
Put in proper game over and end level screens to replace the placeholder stuff.