Transfusion manual

Author: Mathieu Olivier


<elric at planetblood dot com>

Author: Dave Turner


<darth_linux at planetblood dot com>

Author: Luke Ashdown


<kazashi at users dot sourceforge dot net>

v1.1cvs (November 12 2004)

Abstract

This manual covers installation and usage of the Transfusion game.

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

Table of Contents

1. Introduction
2. Installation

    2.1. Using Transfusion as a Quake mod
    2.2. Transfusion and QuakeWorld

3. Basic usage

    3.1. Game types
    3.2. Impulses and extra commands
    3.3. Game play notes
    3.4. Bots
    3.5. Brink Of Death

4. Bloody stuff

    4.1. Weapons
    4.2. Health & Armor
    4.3. Items & Powerups

5. Advanced usage

    5.1. Warmup
    5.2. Voting menu
    5.3. Cvars
    5.4. Map cycling

6. Frequently Asked Questions
7. Links

1. Introduction

The Transfusion Project aims to recreate an old DOS game, from Monolith
Productions, called Blood, using the Quake engine.

You may think it's a simple mod, but actually, you don't need any Quake data to
run it. In fact, Transfusion is a complete total conversion of the multiplayer
aspect of Blood. The original Blood is a remarkable game, and the Transfusion
team hopes you'll have as much fun playing it as we had playing Blood.

Obviously, you'll be more at ease if you already know Blood and/or Quake. Even
if it's not the case, don't worry: you should be able to find in this manual
all you need to know about Transfusion.

2. Installation

If you are reading this manual, chances are that you have already installed
Transfusion on your machine. If it's not the case though, don't worry, it's
easy. If you are lucky enough to use a Transfusion installer program, just
follow the steps as with any other installer program. If you have an archive
file, such as a ZIP file for instance, extract its contents in a new, clean
directory. That's it. You can launch the game now.

2.1. Using Transfusion as a Quake mod

Unfortunately, there are a few cases where people will have to use another
Quake engine instead of the one we provide, because of a low-end machine, or a
poor network connection, or because of drivers with no OpenGL support or even a
video card with no 3D acceleration.

If you are one of these people, you will be happy to know that old versions of
Transfusion, up to version 1.01 included, can be run using any Quake compatible
engine, as a simple mod to the game. Theorically, all you have to do is to copy
the "transfusion" subdirectory (the one which contains the PAK files) into your
Quake directory. Or copy a Quake binary in the Transfusion installation
directory, for that matter.

Be aware that most Quake 1 compatible engines will requier the Quake's original
data, despite the fact that Transfusion doesn't need them. So you may also want
to have the "id1" directory included next to your "transfusion" data directory.

To launch Quake using Transfusion as a mod, type the following command line:
"winquake -game transfusion", if your Quake engine is named "winquake" of
course. You may encounter a few minor bugs (Quake engines with a software
renderer have a few visual bugs, in particular), but the gameplay should be
very similar to the one we intended to create.

After version 1.01, Transfusion exclusively uses the DarkPlaces engine,
allowing us access to many more features at the expense of compatibility with
other Quake engines. This means that the above procedure will most likely not
work, and no official support will be given in an attempt to get it to work.

2.2. Transfusion and QuakeWorld

If you want to play on the internet and your computer can't run our engine,
then you will have to use a QuakeWorld based engine. Bad news...

First, make sure you really want to play Transfusion on the internet and that
there's no way to use our engine on your machine. I insist because 1- it's not
easy to install and use Transfusion with QuakeWorld, and 2- the gameplay is
significantly different and some features are missing.

