I love hackathons. These short, intense bursts of rapid application development can certainly test your “metal”. But more importantly, I like participating in these event because they really test my skills as an application developer. Well, the latest of these kind of events is the CoronaBlitz – A Semi-Regular Mini Coding Challenge. This semi-regular event is organized by Andrew Potozniak, an indie developer and founder of TozSoftware.
So What Is The CoronaBlitz?
This is a coding challenge in which you have 4 hours to develop a mobile app using the Corona SDK and any 3rd party tools that may help you along the way. There is no prize money. There are no trip giveaways. Those of us participating do so for the love of coding and learning (and maybe a bit of SWAG and recognition for our work). Unlike many other hackathons this event does not require you to show up at a specific venue. All the coding is done on your own time in a location of your choosing (your office, living room, bed!?). Each coding challenge happens over the course of several days but the organizer trusts that you will spend only 4 hours total coding your app – in one sitting or broken up over the course of the event (is there such a thing as a “Code” among coders?) Each blitz event will have a theme that you should adhere to. This theme for this blitz is Collection.
Time To Enter The Fray
The current blitz started on August 16th and lasts until August 25th and I plan on spreading out my 4 hours over the course of the 9 days. My goal is not to simply “hack” together something within that time but rather to create a working app that can be used as a teaching tool for those wishing to learn the Corona SDK. This means that I will be doing short (30 – 45 minutes) coding sessions focused on one or more specific functionalities or tasks. Afterwards I will post details of my progress here on this blog. In between each of the coding sessions I will plan my next step and gather the resources (images, audio, libraries, etc) I may need to accomplish the next task. In the end I hope to have put together a video tutorial showing you how I built the app and explaining some of the features I have included.
The Discovery Of An Idea
It was very difficult for me to discover the app I will be creating for this blitz. I say “discover” because that’s the best way for me to find with ideas for new projects. I keep my mind open at all times for bits of inspiration from everyday life to the movies I watch to the other apps I see to the many people I interact with. I never know when and where the inspiration may reveal itself. So I keep a log of ideas and inspirations on my cell phone.
It took a few days before the idea for this app revealed itself. I still remember and love playing games like PacMan, Space Invaders, and Asteroids. As I was think about the theme one day I saw a picture of Space Invaders while browsing the net. Couple that with the fact that I am a huge Star Trek fan, I started thinking about the Borg Collective. So why not create a game that combines the simplicity of Space Invaders with the concept of the Borg thereby adhering (as best as I can) to the theme “Collection”. This was born.
“The Return of the Space Invaders: The Collective!”
First I had to come up with a story. The story will help me define the game concept and how it should be played.
The Space Invaders Are Back with a vengeance! Although they look the same they have formed into a collective that acts, behave, and thinks alike. They also learned how to “collect” and assimilate other life forms into their collective thus making their army stronger. You must fight off the attacks of the Space Invaders and prevent them from collecting too many of our citizens for their evil purposes.
Well there you have it. The beginning of a game. So what do I need as far as resources for the game? First I need images. Let me say that I am not a designer. I don’t know how to use Photoshop. However I can do wonders with clip art. I have been using Fireworks for several years (Corel Draw before that). I have a collection of millions of images on CDs and hard drives. So I need to find existing images that I can alter to suit my purposes. I plan on using the same Space Invader alien images from the 70s.
That will give it a retro look and feel. The background and other images will have a more contemporary look. I will use images of a tank to replace the missile defence. Instead of buildings standing between the aliens and the tanks I will have floating shields. The concept is that earth defenses have advanced enough to create and activate invisible (almost) defense shields that help defend against the attacks. Of course since the alien weapons can not penetrate the defense shields neither can our weapons (Star Trek logic). So the shields will randomly rotate with gaps in-between allowing us to fire through (and the also the aliens). Below the tank will be little people randomly walking back and forth. These are the people you must defend against assimilation. Should one of the alien’s weapons hit a citizen that citizen will be added to the collective with the aliens above. Every addition to their collective increases the level of difficulty. Just as in the original game the aliens will always be advancing downward. Your weapons can only destroy the aliens (sorry, you can’t save any assimilated citizens). Should the alien force breach the shielding, all the citizens will be assimilated and the game is over. Should an alien weapon hit the tank then you have been destroyed, the defensive shields will fail, and all the citizens will be assimilated. You get only one life (just like in real life). Should you destroy all the aliens then you win and get points for all the remaining citizens you were able to save.
I bought some clip art from one of my stock image sources – DepositPhotos.com. I was then able to isolate and save the images as individual files. Then I created a sprite sheet for most of the images (not the background image) using Texture Packer. I found this to be the best and easiest to use sprite sheet generator on the market. Since this is a coding challenge I do not count the work I did to gather and process the images towards the four hours given to us in the Corona Blitz.
I am now ready to start coding. My first set of tasks will be to create the Corona SDk app, setup the application folders, add the various helper libraries I use in many of my projects, create the splash screen, and the instructional screen. This should take less than an hour. Once I am finished I will post details and screenshots about my experience and what was done.
See you in a couple of days!