Overview
This mod aims to bring elements from Left 4 Dead 2 into Doom II. The aim was to provide a chaotic experience with hordes of infected and a framework to base custom maps on. Works with GZDoom 3.7.2 and 3.6.0.
Compatible with all gameplay mods that don't replace Doom 2 monsters (although there is a patch available for Brutal Doom). No weapons or items are included. Use this with your favorite weapon mod.
Mod loading order should be as follows:
1. AI Director (optional but recommended)
2. Left 4 Dead mod
3. Gameplay/weapon mod of your choice (optional but recommended)
4. Bolognese or NashGore (or other gore mods that don't replace enemies) (optional but recommended)
Features
- 4 Common infected variants
- 8 Special infected, with unique behaviors and attacks (save for the Jockey and Smoker)
- Headshot system that accurately reflects each frame of a sprite. Send those heads flying!
- Kick heads around just like in Blood!
- CVARs that lets you customize the experience.
This mod was created with AI Director in mind. I highly recommend using it (load AI Director before L4D). Change the AI Director settings to your needs.
Some recommended settings (tested with Trailblazer): Group size 1-4, Spawn Rate 10.
Note that you need to change two lines of code in AI Director's zScript file in order to work with GZDoom 3.7.2, as detailed here:
Change line 195:
Code: Select all
AIDItemSpawnPoint spawnpoint = AIDItemSpawnPoint(Actor.Spawn('AIDItemSpawnPoint', item.pos));
Code: Select all
AIDMonsterSpawnPoint spawnpoint = AIDMonsterSpawnPoint(Actor.Spawn('AIDMonsterSpawnPoint', thing.pos));
Vanilla Doom weaponry will probably not get you very far, so by all means add your favorite weapon mod. A good melee weapon and an accurate hitscan gun are a must! Pop those heads! I have found Trailblazer to be excellent when dealing with the undead/infected hordes.
Special infected descriptions:
- Special infected spawn with a chance of 1:16 for weaker Doom 2 monsters (Zombieman up to Demons), 1:2 for mid-tier monsters like Hellknights and Cacodemons, and always replace powerful monsters like Cyberdemons and Archviles.
- Boomer: Likes to puke bile that, when hitting a player, will cause nearby infected to home in on him or her. Be careful when killing a boomer up close, as the bile will spray around him as he bursts open.
- Charger: Tough opponent that bullrushes you.
- Hunter: Ambushes you from the shadows, sneaks around at a distance and pounces at you. When he lands near you, you become immobile for a few seconds as he delivers painful slashes.
- Jockey: No special behavior implemented yet.
- Smoker: Bursts into a cloud of black smoke when killed. No other special abilities yet.
- Spitter: Spits corrosive acid that forms a pool when hitting something. It is very dangerous to stand in these pools as they will rapidly drain your health. On the plus side, other infected are also affected.
- Tank: Bad news. A huge amount of health, no headshots, and he throws concrete slabs at you.
- Witch: Sits around wailing and crying. If you don't bother her, she won't bother you. Come too near and she will stand up as a warning. Come even closer (or attack her), and she will rush at you with sharp claws and great speed. Has a surprisingly large amount of health for a skinny girl.
- Fast infected: "Rager" style zombies/infected like those in Left 4 Dead. Turn off for a more "Night of the living dead" experience. Perhaps increase AI Director's max group size to balance the shuffling hordes.
- Head stays on headshot kill: When you kill an infected via headshot, his or her head will come flying off.
- Kick heads around: Shot-off heads can be kicked around by you and other infected.
- Kicked heads spurt blood: Flying heads will spurt blood splashes.
- Heads make noise when kicked: Plays Blood's head kicking sound when heads are kicked.
- Heads make popping noise when shot off: A comical sound effect plays when you shoot a head off. Off by default.
- Headshot damage multiplier: Controls how much damage a headshot will cause. This affects both common and special infected (save for the tank).
- Infected health multiplier: Controls how much damage infected (common and special) receive. Lower this if you have weaker weapons or run out of ammo all the time.
- Zombie dogs!
- Grappling attack for the smoker
- Some sort of riding mechanic for the jockey
- More common infected variants
- Uncommon infected that have special behaviors, like riot gear policemen and clowns
- A soccer map where you have to kick zombie heads into a goal (while being attacked by waves of zeds, of course!). Inspired by Blood's Bloobath map "Fun With Heads"
l4dv0.1.pk3
l4dbrutalv20patch.pk3
Screenshots:
Spoiler:
Development notes:
The infected use a muted color scheme so no single one stands out in a large mass. They should give the impression of a horde of mindless creatures with no individuality. This might clash with the more comic-book, pixel-art look of vanilla Doom.
Some special infected attacks are not suited for a single-player game, which is why the smoker's grappling and jockey's riding are not implemented. The solution is probably to make these temporary, like the Hunter's pouncing.
This was the first project for me that utilizes the power of zScript to any real degree. I am somewhat proud of the way I coded the common infected; as these all share the same code and are only different in their sprites, I wrote a base class for them and used GetSpriteIndex to set the right sprite graphic for each frame. This results in a fairly complex base class, but all variant subclasses only need a couple of codes after that (namely to set their sprite graphic names). Same goes for gibs.
The headbox system is also something I really like. It spawns a headbox actor as a child of the infected, and the infected's state set the hitbox' XYZ offset values. The hitbox actor sets it's position relative to it's master every tic based on these values. That meant having find the right offsets for each frame, though. One nuisance is that spawned projectiles will get blocked by the head hitbox often if they are not spawned far enough.
Bugs:
- The tank will have trouble hitting you with concrete slabs if you are higher or lower than him.
- The hunter will often not hit you with his slashing attacks after he has pounced at you.
- The boomer will always explode, even though he is supposed to simply die when being killed by a headshot.
- When using Bolognese, gibbed infected will sometimes spawn Doom-style gibs that look out of place.
- The A_BossDeath function is not used, so you will have to complete maps that depend on this map specialby cheating.