A downloadable mod

Note: Babel Requires GZDoom 4.2.0 or above.

                                              

Design

Babel was designed around the concept: What can be added to Doom that makes the game more dynamic without detracting from the core gameplay experience? To that end the mod is pretty heavy on the gameplay tweaks and contains a few completely new systems that the enemies use, but overall shouldn't feel overly unlike Doom. An imp is still an imp, but in Babel the imp isn't just a meatbag with a weak attack, it's trying to kill you like a demon would. In addition, each weapon has been molded to fit a certain general role so that each weapon has its own applications and role that it's good at. There's still definitely a power scale in the arsenal, but no weapon ever gets completely obsoleted.

Please Note: Babel is intended to be played on Erelim difficulty with quicksaves and continual progression, and on maps whose difficulty approximates the vanilla IWADs. Pistol starting, Ironman, or using maps with vastly higher difficulty will result in a much more difficult experience. Mathematically, these maps should be completable. Computationally, maps with thousands of active monsters may chug GZDoom. Realistically, your fleshy human brain may not be able to work fast enough to avoid death.

Synchronization and Chaining

In addition to the plethora of new enemy attacks in Babel, the key enemy-benefitting feature that has been implemented is Sync-fire and Chain-fire. Simply put, synchronization is the ability to tell other enemies that you are attacking, and those enemies can choose to join the attack. Chaining is the ability to tell other enemies you have finished an attack, and have them continue it for you. Monsters generally have one of these abilities, never both, but sometimes they lack them entirely in special cases. What this means is that monster groups are often far more aggressive than in vanilla, and softening up a horde will have the secondary effect of reducing the amount of sync/chain signals being sent, reducing aggressiveness.

In more detail, a good example of synchronization is a group of imps. Whenever an imp begins an attack, it sends out a signal to all other imps that it can see (within a certain range). Each of those imps has a certain chance (which in this case is ~40%) to choose to join the attack, and if it does it then determines if it can actually hit with an attack. If it can, it then also initiates an attack. It's important to note that joining a synchronized attack does not send out another sync signal, so cascades do not occur.

An example case for chaining is the Mancubus. Like the imp, it can share attack information. Unlike the imp, mancubi send out signals at the end of their attacks instead of the beginning, and the chaining monsters can themselves send out chain signals. This means that one attack can "continue" through several monsters, creating a non-stop flood of attacks. However chains in practice differ from syncs in that syncs often begin with many monsters attacking and end with only a few, whereas chains begin with one monster and often end with many attacking.

Some monsters can chain or sync to monsters other than those in their species, but those are relatively special cases. Most of the time a monster will only signal monsters of the same type. Killing monsters sometimes sends out chain or sync signals, and some special monsters can also sync up non-attack abilities.

Fear

Now of course it wouldn't be fair to have these powerful new monster abilities without something for the player right? Fear is that thing. Most monsters are now no longer totally mindless and can be frightened with the appropriate amount of coercion. All monsters except zombies, lost souls, spectres, bosses, and the archvile now have internal fear meters. Things like killing their comrades, firing weapons, causing explosions, etc. will cause them to build up fear. Once they're scared enough, they may lose their will to fight and flee. Bear in mind that a group of monsters can retain its composure faster than a single scared individual, and the stronger a monster is, the harder it is to scare them away. However the stronger a monster is, the scarier it is to its comrades when you kill it.

Some monsters, notably the hell nobles, have attacks that can reduce fear in nearby enemies. This makes them prime targets when facing large groups, as inflicting fear is a powerful tool to survive aggressive play. Killing a boss will also scare nearly every monster which witnesses it, only by chance can they retain their ability to fight.

Weapon Roles

