Introduction
The 1980 Cinematronics arcade game Rip-Off was to be developed on multiple platforms (PC, PSP, GameCube) and an evolved version with upgraded graphics.
My Contributions
I was part of Team Earth and I was mainly responsible for working on the core engine of the game and the I/O mechanism. As part of my work I managed to make the PC version of the game work with a Wiimote as well! (using Wii!Yourself)
I was also team-lead for the PSP version of the game.
At the end of the three month cycle, we managed to complete all our versions with time to spare.
Rip-Off
The game is one of the relatively rare arcade machines to use vector graphics CRT based monitors, the most famous vector graphics arcade machine was Atari’s Asteroids produced in 1979. Asteroids was the best selling arcade cabinet for Atari and one of the best selling game machines of all time.
Despite their popularity Vector graphics games quickly died out as colour was introduced to games with the release of Galaxian in late 1979. Vector graphics monitors used a different technique to standard raster graphics when producing the image of the screen. In vector graphics the CRT beam is directed to the start coordinates of the line on the screen, turned on, and then moved to the end coordinates. This method was fast compared to the alternative of scanning the beam and only turning it on when required. It also produces very precise lines on the screen as pixels where not used to form the images.
The mechanism used to draw the lines meant that the beam was momentarily at a standstill at the beginning and the end of the line. This gave the impression that he line was slightly darker in the middle than the ends.
Game Play Introduction (Taken from the Killer List of Video Games KLOV website www.KLOV.com )
One or two players attempt to protect fuel canisters from groups of invading pirate tanks that appear from the edges of the screen. There are six styles of pirate tanks in the game worth 10 to 60 points each. The value of each style is determined by its speed and strategy. Low point value tanks are very slow and generally head directly for the fuel. Higher point tanks are much faster and may work together to lure a player to destruction.
All pirate tanks are armed with short-range lasers, while player tanks are equipped with a cannon. Invading tanks are destroyed when they are hit by a cannon shot. Enemies can also be destroyed by a collision with a player's tank. There is no penalty to the player for destroying enemy tanks this way except for the brief period of time he is out of the game. When playing a two-player game, it is not possible to shoot the other player, although you will both be destroyed if your tanks collide.
The game is organized into waves and bonus levels. Two or three enemy tanks attack in each wave. A wave ends when all the pirate tanks have either been destroyed by the player(s) or have dragged a fuel canister off the screen. After a number of waves, the bonus level increases (+10, +20 ...) and another round begins, starting with 10-point tanks. Each successive round is slightly faster and harder than the one before it. The bonus level gives additional points for each enemy tank destroyed. The game proceeds in this manner until all fuel canisters have been "ripped off" by the pirate tanks.
Game Play
As a single player game, Rip Off is quite difficult. The game attempts to correct for the lack of a second player by attacking with fewer pirate tanks during the first few waves, but this doesn't fully make up for another player. All too often, when a pirate laser blast blows you up, you'll lose one or more fuel canisters in the time it takes to get back out on the screen.
The two-player mode is what makes Rip Off such a unique game. The players play in a cooperative, rather than competitive manner. With two players, various strategies can be employed to cover as much area as possible against the invading tanks. Ideally one player should always remain on the screen to protect the fuel.
The ability to destroy your own tank in order to wipe out an enemy tank also provides an interesting twist to gameplay. Sometimes it can be more effective to collide with the pirate and destroy both tanks than to risk being shot by the pirate and have your last fuel canister stolen. This strategy is generally only effective in a two player game.
Assignment Tasks
Some of the tasks that were assigned to us for this project were:
1. Produce a faithful reproduction of the Rip-Off game for the PC. The game must have a single and two player mode with game play identical to the original game. Permitted deviation from original
a. A particle system may be used for the explosions, rather than the vector star pattern used. However the same breaking and fading effect must be used to destroy the ships.
b. The input; the players must have the option to use a game pad controller or keyboard. The mouse must not be used.
2. Design and produce a “Rip-Off Evolved” version of the game for the PC. You have full creative freedom within the spirit of the original game play.
3. Port the classic PC game to the PSP. The minimum deliverable for the task is a port of the classic Rip-Off game to the PSP for single player operation. Optional extras:
a. Implementation of a two player mode over multiple devices.
b. Port of the Rip-Off Evolved version of the game.
4. Conversion of Rip-Off Evolved to use nVidea 3D glasses to allow the game to be used in a research project into Lazy Eye treatment in children. Note, this section will be completed during the intensive port section by the graphics programming students.
5. Port the classic PC game to the Game Cube. The minimum deliverable for the task is a port of the classic Rip-Off game to the Game Cube.
AI Components
Programming the AI of the attacking sprites will form part of the individual AI assignment that will start in week 8 and will involve the development of an AI engine for the game. A non complex AI solution must be implemented before this by the team to allow the game to function as specified. The game code must be designed so that it can be used to demonstrate the AI assignment submission of all the members of each group. The exact requirements for the AI assignment will be outlined in the AI course however the variables that must be available are:
The AI engine will need to know
1. Location protocol (where is 0, 0????)
2. Orientation protocol
3. Maximum Velocity for Any Class of Object.
4. Any constraints on maximum change to either velocity or orientation
5. Is Turn simply change orientation by specific amount?
6. Increase or decrease Velocity amounts or Set Velocity?
For any sensory call to the Game Engine, the AI engine would want
1. Location, Type, Status of all objects
a) Location is X, Y
b) Type is one of Ship, Alien1,Alien2, Cargo (triangle)
c) Status is Alive or Dead
2. Own status (Empty or Cargo), location, orientation and velocity.
3. Current Game Level
For actions sent to Game Engine
1. Change in Orientation (or Set Orientation)
2. Change to Velocity (or Set Velocity)
3. Fire ahead for Alien