Functional design

This document is supposed to give an overview of the Zorn game from a player's point of view. Though I've had the game in my mind for some time, I have so far been working on the technical sides of the design, rather than the functional part. This needs to change. So here it is.

This document was last changed (in any meaningful way) 2005-05-01.


To summarize, Zorn is a 2D space shooter, seen from above, with space rotating around the player. See the mockup screenshot for a quick overview (don't focus on the details yet). The player flies around, shooting all kinds of enemies. Shooting enemies gives some kind of credit reward, which allows the player to upgrade their ship by buying upgrades.

More possible ideas (and I hate writing it this way, but this is actually the least painful. I can't leave them out, and I don't want to commit to them so soon) include the continuous building of a player's on space station from components. The station serves as a sort of home base and defense post, or for research and shopping.


The objective for the player is, simplified, to combat the enemies. I say "combat" here, since while this usually means besting them in a firefight, there may be other means. Depending on the map, scene or arena, several goals are possible (I've listed only the simplest, most basic ones):

The last two points may look the same, but they're not. The first type will reward evasive action, while the second type will reward confrontational action. However, they are typically very related. Both types also rely on an infinite or replenishing supply of enemies, and on said enemies getting stronger all the time. The gameplay makes no real sense otherwise.

As to dying: for single player games (more on multiplayer later), the player should have a "shield" or health bar, which gets reduced by enemy actions but replenishes over time. Once this bar reaches zero, the game is over. Extensions like body armor (non-replenishing, but repairable health) or multiple lives may be considered in the future.


The game takes place in a closed arena or map. For the time being, this is spherical, and quite a bit larger than a screen. Non-spherical maps may be possible at some point. The maps should (but do not have to) include some kind of "scenery", i.e. immobile obstacles. This can be a small asteroid cluster, or turn the map into some sort of tunneling system. If I get around to it, there may be mobile backgrounds, even several seperately moving ones.


I've been talking about "enemies" so far, and in fact, there is nothing more specific at this point. Most enemies will try to collide with the player, weakening them or their shield. Some may shoot. Others may just hover around waiting for the player to collide with them (like space mines). Some may be non-moving shooting platforms. Moving enemies will show at least some "natural" behaviour, such as flocking, having limited field-of-sight and/or communicating.

If the "player-run space station" idea is built, enemies may get their own stations, which may offer similar strategic benefits to the enemies. Players thus have a reason to interact (i.e. blow up) with these stations. The enemy stations may even improve over time, but that's the future talking now.

Another "opponent" should be the map itself, in the form of the background obstacles. Colliding with the background should ding the player's shield somewhat (enemies too?), but not destroy them completely. Generally, the background should reward skillful or cautious playing, and punish unskilled or reckless actions. However, if the "multiple moving obstacles" idea is implemented, "daring" (i.e. successfully reckless) behaviour will be rewarded too.


The game is controlled with keyboard, mouse or joystick. Flight is governed by a "Newtonian physics with friction" model, i.e. you gain speed in the direction of thrust, and lose speed if not thrusting. Think XPilot, if you know it, but with limited speed and without gravity. Similar to Starscape, in fact. The player can turn at a maximal turning rate.

However, Zorn will have sidewards and backwards thrusters as well. This does not only allow players to strafe and dodge while firing from basically a standstill, but also allows (at least) two more actions:

  1. By turning and thrusting in the direction of the turn, players can fly in circles despite the thrust-based physics model.
  2. By turning and thrusting against the direction of the turn, players can circle-strafe around a (more or less) stationary target.

In fact, there are probably more possibilities than that (think quick turnarounds by using the side thrusters for part of the turn), and I'm already eager to see what others can come up with!


The player will have a large number of weapons at their disposal, with many different characteristics. These weapons can be purchased, switched between, swapped out, realoaded/restocked and even combined. There will be projectile weapons, spread weapons, beam weapons, close-range weapons, area-of-effect weapons, guided missles, smart bombs, mines and armageddon-type one-shots.

Well, at some point. Not at first. That's a bit too much to code. First we'll go with the standard "single-line unlimited fixed-rate-of-fire" weapon. Maybe upgradable. But there's no reason the above list can't be implemented someday.


Multiplayer is a large factor in the appeal of a story-less game like this, so Zorn will have multiplayer. I like cooperating multiplayer, so Zorn will have cooperative multiplayer. Others (most, probably) prefer confrontational multiplayer, so Zorn will have confrontational multiplayer.

For the cooperative part, the above objectives should be fine, except played with more than one player. However, the dying rules will need to be rewritten to avoid one player dropping out early in the game and then have nothing left to do but watch the rest (and chat). Players will (most likely) not be able to harm or hinder each other, so no friendly fire, no credit stealing (kill stealing may be a problem) and no collisions.

For the confrontational part, players will be able to harm and hinder each other, mainly by shooting the other guys to pieces. Game modes will include popular deathmatch types, such as a fixed number of lives per player, a fixed frag limit or a fixed time limit. If you're unfamiliar with these terms or game types, play a few first-person-shooters online. For these games, any computer controlled enemies should be fairly unimportant to non-existant.

Quick start

One important design goal for Zorn is the ability to "get going" quickly. Ideally, the player should be playing the actual game as soon as the screen resolution changes (or the window pops up). Multiplayer, too. I envision something like command-line settings (easily placed in aliases, macros or shortcuts), remembering last play modes and servers. This goal will probably come quite late, but it should be remembered at all times.

Ben Deutsch