User Manual

Rice University

Comp 410

1

Special Thanks:

The Comp410 class and staff would like to express their deepest gratitude for the financial, software and other resource support from the following organizations:

  • Brad Jensen, Vito Sabella, Steve Waters and the rest of the team at Microsoft University Relations, the Education Solutions Group and the
    Microsoft Technology Center in Austin TX
  • Steve Dadoly and the rest of the FlyWheel development team at
    Velocitis Inc
  • The George R. Brown Fund from the George R. Brown School of Engineering at Rice University
  • The Computer Science Department at Rice University
  • SourceGear LLC

A special thanks to Dr. Dung X. Nguyen for his Oscar-quality role as our "customer".

Without their help, this class would still be a dream. Thank you.

Table of Contents

Introduction

Overview

About Us

Getting Started

SkyNet Server Installation

SkyNet Client Installation

Other Programs

Server Setup

Starting Up a Server

Server Controller

Playing the Game

Starting a SkyNet Client

Login

Device Selector

User Interface

Gameplay

Selection

Commanding Your Units

Scenarios

Scenario Lake & Scenario Tokyo

WarChess

Dynamic Unit Loading

User Modification Tools

Unit Editor

Loading an existing Entity

Saving the current Entity

Modifying the current Entity

Media Package Editor

Creating a new Media Package

Adding Media Packages to the Game

Credits

Introduction

Overview

SkyNet is a .NET framework application that allows users to create complex distributed simulations. The SkyNet world consists of a discrete grid, indexable with Cartesian coordinates. This grid and its contents are ultimately stored in a Microsoft SQL Server database. Multiple servers can manage the same world, and their behavior is coordinated with .NET Enterprise Services.

The simulation is highly dynamic and flexible; units in the world are specified first in XML, then tied together through interactions known as “behaviors” which reside in compiled code. SkyNet can be configured to simulate any conceivable world that can be represented in a discrete grid.

SkyNet's protocols are abstract; a number of devices can interact with the SkyNet servers to display the game world. Some of them include a tablet pen interface, 3- and 2-dimensional displays, and sound notification of events.

About Us

The SkyNet project is being developed at Rice University by the Comp410 class, Software Construction Methodology. Comp410 employs a non-traditional pedagogy based on “pure discovery learning”. Traditional software engineering courses follow the Carnegie Mellon Software Engineering Institute’s “Guidelines for Software Engineering Education Version 1” in a lecture based format that covers the suggested topics of life cycle, design, requirements and specifications, testing, etc. However, at Rice, the goal is to educate leaders in the field, so simply knowing the “book” practices is not enough.

We want our students to understand the why and the how of software engineering. The students need to understand what causes the problems that the various software engineering methodologies address and what fundamentally one needs to do to correct them. This understanding is not tied to a particular methodology, but requires deep and careful reflection on real development processes and the issues that face them.

The only way that students can truly understand a “real world” software development process is for them to be immersed in it themselves. They must experience all that goes wrong (and right) and figure out for themselves what it takes to correct the problems, overcome the hurdles and achieve their goals. Comp410 achieves this by having the entire class simulate the development department of a small software company faced with the daunting task of completing, in 14 weeks, a very large project involving numerous unfamiliar technologies. In addition, through discussion and weekly journals, the class reflects upon and attempts to solve the various issues and problems that arise during real-world multi-team software development.

Getting Started

To begin, please visit the Installer Releases page to find the SkyNet installers. There are separate installers for the SkyNet server and client. Download the installers for the components you wish to use. Once the downloads are complete, double-click on each installer .zip file and then on the .exe file located inside.

SkyNet Server Installation

Follow the on-screen instructions of the installer. If you do not have the Microsoft SQL Server 2000 Desktop Engine (MSDE) installed, it will automatically be downloaded and installed. On the Database Server screen, leave the Database Server field blank if you would like it to default to the present computer. Also, if you are not familiar with the authentication method, you should leave it to the default selection. The default installation directory is “C:\Program Files\COMP410\SkyNet Server”. Proceed to perform a complete installation.

SkyNet Client Installation