One of the things that bothered me about Doom 2 was that the weapons, while very fun, often had far too much crossover in its effective role. Notably, the chaingun obsoleted the pistol entirely and the super shotgun was almost objectively better than the shotgun, barring accuracy at long distances. In Babel I've tweaked the slot roles to conform to the following pattern:

  • Slot 1: Melee. Berserk now affects the chainsaw as well as fists and berserk punching leeches small amounts of life when under 80%. Melee in general now does more damage. The Chainsaw has special interactions with Demons and Spectres, stunning them much more readily than other weapons and largely preventing Spectres from using their teleport to escape.
  • Slot 2: Accurate but weaker weapon. Good for sniping or taking out smaller targets. 3 options here, with slight variations on the theme. The PSMG is the least accurate but recharges ammo. The Heavy Pistol is the most damaging and accurate, and also has a 50% higher chance to inflict pain per attack, but has recoil and cannot be continuously fired at full accuracy. The SMG has the highest fire rate and mid-level damage, and serves as a more accurate, less damaging chaingun.
  • Slot 3: Shotguns. High burst damage but lower fire rate. Notably, the shotgun is now exactly 1/2 of a SSG in power and accuracy. Shotguns can also be swapped at any time during their reload, but the reload must finish once they're re-selected. For the shotgun, this means the weapon must be pumped. For the SSG, shells must be replaced and the weapon must be closed, but the weapon will remember what stage of reloading it was in when it was swapped (shells never eject twice, etc).
  • Slot 4: Huge DPS and stunlocking weapon. The chaingun is now quite unsuitable for sniping, but in exchange can tear through both ammo and demons at lightning speed. Not much can even bring itself to attack through the hailstorm of bullets the chaingun now fires. The chaingun also does extremely consistent damage per shot, allowing smart users to conserve ammo by remembering kill timings.
  • Slot 5: AoE weapon effective at all ranges. The rocket launcher also received a 50% damage buff on its explosions, and is very good at inducing fear. Rockets also accelerate in flight slightly, aiding in long-distance shooting.
  • Slot 6: Huge DPS Midrange weapon. The pulse rifle, which replaces the plasma gun, is great for DPS but fires slower than the chaingun and as such is not as good at stunlocking. Pulse bolts are also faster when initially fired and slow down in flight until hitting ~25u/s, discouraging sniping in favor of the rocket launcher.
  • Slot 7: High Cost Screen Clear/Panic Button. The BFG's workings have been changed dramatically. It now attempts to kill every enemy onscreen in order of beefiness, but can easily be less efficient than the pulse rifle if not used in situations that demand it. As of the newest version, it can also be charged up to use more ammo but also inflict more damage at once, though it still cannot inflict more damage in one shot than it could when uncharged. Instead, if there is an enemy with more than 2400 health, it will be hit with 2400 damage and the extra damage will target other monsters in view.

Other features

Babel also has a few other QoL features:

  • Autosave, by default every 3 minutes. Can be turned off if desired.
  • Health pickup splitting, If you grab a medkit the game will attempt to conserve any leftover healing into stimpacks.
  • Ammo splitting, as with health, ammo will attempt to break down into smaller pickups so you don't waste any.
  • Smart armor pickup, you will not pick up new armor unless it actually gives you a potential durability benefit. Pressing "use" while aiming at the armor will override this behavior. No more accidentally grabbing green armor when you wanted to keep blue.
  • Immensely configurable visual options, nearly every extra visual effect can be toggled, for those who need more performance or prefer a "purer" experience.
  • Low health warning built in, can be disabled.
  • Monster sprite fixes from the Doom and Doom 2 Minor Sprite Fixing Project (link) integrated in mod by default.
StatusReleased
CategoryGame mod
Rating
Rated 5.0 out of 5 stars
(5 total ratings)
Authordatanon
TagsDifficult, Doom, Singleplayer

Download

Download
ProjectBabel+_20230715193925.pk3 6 MB
Download
ProjectBabelNoTitlemap+_20230715193925.pk3 5 MB
Download
ProjectBabel_Monsters+_20230715193946.pk3 3 MB
Download
ProjectBabel_Weapons+_20230715193957.pk3 1 MB
Download
Babel Addons and Patches.zip 150 kB

Install instructions

Download the desired PK3, drag and drop into GZDoom to play. Alternatively, run through a launcher program such as ZDL or Rocket Launcher 2.

Development log

Comments

Log in with itch.io to leave a comment.

hey dev, is it possible to have the pistol, smg and psmg at the same time ? because it would be very helpfull, each one have a use

Alright, so after playing around with the latest version a bit, there's only a couple things I would consider changing.


1). The Imps' capacity for projectile saturation is still too high imo. The only nerf I'd suggest is bringing their fireball multishot down to 2 max - I think that would go a LONG way in making them less oppressive.


