A game using Quake III Arena data files allowing you to play against friend or foe over a network.


This is a project I made in a course at Chalmers called Advanced computer graphics. It uses data from Quake III Arena to display a world in which players can battle against each other over a network. It uses OpenGL without any modern extensions except multitexturing (if you would consider that modern) and should work on most any 3d accelerated graphics adapter available.


20 November 2004

Copied news

Copied news from the old site and converted it to new format. Added headings for each newsitem.
20 Nov 2004

Created page

The page for this project now exists so that I can write some development logs.
1 June 2004

TCMod support

  • Added support for tcmod transform. Very few shaders use this, only liquids in the default shaders. And those shaders are only used in four or five maps.
  • Added support for tcmod turb. Used in lots of places, especially liquids. Here is a link with the code for turbulence from John Carmack. The link doesn't seem to work all the time, here is a link to google's cache of the same page.
31 May 2004

New skies

  • Sky is now rendered with a bezier patch, no errors visible through windows like on dm6 and probably fewer triangles.
29 May 2004


  • Removed all output to stdout and stderr and created a console in the game instead. Only output for now.
18 May 2004


  • Presented the game to the teacher.
  • Game and server are now available for download. Figuring out how to get them running is left as an exercise to the reader. Windows-version only, linux-version might be made available at a later point. This is the game as presented, it's a bit rough. You will need a copy of Quake III Arena or a suitable replacement with the right files in a pk3-file.
17 May 2004


  • A few minor fixes over the past few days to make it more stable.
12 May 2004


  • Rocket explosions are now rendered.
11 May 2004


  • Now drawing all possible faces for a shader stage before drawing the next stage. This should decrease the number of state-changes. Performance increased.
10 May 2004

Billboards and lighting

  • Added support for billboards.
  • Began working on dynamic lights.
9 May 2004

Bounce, teleport and fix

  • Changed a few details in entity parser and completed it, now it's just a matter of adding functionality as needed.
  • Support for trigger_push entities, jumppads, bouncepads and all those things now work. Rewrote physics a bit so that jumppads would result in the correct movement and ending up in the right place.
  • Added support for teleporters.
  • Players are now pushed away by rocket explosions. Rocketjumping.
  • Rockets are finally rotated correctly before being drawn.
8 May 2004

Lots of fixes

  • Fixed issues with mesh-sorting. Meshes/mapobjects would get completely wrong positions because of an incorrect offset into the vertex-array. This resulted in incorrect sorting and thus weird overdraws in certain situations.
  • Fixed shaders whose first stage was not blended being marked as blended. This would result in transparent surfaces if they belonged to the same brush.
  • Fixed a slight error in calculating the current leaf in the BSP-tree, instead of using the player position it now uses the view position. Previous behaviour resulted in som leaves not begin drawn that should have been.
  • Small fixes to depth writing and face culling with blended and alpha testing shaders. Alpha testing shaders depth write, blended surfaces do not.
  • Support for cull-keyword in shaders, face culling is no longer based on blending, alpha testing or whatever. Properly constructed shaders have "cull none" or "cull disabled" so no need to worry, just do what the shader says.
  • Config file now has options for display settings like resolution, AF and fullscreen.
  • Now supports any pk3-files in the basedir, not just files named pak#.pk3.
  • Support for colored text
  • Fixed a bug with surface parameter playerclip that would sometimes make a player collide with nonsolid surfaces.
  • Rewrote entity parser to make future entity usage easier. Jumppads coming up.
7 May 2004

New page

I finally made a separate page for this project. I also made a bunch of screenshots with some of the new shader-features implemented.
Also sorted out some old bugs hanging around like LOD-cracks, unlit models if they did not have a shader, depthwriting while alphatesting. Implemented skyboxes and skydomes, there are still issues with the skydomes though, but it's better than nothing. Added support for surfaceparm playerclip so it's no longer possible to fall through all those grates and stuff.

I haven't kept any development log so there's not much to say. There are screenshots from previous versions though. 22 March 2004, 15 April 2004, 26 April 2004 and 4 May 2004.

Valid XHTML 1.1! Valid CSS!