Content Update #2 is Out!

I’m very excited to announce that Content Update #2 is out! To celebrate, I’m running a 60% discount. Until March 31st, you can get Hypergate for less than $4 USD from the Steam Store page.

This latest update includes:

  • 2 new ships
  • 3rd-person view
  • Removal of online DRM
  • Attachments (new upgradeable components that are separate from equipment)
  • Additional graphical effects
  • Improvements to both mouse piloting and controls customization
  • Several bug fixes

Most of these features come from player requests. (In reality, my to-do list was quite long, because it included a lot of nitty-gritty details like “test ending cinematic again”, “increase maximum particle count”, etc.) Players like to be heard, and I’m happy to implement features that improve their game play experience.


So, what’s next in terms of Hypergate updates? Some feedback has already revealed a couple of minor, non-critical issues that should be corrected, so I’ll be releasing tweaks to those features in the very near future. I’m also still working on voice recording for another 10 campaign missions, scheduled for Content Update #3. My hope is that Content Update #3 will be released at the end of 2020.

But what about after Content Update #3? I’ve been giving this a bit of thought.

Developing a Hypergate sequel would be a great deal of fun. While I’d still aim for the intense, action/arcade-based game play, I think a couple of elements like being able to actually fly through a gate or navigate a specific route through the gate network would be a neat addition. At this point, I’m just fiddling around with ideas in my head to see what sticks. A sequel is still a long ways away, and in the meantime, there’s more Hypergate content to develop!


Thanks for your support, everyone. I hope you enjoy this latest update!

One final note. Most of my posts lately have been about my technical progress on Hypergate. But if you would like to read about other aspects of my game development journey (creative design, sound effects, working with my voice actors, marketing, or even how to get started), please leave a comment below and I’d be happy to share my experiences and what I’ve learned on the subject. Otherwise I’ll just pick whatever topic I want and yammer on about that instead.


Feb. 17 – Where I’m At

Content Update #2 is coming along nicely! Here is my to-do list:

  • ability to buy new ships
  • develop boost/engine sounds for new ships
  • ability to buy and use attachments
  • integrate attachments and new ships into LAN play
  • third-person fighter view
  • add third-person EMP effect
  • remove online DRM and allow offline mode
  • add short engine thruster contrails for extra cool appearance
  • add volcanic planet from new upcoming missions
  • validor first-person cockpit
  • nausica first-person cockpit
  • cruisers should explode into chunks when dead
  • graphical effect: film grain
  • graphical effect: chromatic aberration
  • player request: add mouse pilot sensitivity option
  • bug: fix an issue with mission warp-in sequence in 3rd-person view
  • bug: fix an issue that occurs with empty mission stats
  • bug: fix warp zoom when colliding with objects
  • bug: fix issue that occurs with laserbolt depth testing
  • bug: target leading in 3rd-person view needs tweaking
  • bug: fighters can get stuck in cruiser debris

Third-person view and the ability to buy new ships are the features I’m most excited about. I’ve also added some quality-of-life things, such as short engine trails and improved post-processing effects. Cruisers will now also explode into chunks. I should’ve implemented this a long time ago! It makes destroying them so satisfying you’ll need a cigarette afterwards.


The player blows an enemy cruiser into several different pieces.


The player will be able to choose between 3 different ships to fly.

Another major feature is actually a removal: I’m removing online DRM! Ultimately, I care more about providing a good experience for legitimate players than foaming at the mouth to viciously defend my creation like a rabid hyena. I don’t want anyone to suffer because they don’t have a good Internet connection! After Content Update #2, Hypergate players won’t need an Internet connection to play. Of course, the leaderboard and other online features won’t work in offline mode until a connection is restored, but this won’t inhibit gameplay at all.


A new Hypergate location, Autumn Reach, will be an important location in Content Update #3’s continued story.