2). Overall, I like how the Cacodemons feel like a major threat and not just a flying bullet sponge.I'm also a big fan of how their dashes cancel their recoil - so there's fewer Cacodemons flying off to a different postal code. However, I think their spread shot is a bit too much. On certain maps it becomes nearly undodgeable.

If I could give a couple suggestions, maybe you could replace it with a shotgun spread of projectiles that has a vertical spread - play into how it's often hovering above you. Or maybe a projectile that increases in size with travel time - taking advantage of the fights with Cacodemons at longer ranges. Or maybe give them a railgun-type the player can narrowly dodge. That keeps them threatening at every range. I saw something like that from the Arachnotrons in Strange Aeons.

3). The current Rocket Launcher feels like it might be a little *too* good. But rather than dialing back the damage, it could be an interesting spin on the weapon to make it a bit slower between shots. Give it a reload that dials back the dps that way...

4). As good as the Chaingun feels, I think that its fire rate is too high. It often breaks encounters with how quickly you can mow down a target. It may burn ammo fast, but that's not terribly relevant if a level that gives you bullets and expects the challenge to be the time spent focusing down targets.

Aside from that, everything's flawless to me. I love this mod a *lot*.

(1 edit)

The current version of Babel (Monsters) (20230715193925) has no safety on the function A_CacoSpread and thus potential for VM aborts. The members mid, left, and right can be null since A_SpawnProjectile will fail to spawn a projectile if there is no room. Recommend you check if these exist before setting fields on them, e.g if(mid) { if(left) { ... } if (right) { ... } }

Hi, I was wondering if you could upload or send me in some way a link or guide on how I can make that fix myself (and this archvile bug people talk about) because I'm just not confident that we will get another update anytime soon.

(1 edit)

One possible solution below, as provided by a friend who instantly fixes the bugs when he sees them without even thinking. I've not seen the archvile bug yet, but if you can describe it or better yet provide a VM abort I can try to look into that too.

(1 edit)

Oh my thank you so much. The VM abort hasn't happened to me but you can see it mentioned just two posts below me. There is another one three posts below.

Was just checking in and I can't believe this WAD got updated! Fuck yeah!


I remember that my only serious complaint from the previous version of Babel was that the Imps were simply too aggressive - with close to Arachnotron levels of attack saturation making corridors horrid to face. Not sure if they've been nerfed, but I'm nonetheless excited to give the latest version a go!

(1 edit)

Hi, Babel is by far my favorite gameplay mod. Thanks for making it.

Recently I've had reoccuring crashes that seem to happen when fighting archviles. The only other mods I run with Babel are mapsets like the doomer board projects.

Here are some screenshots of the error from two different wads (DPB19 and DPB61). Hope this helps.


I'm getting repeated "address zero" crashes in the middle of fights.  They seem to coincide with archviles resurrecting monsters as I'm hitting them.  Example:

Games/GZDoom/doom.id.doom2.commercial/save12.zds)
MegaSphere!
Picked up an energy cell.
Picked up an energy cell pack.
Picked up an energy cell pack.
VM execution aborted: tried to read from address zero.
Called from SyncEnabledMonster.SyncFire at ProjectBabel+_20230715193925.pk3:actors/babel_monster_base.txt
Called from BabelMonster.TriggerSync at ProjectBabel+_20230715193925.pk3:actors/babel_monster_base.txt, line 549
Called from BabelBaronOfHell.StateFunction.31 at ProjectBabel+_20230715193925.pk3:actors/monsters/baron.txt, line 178
Called from BabelMonster.Tick at ProjectBabel+_20230715193925.pk3:actors/babel_monster_base.txt, line 218
Called from state BabelBaronOfHell.31 in BabelBaronOfHell
Called from Thinker.Tick [Native]

danaton, I just started preparing a New Review-Remake of your Mod and ran into some kind of bug.

Switching Projectiles Origins to Vanilla. Everything is fine with the Revenant: it shoots one missile. But the Arachnotron has not changed. I stayed with the same Triple Shots. Is this a bug?

(+1)

>Switching Projectiles Origins to Vanilla. Everything is fine with the Revenant: it shoots one missile.

Technically it shoots two missiles in exactly the same spot, it's a bit weird. This setting is purely for debugging and making compatibility work on maps that absolutely need the projectiles to appear at the original origin. In... 99.9% of scenarios, you should leave it off. The height check that makes the revenant fire the missiles from a bit lower if they would end up inside a ceiling works well enough.