Now that you are sure you want to give it a try, start by getting a copy of a
good QuakeWorld based engine (ZQuake is the best choice in my opinion). Then,
(re)install Transfusion version 1.0 or 1.01 (later versions don't support
QuakeWorld) with the QuakeWorld support if you haven't done it previously. You
will get a "qw" directory in your install directory. This "qw" directory
contains 2 PAK files. The first one, "pak0.pak", will stay in this directory.
The other one must be moved to the "transfusion" subdirectory when you play
Transfusion with QuakeWorld, but only during that period of time. If this
second PAK stays in "transfusion" while playing the game with a non-QuakeWorld
engine, you will surely get at least visual bugs. Also, you may have the same
kind of problems than those mentioned in the previous paragraph (Quake data
needed, software renderer bugs, ...).

If you have enough luck or skills to make all things work correctly, the
greatest challenge still remains: finding a server and some other QuakeWorld
players... Good luck. You will need it.

3. Basic usage

3.1. Game types

Transfusion supports 3 game types:

  * BloodBath (deathmatch = 0 or 1, and teamplay = 0): This is standard Free
    For All Deathmatch play. Everyone is your enemy - kill them all.

  * Team BloodBath (deathmatch = 0 or 1, and teamplay = 1 or 2): Divides the
    game into two teams who are pitted against each other. When setting
    Teamplay to 1, team members are impervious to Friendly Fire, while setting
    Teamplay to 2 leaves you vulnerable to shots from your team mates.

  * Capture The Flag (deathmatch = 2). Capture the opposing Teams flag and
    bring it your base. As with TBB, setting teamplay to 2 activates friendly
    fire.

Single Player mode is planned for the future, however as of version 1.1 it is
only rudimentary (no monsters/entities), and not generally accessible as a game
mode.

3.2. Impulses and extra commands

Impulses are command numbers. You can bind them to keys, or type them directly
at console. For example, typing "impulse 10" at console will make you switch to
your next weapon; you could achieve the same effect by binding a key to
"impulse 10" and pressing it.

Here is the complete impulse list:

  * impulses 1 to 10: select a weapon

  * impulses 21 and 22: cycle to next/previous weapon

  * impulses 23 and 24: select next/previous item

  * impulse 25: use the currently selected item

  * impulse 26: view the current value of the next armor type

  * impulse 27: identify the player you're aiming at

  * impulse 35: select the proximity bombs

  * impulse 36: select the remote detonators

  * impulse 40: select the Dr's Bag

  * impulse 41: select the Crystal Ball

  * impulse 42: select the Beast Vision

  * impulse 43: select the Jump Boots

  * impulse 50: add a bot (to the red team if available)

  * impulse 51: add a bot (to the blue team if available)

  * impulse 52: kick a bot

  * impulse 55: enter the voting menu

  * impulse 56: go back to the observer mode (only allowed when dead)

All those impulses are considered cheats (not available in multiplayer games,
except if the server has the "sv_cheats" cvar set to a non-zero value).
WARNING: although it's very unlikely, it may be possible that some of them
crash the game under certain conditions. Be fully aware of that if you allow
cheats on your server.

  * impulse 53: botcam mode (unavailable in QuakeWorld)

  * impulse 54: waypoint edit mode (unavailable in QuakeWorld)

  * impulse 250: Put you on the Brink Of Death

  * impulse 251: Give full armor

  * impulse 252: Burn yourself !

  * impulse 253: Give all inventory items

  * impulse 254: Give Guns Akimbo

  * impulse 255: Dump all entities stats to console (for debugging)

Lastly, the DarkPlaces engine provides us with a few extra commands, that you
use the same way you use impulses (at the console, or by binding them to keys).
In Transfusion, we use the following ones:

  * +button3: secondary fire

  * +button4: use object (you must be close enough)

3.3. Game play notes

Sending messages

    To communicate with other players during a multiplayer game, press "T" and
    type your message. Press [ENTER] to send it or [Esc] to abort.

Teleporters

    Some Transfusion levels feature teleporters. Learn to use these teleporters
    to get around levels quickly. Teleporter destinations generally appear as
    animated markers on the floor. Stay away from these in a crowded game --
    someone might teleport right into you, killing you instantly.

3.4. Bots

