home *** CD-ROM | disk | FTP | other *** search
-
-
- DemoCam v0.8
- by
- Harlequin
- (dtebben@alumni.caltech.edu)
-
-
- Operating Systems Supported
- ---------------------------
- Definitely DOS/Win95, probably Linux (can't think why not).
-
-
- How It Works
- ------------
- DemoCam is a patch for QuakeC that allows you to play back demos from
- a different viewpoint than you recorded them with. For example, you
- can record a demo in the first person as normal, then convert it to
- play back from a chase camera located above & behind your character.
-
- The bad news is that of the 3 playback modes I originally intended to
- support, only the chase cam works well. See Known Bugs, below.
-
-
- How To Use It
- -------------
- First you need to compile the mod using QCC. Get a version suitable
- for your OS from ftp.cdrom.com or http://www.stomped.com. After you
- install QCC, copy all the files from V101QC (a subdir of QCC) into a
- new, empty subdir named "democam" off of your Quake directory. Now
- unzip democam.zip into the democam subdirectory, answering "yes" to
- any queries about overwriting files. Run QCC in that directory and
- it will generate a file called progs.dat.
-
- Now start up Quake with the command-line argument "-game democam" and
- start recording a demo (syntax is "record <demoname> <mapname>").
- At some point during the demo, issue the command "impulse 16" from the
- console, or bind impulse 16 to a key and press it. You'll notice that
- you character's weaponmodel (the weapon at the bottom of the screen)
- has vanished. Run around a while, finish recording by typing "stop" at
- the console, and quit from the game. Here comes the tricky part.
-
- Fire up your favorite text editor/word processor/file viewer (Win95's
- Wordpad works fine), and load the .dem file you just recorded. It
- will largely be a bunch of meaningless junk, but search for a part
- that reads "alias disconnect". There should be two of them almost in
- a row, looking something like this:
-
- ****A* alias disconnect ****** alias disconnect
-
- There may be some carriage returns, etc. in there. "*" are all the same
- character, but may appear different depending on your editor; they're
- not important. What is important is the "A". It may or may not be an
- A, it may not even be a standard ASCII printable (in which case you'll
- have to copy and paste it). Whatever it is, it will always be the
- next-to-last character in a string of otherwise identical ones. What
- you have to do is replace the "alias disconnect" bits with this:
-
- ****A* alias disconnect ****A* alias disconnect
-
- Note that you are changing ONLY ONE CHARACTER, the next-to-last non-
- space letter before the second "alias disconnect". Replace it with
- whatever the corresponding character in front of the first "alias
- disconnect" is, in this case "A". Assuming that you only pressed
- impulse 16 once, you will only have to make this one alteration in the
- file.
-
- The demo is now ready for viewing. Go back into Quake and run it
- with "playdemo <demoname>". If you did everything right, your view
- will have switched to a chase camera and stayed there until the end
- of the demo.
-
- If all this isn't clear, don't despair. I included two demos in the
- .zip that show how it should be done. Their names are "1stper.dem",
- a normal demo in the first person, and "3rdper.dem", which is played
- from a chase cam. The only difference between these two files is one
- byte. Examine them a little and you'll see how to do it. If all
- else fails, email me.
-
- I strongly suggest backing up your demos before altering them.
-
-
- Impulse Commands & Other Docs
- -----------------------------
- You can use the following impulse commands in DemoCam:
-
- -- impulse 15: toggle show/hide weaponmodels while recording
- -- impulse 16: start a demo chase cam on yourself
- -- impulse 17: start the Top Dog Chase Cam (see Known Bugs)
- -- impulse 18: start the Intermission Cam (see Known Bugs)
- -- impulse 19: stop your current chase cam from recording
- -- impulse 20: toggle your view between your character and your
- currently active Demo Cam
-
- Of these 6, only impulses 15 and 20 have any effect on the game as
- it is being played. The rest only affect the playback of the demo.
- The weaponmodel toggle is so that they don't show up in the demo.
- Personally I don't mind having it not there in the game, but if you
- really feel you need it you can turn it on. (I play with crosshairs
- and use them for aiming anyway). For a really clean look when playing
- demos, max out the screen size and turn off the crosshairs.
-
- It's possible to activate multiple cameras in succession in a single
- demo. Every time you activate a camera or use impulse 20 to switch
- *back from* (not *to*) your demo camera view during the game, two more
- "alias disconnect" markers will be inserted into the .dem file and you
- will have to make the appropriate changes for the demo to turn out
- properly (see How To Use It, above).
-
- The model I used for the camera is a bubble, like those that spawn
- when you drown. There is no "null" model in Quake, so it had to be
- something. If you want you can change the model to "null.spr", a
- blank model file that I got from Eli's Kuaqe2 mod; just be aware that
- anyone who doesn't have the file won't be able to play the demo. You
- have to uncomment two lines and recompile to do this: one at the
- beginning of weapons.qc (in the precache functions), and one in
- democam.qc. Both should be fairly obvious.
-
- Why "alias disconnect"? Well, it's one of two console commands I
- know of that does absolutely nothing, and doesn't interfere with the
- user's config in any way. (The other is "alias quit").
-
- If you want to, you can delete the centerprinted messages from the
- demo. Just be sure to get rid of the message text *only*. I suggest
- you replace it with spaces rather than actually removing it and thus
- changing the size of the file; you never know what might happen.
-
-
- Known Bugs
- ----------
- -- Unfortunately, it is not possible (AFAIK) for anyone other than the
- server to record a demo in Quake. This means that you can only record
- a demo if you are running a listen server or playing single-player.
- Maybe this will be fixed in QuakeWorld (maybe it'll bring world peace
- too :-) ).
-
- -- There may be some places on levels where cameras don't work right
- (all the SetViewPort network command stuff is a little wonky). The only
- place I know of is the single-player start room of e4m7, but there could
- be others. Be careful, and back up your demos!
-
- -- It is not possible for DemoCam recordings to persist between levels.
- If not turned off, the demo will simply record a blank screen for all
- levels past the first. Therefore I have set the mod to automatically
- stop recording when the level changes.
-
- -- In coding mods, there are two brick walls that I have run into time
- and time again.
- 1) If a client's viewport gets too far away from the client,
- the viewport hangs (i.e. stops updating). This is seemingly
- determined by some property of the level, because I have played
- on homebrewed maps where it is not a problem. On id's levels
- it is chronic.
- 2) The viewport facing is always determined by the client's
- facing. I suspect there is a way around this, because during
- the intermission the client's view is frozen in place (of course
- he is also paralyzed). The problem is that you can't be facing
- one way and "looking" another, which is bad news if your camera
- is facing a different direction.
-
- If anyone figures out a way around either of these, *please* tell
- me! I've seen the 1st one circumvented by creating a "doppleganger"
- of the client that moves and takes damage while the "real" client
- is off being something else, e.g. a guided missile. This is
- unworkable in DemoCam because both the camera and player need to
- have updating displays.
-
- -- The Top Dog Chase Cam was originally meant to be a chase camera that
- would follow whoever had the highest current frag count. This would be
- great if it worked, but it falls foul of the two problems listed above.
- If the camera is too far away from its owner, the view never updates;
- also, the camera angle is determined by the owner's facing, which creates
- weird, frustrating, and unwatchable demos.
-
- -- Likewise the bugs kill the Intermission Cam, which would have been
- a camera that warped around to the most active intermission sites to
- observe deathmatches in progress. You can still use it with impulse 18.
- Note that it can only be activated if there is a player in line-of-sight
- with an intermission spot. This prevents the view from screwing up, as
- it occasionally will if there are no players around when it switches.
-
- So the upshot is that the only thing you can really do with this mod
- (at present) is convert first-person demos to a third-person chase cam.
- Hopefully in future versions some of these bugs will be fixed, or
- someone will come up with a cooler implementation. I think it's an idea
- with potential, and I'm releasing it so others can improve on it.
-
-
- Copyright and Distribution Information
- --------------------------------------
- This program is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- for more details.
-
- For a copy of the GNU General Public License, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-
- Credits
- -------
- id Software, for...well, you know why :-).
-
- Eli (apathas@mailhost.primenet.com) for the chasecam tracking code from
- his Kuaqe2 mod.
-
-