rib_submit

Home MYM Community Blog Society Today The Orbital Hive, a young game developer's story


The Orbital Hive, a young game developer's story

E-mail Print PDF

Video games are a bit of a cultural obsession, now more than ever before. Game players have endless consoles to choose from, not limited to ones that hook up to the TV or that you play on your computer, but now, can also be found on your Smartphone, or iPhone or the iTouch or the iPad - the list can be quite endless! Games are fun, a great distraction to a bad or stressful day and can also provide unique learning opportunities!

Bart Mika, a young video game developer was very excited to share his story about developing his first video game, "The Orbital Hive". This is a story about someone with no game development experience who was able to create a game that can now be found on all Apple products, including the iPhone, iPad and iTouch. Check out how he got started and what he learned from his work.

OrbitalHive6Hello, my name is Bart Mika and I’m a new independent video game developer. The company I’m trying to start is called ‘Eurasiasoft’. This past summer (2010) I spent five months developing the very first video game in my professional career for the iPhone/iPod Touch; it’s called: “The Orbital Hive” and it has been released worldwide since Sept, 30, 2010.

Making a video game was both an incredible and overwhelming experience and one that has still left me reflecting and trying to make sense of everything I’ve learned. In hopes for better understanding, I am starting a series of developer articles to discuss the development process of “The Orbital Hive” and video game development in general. It is my hope that developers and gamers alike will read these journals as they enjoy learning a thing or two about game development.

Who are you?
Currently (2010-2011), I am a software engineering student attending my last year of university.

Why did you decide to develop?
I’ve been playing games ever since the early ‘90s and it felt like now was the time to experience what it’s like to actually make them; in addition, entrepreneurship seemed like an exciting (and intimidating) alternative for a dull summer job.

OrbitalHiveWhy did you choose to make a shooter?
When I was a kid, I remember playing my favourite shooter game at the arcades (back when arcades still existed), that game was called “Raiden”. Raiden was such a difficult game to beat but its addictive gameplay made me play it for hours! Generally I fell in love with top-down vertical scroll shooters (also called ‘shmup’) afterwards. On the iPhone there are plenty of awesome modern day shooters but I haven’t found a particular one that really satisfied my childhood nostalgia; therefore, I set out to make a classical ‘90s shmup that my childhood self would of appreciated!

Project begins: How/where did you start?
This is a challenging question, and one I’d like to write more in detail on in later articles, so for the sake of this article, I’ll give a brief overview.

Game Genre Research
During third year engineering, I frequently watched YouTube videos of shmup games during lunch breaks, along with trying some out at friend’s house and/or during class (!!!).

Acquired Company Assets
When I finished exams, and the much needed rest, I purchased the necessary assets in order to begin development:

-Mac Mini - 1000$
-iPod Touch Third Gen - 300$
-Apple Developers License - 100$

Engineering Requirements & Design
When everything was set into place, I choose to develop using the ‘waterfall method’. This method basically means I had to have progressed iteratively through a series of key development stages: Analysis, Design, Implementation, Testing, Deployment and Maintenance. I chose this software development cycle because my schooling background in it; however, I admit it probably isn’t used much in the gaming industry but for someone who has never made a video game before, it seemed like a good idea to use something familiar.

I spent approximately one month making a ‘Software Requirements Specification’ (A.k.a. SRS) and ‘Software Design Specification’ (A.k.a. SDS) document; upon completion, I submitted my documents to be reviewed by a third party whose expertise is in software engineering.

What are an SRS and a DSD? A SRS document explains ‘what our software is suppose to do’, along with ‘what our software will not do’. SRS’s are done during the analysis stage.

Individuals who make/work SRS documents are called “analysts” and are generally payed well in industry due to the simple fact that making good SRS is the foundation (in a series of steps) to making a great program. When an analyst completes the SRS, s/he hands it to a “designer” and the ‘design phase’ has begun. The designer’s job is to take the SRS document and generate SDS document, which is a blueprint of how to make the game. The design must strictly conform to the requirements set by the SRS, so naturally a good SRS document is a prerequisite! Programmers receive the design document and begin implantation of the software.

Testing is done by the programmers themselves and third party individuals such as ‘beta/alpha testers’. Deployment is also done by programmers but can have technologists involved as well. Maintenance is continually carried out by the programmers along with technicians and such.

If you’re confused think about it like this:
SRS - What kind of game your making, how should it play, is it 2D or 3D, what are some rules, etc
SDS - The blueprints, how to actually make it, and what algorithms/architecture it uses.
Implementation - Actually taking the blueprints and writing the code for the game!
Testing - Getting beta testers to test your game.
Deployment - Send the game binary to Apple and they release it worldwide.
Maintenance - Take fix any bugs people explain, add suggestions.

As the only developer in this project, I was responsible to play all the above mentioned roles.

Implementation & Testing
Implementation took approximately 3 months. The reason being where simple:

1) I’ve never made a game in my life
2) I’ve never programmed on an embedded device (iPhone/iPod Touch)
3) I’ve never programmed using OpenGL
4) Handling bugs/memory leaks/crashes/Apple/etc
5) Testing game

During the implementation, I hired two third parties to help me make: 1) Audio 2) Graphics. The payment agreements were fair and mutually beneficial.

OrbitalHive4Deployment & Maintenance
These two steps took approximately another one month and were also the most nerve wrecking! When all was said and done, it was time to send “The Orbital Hive” off to Apple and face judgement; however, before I did that, I’ve read horror stories about Apple’s rejections and bans so I made every effort to follow all guidelines/recommended practices. When I felt I did everything in my power that could be done, I sent it off and the nerve wrecking wait began!

After two weeks, Apple approved my game and I was jumping up and down around my house overjoyed; finally, I began celebrations with my friends and my employees (who were also my friends by the way.)

Project Completion
Now that the game has been released, I consider this project finished. I had set out to learn what it takes to make a great single video game, and I’ve pulled it off! It was a wonderful but tough experience. The most rewarding thing about the whole experience is now seeing people play my game.

After spending five months making a game, you’re really uncertain as to whether people will like it, or find it fun. You can add neat stuff here and there in hopes that it might make it fun, but you never know for certain. But when it turns out that the stuff you added to make the game end up being enjoyable work, it feels real fantastic!

Seeing various gamers and no-gamers play it along with hearing their opinions is also a very surprising thing, since almost everyone has a different opinion! I really enjoy hearing peoples praise/criticism and look forward to hearing more of it.

 

OrbitalHive5What are you most proud of?
I most proud to have accomplished writing this game 50% in Objective-C and 50% in C. The C based codes involved: 
-Collision Detection
-Graphics Render Engine
-Scripted Artificial Intelligence
-XML Parser

The Objective-C based things were:
-Sound Engine
-Game Loop
-Enemy Objects
-Player Object
-Bullets/Power-up Objects
-GUI Interface

I am most proud to have learned the following few things:

Objects can be created in C!
The big difference between C and C++ is that one is procedural based while the other is Object Oriented based. Because C is procedural, that doesn’t mean it can’t have objects! I don’t know how I could have missed this in school but when I learned how to make objects in C, the game basically took off from there. I started implementing all sorts of data-structures in C, such as circular array, doubly-linked list, binary search tree, etc; afterwards, I worked on building an XML parser from scratch and the scripted A.I. Finally the a broad-based collision system was implemented. Note: I tried narrow-based collision system but it was insanely laggy for the iPhone’s CPU.

OpenGL ES 2D Graphics Render Engine
Originally when I started making the graphics, I used Apples Quartz and Core Graphics layer but the game lagged significantly when 10 or more images were placed on screen. I found out that these layers only used the on-board processor and RAM but not the graphics card! To access the graphic card, and thus to use the graphics processor, along with the on-board processor, you’d have to use OpenGL ES (ES=Embedded Systems). A great deal of time was spent on learning OpenGL ES; afterwards, I developed a C based graphics render engine for the game.

What’s next for The Orbital Hive?
Unfortunately I’m busy with school in my last year so I can’t work on anything yet, but I am really hoping of adding a large expansion pack along with lots of suggested modifications after I graduate this year. I’m also willing to modify stuff that isn’t fun and add more stuff that is, but of course I’ll need peoples’ opinions.

Another really exciting idea I was playing around with would be adding a whole story-line mode to the game! I would love to go into developing this full-time; however, this condition is really based on if the game takes on some popularity.

Play The Game
Here is a video of the gameplay, check it out and tell me what you think. If you find any of this interesting, be sure to check it out on your iPhone and iPod Touch through iTunes :) 

Lastly, feel free to leave comments on what topics you’d like me to share/discuss with you in future articles. I have some in mind but I’m totally open to any suggestions you may have.

Thank you kindly!
Take care,
-Bart Mika

 



 

Add comment

Security code
Refresh

Submit

Want to submit your story?
Click Here

This Blog

This blog spot is a place for young people to share their stories, thoughts, ideas and support.  As it is moderated, we will not tolerate any forms of disrespect towards other participants.  Blogs may not be a direct reflection or representation of mindyourmind.ca  If you have any questions or concerns to report, please contact blog@mindyourmind.ca.

Updates

Want to receive regular updates? Sign up below

Donate

Donate Now Through CanadaHelps.org!

Polls

I have a phobia

Poll Loading