Chapter 1. Final Project - Space War Asteroids Trader Lander Pirates! SWATLP!

Rob Fitzpatrick

Revision History
Revision 1.02005-3-18AN
Initial release in DocBook format.

Table of Contents

1. A Completely Believable Plot
2. Game Play Overview
3. Character and Solar System Creation
4. The Universe
5. Ports
5.1 Shipyard
5.2 Bank
5.3 Marketplace
5.4 Your Home Port
6. Trade Goods
6.1 Games
6.2 Ore
6.3 Mario's Magic Mushrooms
6.4 Weapons
6.5 Food
6.6 Water
6.7 Medicine
6.8 Robots
7. Short Range Chart and Encyclopedia
8. Travelling Between Systems
8.1. Planetary Approach
8.2 Space Combat
8.3 Asteroids
8.4 Space Non-Player Characters (NPC)
8.5 Space Trade
8.6 Space Police
9. Governments and Politics
9.1 Anarchy
9.2 Pacifism
9.3 Communism
9.4 Capitalism
9.5 Cybernetic
9.6 Feudal Society
10. Technology Levels
10.1 Medieval
10.2 Low Tech
10.3 High Tech
11. Skills
11.1 Piloting
11.2 Engineering
11.3 Trading
11.4 Combat
12. Ships
13. Weapons
13. Shields
14. Gadgets
14.1 Escape Pod
14.2 Navigational System
14.3 Mechanics kit
14.4 Negotiations Chip
14.5 Targeting System
14.6 Cargo Compressor
14.7 External Turrets
15. Out of Game Functionality
16. Miscellaneous Considerations
17. Functionality List
18. Deliverables
18.1 Extra Credit
18.2 Phase 1 Deliverables (Project Planning)
18.3 Phase 2 Deliverables (UML Design/Code Infrastructure)
18.4 Phase 3 Deliverables (Code Submission + JUnit)
18.5 Phase 4 Deliverables (Code Submission + Test Plan)
18.6 Phase 5 Deliverables (Complete Submission)
[Warning]Warning

While this project is intended to be completed by a "team effort" it is important to remember that only members of YOUR team may contribute to YOUR project.

This means that you may not "share" or "borrow" code or design solutions with ANYONE (this includes all individuals not affiliated with this class), EXCEPT members of YOUR team and official CS2335 teaching staff.

The CS2335 TA's are well aware that similar SWATLP implementations are widely available (on the web and otherwise). Using or referencing the source code or design documents from any of these implementations is strictly prohibited. Including any materials associated with these implementations in your submission is strictly prohibited. De-compilation of any byte/object code is strictly prohibited.

It should be noted that using material written by another individual in violation of a copyright or patent is a crime and subject to criminal/civil prosecution (see U.S. copyright law, U.S. patent law).

College of Computing staff will be comparing all submissions in an effort to identify any individuals who are involved in academic misconduct. In addition your submission will be compared to those otherwise available (via the web or otherwise). A "CHEAT-FINDER" WILL BE USED AND IT WILL COMPARE YOUR SUBMISSION TO OTHER STUDENTS' SUBMISSIONS AND THOSE AVAILABLE ON THE WEB - IF YOU CHEAT YOU WILL BE CAUGHT.

Any activities that give a team an unfair advantage over any other team are considered academic misconduct (see Georgia Institute of Technology Academic Honor Code). The College of Computing plans to prosecute all cases of academic misconduct in this class. If the College of Computing staff has reason to believe that any state or federal law has been violated, appropriate law enforcement officials may be notified.

If you have any concerns about which resources may or may not be used, you should contact your CS2335 TA. If you know of outside resources (third-party libraries, etc.) that could be helpful, your TA can make them available.

1. A Completely Believable Plot

The prince of your solar system is in trouble. His father, the king, went out of town for the Intergalactic Convention of Kings (ICK) and while he was away the prince squandered the entire solar system's treasury by throwing parties and gambling on space-horse racing. The King will return from ICK in six months. Before then, the prince needs to bring glory back to the solar system so he doesn't get grounded for the rest of eternity. He has enough credits left in the treasury to hire a young space pilot and equip him with a basic ship and a bit of spending money. You are that pilot, and you need to make your beloved solar system rich and prosperous again.

2. Game Play Overview

You fly around space between solar systems trading goods and fighting other ships. You become rich and powerful by trading goods, destroying other ships and looting the remains, or pirating other merchants. While in port, the game is menu-based, similar to Taipan or Space Trader. After warping to a new solar system, you will pilot your ship in a manner similar to the old arcade game Asteroids or Space War. While piloting, you may encounter other merchants, pirates, or police ships, and can deal with them as you see fit. Upon reaching the planet, you will land your ship on the surface, similar to Lunar Lander. The game is networked, and an arbitrary number of players can be participating in the world, fighting and trading with (or ignoring) each other. The overall combination of menu-based trading and real time combat and exploring is similar to Sid Meier's Pirates!

