The contestant is placed in the downtown arena for 5 minutes. She must survive these five minutes. Only if she survives are the points awarded. Each point is worth $1,000. Make it count girl!
Due to her rank, STELLA is awarded 100 points for every kill. Additionally, bonus points are awarded for entertaining stunts.
STELLA has two weapons and a choice of motorcycles. The machine gun carries enough ammo to last five minutes. However, she can only carry ten rockets for the rocket launcher.
Are you ready for the BIKERS Arena?!
To give the player a full experience of the Bikers arena we have packed this game with intense user and graphics features!
Input/Force Feedback – In order to handle motorcycle driving AND shooting, the game is playable with a joystick or gamepad. To lean the bike, lean the analog control (or press the digital).
Force Feedback allows us to communicate with the player both visually and haptically. Through a hierarchy of haptic effects we are able to render some pressure on turns, the rattling of the machine gun and the vibrations of SPEED!
Level Loader – Although this game has the feel of a movie-theater arcade, it has one main advantage! Players can personalize this arcade and enjoy it in the home. Our simple text-based level loader allows full control over the world. Users can create levels, with various blocks, lights and any models they choose. They can wreak havoc in any metropolis they wish!
Graphical Effects – To give a truly urban feel, we needed to include numerous roads, street lights and night-time shadows. However, doing this for 200+ lights and 50+ motorcycles and riders is a difficult task. To do this we resorted to the following strategy. Since the world is essentially flat, we create lighted decals for the lights and apply them to the ground after it has been rendered (by altering the z-buffer.) The world is then set atop this assembly and appears to be lighted.
Furthermore, explosions are tracked and leave markings (This is also done with such decals).
Since the world is loaded from a text file, the lights which are specified also become light sources. They are then used to light the player and enemy models. To allow this intense number of lights, we used the following procedure: First we find the two closest lights to each model. Then we calculate the intensity of the light based on the ratio of the distances to the lights. The light is then projected from the closest light’s location. This was an original algorithm designed specifically for the speed of this game.
Shadows – Our lighting algorithm proved to be an effective tool for another cool feature. The moving models also cast shadows. Using vectors to the sides of the motorcycle we are able to quickly calculate the areas in which shadows from the selected light source would fall. We then use the same decal technique as with lighting to apply a shadow texture to this area. Additionally for leaning we included a separate shadow texture. Together these give the illusion of multiple lights and create quite an astounding effect of depth.
Graphical Optimizations – Due to the game’s speed and the size of the level, we use two optimizations for the various objects rendered.
1) Frustum culling allows us to only render that which is in the viewing frustum.
2) Level Of Detail controls keeps us from detailed renderings of far-away objects. As an example: all distant lights are essentially sprites. Depending on the object there are various levels of detail and mipmapping was used to smoothly render these objects.
3) We use GLFog to cover up the inconsistencies and prevent buildings from popping into the picture in the distance.
Models/Animations - To make this game have a unique and solid style, we completely created the models and textures for the world of the game and the introduction/menu screens. This also gave us the flexibility of using extremely low-polygon models for buildings which are quite hard to find on the web.
The Motorcycle models were designed by various fans of the racing game GP500. These models fit the style and we used them in the original form. We also obtained models from Polycount for STELLA and ROCK (Thug). We then remodeled and created new textures for STELLA’s upper body and head to look like the real Akiko.
In order to give our characters some life as they drive around, we included skeletal animations. These are used, for example, when STELLA switches guns or puts her foot down as she stops. Additionally these animations give ROCK a spectacular death sequence as he dies in explosions. All the skeletal animations were created in Milkshape 3D. We then included and modified the model/animation loader by Brett Porter (GameDev), in order to fully control their occurrence throughout the game.
Physics/Camera – There are clearly numerous physics related tasks throughout the game. Basic Newtonian motion exists for the Bikers and the Player. To this we added some cartoon-style physics in order to make the game fun and playable. Turns for STELLA are calculated as a function of her lean angle. For the enemies, we first calculate the turn and then invert the kinematics to display a believable lean angle.
However, the most interesting application of physics is in the camera. Because the game is extremely fast and the player should be able to view it from the best possible angles we adopted the following strategy for the motion of the camera:
1) If STELLA is still, the camera uses a position filter to move in a circular orbit approaching the rear of the bike.
2) When STELLA begins to drive, the camera lags for a second and then zooms in on the action. This gives the initial rush of speed.
3) Finally, and most importantly, we wanted to make the camera fly around on corners giving STELLA’s eye view of the upcoming streets. (And luckily a beautiful view of the motorcycle.) The failure of all initial attempts due to variations in framerate caused us to consider a spring/dampener control. Here, we implemented a critically damped spring/dampener control system. The camera sits behind the bike attached to this system and is pushed by Delambert forces to either side, as STELLA turns. Then the critically damped control smoothly brings it back behind STELLA. Essentially this means that though the camera is always swinging around corners, there is never any oscillation.
Control Panel – We completely designed and textured the control panel. The Panel contains all the necessary information for the player. It shows STELLA’s speed, rpms, the current weapon and remaining ammo. It also contains information regarding the status of the game. There is a timer for the five minute duration of the game and a lifebar indicating STELLA’s pain.
Most importantly, the Control Panel contains the scoring! The points are displayed in the upper right (conveniently next to the timer.)
However, we didn’t stop there! The control panel also flashes the countdown for the game and various bonuses for stunts which are performed during the game. The points for the stunts are added to the counter. The Control Panel feature is packed with alpha blending, alpha fades to give beautiful transparent effects.
Score File – Any Real arcade game must have high scores. To do this we extended the control panel and the menu system to allow the player to enter their three-letter name. We used a TGA font loader and wonderful font from NEHE. The top ten scores are prominently displayed, just asking for someone to beat them. Since we do not want game players to cheat and change the scores manually, we used an encryption scheme when storing the scores to a file. This was a simple but highly effective homebrew xor algorithm which we wrote with a key that is as long as the scorefile. Essentially without disassembly of the program this key is uncrackable.
AI/Collisions – The enemies in this game were not designed to be particularly intelligent. The point was to have a lot of them for slaughter. In fact the things we tried with intelligence only made this game more tedious. However, if the enemies constantly blundered into blocks, this would also be noticeable. The compromise follows: The enemies are essentially constantly performing collision avoidance. They are repelled from blocks and are given the locations of intersections so that they may turn. Though the algorithm is simple, the lean angles (calculations explained earlier) give them quite a believable appearance.
Of course for all objects reachable by STELLA we added collision detection. This system works differently for different occasions. For blocks we do axis-aligned rectangular, triangular and circular collision detection. Additionally for enemies we use a bounding sphere. By using two bounded spheres, we are able to reasonably calculate how an enemy should be pushed/turned upon collision.
Sound – The game is constantly blasting music and sound. The coolest sound is the frequency modulation on the motorcycle. The frequency is real-time controlled by the rpm counter on STELLA’s bike. As the rpm goes up and down, so does the frequency. We used the Fmod library to do this modulation. Though the game does not have gear shifting (making room for better gameplay) we use a modulus of the speed to give the effect of proper gear shifts and the frequency of the sound reflects this.
Additionally, the volumes of enemy bikes’ engines are calculated on their proximity to STELLA and updated in real time. We also included sounds for explosions, gunshots and various other occurrences. These last sounds were event-based. Finally we added numerous music tracks, which the users can choose through the menus and contribute their own simply by modifying a file in the music directory.
Particle Effects – Last but not least, the Particles. To do particle effects we first started with fires which have up to several hundred particles in close range. These give a rather ominous (though somewhat comic) effect to the dying enemies. In fact we first build our engine around Trent Polacks (NEHE) code for a fire particle engine. After much experimentation and optimizations we not only had fire but explosions and rockets. The tremendous explosions are just as common in the game as they appear in the screenshots. To give this a more 3D feel while retaining the speed of the game, we added billboarding for the individual particles. This made the explosions and fires beautifully viewable from any perspective.
- Back to top -