A new interesting feature I’m working on is attachments. These are micro-upgrades that you choose from to enhance specific ship abilities. Each one is upgradeable a total of 4 times, and you can equip only one attachment at a time from the Upgrade Hangar. By choosing the appropriate attachment, you can gain a slight advantage over your unwitting opponents. Here they are:

  • Emitter coil: Increase shield strength by a few percent
  • Hex wave package: Increase EMP time by a couple of seconds
  • Energetics projector: Infuse cannons with some extra damage
  • Heat sink: Increase heat dissipation by a few percent
  • Afterburner chamber: Increase boost speed by a few percent
  • High-energy sensor package: Increase gun and missile locking ranges

I’m optimistically hoping to release Content Update #2 at the end of March. Stay tuned and don’t change that channel!


August 28 – Where I’m At

Several months ago, I had a conversation with a colleague about game development. I was expressing to him some concerns about my ability to finish Gateway in a reasonable amount of time, and whether or not the game would actually be fun. He pointed out that many games ship uncompleted, and that companies release content and patches later on. Insightfully, he also suggested that I develop a vertical prototype of my game to get some feedback before releasing it.

A vertical prototype is a narrow slice of a game that is fully playable. An example in my case would be a single mission. Although the main game mechanics (as well as several missions and other features) were already implemented, some of them needed to be upgraded or more thoroughly tested. A vertical prototype would be a great way to focus my efforts, so I made up my mind to develop one for Gateway and have some coworkers play-test it for me.

After that conversation, I spent the next several months fixing bugs and sharpening up some game mechanics. I designed a five minute mission specifically for testing purposes. It included a mix of my favourite dialogue and visuals from the actual campaign. A lot of effort went into improving or redoing some existing art assets, too, that I felt weren’t up to snuff. (My friends who develop game art professionally were an immense help here—they provided me with a ton of useful advice as I reworked my models and textures. Thanks folks!)

I scheduled play-testing for August 26th. Listed below are the tasks I aimed to complete before then. Each task was assigned a difficulty level. Not all of them were completed, but the essentials were done.

  • correct a major bug in the particle system (4)
  • rework the turret animation system to something more realistic (2)
  • model and texture new NIA and ISC cruisers and turrets (18)
  • correct the appearance of the first-person shield effect (1)
  • make the game engine fully adhere to an OpenGL 3.2 core profile (2)
  • rework the GUI system to look nicer and be bug-free (3)
  • add zoom blur effect when boost is activated (2)
  • correct a problem with missile collisions not being detected (1)
  • improve handling of in-game camera (1)
  • add debris assets (space junk, asteroids, cruiser chunks, etc.) (3)
  • correct obstacle avoidance AI (unknown, maybe 2)
  • create NIA/ISC cruiser collision geometry (1)
  • fix an issue with the turret shields not rendering properly (1)
  • optimize laser bolt light generation (2)
  • fix an issue with the targeting arrow (2)
  • discard non-colliding candidates faster during collision checks (1)
  • change laser bolts to use batch rendering (2)
  • texture the new cockpit model (17)

Last week, I demoed Gateway and my coworkers were thrilled to finally try the game I had been talking about for so long. It was very well received, and most of my colleagues had helpful suggestions to make it even better. Here are some of the most notable issues that were identified:

  • targeting arrow is sometimes misleading and still needs a bit of work
  • “target destroyed” and “mission complete” feedback indicators would be useful
  • star fly-bys need to be brighter to indicate player speed
  • HUD speed indicator would be good, too
  • adding a “reverse-flip-over” maneuver to reverse direction would be very useful

During testing, something interesting happened several times: my colleagues became upset that the player didn’t take any damage when colliding against large objects like gates, cruisers, or asteroids. What’s funny about this is that I disabled large-object-collision damage on purpose to make things easier, but everyone seemed disappointed by this. That surprised me, and I have two guesses for why everyone reacted this way: (1) players expected realistic mechanics, i.e., collisions should cause damage, and (2) players might have felt that their careful maneuvers were meaningless if there was no penalty for failing to execute them properly. (This was an eye-opening moment for me. I hadn’t spent a lot of time thinking about these kinds of implicit rewards.)

There were some positive points as well:

  • players found destroying things (turrets, gate coils, fighters, etc.) very satisfying, especially when destroying several of these in quick succession
  • the sleek look and feel of the game made it very pleasant to play in general
  • in-game audio was immersive and well-received

