TA Demo Recorder 0.97ß

 

Released 19th February 2000.

Produced and maintained by The Swedish Yankspankers. For the latest version and related info go to:

http://welcome.to/yankspankers

------------------------------------------------------

 

Contents:

1.0 Yada Yada

2.0 What's New

3.0 Quickstart

4.0 How-To-Use

4.1 Installing/Uninstalling

4.2 Recording Games

4.3 Replaying Games

4.4 Replaying Saved Games

5.0 Hints and tips

6.0 Troubleshooting

7.0 Known Bugs

8.0 Credits

9.0 Appendices

9.1 Version History

9.2 Bug-Report Form

 

------------------------------------------------------

1.0 Yada Yada

Disclaimer: Please understand that TA Demo is an experimental work in progress and to be used entirely at your own risk. This means the authors can not be held accountable for any loss of data, corruption of files, shortage of milk at your local grocery store or any other real or imagined error resulting from the use of this program.

Warning: side effects such as loss of sleep, opponent's TA skills improving or the expulsion of cheaters from the TA community might occur as a direct result of watching games recorded with TA Demo.

TA Demo Ltd. is in no way affiliated with Cavedog Entertainment. CD: you guys have the source code for the game - please create a far superior program and include it in a patch :)

TA Demo may be freely distributed as long as it is accompanied by this unaltered readme.doc. All rights reserved.

As always, we ask for your help to solve any problems associated with the use of TA Demo Recorder. When using any of the features directly related to TA Demo Recorder, please report any game-ruining bugs out of the ordinary (this means problems you haven't experienced before that you *strongly* suspect are caused by using TA Demo Recorder). When submitting bug reports please use the bug-report form at the end of this readme.txt file.

Miscellaneous feedback on TA Demo is of course also appreciated; feel free to email us your thoughts, or visit the Message Board on our site.

Thank you, and enjoy! :o)

 

------------------------------------------------------

2.0 What's New in v0.97ß

The enemy teams chat will be saved in the recording.

No longer possible to cheat using .take. The new version will also disable the command in all earlier versions.

Some bug fixes of course.

You can now use the recorder in more than one game without restarting TA inbetween.

Some new commands you can issue when things start going horribly wrong with the recorder anyway.

Use .hookreport to see if your enemies uses TA Hook.

Please see the version history (Section 9.1) for additional enhancements and changes.

 

------------------------------------------------------

3.0 Quick Start

If you're new to TA Demo Recorder and can't wait to try it out, follow the simple steps outlined below. You can always return to this readme file later on to read up on the more advanced options available for use.

1) Install Program

2) Run the TA Demo Control Center and toggle the "autorecord" option

3) Play a multiplayer game of TA

4) Replay game from TA Demo Control Center

5) Drool

 

------------------------------------------------------

4.0 How-To-Use

4.1 Installing/Uninstalling

Start the installation by double-clicking on tademo.exe and follow the instructions.

A version of dplayx.dll will be installed in your TA directory. Do _not_ replace the one in your windows\system directory or you will need to reinstall DirectX.

Uninstall the TA Demo recorder by using the Control Panel, Add/Remove programs, "TA Demo Recorder". Click on "Automatic" when prompted for the uninstall method.

 

4.2 Recording games

1. Start TA as usual

2. You can use the following commands:

Works in battleroom:

.fakewatch Makes you a fake watcher with the ability to talk

.pltest <name> Sends a sharp spike of ping packets to a player

.plresults Gives info about how the packets in the last .pltest fared

.randmap <filename> Choose a random map from <filename>

.syncon X Y Locks gamespeed between slowest limit X and fastest limit Y

.votego Vote to go

.nocheats For use when replaying saved games (see section 4.4).

Works in battleroom and in-game:

.record <filename> Record to file <filename>

.base <filename> Adds pre-built bases for all players (server only)

.baseoff Disables .base option

.fixall Enables both .protectdt and .fixfacexps

.fixfacexps Enables exploding units in factory bug fix

.fixoff Disables fixes for all players (restart TA to enable)

.protectdt Enables pseudo DT bug fix

.report All recorders report their presence

.hookreport All players using TA Hook reports their presence

.status Reports your recording status (only shown locally)

.stoplog Stop recording