>But the Arachnotron has not changed. I stayed with the same Triple Shots. Is this a bug?

No, it's the same as the revenant. Normally in the mod it fires from 18, 6, which is to say 18 units off the ground and 6 offset to the right. With the setting enabled, it fires from 32, 0 like it would in vanilla no matter what. Pic related, some code from the arachnotron.


This setting is only relevant where the difference between the "new" firing origin and the vanilla one would cause unintentional hits that wouldn't be possible in a map otherwise. For example, the logic for the arachnotron tries to see if shooting from 18, 6 will hit, and if it doesn't, it checks if 32, 0 will hit. If 32, 0 will hit but 18, 6 won't, it adjusts the offset to 32, 0 so it doesn't miss a shot that it would have landed in vanilla. However, the downside to this logic is that if a shot from 18, 6 will hit, but a shot from 32, 0 won't hit, you will get hit by a shot that might not have hit in vanilla.

After extensive testing I find that this usually makes zero difference except in cases where revenants can fire over a chest-high wall that they normally shouldn't. For maps with very tight balance, the setting exists to aid players in avoiding an unintentional difficulty spike from the result of a mostly cosmetic change.

(+1)

I see. I saw the code myself, so I just decided to clarify.

Oh, yes, the Review-Remake I've finished the remake! So I hope I was able to attract more Players to your Project!

Review in Russian

I was checking out "Babel" on "SCYTHE 2" to test the New BFG Feature, and I found something. BFG reacts only to Normal Monsters, but not to Custom Ones. Is your Mod sharpened only for WAD's with a "Vanilla" Bestiary?

And I was also trying to understand the work of a Loaded BFG Shot. Honestly... And why is it needed at all? Somehow, it was played normally without him.

I'm more concerned about her enemy tracking behavior. I had moments during the passage when there were Cacodemons and Cyberdemons around. I aim at the Cyberdemon, and the Big Ball flies away at the Cacodemon. Or at the End of E4 "Ultimate Doom In Name Only" BFG could not fix the target in any way to kill Spider Masterminds! Does it depend on the close distance to the enemy?

(+1)

>BFG reacts only to Normal Monsters, but not to Custom Ones.

Ah, you're right. It's a bit of an oversight now that I think of it. Technically, anything with custom monsters kind of needs a compatibility patch. I can probably make a Scythe 2 patch that will work, give me a little bit and I'll see what I can do.

The reason for this issue is because the BFG scans for "BabelMonster", not just "Actor" with monster tags, in order to speed up calculation and improve performance a bit, while also avoiding issues like accidentally hitting shootable actors. 

>I had moments during the passage when there were Cacodemons and Cyberdemons around. I aim at the Cyberdemon, and the Big Ball flies away at the Cacodemon. Or at the End of E4 "Ultimate Doom In Name Only" BFG could not fix the target in any way to kill Spider Masterminds! Does it depend on the close distance to the enemy?

Yes, to some extent. It tries to weight their health and distance to avoid the reverse situation where you would end up shooting some big target a mile away but not the thing in front of you. I don't remember having these issues when I did those maps, but I'll go through them again, maybe something strange is going on with the new aim logic. As of right now, in order to fire, you need to be able to "see" a monster (According to GZDoom) and also fire a straight ray from your player's center to the monster's center (the general firing line) before the target is valid. There's a bit of strange logic on that second one to get around being able to shoot through other monsters, so it's possible something weird happened there.

Anyhow, gimme a few hours and I'll test all this out.

Okay so I did the first one first, which was checking E4M9 on UDINO and, assuming you're talking about the two masterminds in the lava that shoot up at you near the entrance after you return, I could shoot them just fine with the BFG. See very poorly compressed video here https://files.catbox.moe/k46pvn.webm :^)

I also noticed a detail of the thing about trying to shoot the cyberdemon and hitting the caco, technically you should have hit both due to the way the gun works. If those two were the only things onscreen and only one was hit, somehow the BFG must have not seen a valid line to shoot the cyberdemon. I'd be very curious to know exactly where that happened, because I tried to find situations that could break the raycast aim check but it seemed very solid. If it turns out it's malfunctioning, I'll remove it right away until I can fix it.

Anyhow, time to see if I can make a Scythe 2 patch now.

