Page 1 of 1

Helper Marines Redux

PostPosted: Fri Jan 17, 2014 5:04 am
by Hetdegon
Yet another helper marine mod/mutator. This time using entirely vanilla resources, one ACS script and DECORATE magic.
It should be compatible with every mod no matter how much it changes the player or enemy classes, and using a named script hopefully preventing
collisions with other mods.

I recently saw someone ask for how to extract Brutal Doom's AI marines, so decided to check them out. The code was a bit messy and hard to isolate,
so I wrote these from scratch using the same concept of teleporting by becoming an invisible, no-clipping actor, but using only vanilla resources and
modifying no classes. It's also much cleaner to look at and modify if you want.

This is mostly oriented to be used in single-player, so I am using current g/zdoom features without much regard for Zandronum
(you can get actual people instead, so no need for this). The marines behave like a drunk player would, but it's fun to carry in maps that
aren't Zandronum-compatible or just not possible to coop into them. They make for nice Invasion-style map (the few that exist out of Zandronum) companions.

The marine's power will be dependent on the amount of things in the map. This is a rough approximation, but you should get only marines up to lv.3
in regular Doom2 maps. But you will get lv.4 and lv.5 marines in slaughtermaps or monstrosities like Happy Time Circus 2.

To get your automatically-determined marine, type "summon aimarine" in your console. If you wish to have it spawn automatically, you can set the cvar
"aihelper_autospawn" to true. This is not default so it doesn't invade titlemaps like in Reelism. You can set the variable before starting the game and it'll autospawn from map01 onwards.

The helper is fairly strong and durable, and if killed it will respawn after about 30 seconds (double if xdeath), and they can use vanilla doom2 weapons.
You can override the automatic choice and spawn one of those with the code in parentheses.
Level 1 (summon doommarinel1_ai) will have a pistol and shotgun, no armor, low HP and speed.
Level 2 (summon doommarinel2_ai) will have pistol, shotgun and chaingun, green armor, a bit more HP and Speed, you'll see this guy the most in simple maps or beginning maps.
Level 3 (summon doommarinel3_ai) will have pistol, shotgun, chaingun and super shotgun. Blue armor, player-like HP and speed. You'll see this guy in later maps.
Level 4 (summon doommarinel4_ai) is mostly identical to lv.3, but adds plasma to his arsenal.
Level 5 (summon doommarinel5_ai) has the same weapons as lv.4, but has stronger armor.

The mod will become something else eventually, but wanted to make a release while it's still simple and using no resources or more complicated mechanics, so it's easier to autoload and forget about it, if desired.

Credit to the Brutal Doom devs for the concept and the "A_Recoil(-1)" trick. Everything else was written from scratch.

So far successfully tested with~
* DoomRL Arsenal and monster pack. No misbehavior whatsoever.
* Reelism. During debug they infiltrated the title screen.
* Brutal Doom. What inspired me to make these. Unlike the native ones, these live a vanilla life without fatalities and exploding into gibs.
* HAPPY TIME CIRCUS 2. It's surprising they can keep up. They seem to orient themselves better than myself in there.
* Psychic
* Wrath of Cronos. (won't scale as much as the player in power and there are summons so it's pointless to use...but if it works there, should work anywhere)

Known bugs:
* At times it'll teleport a bit too often, depends on level layout.
* It might get stuck once in a while after teleporting. Frag him or try to make it teleport again to fix.
* It might teleport inside the player. Punching it outside seems to be enough of a fix, but hasn't happened in a while.
* Using the "resurrect" command will pit them against you (fix: "give playertoken" in console). I consider this a feature though, as I would also shoot the undead guy suddenly coming back to life...

Updates:
1.0 "Vanilla" BETA 2
* Rewrote some of their logic to enable multiple marines at once, they will all stand still near the player instead of bouncing like inside a pinball.
* Rewrote their movement and targeting logic so they prioritize following the player over spreading hot lead.
* Made sure to remove a possible infinite loop.
* Improved the teleport beacon so it's faster, more precise and acts overall differently. The marines should reach the player much faster now.

Image
I didn't have something better for screenshots since they look like plain, old, boring doomguys, but the screenshot kinda shows it works in TCs without issue.
Please use the attached pk3 while I don't have a more official link. But since it's small enough...

Re: Helper Marines Redux

PostPosted: Fri Jan 17, 2014 2:46 pm
by -Ghost-
Pretty cool, one of my favorite features of BD actually was the helper marines. It can make some of the crazy, harder levels more fun to have some bots along for the ride if you're not cooping.

Re: Helper Marines Redux

PostPosted: Fri Jan 17, 2014 5:01 pm
by Triple S
Awesome, I'll definitely be using this.

As for Wrath of Cronos compatibility... it's probably possible to make a marine's stats scale with the player's level (I think you can use DamageFactor for that), but it'd require a separate patch. Something that reads the Level item in the player's inventory when the marine spawns and gives it a powerup based on a formula like Damagefactor == (1+(Level/100)) or something.

Re: Helper Marines Redux

PostPosted: Fri Jan 17, 2014 5:17 pm
by -Ghost-
The fairly fast respawn may make them a little too strong, but I haven't played through many levels with this yet. Since they keep coming back they kind of clear rooms out on their own fairly fast.

Re: Helper Marines Redux

PostPosted: Fri Jan 17, 2014 6:16 pm
by cortlong50
i was actually thinking of doing this for my mod (because the helper marines for brutal are all over the freakin place) and releasing ti as a standalone, if this is what im looking for can i include this in operation inhuman?
because ive been trying to over-write the brutal doom ones with one thats a little more toned down not so fast and ridiculous, but for some reason my marine wont go over the brutal doom one....its weird haha.