Overall, everyone had a positive experience, which was a bit of a relief for me. Until that day, I really had no idea if my game was fun or not. Also, it was incredibly helpful to get so much detailed feedback. Thanks, everyone!

Of course, I can’t just talk the talk after all that. Here are some screenshots from the vertical prototype mission.

My next task is to tackle the improvements that my coworkers suggested. It’s a real confidence booster to get this kind of feedback. Not that I ever really doubted it, but this experience has reinforced my belief that Gateway is a game not only worth developing, but worth playing, too.


July 26 — Where I’m At

Well, here we are so far. A lot of work has been completed since the last progress report.

  • Voice recording and mastering is all done. That’s right. Every single line has been edited and made to sound like it’s coming over radio, so it’s all campaign-ready. I really enjoyed working with the individuals who were nice enough to offer their voice acting talents. (Finding enough actors was something I was initially concerned about, but many people were very willing to spend a half hour or so working with me to bring my characters to life. I’m very grateful for that.) There were a lot of bloopers filled with jokes and curse words. It made the editing process (which took hours upon hours) very entertaining.
  • The first 3 campaign missions have been built. These are shorter missions intended to gradually introduce features and familiarize the player with the controls, and are thus fairly simple. The remaining missions will be longer, but will probably be built quicker as I develop momentum (and gain familiarity with my own game engine…funny how that works). I have to say, it is incredibly exciting to see the action and hear my characters come to life in the way I imagined.
  • Various game play improvements. The targeting system has been improved, the computer players are smarter, bugs are being squashed…the list goes on.

Currently, my priority is getting the campaign finished. Building the missions not only advances the game towards completion, but also reveals bugs in the engine and helps identify game play issues.

Here is a screenshot from the third mission, Incursion, where a simple assault goes awry and the player’s forces are ambushed by the Coalition.

The player provides support during a mission to destroy a series of enemy network satellites.

The player provides support during a mission to destroy a series of enemy satellites.

Until next time.


July 5 — Where I’m At

It’s only been a week since my last update, but there’s been a lot of good progress. I’ll keep this quick since there’s a few other things I’d like to tackle this evening. So, here we go:

  • Voice recording is nearly, nearly done. Unfortunately, I didn’t reach my goal of having all of the recording done by the end of the weekend. A lot was done this week, but I’m still looking for an actor for the last part (Admiral Banks). All of the other parts have been recorded, though, which means that I can go ahead and build the first eight missions.
  • Improved the cockpit. I decided that even my meager art skills couldn’t excuse the poor quality of the existing design. I spent a few days building and texturing a new cockpit model, which is shown below.


  • Improved the missile system. The new system requires players to be smarter about how they launch their missiles; launches that are made too close to a target or not facing the target enough will only result in wasted ordnance.
  • Addressed a number of outstanding bugs and gameplay issues. All minor things, but there’s nothing like a quick demonstration to a colleague to make you realize there’s a lot that needs fixing. (“oops, that shouldn’t happen”, “still gotta fix that”, “that’s boring so I’ve left it until later”, etc.)


May 18 — Where I’m At

Voice recording has begun! This is a very exciting step, as the voices for the characters I’ve imagined can finally come alive.

Now, the script is still awaiting some final editing from another source, so there may be the possibility of having to do re-takes to accommodate the changes. The reason I’m starting voice recording already is because I’m getting eager to move this game along!

Since the story is now more or less finished (barring some final editing), a lot of final decisions regarding Gateway‘s gameplay have been made. The campaign itself spans 11 complete missions, and there will also be the option of playing customized instant action games. During these missions, the player will face off against several types of one-manned fighters, a few varieties of cruisers, and even newly-added space mines.

There have also been a number of performance optimizations. Space battles can now be larger, and I feel that this is important when it comes to making the player feel immersed.

Don’t let all this talk bore you! Here are some screenshots to show you what to expect after a few more months of development.


Three outmaneuvered alien vessels face destruction from opposing sides.


The volcanic planet Grappley is visible behind the chaos.

The next while will be spent fine-tuning the game mechanics, eliminating obvious bugs, and integrating voices into the missions.


Mar. 29 – Where I’m At

This will be a quick update*, but an exciting one — the story for almost all of the 11 in-game missions has been written! All that’s remaining before final script editing and voice recording is just to finish up the dialogue for the last few. I expect I’ll have the last missions fully scripted by next week.

I have to admit, I’m incredibly excited about moving forwards to the recording stage. Several folks I know have generously offered their acting abilities, and I think that they’ll all fit their roles well. Here are some short descriptions of the main characters in the game, who will often be flying and fighting alongside the player.

Col. Warren Matthews
An uncomplicated, straightforward commander. A serious man with very little sense of humour. His people come first, and the mission comes second.

Lt. Andrew “Rig” Nash
Usually second-in-command during missions. Younger and more energetic than Matthews. Primary concern is for his wingmates and subordinates. Terse and forward, one gets the impression that he’s suffered a few scars, both literally and figuratively, over the course of his career.

Ensign Kesha Orr
Fresh out of the training program, Orr’s level of experience is similar to the player’s. Usually the first one to point out new things or ask questions.

Ensign Adam “Belt” Brennan
Second in experience only to Nash. Likes to tell jokes and stories from his past. His ill-timed bantering often attracts negative attention from his superiors.

These descriptions might change slightly throughout the editing process. A lot has changed from the original story already, but I wouldn’t want to spoil anything yet…you’ll get to play it yourself when I’m finished.


* Sorry, no screenshots this time. I’ve recently suffered a hard drive failure and have yet to re-install the libraries needed to run Gateway on my (now fixed) machine to take some new screen grabs. Fortunately, I didn’t lose anything. Cloud storage is your friend.

Feb. 16 — Where I’m At

If it seems like it’s been a while since my last post…it’s probably because it has. Mostly, this has been because I’ve been busy actually working on Gateway instead of writing about it. There’s been tons of progress, but it can all be summed up in a single phrase:

The first mission is now complete.

Okay, it’s only the training mission, but that’s hardly important, since getting to this point required pretty much everything to be complete enough to support a mission with dialogue, basic enemies, props, etc. Scripting out the mission has uncovered a lot of bugs and “features” that have appeared since I last tested various aspects of gameplay. Thus, the list of things I’ve completed has mostly consisted of: “fixed a bug here, corrected a segfault there, etc.”

A few non-technical items have been addressed, as well. Several models and textures have been improved, for a better look and feel. While I recognize that I’m not an artist, I’m always open to improving something if I think that I can.

Right now, I’m at a very important stage in Gateway’s development: developing the story. I’ve always had a rough outline in my head at any given time, but the real work now involves scripting out every mission and piece of dialogue, in order to figure out how many voice actors are required. Several family and friends who I think would fit some parts well have already volunteered their time, which is going to be immensely helpful. I also have a few play testers lined up. (Not to mention that a couple of folks have already tested the tutorial mission and have given some very useful advice.) Thanks, everyone!

I’m incredibly excited about what’s going to come next. Seeing my game finally come to life in this way is rewarding and, at the same time, very nerve-wracking. What if some vital features are missing that could make the game more fun? What if it’s just no fun at all? I suppose these are normal fears. Whenever they happen to pop up, I usually just think something like, “Shut up. It’s either a half-complete game with loads of features, or something more minimal that’s actually finished. You can’t do it all.” Sound advice, if I do say so myself.

The other issue to consider is that of play-testers. If my game sucks in any way, I’ll just have to trust them to be honest. Then it falls on me to find a way to improve things. The only thing I can do now is just carry on forward.

Before we part ways, here is a screenshot from the tutorial mission. It shows some space stations, colossal gates, cruisers, fighters, and a little dialogue from the (later ill-fated) Col. Matthews.

The player is greeted by Col. Matthews as they enter the training sector.

The player is greeted by Col. Matthews as they enter the training sector.


Managing With MMD

You’ve got a free evening and a brain full of story. Ideas enter your head and then exit without closing the door, leaving your mind wide open for new ones. How do you decide which ones to put into your game, and which ones get the axe?