.unitsonly Will half file size but cause weird side-effects in playback

Works in-game only:

.dobase Places pre-built base centered around first structure

.take Claims a dropping/disconnecting ally's stuff

.takecmd As .take, except one assumes control of a player's commander also

.dotake Finishes takeover when everyone has done .take in recording

.time Gives game time for everyone according to their +clock

.plfrom <name> Gives statistics on the amount of packet loss from a player that has occurred so far in a game

.panic Turns the recorder off.

.crash Makes the recorder really crash instead of just telling you an exception have occured.

.sonar Gives a unit covering whole map with sonar when replaying

3. Play your game of TA as you normally would

Italics signify that the user doesn't need TA Demo Recorder to use the command.

Detailed explanations:

Typing .fakewatch will enable you to chat during games as a watcher. To you, you seem like another player but for others you seem to be a watcher with the ability to talk. Should not be used by host. Fake player takes first standard start position, causing some disruption for the rest of the players' start positions. You should "Join" the game as a regular player for this to work.

Typing .pltest <name> sends a sharp spike of ping packets to a player. Typing .plresults will give you info about how the packets in the last .pltest fared. This does not show what the conditions will exactly be like in a game and requires some experience to judge. However, it does simulate the kind of activity that would tend to occur during a game. See also the .plfrom <name> command.

Typing .randmap <filename> will choose a random map from a predefined list in a file listing maps in the format shown in maps.txt. You can create your own favorite list of maps to play on and use that to randomly select from.

Typing .record <filename> will record the game for later Perusing Pleasure(tm). The recorded game will be placed by default in your TA directory and be named <filename>. Recording a new game using the same <filename> will cause TA Demo to overwrite the old file. Note that it's possible to specify directory paths with the filename. For example, if you have a TAD directory under your TA directory, you could enter tad\<filename> and it will be saved there.

Typing .syncon X Y will limit gamespeed between values X and Y (e.g. ".syncon -3 +3"). Use of this command can prevent someone from speedjacking the game.

Typing .votego signifies you're ready to go. If all players vote to go, anyone left on Watch mode will automatically click Go. This is useful if a watcher left to take a shower while in the battleroom, and forgot to click go.

Typing .nocheats will deactivate cheats during a replayed game, meaning one won't be able to do +los for example. It's intended for use for when one wants to continue a game that ended prematurely. See Section 4.4 "Replaying Saved Games" for more information.

Typing .base <filename> will give every player the possibility of placing a ready-built base around their first structure - the type of base being defined by the Serving player's base.txt file.

If no filename is given the standard .93 base will be used. Only server need a recorder but there should be no .93 recorders in game or things might get messy. This command can only be issued by the Server hosting player. See the accompanying base.txt file for additional information. Note that bases uses netids to specify buildings. These will change when additional buildings is added so a base for OTA wont work with UH or if there is any 3d party units in game. Also take a look at Yehas excellent program for editing bases.

Typing .baseoff in battleroom will disable prebuilt bases. Game must be re-hosted to enable reactivation.

Typing .report will give you the version of each player's TA Demo Recorder, and status of the toggles for each player:

* (T--) shows the recorder is active

* (-T-) shows .fixfacexps is active

* (--T) shows .protectdt is active

Any combination of the above is possible. No answer from a player means he/she doesn't have TA Demo installed.

Typing .status gives you a similar report as .report does, but only shows your status and is not sent over the network. Useful if you want to see if you have turned on the recorder or not.

Typing .hookreport will give you the version of each player's TA Hook, if it is loaded.

Typing .stoplog will stop the recording of the game (yes, type while playing).

Typing .unitsonly will change the recording method and cut the file size by approximately 50%. However, weird side-effects will be seen in the game when replayed.

Typing .protectdt will make the recorder enhance any data packets sent that include the Dragon's Teeth code. The desired effect of this is to avoid the problem where your opponent seemingly drives right through a hole in a DT wall that isn't apparent on your screen.

Typing .fixfacexps will make the recorder register all dead units and filter out damage dealt to that unit for three seconds after it dies, preventing new units built from being assigned an old unit # and then receiving an old data packet dealing it damage. In theory, this should avoid the units-exploding-in-factory effect and holes-in-build-order effect, and cut down exploding units in factories to once every three seconds in even the most severe conditions.

