Spring 2006 - Rawhide Frontier – CSE 788.14 Game Design

Design Document for:

Rawhide Frontier:

The BIG West RTS

Version # 1.00

Monday, May 01, 2006

John H Scott

Jordan Lemiller

Aaron Cardwell

Paul Betts

John Battagline

Kyle Moore
Table of Contents

Rawhide Frontier:______

Design History______

Version 1.0______

Version 1.5______

Game Overview______

Philosophy______

Game Design Goal

Common Questions______

What is the game?

Where does the game take place?

What do I control?

How many characters do I control?

What is the main focus?

What’s different?

Feature Set______

General Features______

Multiplayer Features______

Editor______

Gameplay______

The Game World______

Overview______

Rendering System______

Overview

Game Engine______

Overview

Object Management

Map Management

The World Layout______

Map Details______

Overview______

Resources______

Camera______

Overview______

Camera Movement______

Game Characters______

Units______

Buildings______

Upgrades______

User Interface______

UI Details______

Musical Scores and Sound Effects______

3D Sound______

Sound Design______

Multiplayer Game______

Overview______

Max Players______

Servers______

Customization______

Saving and Loading______

Victory Conditions______

Character Rendering/Model Details______

Overview______

Model Details______

Animation States______

Animation States______

World Editing______

Custom Map Designer______

Design History

This section covers the high level details of the major revisions of the game.

Version 1.0

Version 1.0 of the game contains the base framework that the rest of the game will be built upon.

  1. Introduction logos completed.
  2. Introduction music added.
  3. Interactive Main Menu started.
  4. Basic game states created, including Introduction, Play, and Pause.
  5. Temporary win/lose conditions created.

Version 1.5

Version 1.5 of the game contains the base user activity, as well as the entire client/server model.

  1. Client/Server module is active.
  2. Players have a user interface to select and view selected units.
  3. Added mouse drag for select.
  4. Added right-click-to-move functionality for single and groups of units.
  5. Added the initial buildings.
  6. Menu buttons are interactive.

Game Overview

Philosophy

Game Design Goal

Rawhide Frontier is not meant to be a historically accurate portrait of the American West. Rather the theme is meant to be taken in a more satirical sense. For inspiration of locations, cultures and people in the game, we want to draw more from cultural references instead of historical accounts.

Common Questions

What is the game?

The year is 1863. The flames of civil war are still raging in the east, and you are the mayor of a frontier town in America’s Wild West. You explore and conquer the unforgiving dessert wasteland, encountering other towns and other mayors—all competing for the same precious resources. Outlaws, cowboys, crooked deputies and many others are invading your territory, looting your lands. You must fight for your right to live. You train a powerful army of cutthroat warriors to ward them off, knowing that, when the day is finally won, only one nation can stand alive beneath the setting sun of this Rawhide Frontier.

Where does the game take place?

This game takes place in 1863, located in the American Wild West.

What do I control?

You are the mayor of a western frontier town. You oversee the creation of your town by creating buildings, such as saloons, stables, and blacksmiths, and command a wide variety of units from gold diggers and sheriffs to cavalrymen and the feared outlaws.

How many characters do I control?

Since you are in charge of creating and maintaining expandable towns, you are capable of controlling dozens of units at a time.

What is the main focus?

At the start of the game, you focus on gathering resources, expanding your town, and creating and training various units to defend your city and to attack your enemies. This is a multiplayer game, so the player vs. player aspect of the game is heavily emphasized.

What’s different?

While we will draw from some traditional elements of Real Time Strategy games, we aim to make a few notable differences. First, we want the peasant production for the town to be dependant on the buildings constructed by the player. The number of villagers will only grow when there is enough housing to support them. The player will then need to balance their use as soldiers or as workers.

Feature Set

General Features

3D Graphics

3D Sound

Custom Map Maker

OpenGL and DirectX support

Multiplayer Features

One vs. One online competition

Real-time online play

Editor

Custom map creator and editor.

Gameplay

The gameplay of Rawhide Frontier will start you out with a town hall, a house or two, and a few villagers. You must then train these villagers to become workers so you can build your town. Buildings and units will cost gold which workers can collect at gold mines. Throughout the game, players will have to find gold mines when old ones run out of gold. Workers will also be able to create buildings which will serve a large variety of purposes including building units, upgrading units, and defending your town. When you run out of villagers and capacity for villagers you will have to build more houses. Once houses are built population will slowly begin to migrate to your town again until you reach your capacity once more.