Follow the on-screen instructions of the installer. The default installation directory is “C:\Program Files\COMP410\SkyNet Client”, though you have the option to change it.

Other Programs

In addition to the Sky.NET installers, you may need to install the following components, if they are not installed already:

DirectX SDK Update April 2005 (necessary for 3D): Download here.

Tablet PC SDK 1.7: Download here.

.NET Framework 1.1: Download here.

Server Setup

Starting Up a Server

To start a Sky.NET server, run the SkyNet Server Controller executable located in the COMP 410 Start Menu item.

Server Controller

The SkyNet Server Controller gives you the capability to manage your server. The machine to administer to will default to the local computer. To administer to a different computer, change the contents of the textbox to the machine name or IP address of the other computer.

The SkyNet Server Controller allows you to perform various actions:

Create Database: If there is no existing SkyNet database on the target computer, you will need to create the database. Performing this action will clear the SkyNet database on the target computer if it exists.

Start New Grid: This action should be performed if you would like to start a new game with the target computer as the initial server. You will need to load a model data XML file (for data about the game world itself) and then a security XML file (for user account information). XML files are located in the C: drive and inside SkyNet Server/XML Files at the installation location. At the present time, the most developed scenario is ScenarioLake, which pits four users against each another. The corresponding security table, SecurityTable, has four accounts: Clement, Jessica, Ryan, and Jonathan (with the passwords being the same as the account name).

Join Grid: This action will allow the target computer to join an existing grid of SkyNet servers. After being clicked on, a dialog box will come up for the user to input the machine name or IP address of one of the computers in the grid to join.

Write XML Model: Write XML Model will allow you to save the existing game world in the database of the target computer into a XML file. Using the save dialog, choose the name to save the file as.

Version Number: Each SkyNet game model has a version number, which is used to distinguish between different versions of the model. This action will output the version number of the presently loaded model on the target computer.

Add File to Voltron: To allow the target computer to share files with other computers, you will need to add the file to Voltron, the distributed file system.

Show Mirrors: This action will allow you to see the IP addresses of all the servers that are connected in the present server grid.

Clean Mirrors: This action will allow you to clean the mirrors and output the new list of mirrors.

Display Known Files: This action will allow you to see all of the files on Voltron, which is being shared on all servers.

Search Voltron for File: This action will allow you to search for a file on the Voltron file system.

Playing the Game

Starting a SkyNet Client

To start a Sky.NET client, run the SkyNet Client executable located in the COMP 410 Start Menu item.

Login

Once the client has started, the login screen will appear. On the login screen, you will see various account options as well as the ability to choose between a push and a pull system.

Given the flexible nature of the SkyNet framework, you may change the type of updating system. The default option is to use a pull system, which causes the clients to poll the servers for updates. The alternative is a push system, in which the servers will directly inform clients about changes in the model. The push system will result in a lower CPU load on the client-side.

To log in, there are three account options that you may choose from:

Reset User: “Reset User” will delete all of the data for a user on a server and create a new base for the user. Input the IP address of the server to connect to as well as the name and password of the user to reset.

Create a New User: If you do not have an existing account on a server, you will need to use this option to create a new account. Input the IP address of the server to connect to and create a name and password. If there already exists a user with the inputted name, you will need to input a different name.

Login as Existing User: In order to continue playing a game, you will need to input the IP address of the server to connect to as well as the name and password of the account to continue playing on. If valid data is inputted, the user will be allowed to proceed to the Device Selector.

Device Selector

After the login screen, the Device Selector will appear. At this screen, you may select which devices you would like to have enabled for the game. The Device Selector will provide a robust library of devices to meet different needs (such as a 2D display for less-powerful hardware like the Pocket PC). If your computer lacks the requirements to use a device, the device will not be selectable in the Device Selector.

At the present time, the most developed game interface display is the two dimensional device (2D display). While the 3D display is also functional, it requires greater system requirements and is lacking some features. As such, the rest of the Playing the Game section will detail gameplay using the 2D display.

In the future, developers can create new devices, potentially allowing you to experience the game in a whole new manner.

