Cg Asteroids (Copyright Perminder Suman, 11 September 2003)
------------
Welcome to the next level of computer games - NOT! Okay, it's just a game based on the classic Asteroids game but uses the high-level shader language Cg and the ARB_vertex_program extension of OpenGL 1.4 to create some pretty neat graphic effects. Don't worry if you don't have Cg installed - the game will run without it but you won't be able to switch to the Cg effects. These effects are purely cosmetic and have no effect on the gameplay. 

There are 5 levels in this prototype which loop round forever (well, until it's game over!) so when level 5 is completed, you go back to level 1. However, the more times you beat level 5, the more shots it takes to destroy the asteroids in the succeeding levels. The game keeps a track of your score so keep playing until you beat your last score. Note: no high score table is implemented yet! :p

If you want to see these effects and you don't have Cg installed, download the Cg runtime at http://developer.nvidia.com/object/cg_toolkit.html and download the 10.6MB file called Cg_Compiler.exe. Double-click the setup file when it has downloaded and choose minimum installation to run Cg applications. The Cg effects for Cg Asteroids should now work.

Controls
--------

- cursor up/down: move forward/backward
- cursor left/right: rotate left/right
- spacebar: shoot
- 'p' key: pause game
- Esc key: quit game


Cg Effects
----------

- 'l' key: toggle lighting
- 'a' key: toggle refraction on the asteroids
- 's' key: toggle reflecting sinewave
- 'r' key: toggle refracting sinewave


Extra keys
----------

- 'e' key: toggle particles (for slow machines)
- 'f' key: toggle framerate
- '1', '2', '3', '4', '5' keys: change speed of the game if it is running too fast. Default is 3
- F1: toggle between full screen and windowed mode


Issues
------
- The full screen option sometimes freezes my computer. On other computers that I've tried, it works fine. Try it and see. If it does freeze, try pressing the windows key on your keyboard. If that fails, just mash your keyboard randomly and hope for the best!

- The refracting sinewave vertex program has large white patches in it. I've yet to figure out for sure what is causing that. I suspect I need a cubemap.

To do:

- implement a high score table which saves the scores
- implement joypad control
- implement a better framerate independant update method


Have fun!

Perminder (11/9/03)