Feb. 18 – Where I’m At

Has it really been November since my last update? Geez. I guess the only way to excuse this supreme degree of laziness is to post a progress update telling you how much I’ve completed.

There’s a lot, actually:

  • Added an option for FXAA and optimized some graphics performance settings
  • Reworked some models (arg) including the gates and the marauder/alien cruisers, turrets, and fighters
  • Made final dev passes on some of the campaign missions
  • Made major improvements to the UI system
  • Added improved in-game tutorial/teaching notifications
  • Added new backdrop assets to the game
  • A few other minor improvements and fixes

The next steps will involve polishing the instant action mode and doing final passes on all of the remaining campaign missions. There’s also the issue of multiplayer, which Hypergate supports (I’ll probably talk about this in a future post, as there’s a lot to say!). The thing that’s important to me is that I can really see the final game taking shape now.

Also, I’m on the Twitters now! More fine-grained progress updates (screenshots, brief videos, etc.) will be posted there: https://twitter.com/geoff_nagy.

But, I can’t just leave you folks without any screenshots, so here we are:



Doing Something Different

Okay, I’m taking another break from Gateway. I’ve completed some work since the gameplay test, but I really felt the need to work on other things for a bit. During my break I wrote two small games. One is a simple open-source FPS, where you shoot drones that are trying to kill you in an open meadow. The other is a modernized version of Asteroids…and it’s ready for release on Steam in just a couple of weeks! …But I’m getting ahead of myself.

No-Fly Zone

So! The first-person drone-shooting game:

It’s really super simple. This is just a toy project that I hoped would be useful for anyone wanting to learn about game development using OpenGL. All of the source code and assets are available on my public repository. It also runs in both Windows and Linux.

But what I really want to write about is what I did after that.

Asteroids Millennium

After I released No-Fly Zone, I realized that I could probably consider selling some of my work!

[Aside: After some introspection I realized that somewhere between the age of 10 and…um, my current still-youthful age, I had mysteriously acquired the opinion that selling my work was evil and giving knowledge to the world was good. Further introspection revealed that if I did both of these things I would still average out to an “okay” person and I could live with that.]

But what kind of game would I write? The number of small projects I had successfully completed in the last year or so had demonstrated that my chances of finishing a 3-4 month-long project were pretty high. (I also didn’t want to re-purpose an old project.) So, my goal was to sell a game that would take about that long to build. Eventually, I settled on a modern remake of the classic Asteroids—it had mechanics that were easily understood and I had some fun ideas that would really add new life to the game. It also wouldn’t take forever to implement.

After 4 months of development (and also some beta testing with colleagues), I had a product that I felt was ready. Working to set things up on Steam went smoothly, partly because I wisely started the process more than a month before my planned release date. I didn’t know what to expect since I had never done this before, but the folks at Valve spent a lot of time writing great documentation and tutorials.

Here’s the store pageAsteroids Millennium is scheduled for release August 7th.


Focus on Finishing

It’s been a while since my last post, and also a while since I’ve completed anything useful on Gateway. Oh sure, I’ve had some time here and there to actually sit down, open up the project file, and write some code or build some environments. The real problem, I realized this morning as I got out of the shower, was that I hadn’t been making good use of my time. And here’s why.

I haven’t had as much time lately to devote to my game – this meant that instead of spending time actually producing work, I was internally building up new worlds, weapons, and graphical effects, all in my head. Whenever I found an hour or so to sit down with my favourite pet project, I’d want to try them out. I wouldn’t have time to finish anything, so the next time I sat down on my computer I would work on another feature. With nothing really completed, this just resulted in a bunch of nonessential, half-finished weapons, environments, or effects that didn’t do anything to further my progress on the game itself. Some of them were even detrimental to the project because they required changes to the existing engine.

So, as I stepped through my sliding shower doors this morning, it struck me: I really need to focus on the more important parts of the game. Hadn’t I given myself this advice several times already in the past?

This was a really good kick in the pants that I needed. (There’s probably a joke in there somewhere.) In the several hours that I’ve had this weekend, I’ve listened to the wiser part of myself and decided not to implement any new features or try any new experiments with graphical effects. Don’t get me wrong; all of those things are great fun and always a valuable learning experience. But by focusing my efforts this weekend on completing features that were absolutely critical to the game, I accomplished a lot. In the space of several hours, I had done the following tasks:

  • Removed the old, crappy explosion effect and created a much better one with my custom-built particle editor (I’ll post about that sometime)
  • Addressed some major frame rate smoothness issues and screen tearing problems (this one had been eating away at me for a while now)
  • Starting correcting the appearance of the first-person player shield effect (another problem that desperately needed fixing)
  • Corrected some minor issues that occurred with the ordnance system

And, there’s still a few hours left in the weekend as I write this! Who knows what else I’ll accomplish today?