The Game World

Overview

The game world will essential be the series of maps that the players can battle on. The maps should be expected to contain at least two starting locations for players, and near them, a mine for workers to gather gold from. In addition there will be railroad tracks for players to build stations at to gather resources from.

The world will be represented by tiles that will be pre-generated in a custom map editor. Each tile will contain a 3d mesh to represent the terrain on the square of land. Inside each tile, will be contained “WorldObjects” which may be things such as buildings or units.

Rendering System

Overview

We are using Ogre3d to handle the rendering of our game. This allows for either an OpenGL rendering or DirectX 9 which can be dependant on player capabilities or preference. For more details of the Ogre3D rendering system, visit

Game Engine

Overview

Our engine will consist of two major sections to represent the game state. First will be Object Management which should manage all the objects in the world that are dynamic, like Units and buildings. Second there is Map Management. This will manage details related to the map, its terrain, and which portions are visible to the user.

Object Management

Each dynamic object like buildings and units will be represented as a WorldObject class. Although the WorldObject will contain several functions common to all objects, most instances of these objects will be in inherited classes specific to the type of object they represent. A Building object will contain members to store the actions it can take, the training order, and so on. Units will contain a Queue of actions that they have been ordered to take, available orders, and so on.

At the beginning of each frame, these objects, stored in a linked list, will be iterated through to perform their game logic. The code to control the AI for each of these objects will be in Python scripts so that it can be edited without needing to recompile the actual game code.

Map Management

The map will be represented by individual tiles which will be predefined from a file. These maps will be created in an external editor. In game, the tiles will also be used to partition the rendering so that not all the objects and tiles need to be draw each frame, instead just the ones visible. The tiles will also contain pointers to the WorldObjects that reside in them. This will allow for the objects to search units nearby in a time that should be faster than iterating through the entire list of World Objects.

The World Layout

Map Details
Overview

Since the location of this game is in the Wild West, much of the game world will be in an arid desert location. Many areas will have scenic terrain, such as mountains, oasis’s, and gulches; however, many of these areas of the map will be impassible. The interactive portion of the world map will be a flat 2D plane, with the camera positioned a set distance above the world.

Resources

The maps will have two different locations for gold to be gathered. Workers can pan rivers and streams for a steady amount of gold, and certain mountains can be found that contain rich gold veins.

Camera

Overview

This game uses a birds-eye-view camera. That is, the camera can only travel up, down, left, and right on a plane parallel to the game world. Moving the camera in and out will not be allowed.

Camera Movement

Players have two ways to move the camera. There are eight directions the user can scroll the camera by moving the mouse to the edges or corners of the screen. For example, if the cursor is moved to the left edge of the screen, the camera will scroll left as long as the cursor is on that edge. If the cursor is moved to the upper left corner, the camera will scroll in that diagonal direction.

The second option for camera movement will be via clicking on the mini-map. This will allow the user to jump the camera to specific areas of the map quickly.

Game Characters

Units

Townsfolk – The basic unit which trains/upgrades to the rest of the units that can be created.

Workers – Unit dedicated to gathering resources and the construction and repairing of buildings

Lawmen – A close ranged, pistol wielding unit

Marksmen – Long range units

Calvary – A fast melee range horse-mounted units

Cannons – Siege unit with the highest damage vs. buildings

Outlaws – Complex end-game unit

Buildings

Houses – Allow for the creation of Townsfolk. Each house supports a set number of units.

City Hall – Used for training workers. The base building needed to construct all other buildings.

Jail – Used to train Lawmen.

Gunsmith – Trains Marksmen and builds Cannons. Also allows various unit upgrades.

Stables – Trains Cavalrymen. Requires a Gunsmith in order to be constructed.

Saloon – Trains Outlaws. Requires a Jail in order to be constructed. This building is also used as a resting and healing point for damaged units.

User Interface

2D GUI Details

The 2D graphical user interface will be displayed in the bottom of the screen and take up about 25% of the window. It will be the users main location for game interactions and status. On the very left part of the window will be the mini-map. The mini-map will show a general visual layout of the level and mark enemy units and buildings as well as your own. Clicking on the mini-map at any location will take you to that area of the map in your window as to easily be able to maneuver to important locations on the map quickly.