Bots are fake players controlled by a simple AI code. Transfusion bots are
heavily based on FrikBotX source code, a Quake mod that provides its bot system
as a separate piece of code.

The bots are easy to use. Take a look at the impulse list to see the few ones
you'll have to use to spawn and remove bots.

Bots count as normal players, so if you can't spawn bots (message: "server is
full") or if nobody can join your server, you have probably reached the current
maximum number of players on the server, or you may have forgotten to put
"-listen 8" or more in Quake's command line ("-dedicated 8" for a dedicated
server). By default, Quake allows only 1 client into the game. That's why you
must explicitly start a multiplayer game with the menu or add a "-listen" or
"-dedicated" argument to your command line to tell Quake you want more clients.

You can't fill a server with bots. Transfusion will always let one slot free so
that a new human player can come into the game. If a new player comes and takes
the last free slot, a bot will be kicked automatically to free another slot if
possible.

3.5. Brink Of Death

Sometimes you'll knock opponents to their knees instead of killing them
outright. The victim spends several moments swaying, poised between life and
death. If no one reacts, the victim will slump over and die, earning you a
point. Of course, because your victim is helpless, you'll have a moment or two
to gloat. You may end the torture swiftly by blowing the victim's head off. You
may also draw it out by tossing a lit bundle of dynamite on the ground nearby.
Be careful, though. Victims bring themselves back from the brink of death after
a dozen secondes.

You'll recognize the brink of death by the sudden inability to move and the
removal of your weapons.

Also, note that BOD doesn't apply to someone who's on fire, and does NOT exist
in QuakeWorld.

4. Bloody stuff

4.1. Weapons

You have 12 different weapons at your disposal in Transfusion. Aside from the
Pitchfork, each of them has a normal fire and a secondary fire, also known as
altfire. Most of the time, it's a deadlier mode that consumes more ammo.

Pitch Fork

    This handy tool can be very effective if you can get close enough to your
    foes to use it on them. It doesn't need ammo, so you'll always have it to
    fall back on if you need it.

    Ammo: None. No altfire mode.

Flare Gun

    Fires burning projectiles that lodge easily in flesh and continue to burn
    for a short period of time. Unless you dive into water, you'll take damage
    until the flare burns itself out, by which time it may be too late. The
    alternative fire launches a starburst flare that douses a large area with
    flames. Can provide effective crowd control.

    Powered up by Guns Akimbo. Ammo: Flares.

Sawed-off Shotgun

    A trusty companion if ever there was one. It doesn't have great range, but
    it packs a hell of a wallop up close. Can be fired either a barrel at a
    time or both at once for extra damage.

    Powered up by Guns Akimbo. Ammo: Shotgun shells.

Thompson's Machine Gun

    The Tommy Gun is a favorite of the Cabal for its rapid rate of fire and
    impressive accuracy. On the down side, it chews up ammo quickly. The
    alternative mode is a strafing attack that covers a wider area with twice
    as many bullets, which is an effective way to clear out a room.

    Powered up by Guns Akimbo. Ammo: Bullet drums.

Incinerator

    This monstrous weapon launches a huge ball of flaming napalm at an
    extremely high velocity. If the initial explosion doesn't kill your enemy,
    the burning probably will. Best used with extreme caution, especially in
    tight areas. The alt-fire launches several napalm projectiles, covering a
    wider area but also chewing up a lot more ammo.

    Powered up by Guns Akimbo. Ammo: Gasoline cans.

Dynamite Bundle

    Light one up and chuck it at a group of zombies and you'll be rewarded with
    red rain and chunks of rotted flesh on the brim of your hat. The longer you
    hold down the fire button, the farther you'll throw the bundle. Watch the
    meter on the status bar to gauge the distance. The primary mode explodes on
    impact, while the alternative mode will burn all the way down before it
    explodes, making for some interesting traps.

    Ammo: Dynamite bundle.