Re: Helper Marines Redux

PostPosted: Fri Jan 17, 2014 6:28 pm
by Triple S
After using them for a little while, I'm noticing that they're a little... insane.

No Rest for the Living, first map. AI marine dashes off and chainguns the shit out of everything, firing really freaking fast and just utterly destroying everything in his path. It's just like, "wow, calm down man"

Re: Helper Marines Redux

PostPosted: Fri Jan 17, 2014 6:38 pm
by -Ghost-
Yeah, even on hard maps like Mr. Chis Brutalized Overkill ones they just rip through everything. :P

Re: Helper Marines Redux

PostPosted: Fri Jan 17, 2014 7:27 pm
by Hetdegon
-Ghost- wrote:The fairly fast respawn may make them a little too strong, but I haven't played through many levels with this yet. Since they keep coming back they kind of clear rooms out on their own fairly fast.


Originally they respawned at 44 seconds on DEATH and 88 seconds on XDEATH. I shortened it a little bit so you could actually see them respawn in smallish maps, but I guess I can restore the time to 44/88s or have it scale.

Triple S wrote:After using them for a little while, I'm noticing that they're a little... insane.

No Rest for the Living, first map. AI marine dashes off and chainguns the shit out of everything, firing really freaking fast and just utterly destroying everything in his path. It's just like, "wow, calm down man"


Noted, I made them as twitchy and aggressive as possible so they resembled a player more than a bot. I think I can shorten their enemy location cycles so they prioritize keeping up with the player even more. I'll test it out later today.

cortlong50 wrote:i was actually thinking of doing this for my mod (because the helper marines for brutal are all over the freakin place) and releasing ti as a standalone, if this is what im looking for can i include this in operation inhuman?
because ive been trying to over-write the brutal doom ones with one thats a little more toned down not so fast and ridiculous, but for some reason my marine wont go over the brutal doom one....its weird haha.


Indeed you can, the code is even commented for ease of use, feel free to modify at your leisure. Just drop a mention if you feel like it.

Okay this is pretty nice feedback, I was testing the helpers in the most aggressive maps possible (going into vanilla maps to test their teleporting and levels), so I'll try to balance them a little further and post the results later. Using Deus Vult as standard testing field probably didn't help, heh!


As for features, I'd like to know, would a version for Heretic be considered useful?

Re: Helper Marines Redux

PostPosted: Fri Jan 17, 2014 7:50 pm
by cortlong50
once i get one thats extremely toned down and slow (i want them to be a little more realistic and not so jumping up 56 high surfaces) ill send it to you and you can host it as a toned down version as well, if youd like.

Re: Helper Marines Redux

PostPosted: Fri Jan 17, 2014 8:04 pm
by Hetdegon
cortlong50 wrote:once i get one thats extremely toned down and slow (i want them to be a little more realistic and not so jumping up 56 high surfaces) ill send it to you and you can host it as a toned down version as well, if youd like.

Oh thanks but don't worry, I was about to get them readjusted right now. I needed a bit of feedback before wrapping up.
On that matter, I gave them 56 jump range kind of arbitrarily, I've been trying to find out how much a player can jump, but I was unable to find that number around. If you know the jump height for a standard unmodded player let me know and I'll change it immediately. It's been bugging me you know.
EDIT: Actually scratch that, I'll just make an empty map with a raised sector and try until I find out, should have done that from the start.
EDIT2: Heh, will you look at that, players actually jump 57 units, I was almost spot-on. Well, I guess you can tailor it to your needs once toned down in other areas.

Still, I am going to keep one type of marine that is as twitchy as they are now. For invasion stuff you know. I'll probably have it as an isolated class to spawn from console at will, like "doommarine_AI_invasion" or something.

Re: Helper Marines Redux

PostPosted: Fri Jan 17, 2014 8:37 pm
by The Zombie Killer
This is absolutely awesome! I love it!
Mind if I use a slightly edited version of this in my mod?

Re: Helper Marines Redux

PostPosted: Fri Jan 17, 2014 9:32 pm
by Hetdegon
The Zombie Killer wrote:This is absolutely awesome! I love it!
Mind if I use a slightly edited version of this in my mod?

Please do. I am making an update with more fierce pursuit of the player, which should keep them from going commando too often.

Re: Helper Marines Redux

PostPosted: Sat Jan 18, 2014 2:33 am
by Hetdegon
Code: Select allExpand view
1.0 "Vanilla" RC1
* Rewrote some of their logic to enable multiple marines at once, they will all stand still near the player instead of bouncing like inside a pinball.
* Rewrote their movement and targeting logic so they prioritize following the player over spreading hot lead.
* Made sure to remove a possible infinite loop.
* Improved the teleport beacon so it's faster, more precise and acts overall differently. The marines should reach the player much faster now.


Welp, tried to address some of the main issues with them. This version should be fairly balanced, so I left the respawn time as 30/60.
I reworked a bunch of little things and tests were fairly satisfying, so unless there's some glaring bug I'll wrap it up as done and move onto other adventures.
The code should be easy to modify, let me know if there's any piece of code needing a comment or two, feel free to tailor it to your needs, use in other mods, or just take pieces of code you like. (More than asking for credit, I'd appreciate if you can at least keep the indentation!)

To get this version just get the attached file on the top post, it's the new version now.