Typing .fixall will enable both of the two above mentioned lag related fixes.

Typing .fixoff will disable all fixes for all players. The game must be recreated in order to enable them again. Can be typed by players without TA Demo installed.

Typing .dotake will finish takeover from a recording after everyone have set claim on the loot.

Typing .take <name> when watching a recording will lay claim on that player for a later .dotake

Typing .take will claim an allied dropping/disconnecting player's units and structures as your own. Only works when having reject screen on person in question.

Typing .takecmd will do the same as .take, but also includes the dropping player's commander. This will give you two commanders to worry about and utilize. In "commander death = game ends" settings, any commander under your control will lose the game for you if killed.

Typing .dobase places a ready-built base around your first structure. The hosting Server player must have activated .base in the battleroom. Should be built on flat ground.

Typing .time will give the elapsed game time for all players according to their +clock. Useful for spotting a lagging player.

Typing .plfrom <name> will give statistics on packet loss experienced so far from a player (use in-game). Ranges tells how big part of the time you have had a certain packet loss level. First one is 0-2% second 2-4% and so on till last one is 20-100%

Typing .panic will turn the recorder completly transparent. Use this if it start spamming exceptions on you (and hope no exception occurs before it can handle the .panic command)

Typing .crash will make the recorder really crash instead of printing out exceptions. Usefull if you want a full errorlog of the event.

Typing .sonar will give you a unit with sonar range covering the whole map to let you spot subs etc easier when watching a recording.

4.3 Replaying games

1. Start the replayer

2. Locate the recorded game file, select it, click "Play", and wait for the processing to finish

3. Select your connection type (TCP/IP and IPX supported), click ok

4. Join the game as a watcher or player - as player will enable cheats (see * below)

5. Wait for the message "*** Unit sync is completed" to appear.

6. Click Go in the battleroom to start the replay of the game.

When the replay is done, close your TA program and click "Quit" in the Replayer window.

If you choose to join as a player instead of watcher, cheats will be enabled. This will allow you to use things like +view # to view the game from that player's in game perspective. You will get to see resource levels (but not income/expenditure), updated at a rate of about once every 3 seconds. If LOS was set to something other than Permanent in the game (which it usually is), you can use +los to toggle full LOS and back - useful for viewing a game from one player's viewpoint in order to fully understand the INCREDIBLE PRESSURE he was under. Heh :o)

Typing .speed <x> during replay sets speed to x percent of normal. 100 is normal, 1000 is way too fast. Typing .pos <x> during replay sets the game position to x percent into the game. If you type .pos without arguments, you will be told how far into the game you are, so you can easily locate that place later. For example, typing .pos 50 will take you to a position halfway through the game.

Accelerating replay rate can severely affect smoothness and lower frame rate. The number of units in the game and your computer specifications also play a large role here. Changing speed often can also result in inferior performance.

You can skip to anywhere in the game, although it is usually smoother going forward than rewinding. Normal time required for full synchronization is 5-15 seconds. Note that fast-forwarding a game will make most units disappear until they are issued an order or they react to other units. This only affects units and their positions, so any DT's that were built in the skipped time will therefore NOT be visible - same goes for wreckage, reclaimable features, etc.

Rewinding a game should not be done if any players left the game in the elapsed time.

Regarding playback only possible when connected to the internet:

There are two approaches to do this, depending on the operating system you are running. If you're running either Win98 or WinNT there is an easy way to play recorded games when not on-line. You simply need to create a 'hosts' file that defines the IP address for localhost.

Here's how you do that. Create a hosts file like the following sample (the name of the file is simply 'hosts' without the quote marks). The important part of the file is the one line "127.0.0.1 localhost". Do not use any other IP address than that for defining localhost - doing so could create problems for you.

Sample Hosts file:

# Copyright (c) 1993-1995 Microsoft Corp.

#

# This is a sample HOSTS file used by Microsoft TCP/IP for Windows NT.

#

# This file contains the mappings of IP addresses to host names. Each

# entry should be kept on an individual line. The IP address should

# be placed in the first column followed by the corresponding host name.

# The IP address and the host name should be separated by at least one

# space.

#

# Additionally, comments (such as these) may be inserted on individual