In an ideal world, we’d have the time and talent to say, “all of them”, but moderation is required for anything to be completed. My own approach is to use a categorization system that I call the MMD ranking model. It places all of the possible major features of a game into one of three categories in terms of how important it is (and likely) that each feature will be implemented. At the onset of every game dev project, before writing any code, I’ll sit down with all of the features and sort them into one of the following:


  • This is the simplest category of the three, and always contains the least number of entries. What should be included in this section is a complete list of all of the features necessary to turn your game into something playable. This is surprisingly minimal. You’ll be surprised to realize that it doesn’t take much to make something fun, and that many extra features you might dream up aren’t strictly required (although they might be nice to have).


  • Middle grounds are always tricky. In my experience, this has been the longest section of the three because it enumerates most of the awesome features that I think would really make my game kick some serious ass. This might include additional enemy content, fancier weapons, or optional missions. The omission of any of these items won’t ruin your game, but it might not hurt to promote one or two of them later on to the above category for some extra fun. Just don’t get carried away.


  • It might seem kind of stupid to include a list of things that you won’t be putting in your game — this is obviously a lot. (You’re not going to put a Goomba into your Halo video game clone. Hopefully.) This category is really meant for the ideas you’ve had that are unfeasible for your project, due to (a) time constraints, (b) severe lack of technical knowledge, or (c) because they’re generally not focused on the core purpose of your game.

I should point out that the items ranked in these lists don’t have to be purely non-technical. Your implementation will dictate many things about what your game can and cannot do.

Of course, I wouldn’t leave my readers with just a description and tell them not to slam the door on the way out. Here’s a real example of an MMD list I developed while I was working on a very basic, minimal 3D game library a few years ago. The list evolved over the lifetime of the project, and items that were implemented were removed as things proceeded.

Must-do (remaining):
– Triangular prisms, pyramids (easy; make a couple new primitive types)
– Camera functions: follow, point (see previous code)

– Changes sprites to use Shader code (easy)
– Frustrum culling (see BGOGL)
– Particle library in 3D (import from Wing)

– Animated model loading
– Support for user-defined custom shaders and rendering


Lighten the List

There is generally always a long to-do list of things you need to implement when you’re working on something. While a little knowledge of what remains can help direct your efforts, my own experience has been that to-do lists can actually be detrimental to progress.

While I don’t deny that lists can help you focus your efforts and assist you in determining what to tackle next, I find them to be incredibly demotivating. Whenever I make a to-do list (regardless of how close I am to finishing a project), the sheer number of outstanding tasks inevitably makes me want to roll over and give up. In a previous post, I mentioned that individuals tend to overestimate the amount of work they can accomplish in any given length of time, and this optimism is a great motivator. Making a long list of what I need to do tends to curb this optimism, and makes it hard to enjoy what I’m working on.

Another thing worth mentioning is the “grass is always greener” syndrome. I’ve lost count of how many times I’ve looked at a continuously growing list of tasks and caught myself thinking, “You know, I have another idea for a game that would be much easier than this.” Of course, I know better now — any game is going to have a to-do list just as long as the last.

My solution to this problem is actually very simple, and is comprised of two parts. First, I’ll outline a set of immediate tasks that I want to tackle within the next week or so. I’m not talking about goals like “Finish the damn game”, I’m talking about (very-)short-term goals and milestones. This is usually a brief list of 2-4 small features. Here’s an example of what such a list might look like:

  • Refactor to read player settings from file
  • Correct missile material and LOD settings
  • Implement sonic push cannon ordnance

In addition, I’ll maintain a second list that describes in detail all of the things that I’ve completed, even if the items on that list weren’t originally on my list of things to do. This allows me to see my progress (which is, surprisingly, very easy to forget) and keeps me highly motivated. I have a very long list of things I’ve accomplished with Gateway, and it makes me feel good to read it.

If you’re worried that by not enumerating every minor outstanding task you’ll somehow make a mistake or forget something, you should direct your concerns elsewhere. You should already have a feature list that you’re sticking to, and this is good enough. You won’t help yourself by breaking everything down and realizing how much work is actually remaining. So, trick your brain into being optimistic by making a short list, and enforce that optimism by keeping those goals attainable and documented.