 |
When qcc came out for
the original Quake, I started playing with modifications to change all
sorts of aspects of the game. I never really set out to develop an actual
game mod. That is, I never had any big picture of how the gameplay could
be made more challenging or fair or whatever. I just wanted to see what I
could do with it.
I found an existing patch that supplied a dozen or more grenade launcher
modifications which could be cycled through by repeatedly hitting 6. I
based my work on this with so many modifications you'd never recognize the
code. I completely reworked weapons.qc so that I could plugin weapons
very easily. To write a weapon I create another .qc file and include it,
then register the weapon in weapons.qc in about half a dozen well-marked
places and I'm done. Code reuse was improved. Everything was factored out
into easily configurable variables. More debug/cheat switches were
added.
The only problem became environment constraints. I found that I can't
have more than about 25-30 weapons installed at once or it gets a little
crazy. Doors start disappearing, that sort of thing.
At one point, I grafted in a minimal bot engine as well. Again,
environmental constraints forced me to take it out.
Sorry, I can't really post the patch, because it's a mess and not really
fit for public consumption. Plus there are bits and pieces of other
peoples' code and object models, so I can't really go distributing it. If
you're a developer and are just curious how I coded some things,
contact me and I might be able to bundle up what
I have.
Weapons
Here are the weapons as they stand right now.
| Axe |
Standard axe. |
| Morning Star |
Grappling hook thing (taken from another patch) |
| Katana |
Same as axe, but it looks like a sword, so it's
kinda cooler. |
|
| Shotgun |
Standard shotgun. |
| Deallocator |
Rifle that literally deletes any enemy from the
game. Even works against the final baddie. Before polishing this
weapon it would sometimes delete worldspawn, effectively deleting the
universe, afterwhich you would fall through the floor forever. |
| Sniper Rifle |
Just a long-range, high-powered rifle. |
| Elephant Gun |
Really high-powered rifle. |
| Crossbow |
Pretty powerful crossbow. Bolts travel a
parabola and stick into whatever they hit for a few seconds. |
| Narrow-choke Shotgun |
Just what it sounds like. |
|
| Super Shotgun |
Standard super shotgun. |
| Ultra Shotgun |
Sorta like a 1 ga. shotgun. |
| Narrow-choke Super Shotgun |
Regular shotgun with tighter grouping. |
|
| Nailgun |
Standard nailgun. I didn't create any mods
for this weapon because it's just a lesser version of the super
nail gun. |
|
| Super Nailgun |
Standard super nailgun. |
| Flame Thrower |
Shoots little flames on baddies. Flames will
continuously afflict the target with small but persistent damages for
several seconds. Jumping in water will extinguish the flames. Fire
is communicable if another entity gets too close. |
| Mega Spikes |
A double minigun that spits out jillions of
little smoking, glowing spikes. |
| Mini Gun |
A rotary shotgun. |
| Whack |
Now this is fun. When you strike an enemy, it
causes them to start swatting at invisible gnats. And really fast, too!
It changes their update speed to be waaay faster than normal. Basically,
it works by creating an invisible entity that keeps afflicting 0 HP
injuries to the enemy, causing them to get angry, but the entity keeps
moving and it's invisible and invulnerable, so you just see the bad
guy frantically attacking nothing at all. Persists for a half a minute
or so. |
|
| Grenade Launcher |
Standard grenade launcher. |
| Drone |
Launches a little flying saucer that flies
around randomly until it sees an enemy, at which point it flies towards
it firing rockets continuously. If it doesn't find any bad guys for a
little while it hovers around the player as protection. After a while
it explodes, which isn't much fun if it's trying to follow you. Needs
some work. |
| Monster Launcher |
Just sort of a testing tool. It spawns a
demon a certain distance away. Sometimes if the monster is launched into
a solid object it will explode, but the severed head will start pursuing
you! Very freaky and unnerving!! Also needs some work. |
| Nuclear Grenade |
I forget the delay, but something like 15 seconds
after you drop this thing it begins glowing and beeping. Then it rises
a couple feet off the ground and has a huge initial explosion. Large
chunks are shot out in every direction which also explode with enormous
force. Basically kills everything in the line of sight, and then some.
Drop it and run! |
| Big Grenade |
Like a regular grenade but with a longer fuse
and larger blast. |
| Rocket Shooter |
I adapted this from another patch. After a few
seconds, the dropped grenade hovers a couple feet above the ground and
slowly begins rotating, rapidly firing rockets until it completes a
circle. Excellent for clearing rooms, as long as you're not in them. |
| Concussion Grenade |
Causes an explosion with lots of propulsive
force but minimal damage. Good for tossing enemies around or "rocket
jumping". |
|
| Rocket Launcher |
Standard rocket launcher. |
| Nuclear Missile |
Big-ass explosion. I configured it so it doesn't
hurt the firer, just everybody else. Kinda lame, but I was tired of
destroying myself during testing. |
| Laser-Guided Rocket |
Fun, fun, fun. Launch the rocket and it chases
a laser dot projected on whatever you're looking at. Works best in
very large areas, of course. When it collides it sets off a dozen
explosions like a cluster bomb. Makes a terrific amount of noise, and
it's fun watching the rocket follow gentle arcs towards your foe. |
| Homing Missile |
Works like a regular missile unless it sees an
enemy. A reasonably realistic homing missile in that it can't make
hairpin curves, and it favors enemies in front of it. |
| Pin Missiles |
Shoots jillions of tiny "drunk" missiles.
Ridiculously powerful. |
| Smart Homing Missile |
Taken from another patch. This is a less
realistic but more powerful homing missile. It can turn sharp corners
and will simply fly around in circles around the room until it finds an
enemy. |
| Concussion Rocket |
Like the concussion grenade, in rocket form. |
| Proximity Bomb |
Works like the trip mine in Half-Life. Shoot it
like a rocket and it will stick into whatever surface it lands on. It
then projects an invisible laser beam back towards where it was fired
(hint: move!), and if anything crosses the beam a stream of hellfire
will be shot along the path of the beam. Stand in a doorway, tick off an
enemy, fire off a bunch of these around the room, then watch the fun as
they pass through the door. |
|
| Lightning |
Standard lightning gun, if there's anything
"standard" about firing lightning from a gun. |
| Lightning Spell |
Every enemy visible to the player will be
struck by lightning from above. Consumes an awful lot of energy
cells. |
| Fire Spell |
Similar, but this time enemies are set on fire.
Kinda dangerous, because the enemies aren't killed right away, but
they do all get angry at you and start firing in their last remaining
seconds. |
| Wrath of God |
For those reeeeally difficult bad guys.
Understand, this is only useful against modified enemies with zillions
of HP, or perhaps the end badguy.
Using it against regular enemies is
pretty dull because it's over in an instant. Once an enemy is targeted,
rockets, nails, and lightning will continuously be fired at the enemy
out of nowhere, and he will be set on fire as well, just to add some
drama. Best used in large areas. Keeping your distance is
strongly suggested! |
Other Weapons
These weapons either never got to a working state or are currently
disabled. Some others had to be removed because they were too powerful and
would crash the game.
| Anti-door |
Deletes doors. When you don't feel like finding
the key or for those one-way trap doors. |
| Gib Gun |
This was just goofy. It's a gun that shoots
bloody meat chunks. It causes no damage to the enemy, but is fun for
harassing them, and it makes a neat little sploot noise whenever the
pieces bounce. |
| Bombos |
Named after a spell from Legend of Zelda
III.
When cast, a bunch of grenades fall from the sky. Not on you, don't
worry. |
| RC Rocket |
I wanted to make a rocket where you would be
able to see what the rocket sees and steer it around corners and stuff,
but I couldn't get the camera stuff to work right. I also briefly had
a patch where you could see through the eyes of any enemy in the game.
Kinda neat, but buggy. |
| Chain Bolt |
The idea here was that in a room full of enemies
you shoot one guy and the lightning bolt would then hop to the next
closest enemy, then to the next, and so on in a chain. Never got it
to work right, but it would have been cool looking. |
| Drop Missile |
This one was just drama. I wanted it to act like
a cruise missile, dropping quickly to a very low altitude and hugging
the floor until it collided with an enemy. Again, drama. The only
place where it would serve a genuine purpose is for shooting an enemy
down a hallway when you're up on a high ledge, but a homing missile
would be better suited. This weapon never quite worked right. |
| Fire Bomb |
Sets fire to everything in its blast radius. |
| Flare |
Sticks to a surface and provides light for a
short while. |
| Kenesis |
Throws all enemies in the direction you're
pointing. |
| Room Clearer |
A rocket that shoots other rockets out both
sides as it flies. Good for long hallways with little alcoves full of
baddies. |
| Captain Trips |
Named after the disease in Stephen King's
The Stand, basically makes all enemies swoon the instant they
catch sight of you. Ridiculously powerful, of course. For testing
purposes when I don't want anybody bothering me. |
Cheat Settings
I included a number of debug/cheat settings that could be changed via
impulse commands.
| Weapons use no ammo |
Toggle switch which turns off ammo use. |
| Weapon timing |
Alters the firing rounds per second. Cycles
between normal, fast (10 rps), and fastest (rps = fps). |
| Gibbable corpses |
Just makes it so you can gib bad guys even after
they die. |
| Same-species attacks |
If a grunt hurts another grunt, for example, he
will attack the other one. Adds an interesting strategy to the game,
trying to get one bad guy in the line of fire of another so they'll go
after one another instead of you. |
| Teleport everything |
Makes projectiles and monsters teleport the same
way players do. Kinda fun to shoot rockets through a teleporter. |
| Lava damage for monsters |
It never seemed fair that you get hurt by lava
and acid but monsters don't. This setting imposes some equality. |
| Monsters thrown by blasts |
Just what it sounds like. Important if you want
to make use of the concussion weapons. |
Miscellany
There are impulse commands to make the player leap a hundred feet in the
air or to fly around. There are flashlights and laser sights, too. There's
also an experimental setting that makes you as small as a mouse so you can go
under doors and things.
One rather useful feature is the addition of four save-position slots.
You hit one button to save your position and another one to restore it.
Good for getting out of a jam or ensuring you can get back to a place later
on.
The most recent addition, which I only completed a few months ago after
not touching the code for years, was introducing smooth platform and door
motion. Normally, moving objects in Quake move linearly. A platform
travels, say, 3 feet per second continuously. It starts and stops instantly,
which looks cheesy. I implemented a sort of cubic curve so that the object
accelerates for the first half of its path and then decelerates for the
second half. The overall travel time is identical, but it looks much
better. Some items in the game look better when they move linearly though.
Like something shooting out of the wall, for instance. Other things would
look better if they only accelerated, like falling platforms. There's no
real way for the game engine to know what's what though without recompiling
all the levels with an additional flag indicating the prefered movement
style.
Screenshots
|
|