User Interface

There are various components of the GUI, and each one serves a different purpose:

1)World View: The world view is the focal component of the user interface. It presents a graphical representation of every object in the game world. You are able to select units by left-clicking on their icons in the world view. Selected units will have a yellow border around their graphical representations. (See Selection.)

2)Object Information: Whenever objects are selected, object information such as the unit type and owner will be displayed to the user. When more than one unit is selected, the unit type field will display the type name followed by “(Multiple Units)”.

3)Object Statistics: If a single unit is displayed, statistics about that particular unit will be shown under the object information.

4)Units Display: Whenever units are selected, their icons will appear in the units display. To select a particular object in the units display, left-click on the desired object. (See Selection.)

5)Commands Panel: When units are selected, the commands panel will displays the current commands that you may execute. When more than one unit is selected, the union of all possible commands is displayed. (See Commanding Your Units.)

6)Prompt Bar: Displays status information about the game. Mainly used for unit command. (See Commanding Your Units.)

7)File Commands: File commands give you the ability to exit the game, dynamically load a new unit XML, and reset your account.

Gameplay

Selection

Selection in SkyNet is not as intuitive as in many RTS games because multiple units may occupy the same area on the world screen. The units display panel is provided to give the user more precision.

Regular Mode (no command is being executed):

Selecting a location in the world view will cause the unit display panel to show the icons of all units at that location. You can then narrow your selection by choosing any of the displayed icons. If only one unit is selected, that unit and its child entities (i.e. a bomber and its bomb supply, or a tank and its current fuel supply) will be displayed. You can differentiate between multiple units and one unit and its child entities by looking at the Object Information Panel for the “(Multiple Units)” notification.

Command Mode (a command with an entity target is being executed):

If you have chosen to execute a command that requires an entity target, the next click on the world view will not select the units at that location. However, the unit display panel will still be updated to allow you to select an entity target. A major difference is that child entities are never displayed while in Command Mode because you are only allowed to choose units on the map as targets.

Commanding Your Units

If you have selected units that belong to you, you will see a list of possible commands in the commands panel. There are three types of commands:

1)No target: No further user input is required. The command will execute immediately upon selection. Examples include mining and creating units.

2)Map target: The prompt bar will notify you that a map target is required, and the next click on the map will be interpreted as the target location. Examples include moving.

3)Entity target: The prompt bar will notify you that an entity target is required, and the unit display panel will be updated with possible choices on your next map click. You must then select one of the units in the unit display panel to be the target. Examples include attacking and certain types of building.

If further user input is required, the commands panel will also allow you to cancel the current command. Similarly, clicking another command will cancel any pending command you have not finalized.

Scenarios

Scenario Lake & Scenario Tokyo

These are basic RTS scenarios in which you start off with a base and some units and your objective is to destroy the other players in the world.

WarChess

A real-time chess game designed primarily to demonstrate the robust framework of SkyNet. Modeled after the game of the same name developed by the Spring 2005 Comp 460 class. [Reference their manual or website here.]

Dynamic Unit Loading

If you have created an xml file describing a new unit, complete with all its attributes and behaviors, you can inject the unit into your game at runtime. Choose “Load xml unit” in the File Commands menu, and a windows dialog will appear prompting you to select the xml file. Once you have made your selection, the unit will be loaded (appear) at all of your bases. Future design could prevent this arbitrary injection by allowing Administrator profiles or a “God” object that can create dynamically injected units. As a note, improper xml files cannot be loaded.

User Modification Tools

Unit Editor

The Unit Editor is a tool that allows you to create new and modify existing entities through a graphical interface.

Loading an existing Entity

From the File menu, select the “Load…” command. This will bring up a file browser from which you can select the .xml file that you wish to modify. This XML file must be a properly formed Sky.NET entity.

Saving the current Entity

From the File menu, select the “Save…” command. This will save your current entity with all its attributes, behaviors, etc. as an .xml file ready for use in Sky.NET. The Unit Editor will not let you save an incomplete entity, so be sure to fill in all the necessary fields and properties of the entity first.