Remote Detonator

    Remotes work like dynamite bundles, except that you can detonate them at
    will. You can bounce them off walls or ceilings if you're afraid to peek
    around a corner. The alternative fire drops a remote at your feet, and you
    can hit the alt-fire key again to place additional remotes without
    detonating those you've already placed.

    Ammo: Remote detonator.

Proximity Detonator

    These are by far the nastiest explosives you'll come across. You can
    scatter them around and concern yourself with other matters. As soon as
    someone steps near one, you'll hear a far-off boom and accompanying shrieks
    of agony. Use the alt-fire to drop them at your feet. Also, remember where
    you've dropped proximities or you may fall prey to your own trap.

    Ammo: Proximity detonator.

Aerosol Can

    Hairspray may not seem like the most daunting weapon, but apply it to a
    cigarette lighter and you've got an instant flamethrower (don't try this at
    home). While its range is rather limited, its effectiveness is quite
    impressive. You can also light one up like a Molotov cocktail and toss it
    into a group of adversaries. Hit alt-fire a second time after igniting a
    can to drop it at your feet-it will explode once it burns down.

    Ammo: Aerosol Can.

Tesla Cannon

    This powerful prototype weapon packs a mighty load of amperage. Nikola
    Tesla would be proud. Press alt-fire and the Tesla cannon charges up, and
    releases a powerful electrical blast.

    Powered up by Guns Akimbo. Ammo: Batteries.

Life Leech

    This artifact draws its power from the life energy of your foes. Run out of
    ammo and it saps your own strength! Press alt-fire to set the Life Leech
    down. It will automatically fire at anything that comes into its sights.

    Ammo: Trapped Souls.

Voodoo Doll

    The power of the voodoo doll is immense, but far subtler than that of a
    firearm. Hit alt-fire to unlease a more powerful supernatural attack at the
    expense using up the entire doll).

    Ammo: Voodoo doll.

4.2. Health & Armor

You have 12 differents weapons at your disposal in Transfusion. Aside from the
Pitchfork, each of them has a normal fire and a secondary fire, also known as
altfire. Most of the time, it's a deadlier mode that consumes more ammo.

Life Essence

    Boosts your health by 20 points, up to 100.

Medicine Patch

    Boosts your health by 50 points, up to 100.

Life Seed

    Adds 100 points to your health, up to 200 total.

Body Armor

    Adds 100 body armor. Protects from bullets, shells, and concussion effects
    from explosives.

Fire Armor

    Adds 100 fire resistant armor, which is useful against flares, flaming
    aerosol, and the residual effects of dynamite and napalm.

Spirit Armor

    Adds 100 spiritual armor, which will absorb damage from the Voodoo Doll and
    Life Leech.

Super Armor

    Adds 200 points of body, fire, and spirit armor.

Basic Armor

    Adds 50 of each type of armor.

4.3. Items & Powerups

Death Mask

    Provides temporary invulnerability to all attacks. Note that you are still
    susceptible to physics, which means a dynamite blast may hurl you off a
    cliff.

Jump Boots

    Enable you to jump much higher than normal. Useful for those hard to reach
    places or crossing chasms the easy way.

Cloak of Invisibility

    The cloak will hide you from your enemies. That is, until you decide to
    attack them, even then they will have a hard time attacking you.
    Definitely, one of the more useful power-ups in the game.

Dr's Bag

    Will restore up to 100 points of health when activated. The unused medicine
    will remain in your inventory until used up. Keep this item handy!

Guns akimbo

    Gives you double-fisted killing power with one-handed weapons, such as the
    shotgun, flare gun, and Tommy gun. Lasts 30 seconds.

Reflective Shots

    This powerup causes bullets to bounce back at your attacker. You are still
    susceptible to flares and explosives, so be careful.

5. Advanced usage

5.1. Warmup

The warmup is a short period of time before the fight actually begins. The idea
behind this system is to make sure all players start at the same time so that
no guy gets all the stuff before someone else even enters play. Also it lets
the time to players who don't know the map yet to explore it a little bit.