# lines or following the machine name denoted by a '#' symbol.

#

# For example:

#

# 102.54.94.97 rhino.acme.com # source server

# 38.25.63.10 x.acme.com # x client host

127.0.0.1 localhost

For Win98, place the hosts file in your "\windows" directory.

For WinNT, place the hosts file in your "\winnt\system32\drivers\etc" directory.

If you're using Win95, it's a bit more complicated. In order to watch a game without going online, the recommended way of playback is using the IPX protocol. However, to do this, you must have it installed. IPX can be installed from Control Panel->Network (refer to your User's Manual for help). You might have to lower sync speed from the Control Center (click Options in the Replayer) to avoid a repeating "***Current ack status # of #" error message in the battleroom.

 

4.4 Replaying Saved Games

This version of the recorder/replayer provides some aspects of a saved game feature. It is possible to take control of a player's units in a replayed game and continue playing from that point. For this to work there must be the same amount of players watching and later taking over the game as there were players in the original game.

Intructions:

Select a game to be replayed. Once in the battleroom, have the other players join your game as in a normal game. Make sure you're all Arm/Core and not on watch, and click Go.

Once in the game, wait till you get to the point from which you'd like to replay. Fast-forwarding with the .speed or +/- keys, or jumping to a certain position with .pos is possible, but we advise against rewinding/jumping backwards. For example, if you're going to replay a game from where you left off (perhaps due to someones unfortunate crash/disconnect), you could jump 95% of the way into the game by typing .pos 95.

When you're at the point from which you'd like to replay, make sure gamespeed is at 100% (e.g., you haven't left the speed at a higher or lower rate by using the .speed command) and pause the game. Then each player types .take <playername> for the respective player they will be taking over. Once everyone has done so and all the sides have been assigned a new owner, someone can type .dotake to initiate the takeover process. A few explosions will occur, dacca dacca, and you should then find yourself in possession of all the units and structures of the player you assumed control of.

However :o)... complications include:

* All players will find themselves possessing two commanders. It is possible to have

both an Arm and Core commander this way, and thus access to the combined

technology. Your new commander will be in the position he was in at the time of the

takeover. Just as when doing a .takecmd command, if either of the two commanders die,

you will lose the game when played under Commander Dies = Game Ends. Also, using

Ctrl-C to select your commander will cause both to be selected.

* Resources will default to starting resources, but your storage capacity will be that of

your combined units/structures. Income will be as it was in original game at moment of

takeover.

* Since the game existed as a recording, anyone with access to it can have replayed it

(viewed it) privately and thus know exactly what each player had at any time.

* If you're trying to continue a game that ended prematurely, you might want to have

.nocheats activated to avoid players being able to use them (incl. +los during the

replay), and jump to .pos 95 or so immediately.

* We're sure there's lots more we haven't noticed or thought of. Feedback is appreciated

(see Section 9.2).

------------------------------------------------------

5. Hints and Tips

Make sure you have available hard disk space for the recording before you start - these puppies can swallow up your free space fast if you're fond of huge hour-long games.

Third party units and/or missing units (official or not) might affect stability. We recommend having all official units (3.1 and four extra downloadable units at the time of this writing). Check the required units from the Replayer before loading a game.

For best performance, remove or rename the dplayx.dll when you are not planning to use the recorder.

You can replay games for friends over the internet (they don't need the file) - people can connect to your replay server like a normal game (not recommended for smooth replay).

You can adjust the speed of the replay in the replay window after the game has fully loaded. Performance will suffer as more units appear and the action accelerates; severity depends on your computer system. Changing the speed often may also hamper performance, even if put back to 100%.

Using a reverse European-style date-stamp will organize the demos by date when sorted by name. For example, name them "9991120_player1_vs_player2.tad", for easy sorting.

If you're worried about whether your game is being recorded, simply type .report when in the battleroom to check. The first T of the (TTT) indicates the game is being recorded (on/off in ancient versions). Why should you be worried though...?

If you don't want to allow any TA Demo lag fixes, typing .fixoff will disable all fixes for all players. Game must be recreated in order to enable them again.

Restarting TA between recording games may improve stability.

Restarting windows after replaying a large game may improve performance and system stability.

 

--------------