Monday, December 1, 2008

Design Document

I have concluded that if I am to come back to Sever in two years, I would be smart to throw something together that I can come back to. So I collected all the gameplay decisions and ideas together and made a small and crusty excuse for a design document. And then I decided it might be cool to post it up here because I figure there are probably alot of people that are confused about how this game works. You pick up bits and pieces here and there, but finally I have the whole thing in one spot right here in the design document. Let's just hope that it's clear and makes sense even though the grammar isn't all that great.


Sever Design Document

General premise

Player consists of a series of nodes connected by paths in a hierarchical form, all leading back to one node.

Different kinds of nodes have different uses. Some only allow one path to branch from it while others allow more. Maybe some allow none.

Each path is like a two-way street with little people walking each way. When a person reaches the next node, he decides which of the following paths to take depending on which needs him the most. This is decided based on a preset formula designed to keep the population spread out evenly throughout the route system.

People are generated by certain nodes at a regular rate or some other rate to be decided later.

People move at a regular speed through the paths. Sometimes, all paths at a junction may be full, in which case people stop moving and wait for an opening. All people following are stopped too.

Some nodes accelerate people that pass through them. The people then gradually decelerate to their regular speed. However, they will slow to match the speed of anyone they run into that’s moving slower than them; or maybe the two colliding people will agree on an average speed, slowing the faster one and speeding up the slower one.

There are certain hot spots on the map that a player can build a node upon that will grant him certain bonuses. For example, one might generate people. Another might increase the speed of all people within the system, or increase the length each person adds to a path under construction, or maybe one decreases the number of passes required to build a node. Maybe the player’s first node is built on a spot that generates people and that’s why it’s so important.

There may be neutral, prebuilt routes with or without people inside them that can be claimed by you or an enemy by building a path to its parent node.

Obstacles in a map will be geometric vectors that cannot be intersected.


How the player creates his route system

To build a new node and path, the player clicks on a node with an open slot and drags to a new location, meanwhile right-clicking to cycle between the different kinds of nodes. Each kind of node requires all other nodes owned by the player to be a certain distance away from it, and they cannot touch enemy nodes. When he lets go, people begin to build a path to it.

A path that is being built increases in length each time a person reaches its end. The person then turns around and heads back the way he came. When the path reaches its full length, they begin to build the node. Each node requires a certain number of passes from people to be built. Until it is built, it is unusable. People that pass by it act normally and turn around to head back the way they came.

A player may retract a set of routes by right-clicking a node. All routes following the node will retract. When a set of routes retract, the nodes at the ends are destroyed and their paths gradually shrink in length. A node is only destroyed when all of its branches have shrunk completely, after which its parent path begins to retract. Meanwhile, the people inside the retracting routes rush out to the rest of the system and nobody enters them. If the rest of the system gets overcrowded and jams, the remaining people will die when their paths are destroyed.

A player may also sever his routes by right-clicking a path. This will do the same thing as retraction, except it will start from the route that was clicked and go forwards. When a node is destroyed, all of its branches will begin to shrink towards the following nodes. In this case, all people inside are destroyed. However, to show humanlike behavior, they will all rush to the tips of the routes to escape the destruction, not realizing the inevitability of their deaths.

Retraction is useful when the player needs to get rid of a certain set of paths while salvaging the people inside them. The process may take a while, so he must have the time for it. If he needs the space or to use the parent node fast, or he already has a fairly crowded system, severing is the better choice.

A player may build a path to another of his own nodes if that node is not a parent of the one he is dragging from. When the new path reaches the node, the node’s current parent path will retract and be replaced by the new one. This allows the player to reorganize his system without destroying everything.


Interaction with the enemy

A player may sever another player’s routes by intersecting his with theirs. If a route intersects another route, the game will measure which route’s end is closest to the intersection to determine which ran into which. The closest will retract and the furthest will sever. This is how the player attacks his enemy.

When a player is reduced to his first node, he loses.

One offensive technique is to build an accelerator node, then start building paths aiming at the enemy, then sever them fast, and repeat. The people inside will be moving so fast that they will build as fast as the path severs and will act as a projectile. If the player is fast enough he will create a machine gun effect and the enemy will only be able to block so many before they get through. Of course the player will be sacrificing precious people to do it, but the enemy will hurt more if the player is successful.

When an enemy severs one of your routes, you can save the following routes by building a route to one of the endangered nodes, thereby disconnecting it from the destruction.

It may be smart to have accelerator nodes around so that you may quickly intercept any attacks.


Possibilities for the future

There may be a “capture” feature where the player can somehow capture enemy routes and the people inside them. I’m not sure how this would happen, but it sounds pretty cool.

Fog of war may or may not be implemented in the game depending on whether it is feasible. It really depends on how I implement the AI and whether the AI can deal with the fog of war intelligently. Also, it may just be cut if it doesn’t add to the game.

There’s also the faint possibility of a 3D world. In this case, maybe people move faster downhill and slower uphill, and hills affect fog of war. This would also require more coding and processing, and I don’t know that it would add a whole lot to the game unless I can think of some more gameplay features to validate it. And the features must be worthy. You can’t just add features unless you can make them essential to the core of the game.

THE END


Well, that's what I've got. See you in two years!

clevceo

No comments: