STATION 37

Solo-Developer

Over the course of a year and a half, I worked on a solo-developed indie game titled STATION 37, based on the open source IDTech engine.

The Steam Page is here: https://store.steampowered.com/app/2105860/Station_37/

Through this project I practiced all aspects of the game development pipeline. These include:

Gameplay/Scripting

Using QuakeC, I created 10 new weapons, 12 new enemies, and several pickup items.

One of the advantages of building off of the IdTech engine was that I was able to use the gameplay of Quake 1 as a base to build off of. However, Station 37 is an extremely different style of shooter then Quake. It is far slower, with a heavy focus on being careful with every shot, and exploration. This all meant that a large chunk of development was spent trying to bend the engine into type of game that it really wasn’t designed for.

IdTech uses the scripting language QuakeC for most gameplay code. The language was extremely frustrating at the start, as the only documentation is a pdf file from 27 years ago, and tutorials were difficult to come by.

However, after enough time studying both the documentation and the code from Quake itself, I was able to understand the structure of this strange scripting language.

Engine Modifications

One of the more unique quirks of the IdTech engine is the sheer number of variations of it that have been made over the years.

For this project, I used a community made branch called quakespasm. I picked this one because it was a fairly simple and barebones version of the engine, while still receiving regular updates.

This was likely a mistake, as quakespasm was so barebones that it didn’t support many important features that I needed to make the game I wanted to make.

This meant that I would need to make significant changes to the engine. These included:

  • Adding support for textures on meshes with more then 256 colors
  • Rewriting nearly all of the in-game UI
    • Wrote a custom inventory and HUD
    • Added custom UI for keypads and reading notes
    • Modified the main menu to remove UI that wouldn’t be used
  • Modified the save/load system to support the new inventory system
  • Added new inputs to the input system to support some of the new mechanics

Level Design

I used the Level Design tool Trenchbroom to create 18 levels, each one distinct in both Gameplay and Visuals. When working on a level, the process would go like this:

  • Sketch out the level on graph paper, with a focus on creating an interesting overall shape for the map.
  • Create a greybox in TrenchBroom, deviating from the sketch when necessary
  • Playtest the greybox. Finding playtesters was somewhat difficult, but I tried to playtest my maps whenever possible.
  • Detail the map, adding textures, lighting, props, etc

Artwork

The biggest challenge of the art for Station 37 was the sheer quantity of assets required for a game of this scale. By the end of the project, I had made nearly 200 textures, and nearly 40 3d models. This meant that I had to very carefully pace myself, making sure that I never spent more then an hour or two per asset.