Ryan and Vinit's Quake 3 patch

What the ...?

The project's goal is to allow a cluster of machines to project a "spectator" type view from a Quake 3 game/variant. Each machine within the cluster shall be connected to a single projector, and together, the images from each projector will be placed together to form a much larger view.

This has a number of uses:

How the ...?

Firstly we need to get a copy of the Quake 3 source, which has been officially and legally released from www.3dgamers.com and also from www.fileplanet.com. Then begins the fun part! As Quake 3 has limited documentation available part of this project will involve investigation, research and also more limited documentation, which will soon be available here. Aside from the Quake 3 source and sifting through the vast amounts of occasionally strange code (and I personally blame Windows for that ...), we also need a durable design.

The design is being made specifically for this project and as a result will not be "bullet-proof", it is not intended to be. we feel that this project is largely one to prove that this concept is possible and feasible, and if so then it can be done more intrinsically later down the track by someone else probably. However, the design is still imperative to consider the project. The design will be found here

Project goals

As a large portion of the project requires research of the Quake 3 source code, the goals may seem a little thin. However, we will also attempt to document how the Quake 3 source works within our patched section, which we feel is dually important. The goals have been outlined as follows:
  1. Allow the server to create a fixed "camera cluster"
  2. Allow a spectator client to join the "camera cluster"
  3. Allow the server to vary viewing parameters of the "camera cluster", changing the view of the client as necessary
  4. Allow the server to create a floating "camera cluster"
  5. Allow a spectator client joined to the "camera cluster" to move the "camera cluster"
  6. Allow the server to create multiple "camera cluster"s
  7. Allow a spectator client to select the active "camera cluster"
  8. Allow multiple spectator clients to be joined to a "camera cluster", with their combined views matching that of the server's parameters for the "camera cluster"
  9. Allow the "camera cluster" containing multiple spectator clients to be moved as if it contained only one