3. Character and Solar System Creation

Upon starting the game for the first times, you will make a character. You first choose your solar system's system of government. Then you choose the system's technology level. Some governments cannot support certain technology levels. Finally, you choose your own name and set your skills. The available skills are Piloting, Fighting, Trading, and Engineering. You set one to be your specialization (+6), one to be a strength (+2), one to be normal (+0), and one to be a weakness (-2). (The numbers given were just to show a possible relation between starting values. Choose any values that suit your game's systems) You may then choose to start with either a basic fighter ship or a basic trader ship. The trader ship starts with one cannon and a small amount credits. The fighter starts with two cannons and fewer credits than the trader.

4. The Universe

The universe is composed of many solar systems. When the game world is first made by the server, a slew of them are generated. Each time a player creates a new character and system, that system is added to the game world and can be visited by other players as if it was a pre-existing system. Each solar system has a port where players trade (like Taipain) an approach zone that they fly through (like Asteroids), and a landing zone like Lunar Lander they come to rest on.

5. Ports

While in port, you may visit the shipyard, the bank, and the marketplace. You can also leave the port to enter space and travel elsewhere.

5.1 Shipyard

In the shipyard you can repair and refuel your ship. More advanced ships require higher quality fuel and more skilled repairmen, and thus the work is more costly. Shipyards of more technologically advanced civilizations may offer various types of weapons, shields, and gadgets to improve your ship, as well as entirely new ships. The benefit of new ships is to gain more space for guns, cargo, and fuel. When buying a ship, you trade in your old ship and pay the difference in costs. Your gadgets will be freely transferred to the new ship. The shipyard's workers will happily move your cannons and shield upgrades to your new ship for a sensible fee. At the shipyard you may also have guns removed from your ship and change the order in which your guns fire, again for a small cost.

5.2 Bank

The bank will offer loans to players with good reputations (no criminal record). The amount of money they will offer is based on the total worth of the player at that time. Banks charge a 10% fee on the loan per day, which is automatically taken from your credits whenever you make a warp jump. If you cannot pay, the police will attempt to capture you when you are sighted. Owing money will also add to your criminal record. If you cannot pay the fine, your ship, its cargo and all installed gadgets will be sold and the money will be used to pay what you owe to the bank. You will be fined by the police, and then they will give you the remaining credits and a basic ship. If there is not enough money, you basically start over with the starting ship and credits and you are instantly deported back to your homeworld (i.e. the same exact state as when you were starting the game from scratch.)

5.3 Marketplace

At the marketplace you can buy and sell goods. Different solar systems have different needs and surpluses based on their government and technology level. You will get rich by moving from system to system and taking advantage of their various needs. Port events like famine, galactic war, ice-age, and overwhelming boredom will temporarily alter prices for the related goods in that solar system.

5.4 Your Home Port

In addition to the functions of a normal port, the port in your native solar system has some extra features. A warehouse exists in which you may store a large amount of goods. Additionally, you can visit the treasury and either add or remove money from it. The win condition of the game is to accumulate a mass of money in the treasury by the time the kind returns from ICK. The game doesn't actually end at this point because it is an online game, but that is considered a victory.

6. Trade Goods

6.1 Games

Bored civilizations love games. Pacifists and Cybernetic cultures generally have nothing to do, because they don't fight, or they have robots do all their work.

6.2 Ore

Cybernetic cultures desire ore above all else. They have exhausted their supply of natural resources, and need ore both to build robots and to make backup devices for their whole solar system, their greatest goal.

6.3 Mario's Magic Mushrooms

A potent narcotic made on primitive worlds that is ground up and put into colorful, candy coated pills labeled with the trademark "MMM" logo. The components involved grow in dense forests that most advanced cultures have wiped out long ago. MMM's are contraband in most cultures and tend to attract the police. Cybernetic cultures have no interest in using narcotics, and don't particularly mind if you carry them in their systems. The communist and anarchist underground are both particularly fond of the pills.

6.4 Weapons

Feudal cultures love weapons. Nothing helps siege a medieval castle like an eighty million volt laser cannon. Anarchists also have a penchant for destruction. Pacifist culture has no use for weapons, and neither produces nor buys them.

6.5 Food

Cultures that have destroyed their natural world need to import all of their food.

6.6 Water

Some planets have freshwater oceans. Others are deserts and desperately need the sweet liquid. Demand for water has less to do with the culture, and more to do with the planet itself.

6.7 Medicine

Pacifists want to keep their people happy and safe, so medicine is a primary concern. Anarchists and cybernetics don't care for or need medicine.

6.8 Robots

Produced in only the most high end cultures, robots keep the economy moving. They are the ultimate desire the rest of the galaxy, and require vast amounts of ore to make, which gives primitive cultures a solid bargaining position and a valuable commodity.

7. Short Range Chart and Encyclopedia

The Short Range Chart is connected to an Encyclopedia that holds information on all the locations you can visit. Information is not available in your encyclopedia until you have learned it by exploring the location personally. The encyclopedia does not provide precise information, but will give a reasonable range of what prices the system will buy and sell goods for. It will also generally tell you the technology level and government type of a system and any ther pertinent information such as pirate and police activity. You always know which solar systems exist, whether or not you have any specific information on a solar sytem. What the information provides you are details. With information you will know the government type, technology level, average prices, and police/pirate/merchant activity in the system. With this knowledge you can know that a certain planet is high tech (which needs ore) and so you can make good profits by going there, instead of warping there to find out. So in short, the more information you have, the more efficient you can be.

8. Travelling Between Systems

To leave a port, you open your short range chart. It graphically shows your location in the universe, showing all systems that you can reach with your current amount of fuel. You may return to the port you just left, or you can choose a new port to travel to. If you travel, a warp bubble appears around your ship and you are teleported near to your destination, at which point you engage in the planetary approach process. You do not travel to arbitrary spots in space, rather you always travel to a solar system's port. Each time you make a warp jump, one day passes. This means that although the game is multiplayer, time will pass at different rates for each player depending on how frequently they make jumps. The chronological discrepancy is entirely understandable given the theory of relativity and all the light speed travel that is going on. Time is therefore more of a personal trait than a global trait.

8.1. Planetary Approach

Planetary Approach is the real-time part of this project, and is essentially a small version of the classic space arcade games Asteroids and SpaceWar. Your entry point from a warp is about 20 clicks (distance unit) away from the port you are trying to reach. You need to manually fly to your destination. Along the way you will probably avoid (or destroy) asteroids, battle (or run from) pirates, and trade with (or ignore) merchants. You may also be searched by the police, especially if you have a sinister reputation. Movement of your ship through space is physics-based. You can rotate left or right and accelerate forward. You will continue to drift with momentum until you apply thrust in an opposite direction or apply the space brakes (very high tech). When you apply thrust, your ship will accelerate until it reaches a maximum speed, and will continue along until it is stopped by you or an unfortunate collision. Running into asteroids damages the ship based on the speed of collision and size of the asteroid and ship. Crashing into other ships is similarly unpleasant. You will travel through four zones to reach the space port, each of which is one screen in size. Moving to the top of the screen will transfer you to the bottom of the next zone. You will bounce harmlessly off of the bottom of a zone, and will wrap to the opposite side if you move too far to the left or right edge of the screen. While in space you can toggle between war and peace modes. Your action in war mode is to shoot your weapons. Your action in peace mode is to request a trade with nearby merchants and players, enter a port, or talk to police ships.

 

In the above image, the white ship is you as you travel through the four zones from the warp point (where you appear in zone 1) to the space port (the green dot). Red triangles are pirates, blue triangles are police, and yellow triangles are merchants. The brown circles are asteroids. Each zone is one screen in size. After warping to a new system using your short range chart, the zone will be filled with asteroids and/or space debris, but no police or pirates (zone 1 in the image). You might find a trader or two out here, but it is generally unlikely. The next three zones (zone 2-4) each have fewer asteroids and less debris. Also, as you progress through the zones, the chance of pirates in a zone decreases and the chance for police and traders increases. Traders and police will not share a zone with pirates. Some systems with a large pirate presence might have pirates through all three zones, and no merchants or police. Other systems might have only merchants and police, or some pirates in the outermost zone, and then no more. Pirate presence is based somewhat on luck, and largely on government type. The fourth zone has a space station in it, in addition to any police, merchants, or pirates. Choosing to dock at the space station will change to a fifth zone, which is a landing zone.

In the landing zone, gravity will pull you down toward the ground. You use upward thrust to stop from plummeting to the earth and horizontal thrusts to maneuver to a landing pad. Hitting the ground with notable velocity will damage your ship by an amount dependant on the size of the ship and the speed you hit with. If you land outside the landing zone, you can thrust up and maneuver yourself back into place. Once you have stopped on the landing zone, you are officially inside the port and switch to the appropriate screen with the port's menus. A port will not let you dock (with the exception of anarchist ports) if there are pirates in the area or you are currently in battle with the police, so you will have to dispose of your enemies first in those cases.

 

8.2 Space Combat

Your action in war mode is to fire your weapons. Your shots will zoom off into space and disappear when they reach the top or bottom of the screen, or when they collide with a valid target. Shots will wrap to the opposite side if they travel off the left or right side of the screen. You can be hit by your own weapon fire if it wraps around and you are in the way. Various types of weapons are available that will fire with different velocities, powers, and formations (such as spread fire). When you destroy another ship, there is a chance that some amount of their cargo will survive the explosion and float around space. Touching the lost cargo with your ship will pick up as much as possible and add it to your hold. Merchants typically have more goods than pirates. Destroying merchants is an act of criminality, and destroying pirates is considered a virtuous act that will make the police trust you more. Police ships can be full of contraband cargo they have seized, making them very valuable targets, but destroying them will absolutely ruin your record and the police will not treat you well from that point on.

Death is permanent. However, if you have an escape pod gadget on your ship you survive. You lose your ship, all cargo, and any mercenaries (if they exist). Your escape pod takes you to the nearest port. Essentially, your ship explodes then you appear in port with nothing you were carrying. If your character dies, the solar system that was created with him remains in the universe.

8.3 Asteroids

Shooting a large asteroid breaks it into 2-3 medium sized pieces. Medium asteroids break into 3-5 small asteroids. Small asteroids can be shot and broken apart into tiny bits of ore, which are collected by running them over with your ship. The smaller an asteroid is, the faster it travels. Ore pieces travel slowly. Asteroids break down into smaller pieces when they are shot or when you collide with them. Asteroids do not collide with each other. Whenever a large or medium asteroid is broken apart, there is a small chance that the pieces it leaves will be chunks of ore instead of smaller asteroids. So instead of a large asteroid breaking into two medium asteroids, it might occasionally break into one medium asteroid and one medium ore chunk. Thus there are three asteroid sizes (large, medium, and small) and three ore chunk sizes (medium, small, and tiny). Asteroids wrap to the opposite edge of a zone whenever they reach a side of the screen. They will move off the top of the screen and appear at the bottom, etc.

8.4 Space Non-Player Characters (NPC)

Merchants, Pirate and Police are all NPC ships that can wander around in the approaching port zones. You can switch between combat mode and peace mode and then hit a generic "action" button. While in war mode, the action is to fire your weapons. While in peace mode, the action is to try to talk to something. So if you go up to a merchant in peace mode and "action" it you will be requesting a trade. If you peacefully action a police ship that is following you, you will have the choice to accept or reject their search. Peacefully interacting with a pirate ship will probably be a bad idea. More specific details follow.

8.5 Space Trade

You may request a trade by using the action command while in peace mode near a merchant or player vessel. If it is a player, he/she will be prompted to accept or decline the trade. NPC merchants will make a similar decision. If they reject your offer, you may not ask them again for a short period of time. If they accept, a trade window will appear while still allowing you to see your ships. Also, a shield will be put up around the two ships to protect them from wandering asteroids while making the trade. The trade interface will allow both parties to select the goods they want from the other party, as well as to offer up their own goods, or remove goods belonging to either party from the current trade. The inventories of the two parties are shown along with what is currently being offered by both sides. If both sides choose to accept the deal, the trade is made. The trade window could have, for example, four panels. The leftmost of which is the other merchant's inventory, and the right most is your inventory. The middle two panels are what you are each offering. The values NPC merchants place on items will generally be an average of their value of the item in their native solar system and the value of the item at the port you are currently near. Either party can cancel the transaction at any time.

8.6 Space Police

Police often float around in space near ports. They will sometimes make an announcement that they wish to search your ship. The more criminal you are, the more likely they are to search you. Interacting with the police ship while in peace mode will give you the option to either bribe them or allow the search. Corrupt cops will always take a bribe. Normal cops will take a bribe, but charge a lot more for the privilege. Honorable cops will never take a bribe. While some types of police are more common in regions with certain governments, you can not tell the difference by their appearance. Requesting a bribe and then changing your mind or failing (asking an honorable cop) will add a criminal act to your record. If they search you and you are clean, they will improve your criminal record and apologize for the inconvenience. If they search and find contraband, it will be seized and you will be fined, as well as marked as more criminal. You may also run from them instead of interacting or you can fight them, both of which are criminal actions. If you are criminal enough, the police will attack you on sight. They use disabling weapons, so your ship will not be destroyed if its shields are reduced to zero, but it will shut down and you will end up in jail, where you will need to pay a hefty fine to get out. If you can not pay the fine, your ship will be sold to pay it off, and you will be given a weak ship and the left over credits.

9. Governments and Politics

Each solar system is ruled by a particular type of government. Some government types only support (and can only exist) in certain technological eras. Government influences what a culture considers contraband, the trade goods the system wants to buy and sell, and the pirate and police activity in the area.

9.1 Anarchy

Anarchies can occur in civilizations of any technological level. Narcotics and weapons are especially popular. Games and medicine are worthless. Very little is produced in anarchies and the people typically get money through piracy and theft rather than fair trade. Anarchies never have a police force and the skies near the ports are overrun with pirates, making them prime locations both for pirate-hunting and dealing in illicit goods. Pilots with unsavory criminal records appreciate anarchist ports as havens where they can visit without being harassed by police on the way in.

9.2 Pacifism

Pacifists neither buy nor produce weapons. They primarily desire to keep everyone healthy and happy, and so they need medicine and games. Technological advancement is usually driven by military needs.

9.3 Communism

Communist societies can't advance past Low Tech. They have a very strong police force that is corrupt and can be easily bribed. The strong police force reduces pirate activity. Weapons and drugs are both contraband, although the people will pay well for both.

9.4 Capitalism

A philosophy of free trade means that nothing is contraband in capitalist ports. Merchants frequent these systems. Prices are generally average and fair.

9.5 Cybernetic

These advanced cultures have incredibly strong pirates and police who are constantly killing each other off. This doesn't particularly bother either side, however, as all members of cybernetic citizens have backups of themselves on disk, and can be easily reloaded when they are killed. Cybernetic societies are always high tech, and constantly want to buy as much ore as possible. They have no interest in buying drugs, but don't particularly mind if you carry the pills in their systems. Being high tech, they also have no natural resources and so can't produce drugs either. Weapons are not contraband, but are heavily taxed. The police force will ask you to pay the tax if they search your vessel and find weapons in the cargo.

9.6 Feudal Society

This government type can initially appear only in systems with a medieval tech level. Feudal cultures are constantly engaged in territory wars with nearby systems, and even with themselves. They require weapons and medicine and have no desire to buy games or narcotics. Neither guns nor narcotics are contraband, as the first is the primary import and the latter is a valuable export (if the tech level allows it) to fund the war effort. Feudalism may be established in systems that are forcefully taken over, regardless of what their existing technology level is, allowing low and high tech feudal societies in addition to medieval.

10. Technology Levels

Technology Level governs which trade goods a system can produce, and in some cases also governs which they will buy.

10.1 Medieval

These societies can not produce power. Their worlds are rich in natural resources. Medieval systems can't produce weapons or medicine. They will buy and use all high technology except for robots, which they can't recharge without electricity.

10.2 Low Tech

Low Tech societies can produce everything except for robots. They have a fair amount of access to natural resources. Their primary desire is generally robots.

10.3 High Tech

Although they have no natural resources of any kind, High Tech systems are in a powerful trading position because they can produce robots. They need to import all food, water, and especially ore, which they need to make robots.

11. Skills

There are four skills which govern how well you trade, fly, and fight.

11.1 Piloting

The higher this skill, the quicker your ship turns, accelerates, and decelerates while flying the last 20 clicks to a port. Piloting skill also increases your max speed while approaching port and slightly increases the distance you can warp jump and the fuel efficiency involved in doing so.

11.2 Engineering

A skilled engineer can keep his ship in better condition, taking less damage from combat, and also slightly improves the quality of his shields and weapons.

11.3 Trading

A skilled trader can get a discount of up to 10% on the wares he buys, allowing better profit margins and the ability to render a profit without as much shopping around.

11.4 Combat

Skillful combatants can shoot with less delay between each shot. Their shots also travel faster and do more damage than those of a pilot not trained in the arts of war.

12. Ships

Your ship is pivotal to your career as either a trader or a fighter. Your ship has some amount of cargo space, a number of gun slots, a number of living quarters for mercenaries, a current and maximum amount of fuel, various guns, a shield, acceleration, turning speed, current and max velocity, current and max hit points, some gadgets, and a name. You may greatly improve the quality of your ship by purchasing upgrades. To significantly improve your cargo space or number of crew or gun slots, you will need to purchase an entirely new ship. More expensive ships are larger and can typically hold more stuff. Some favor carrying weapons while others favoring carrying cargo. Ships also have different base movement, turning, and acceleration speeds.

13. Weapons

You can buy weapon upgrades for your ship at shipyards. The quality of available upgrades is based on the technological level of the port you are at, as well as their propensity for war (pacifist cultures don't make particularly good weapons). Each weapon takes up some number of gun slots on your ship. Weapons can fire between 1 and 7 shots a piece, and require an equal number of cannon slots. Weapons can shoot their bursts of shots either straight forward or so that they spread out as they travel. Weapons can also be "reverse" weapons that fire out of the back of your ship and shoot behind you. These guns can really help if you don't have high piloting skill and are slow to turn around, but you will still probably want at least half of your guns shooting forward. Increasing the number of weapons on a ship decreases the delay time between shots. So if you fire one round per second with only your initial one shot laser cannon, and then buy a 3 shot spreading cannon, you will now fire every half second. The first shot will be the single cannon, and then the spread, and so on. If you then add a two shot cannon that fires straight ahead, you will shoot every third of a second, with your shots cycling between those three weapons.

 

In the above picture, the first ship is firing using three shot parallel (straight forward) guns. The second ship is using three shot spread fire weapons. The third ship has three different types of guns and is alternating between them. It first fires one single shot, then a three shot parallel, and then a reverse three shot spread fire that goes out the back of the ship. If you don't like the order your guns are firing in, you can reorder or remove guns at the shipyard. When you upgrade ships, you can move your weapons from your old craft to your new one for a fee.

13. Shields

You can also buy shield upgrades at ports. The quality of available upgrades is based on the technological level of the port you are at. When you are hit in combat, your shields can either absorb some amount damage from the collision or they can bounce the projectile back. In the latter case, no damage at all is suffered. Upgrading your shields increases both the amount of damage typically absorbed, and the probability of a full reflection. When you upgrade ships, you can move your shields from your old craft to your new one for a fee.

14. Gadgets

You may buy gadgets at some shipyards. Gadgets can augment your skills and provide other useful abilities. If you upgrade your ship, gadgets are automatically transferred to your new craft.

14.1 Escape Pod

The most important gadget, the pod allows you to escape from your ship in the case that it is being destroyed. Instead of dying in the explosion, you will float to the nearest port and can re-equip yourself using money from your bank account.

14.2 Navigational System

Adds to your piloting skill.

14.3 Mechanics kit

Adds to your engineering skill.

14.4 Negotiations Chip

This is actually a gadget for you, not your ship, and it adds to your trading skill.

14.5 Targeting System

Adds to your combat skill.

14.6 Cargo Compressor

Increases your ship's hold space.

14.7 External Turrets

By mounting gun turret's to your ship's exterior you can increase the number of guns it can carry.

15. Out of Game Functionality

Your server needs to be able to specify a port when it is set up. Clients can specify a port and an IP address to connect to. Clients can make a new account or log in with an existing account. All details of the account including the player's location in the world and all relevant current statistics should be saved on the server when a player logs out. Players can send messages to all other players while in game. Chatting should not be an obtrusive feature of the GUI, because it is a minor part of the game. When the server is closed it will first save all player information (if possible) and will cleanly exit. The clients will also either cleanly exit or cleanly log out. A main menu exists with menu choices to play, quit, view credits, and receive help. Credits and help screens exist and tell a bit about the team and the game, respectively. The game must involve some kind of sprite animation. Asteroids can spin, ships can have animated fire trails, police lights can flash when they are in pursuit of a target.

16. Miscellaneous Considerations

Any numbers and names given in this write-up can be changed. If you would like to exert some creative freedom, let it rip and knock our socks off. Just make sure you maintain the systems and their complexity so what you do will still cover all of the grading criteria. If you have an especially rambunctious idea (like changing all of the government systems and weapon types), clear it with your grading TA before you start working on it. Player names must be verified by the server to be unique before they are accepted. You can handle the networking however you want to. In the real world, you would do all the work on the server to help make cheating harder. Anything you do client-side can be hacked (and will be hacked if the public is playing). For this class, you don't need to worry about security. As long as the clients are all seeing each other correctly when they are in the same zone and the server is staying up to date with the state of the clients you are fine.

17. Functionality List

(This section will remind you of a use case diagram. Think of it as a functionality checklist)

Main Menu:

  • Start server
  • View help page
  • Log in to game
  • Quit game

Start Server Screen:

  • Start server, open server GUI, and return to main menu
  • Cancel and return to main menu

Server Gui:

  • Save current game information
  • Save and shut down server
  • Auto-save every few minutes
  • Broadcast server messages to connected clients

Log In Screen:

  • Specify server's port and IP address
  • Log in to server
  • Return to main menu

Connected to Server Screen:

  • Make a new character
  • Enter a character's name and password
  • Start game
  • Return to menu

Character Creation:

  • Choose character's name, password, and skills
  • Choose home solar system's name, government type, and technology level
  • Create character
  • Return to connected to server screen

Anywhere In Game:

  • Broadcast a chat message
  • Receive chat messages
  • Log out
  • Exit game
  • Some kind of non-trivial sprite animation

Shipyard:

  • Upgrade ship
  • Buy a new ship
  • Refuel ship
  • Repair ship
  • Buy gadgets
  • Reorder weapons
  • Remove weapons
  • View all statistics on your current ship
  • Return to port

In Port:

  • Go to shipyard, marketplace, and bank
  • Warp jump by opening short range chart

Upgrade Ship:

  • See prices to upgrade ship's qualities
  • Purchase an upgrade to a particular quality
  • Return to shipyard

Buy New Ship:

  • See ship details and prices
  • Purchase a new ship (minus cost of old ship)
  • Pay to transfer cargo, guns, and shields or abandon it
  • Return to shipyard

Marketplace:

  • View available goods and the current buy and sell prices
  • Buy goods if you have the available funds in your bank or on your person
  • Sell goods if the vendors want them
  • Port specific events such as famine, galatic war, etc... that adjust trading prices
  • Return to port

Bank:

  • Withdraw or deposit money into your bank account
  • Check your current balance
  • Return to port

In Home Port:

  • Visit warehouse and school

Warehouse:

  • Add or remove trade goods, pending inventory and warehouse space
  • Return to home port menu

Warp Jump and Short Range Chart:

  • See layout of the solar systems around you, within warp jumping range
  • View known information regarding nearby systems
  • Warp to a new system, using fuel and appearing in the first zone of port approach
  • Cancel and return to current port

Port Approach:

  • Rotate left and right
  • Apply thrust and brakes
  • Toggle war and peace mode
  • Fire guns
  • Damage and destroy other ships
  • Collect floating cargo from destroyed ships
  • Be shot at, damaged, and destroyed by other ships
  • Travel to port in your escape pod if destroyed
  • Interact peacefully or aggressively with police, pirates, and merchants
  • Wrap around the left and right sides of the zone
  • Bounce off the bottom edge of the zone
  • Move into the next zone at the top edge of the zone
  • Land at port
  • In each subsequent zone of port approach, pirate and asteroid frequency decreases
  • In each subsequent zone of port approach, merchant and police frequency increases
  • See different sprites for different ship types

Asteroids:

  • Asteroids float around the screen, wrapping at all edges
  • Break apart and do damage upon collision with a ship
  • Large asteroids break into 2-3 medium asteroids when destroyed
  • Medium asteroids break into 3-5 small asteroids when destroyed
  • Small asteroids break into 1-5 tiny pieces of ore when destroyed
  • An asteroid can create a chunk of ore instead of a smaller asteroid when destroyed
  • Smaller asteroids travel more quickly
  • Chunks of ore are collected when run over by a player ship

Merchants:

  • Invite you to trade
  • View known information regarding nearby systems
  • Warp to a new system, using fuel and appearing in the first zone of port approach
  • Cancel and return to current port

Merchants:

  • Accept or refuse your request to trade
  • Fight back if they are attacked
  • Carry lots of trade goods
  • Reduce your reputation if you attack them

Space Trade:

  • A protective shield appears around the two ships protecting them from asteroids while the trade is in progress
  • View both parties' inventories
  • Offer your own goods and request the other pilot's goods
  • Approve the trade
  • The trade succeeds if both parties have approved
  • Cancel the trade

Police:

  • Attack you on sight if you are criminal enough
  • Sometimes request to search your ship, especially if you have a bad reputation
  • Reduce your reputation if you attack or flee from them
  • Search you if you agree to their request
  • Accept a cheap bribe not to search you if they are corrupt
  • Accept an expensive bribe if regular
  • Refuse a bribe if honest
  • Reduce your reputation if you attempt to bribe them and fail or cancel
  • Improve your reputation if they search you and find nothing illegal
  • Confiscate illegal cargo, fine you, and reduce your reputation if they search and find contraband
  • Take you to jail if they defeat you in combat

Jail:

  • Pay fine from bank account funds and leave jail
  • Sell your ship and cargo to raise the money to pay fine and leave jail
  • Declare bankruptcy, lose everything, get a starting ship, and leave jail

Landing at Port:

  • Fall with gravity toward the ground
  • Apply upward, left, or right thrust to maneuver onto landing target zone
  • Take damage from a high speed impact with the ground
  • Land slowly enough to take no damage
  • Land on the target zone to enter the port
  • Bounce off top, left, and right edges of the screen

Governments:

  • Influence the presence of pirates and police
  • Influence the power or pirates and police, and the corruptness of police
  • Affect the buying and selling prices of the port
  • Set which trade goods are legal and which are contraband

Technology Level:

  • Affect the buying and selling prices of the port
  • Restricts which government types are allowed in this solar system

Skills:

  • Piloting skill improves your ship's max speed, acceleration, turning speed, and deceleration
  • Piloting skill reduces fuel cost for warping, thus increasing max warp distance
  • Engineering skill increases strength of shields and guns and reduces damage to ship
  • Trading skill reduces the cost of buying goods by up to 10%
  • Combat skill improves rate of fire, projectile speed, and projectile damage

Ship:

  • Carry cargo, fuel, mercenaries, weapons, a shield, gadgets, and the player
  • Take damage
  • Warp between solar systems using the short range chart
  • Fly through the port approach zones
  • Fight and trade
  • Land at ports
  • Ship's calendar tracks the passage of time

Weapons:

  • Fire various numbers of projectiles in several patterns
  • Upgraded, bought, sold, removed, and reordered at shipyard
  • Transferred to a new ship for a cost

Shields:

  • Absorb and reflect damage from projectiles and collisions
  • Upgraded, bought, and sold at shipyard
  • Transferred to a new ship for a cost

Gadgets:

  • Augment a player's skills
  • Improve a ship's hold capacity or cannon slots
  • Escape pods save player from death when his/her ship explodes and returns them to port

Trade Goods:

  • Bought and sold for varying prices depending on global conditions and local government and technology levels
  • Stored in warehouses
  • Carried around in ship's holds
  • Float around in space if the ship carrying them is destroyed in battle
  • Picked up while floating by player ships

18. Deliverables

[Important]Important
         1 April 2005 - Phase 1 Due In Lab.
         8 April 2005 - Phase 2 Due In Lab.
        15 April 2005 - Phase 3 Due on WebWork Before 10:00
        22 April 2005 - Phase 4 Due on WebWork Before 10:00
        29 April 2005 - Phase 5 Due on WebWork Before 10:00/ In-Lab Demo

        Unlike the previous UML Lab, you are NOT permitted to submit a hand-written UML
        Diagram.  Please take the time to do all UML electronically.  Any exceptions will
        not be graded.
      

18.1 Extra Credit

The extra credit opportunities on the final project are extensive. You will have the ability to complete up to 50 points of extra credit which will count towards your Phase 5 Demo turn in. The list of extra credit options and their respective points values will be posted shortly to the .announce newsgroup.

18.2 Phase 1 Deliverables (Project Planning)

  • 5% of grade
  • Project Plan with work assignments
  • Rough class diagram of your entire system excluding GUI
  • A couple of UI Screen prototype sketches
  • Meeting with your grading TA sometime before the Phase 2 Due Date (However the earlier you do this the better).

18.3 Phase 2 Deliverables (UML Design/Code Infrastructure)

  • 5% of grade
  • UML Class Diagram
  • UML Sequence Diagram of scenario Port Arrival
  • UML Sequence Diagram of scenario Trade Goods
  • UI Prototype Screens
  • Code Submission:
    • Client/Server Infrastructure
    • Ability to Join Game
    • Ability to Create Character

18.4 Phase 3 Deliverables (Code Submission + JUnit)

  • 5% of grade
  • JUnit test cases written for all non networking and non-gui classes. This includes all classes in your UML Class Diagram even though they might not have been completely implemented yet. The TAs will be penalizing for test cases not existing for code that has not been written yet.
  • At least 50% of the final code (although we encourage a much higher amount)

18.5 Phase 4 Deliverables (Code Submission + Test Plan)

  • 5% of grade
  • Test Plan: White and Blackbox Tests for each team member. Test plan must be in format discussed in class. JUnit tests must exist for each whitebox test.
  • Code Submission:
    • At least one of the mini-games
    • Ability to travel on short-range map between planets
    • Ability to Trade in Ports
    • Game should be more or less feature-complete (~90% code completion)

18.6 Phase 5 Deliverables (Complete Submission)

  • 20% of grade
  • Final Demos in lab to your grading TA
  • PMD/Checkstyle Must Pass
  • 100% code complete and submitted to WebWork

[Important]Important
Please keep in mind the Course Policies (http://www.cc.gatech.edu/classes/AY2005/cs2335_spring/policies.shtml) when creating and submitting your project. Also remember that archives are expected to be in .tar.gz format. Any deviation from Course Policy or the requests in this lab write-up can result in severe point penalty.