You control the amount of time dedicated to the warmup by setting the g_warmup
cvar to a value in seconds. A server will wait after at least 2 players (of
different teams if any) have entered the game to start the countdown. It will
then reset the map and respawn all players. Be sure to set it to a non-zero
value before starting the map, or you won't have any warmup at all.

Of course, no frag can be taken during the warmup.

5.2. Voting menu

The voting menu is a mechanism that allows players to change server settings
via votes. For the moment, the available settings are: map, game type, frag
limit, time limit, warmup duration, and options.

To enter the menu, you must use "impulse 50" while idle. The menu is entirely
based on impulse commands. To enter into a submenu or vote for something, just
send the impulse number corresponding to your choice. Once you have voted, you
will be exited from the menu automatically, but until you vote or you
explicitly exit the menu, all your impulses will be handled by it.

Observers don't have access to the menu.

5.3. Cvars

You'll find in Transfusion quite a lot of the usual cvars from Quake (be
careful though, "samelevel" hasn't the same use as in Quake, see the map
cycling section for more informations). We have already talked about
"deathmatch", "teamplay", "fraglimit" and "timelimit"; but you'll also find
"skill" for setting the bots skill.

Transfusion has a few specific cvars that you may want to use if you host a
server:

  * "g_flashyEffects": turn on/off some flashy effects. Some of them may
    actually be changed only after restarting the map.

  * "g_lockTeams": if set during a teamplay, the end of the warmup locks the
    teams so that no new player can join them until the end of the match.

  * "g_warmup": if set to a non-zero value, it indicates the duration of the
    warmup in seconds. If set to 0, the warmup is disabled.

  * "g_weaponStay": if set, weapons don't disappear when taken, but you can't
    take a weapon more than once (equivalent to "Doom Old DeathMatch" and
    "Quake DM 3").

  * "sv_cheats": enable a few client impulses which may be used to cheat one
    way or another.

  * "sv_disable": a set of flags that allow a server administrator to keep his
    server under control despite the voting system. Its value must be set by
    adding the following numbers: 1 to disable bots, 2 to disable map voting, 4
    to disable game type voting, 8 to disable frag limit voting, 16 to disable
    time limit voting, 32 to disable warmup duration voting, and 64 to disable
    options voting. For example, setting "sv_disable" to 5 (1+4) will ensure
    your server won't have bots and won't change its initial game type.

Your server must have a "set" command or an automatic cvar creation at progs
request to allow you to use the new cvars though. It's not the case of the
original Quake binaries and of quite a lot of more modern versions of the Quake
engine. Be sure to check that.

In general you won't have problems with Transfusion specific cvars. The voting
menu allows the players to set most of them manually as needed, so you
shouldn't have to worry about that. That said, there's one particular case that
is indeed problematic: when you want to set a Transfusion specific cvar right
at server start, using the command line or some config file. At this time, the
Transfusion cvars won't be created yet and the program will tell you that it
doesn't know this command. This is due to the fact that they are created by the
game code the first time you start a map.

For instance, if you run "transfusion +set g_warmup 15 +map bb3", the g_warmup
value will be 0 because the map is launched after the "set" command. The right
way to do it is: "transfusion +map bb3 +set g_warmup 15". Actually, this
example is even trickier than that, because you will probably want to have a
warmup at once. Unfortunately, the value is set after you start the map, so you
won't get a warmup the first time. The best way to do it is then: "transfusion
+map bb3 +set g_warmup 15 +restart". With the addition of this last command,
you'll restart the map immediately, and so you'll have a warmup.

With the engine we provide with Transfusion, it's even more complicated (yes,
it's possible). To put it in a nutshell, DarkPlaces doesn't launch a map when
it executes the "map" command. Instead, it waits until all parts of the engine
are initialized to do so. This means that you'll have to make your commands
waiting too. How to do that? With the "wait" command. The previous example
becomes "transfusion +map bb3 +wait +wait +wait +wait +wait +set g_warmup 15
+restart". Yes, the 5 "wait" are necessary, because the engine has the time to
execute the command buffer 4 times before the map is actually launched.