In the center of the GUI there will be a selection box which will specify which will display to the user what they have selected at the current time. This will contain small images representing which units or buildings are currently selected by the user. It will also show each units health under its image and we hope to eventually be able to click on the images to select that single unit.

Lastly, on the right side we will have a number of interactive buttons which will give certain commands such as building units, moving, attack, and more. These buttons will change depending on what types of units are selected at the time.

World UI Details

The World will also provide a user interface when dealing with objects inside the 3D world. When a unit is clicked on its details will appear in the 2D GUI. Beyond this a green circle will surround the unit’s feet so that you know which unit is currently selected. You will also be able to drag a box around whichever units you wish to select. Releasing the box will select all of the units in the selected area which belong to you. When you have units selected you can group them by holding control and clicking a button 0-9. This will assign them to that key so that whenever you click that number button again the units assigned to it will be selected. This will also work with buildings.

Musical Scores and Sound Effects

3D Sound

The sound API we are using is Fmod-EX. As opposed to using the build in Ogre sound manager, we created our own sound manager class to help make playing and using sounds easy. We are not using many complex sound effects, such as the Doppler Effect and complex sound occlusion, refraction, and reflection. Since the game is a camera above a 3D plane, the user will be able to hear sounds that play in the field of view. The players will also hear some sounds outside the field of view to help them determine where actions are taking place that they cannot see; however, they will not hear sounds that play on the other side of the map or a certain tolerance distance away.

Sound Design

The goal for sound in this game is a Country-Western style. By Country-Western, we do not mean mainstream Nashville-based songs, but a calmer, folk Western camp style sound. The game has calm music in the main menu, and more intense western music during game play that can be turned on and off. As actions happen, players will hear sound effects, such as gun shots, explosions, and quiet yells when units die. When units are selected individually, they will play a talking sound to give them a more personal feel.

Multiplayer Game

Overview

In order for the multiplayer games to start, one player creates a new game, which starts a server session on his local computer. The second player then connects to the first player’s server, and once a connection is made, the game can begin. “Rawhide Frontier” is a multiplayer only game, so an internet connection is required for players to play the game. The game is playable across a Local Area Network also.

Max Players

Currently, the multiplayer system supports 2 players.

Servers

The multiplayer design will be based off of a client-server model. Peer-2-Peer will not be an option to players. The player creating the game (host) will be acting as the server and a client at the same time. The “host” will only have one process of the game running. Rather than have a server process and a client process running on the host computer, we combined these so the host does not send packets between processes. This required a little bit of extra coding to keep the client and server as separate players, rather than follow the dedicated server format.

The client/server model is build on top of the RakNet toolkit. We use this toolkit to run the server, connect to the server, automatically handle client connections, unique playerID assignment, and the sending and receiving of packets. There was an option to use a data replication system, where the server handled all creation of sending packets. However, we decided against this approach and just use bitstreams to send and receive the packets. This way we have a lot more control over what is being sent to and from the players, and this also helps us manage packet size to reduce bandwidth usage.

Customization

Players will be able to choose a “team color” for all of their units. This will help distinguish friendly units from enemy units. Players will also be able to use the map editor and send their maps to friends and play on their own custom designed worlds.

Saving and Loading

Multiplayer games cannot be saved. Every time a new game starts, each player starts from scratch, with only a City Hall, a house and a few Townsmen.

Victory Conditions

A player wins a multiplayer game when he destroys all of the opponent’s buildings.

Character Rendering/Model Details

Overview

As far as units go, there are not going to be any complex rendering, lighting, or extreme detail renders. Each unit will have a model, a unique texture, and multiple different animation states.

Model Details

Currently, there are going to be very few different model skeletal structures. Since all but 1 unit is a humanoid, the skeletal mesh and the animations will come from up to two files. One model will have a hat, one will not (may change). Each unit type will be scaled slightly different and each type will have its own unique texture to help distinguish the unit types apart. The only other animated model type will be the cannon, which will not be an overly complex model.

Each team will have textures or colors specific to their team so players can distinguish their units apart. This will most likely be in the form of outfit color in the textures for the units.

Animation States