Welcome to day 4 of “International Operation Block Week”.
One day to go!
Monday I told you about the background of the remake. Tuesday I showed you how I analysed the original arcade hit. Wednesday, I showed you how I made virtual Lego objects, and today, it’s time to talk programming.
You might remember from Monday that I decided using the Game Maker system to make Operation Block. It’s one of many different languages or IDEs (integrated development environments) that you can choose to use to make a game.
Here are a few options for would be game programmers
with my very unscientific “complexity rating” out of 5:
- C++ 5/5
- Java 5/5
- BlitzMax 4/5
- MMF2 3/5
- Game Maker 1/5 to 3/5*
- The Games Factory 1/5
Now that’s only a small list, and a very rough estimate of each option’s difficulty level.
In general, the more complex options use scripting, whereas the easier options use “drag n drop” style programming. In the case of Game Maker*, both options are available, hence the variable difficulty factor above.
Languages/IDEs don’t just vary in complexity. There’s also variation in cost, and what sort of games you can make with them. You can’t make Starcraft 2 using Game Maker. And you can’t* get Microsoft Visual C++ for US$25.
(*Oops, someone pointed out that there’s a free “express” version)
I chose to use Game Maker as I was entering a 3 month competition, and I didn’t have time to learn a complex system. The price for the demo (free) was good, and the ability to start out with (easy) drag ‘n’ drop programming, before moving to the (harder) GML scripting is excellent.
So, what kind of games can you make in Game Maker? This 10 minute youtube clip should answer you…
Game Maker has a massive online presence (aka help network), with a very busy official forum, plenty of sites to download tutorials or examples (like this one) and more recently, the interesting Yoyo games site.
At Yoyo Games, your GM game can be playable on the website. In this case, you don’t need to rely on people downloading & installing your game. Very cool. It’s all very “web 2.0” with user ratings, “highlighted games” etc.
So after I’d installed Game Maker, read some tutorials and tried a few basic games, it was time to start programming Operation Block. One of the first things I did was insert a placeholder title screen, insert level 1’s (original) background, and get it scrolling at the same speed as the original game.
Week 2: I added mouse controlled cursor, shooting sound effects and some placeholder baddies that moved randomly and went “oooh” when shot. Week 3: A proper animated “in your face” Lego army man plus an animated tank that drove past. Week 4: The Op Block nurses (carrying a stretcher), and most importantly, Lego buildings for the whole of level 1.
I often hit bugs in my programming but with plenty of help on numerous forums, I’d slowly overcome them. After a while, I started to flowchart the important parts, as preventing bugs is much more efficient than finding them!
By the end of the Retro Remakes competition, Op Block had a variety of baddies, a working intro sequence and working scoring, but that was it. And as the RR compo required entries to be “at least 80% complete”, my single-level demo wasn’t good enough.
I kept working on Op Block though, and despite some hair-tearing bugs (baddies that wouldn’t appear, or just died automatically, etc) I eventually had a 99% accurate single level prototype at the end of 9 months. I got some great feedback from sites like Retro Remakes, Indie Gamer and TigSource.
But then life got busy, and the project rested for a year and a half.
Some of the things I was most proud of achieving in the Op Block prototype:
- Helicopters that moved like the originals, yet had twice as many animation frames
- The stats screen that worked just like the original
- The moody introduction
- The accuracy of the Lego buildings and vehicles
Now, I’ve mentioned quite a few things above that I haven’t shown you yet, but don’t worry…. once I’ve improved the graphics I’ll be eager to unveil them to you…
Earlier this year, I wanted to get back to Operation Block, so I thought I’d learn Game Maker *properly* this time. (After all, my first prototype of Op Block might have worked, but the code was a mess.) I wanted to make the game run much more smoothly, and complete it with improved graphics. My first step was to buy this book…
It’s fantastic. As long as you have the guts to say “Hey, I should start at the beginning”, then you’ll be able to learn some good techniques. It helps you build a variety of simple, yet playable games. And thankfully- the instructions are very, very clear. That last point is vital. If you get frustrated with the instructions that came with your latest electronic gadget – multiply the potential frustration by 10x – to see what you can feel if you try to learn programming from a poorly written tutorial.
Two great bonuses in the book are theoretical chapters about making good games. They’re packed with things that “make sense”, yet you’d never noticed them or understood the theory.
I will be returning to those chapters again and again.
I’ve almost finished all the exercises in the book, so the next steps programming-wise will be..
- Go through all my old code & notes to work out how it worked
- Think through how the code could work more efficiently
- Slowly rebuild the game using Game Maker version 7/8 (the original was version 5.3)
Ok, that’s today’s post. Tomorrow… we wrap it all up!
Hope you enjoyed Day 4 of “International Operation Block Week”.
- Monday’s post was… “JOMG’s own game – Operation Block“
- Tuesday’s post… “Operation Wolf: Dissecting a classic“
- Wednesday’s post… “LDraw… Making blocks outta nothing at all“
- Tomorrow’s post… “Operation Block FAQ“
Disclaimer: Operation Block is a freeware, fan tribute game being developed for Windows PCs. There’s no connection whatsoever to Taito, Lego or Traveller’s Tales. And it won’t be ready till Christmas 2010. At the earliest.