5.4. Map cycling

Transfusion supports a map cycling mechanism which is very similar to the
system used by several popular Quake mods, including FrikBotX and Omicron bots.
It is based on a script file ("maps.cfg"), a cvar ("samelevel"), and a few
console aliases. Basically, you have to write a "maps.cfg" in your "basetf"
subdirectory so that it sets "samelevel" to the number of maps in your list,
and that it defines an alias for each of those maps, named "map1", "map2",
"map3", ... you get the idea. Each alias must contain the command line to
launch the map.

Here's a sample "maps.cfg" file to help you understand the system. It cycles
through 4 maps (bb3, bb7, cpbb01, and crypt):

        samelevel "4"
        alias map1 "changelevel bb3"
        alias map2 "changelevel bb7"
        alias map3 "changelevel cpbb01"
        alias map4 "changelevel crypt"



This file is reloaded each time the server starts a map, so you can safely
modify it without having to restart your server. Also, this means you don't
have to execute it manually: the game code will do it for you when needed. All
you have to do is putting the file in the right place.

Note that the voting system still works correctly even if the server
administrator defines a map cycling list. The map will change according to the
vote, and the cycle will resume afterwards.

6. Frequently Asked Questions

I just replaced a PAK file and some of the objects look all messed up

    Delete the "glquake" directory inside all of your Quake directories and run
    Transfusion again.

Why didn't you use another engine to make Transfusion?

    Because in order to make the necessary AI, physic and logic changes to the
    game so that it feels and behaves like Blood, we need direct access to the
    engine source code, not just the "game.dll" or game code, or whatever you
    want to refer to it as. Making a "game.dll" only lets you change some
    things, and they aren't enough things to do a total conversion correctly
    (in our opinion). Therefore, we chose the Quake 1 engine, since we have
    complete control over every aspect of the game. We felt it outweighed the
    other limitations of the Quake engine (low count polys, lower resolution,
    lack of things like colored lights, etc). Also, the Quake engine is
    licensed under the GNU GPL - which means we are free to change it without
    paying anyone a dime... To use the Quake 3/Unreal/Doom 3/Half-Life 2 engine
    would require us to purchase a license, something we don't have the money
    to do.

Aren't you breaking the law by using Blood's art and design?

    NOPE :) Monolith Productions and Infogrames owns all intellectual property
    rights to the Blood franchise. Jason Hall, the Monolith's CEO, has given us
    his blessing and we've even received help from Matt Saettler and Nick
    Newhard who lead the original Blood development team. As far as Infogrames/
    Atari Inc, who claim ownership of the Blood trademark, they have agreed to
    leave us alone given the non-commercial status of our project, mostly as
    long as our project name doesn't refer directly to the Blood trademark.
    That's why this project is called "Transfusion" (you may have heard about
    us as "qBlood" or "BloodBath" previously).

Transfusion exits with: Z_Malloc: failed on allocation of XXX bytes

    The engine hasn't allocated enough "zone" memory. You can change this with
    the "-zone" command line argument. With most engines, "-zone 256" will be
    enough, but some of them may require more (try 512).

I can't crouch! The original game allowed me to, why can't I do it here.

    Crouching is not yet supported in Transfusion (as it was not originally
    included in Quake), however it is in the process of being implemented and
    will appear in a future release.

I want to contribute to the Transfusion Project

    It's very simple. Start doing a quick tour through our 2 websites to be
    sure to find all the basic information you may need. Then, contact the
    Project Coordinator and either the Lead Artist or the Lead Programmer,
    depending on what you want to contribute.

7. Links

  * The Transfusion Project: our home page

  * Transfusion on SourceForge.net: our development page

  * The DarkPlaces engine: the engine we recommend and provide

  * FrikBotX: where our bots come from

  * ZQuake: arguably the best QuakeWorld based engine