(2 edits)

No, the BFG worked fine on E4M9.

It worked hard on E4M8 at the moment with Spider Masterminds (Right along the way). It seems like they were right in my sights, but something prevents the BFG from firing. Perhaps it's not even your fault, but the creators of "UDINO" (There may still be bugs).

And what about the Cacodemons and Cyberdemons was on "E3M7: Limbo" at the very end of the Map with a bunch of Pinky, Barons, Cacodemons and Cyberdemons (Yes, this is crazy! I know!). Although, if we take into account the mess going on there, it is not surprising that the BFG Balls can fly the wrong way. There were, of course, such cases somewhere else on other Levels, but I will not name them, since I did not remember.

(+1)

Okay, I'll investigate those a bit more tomorrow to see if I can figure out what was going on. Specifically I'm worried about the unshootable stuff more than the target selection for now. The selection algorithm isn't perfect, but having a slightly illogical target selection in a mess of demons is a lot less bad than not being able to shoot them at all :^)

Ideally, I'll figure out something for both issues. Maybe I can add some weighting for aim offset as well, so it preferentially shoots things near the center of the screen.

(+1)

So there was indeed a bug in the BFG aiming that you could see on that map, basically the raycast was shooting too low due to me failing to factor in the target actor height when doing a LineTrace. Anyhow, I've fixed it on my end, mostly. There is a sweet spot where you can accidentally shoot a wall if you're at the right incline/decline so I'm going to try to resolve that before releasing a hotfix. I'll also see about the FOV-offset target prioritization thing, but if that needs a lot of tweaking I'll patch this first then work on it since this is a more pressing issue.

Very good bug catch, thanks.

(+1)

Well, the patch didn't take as long as I thought. When loading scythe 2, load Babel, then Scythe 2, then the "Babel Compatibility Patch - Scythe 2.pk3" you can find in the "Babel Addons and Patches.zip" download and you should have Afrits and Evil marines that can be shot with the BFG9000.

The Afrit still fires baseline Revenant shots (because I'm not sure of the balance with the new ones) but otherwise they should also use the new projectiles and have particles and such. Evil marine doesn't have extra gore on XDeath but that's mainly because I'm not sure how to do it in a non-messy way in Decorate right now. Might change it later.

Wow! I read the latest changes and they are really global! I will definitely test the innovations.

About killing Bosses by a Horde of Imps, I noticed during the game "Ultimate Doom In Name Only". Although I noticed it even better at E3M1, when a bunch of Cacodemons filled up the Cyberdemon with their Balls.

I think I will test the Patch when I play the Fourth Episode.

(2 edits) (+1)

When I first played Babel, I thought it was pretty difficult. I played the latest version, now it has become much more pleasant to play. Therefore, I briefly posted my opinion (First on the Old one, and below in the comments I wrote changes to the Latest version).

In Russian: https://doomguy.ru/community/topic/sovremennyj-vanilnyj-doom-novyj-vzglyad-na-kl...

However, I noticed that when I completely clear the Maps, it is not possible to complete them 100%. It seems that either this is connected with the Resurrection of Monsters by Archvile, or with their Summoning by him. The maxisum increases, but the empty remainder remains.

(2 edits)

Huh, I'll have to fix that issue with the archvile. Thanks for reporting it, I somehow totally missed it. I've got a few other minor bugs reported as well so I might do an update soon.

Also, though I don't speak/read Russian, I'll go through that post with a translator later. Hopefully it doesn't mangle it too badly :^)

EDIT: Just found and fixed the bug, it's the spawner flames. If you don't want to wait a little while for a bugfix release, just add "-CountKill;" (without the quotes) underneath +THRUACTORS; inside the Spawner class in ProjectBabel+\actors\monsters\archvile.txt. Can't believe I managed to overlook that, good find on your part.

Honestly, I'm glad you answered! I've been playing with it a lot lately and I have a suspicion that I need to do a separate Review of your Mod. Like a remake.

Because I'm kind of ashamed of what I wrote earlier in that post. Then I played the earliest version and it was too difficult for me during the passage of "DBP №12: Into The Storm". Now several WADs have passed, it has become much more pleasant and fun to play with him.

(+1)

This is my favourite mod.

Thank you for your work datanon!

(+1)

Loving it! Nice work.

Thanks