Skip to content

Releases: inkoalawetrust/Smart-Marines

Version 1.2.2 release

08 Jun 20:34
06d133c
Compare
Choose a tag to compare

This is largely an optimization and cleanup update that I had planned for when GZDoom 4.8.0 comes out. It uses 4.8.0's new features (My own two new flags, and the new CHF_DONTIDLE flag.), along with some other optimizations that aren't specific to this brand new version of GZDoom. This will hopefully make the marines produce less overhead, and make their code cleaner than before. In addition, it also features an overhaul to the marines' command system, that you can read about inside Document.txt.

  • Bumped minimum ZScript version from 4.7.0 to 4.8.0.
  • Overhauled the friendly marine commands, now that my DONTFOLLOWPLAYERS flag is in GZDoom. The marines' commands are now finally split between a wandering command that actually makes them wander around without following the player, and a following command that makes them follow the player that triggered it (If the player is friendly). The stand still command now also makes marines go back to standing still instead of idling. The document file has more info on how the commands work
  • Now that my SEEFRIENDLYMONSTERS flag has been added to GZDoom itself. RaveYard's player ally seeing code has been removed, simplifying the code and making it up to 80% faster, due to the reduced overhead of doing this functionality natively instead of through ZScript.
  • The marines' NPC seeing range has been reduced from 8196 map units to 6144, and their player hearing range extended from 3072 to 4096. The player seeing range is still 8192 map units.
  • Replaced the stupid If switch in the See state with just a single A_Chase call with CHF_DONTIDLE.
  • Changed the target switching behavior of marines on turrets, this will hopefully stop them from not reacting to enemies.
  • Removed YandereDev code from GrenadeAttackDecision() and SM_TurretUseDecision().
  • Replaced all Distance3D calls with Distance3DSquared, this will hopefully provide performance improvements when doing distance checks, especially on the two aforementioned functions above.
  • Updated credits and document.

Note: The demo map has not been updated.

Version 1.2.1 release

02 Jun 09:51
Compare
Choose a tag to compare
  • Added a new SM_NoCrouchZone actor, located under the ZDoom category, more information on it can be found inside document.txt.
  • Hopefully fixed most instances of the marines trying to dodge non-projectiles that are marked as missiles, by making only missiles with a damage property higher than zero be pushed in the ProjectileList array.
  • Fixed a bug where marines would take cover behind windows with hitscan blocking window linedefs, making them unable to do anything besides sit in place until their target got behind the windows.
  • Changed the grenades' timer to decrement in Tick() instead of inside the grenades' spawn state.
  • Grenades are now marked as having exploded (Meaning marines don't need to fear them.) about half a second after exploding, instead of being marked as such right after A_Explode is called.
  • The grenades' bounce sound now stops once it has lost enough momentum, and when the grenade is close to exploding, it will begin to play a beeping sound.
  • Add a gib death for the marines when crouched down.
  • Added the MoveWithSector flag on the empty magazines and grenade pins, now they shouldn't be stuck in mid air when they drop, and the sector they are on moves.
  • Fixed a bug on the vanilla rifle that made the zooming in and out animation break if the player died while it was playing.
  • Updated document.

Note: The demo map has not been updated.

Version 1.2.0 release.

29 May 06:37
Compare
Choose a tag to compare

This is the second major update to the marine post 1.0, it includes the ability for marines to fire in mid air while dodging, a brand new dynamic cover system that doesn't rely on pre-placed points, and allows marines to take cover behind any sufficiently good level geometry or object. Liquid explosions and splashes for the grenades and marines' rifles and much more. The demo map has also been updated to demonstrate these new major features.

  • Marines can now dynamically take cover and crouch behind level geometry and shootable actors. And will dodge projectiles by ducking when in cover. They will go out of cover if their target gets behind their cover, or they haven't seen an enemy in a while. More information on how it works can be found inside Document.txt
  • Marines will now have a chance to shoot their gun while dodging in mid air. Normally they will shoot at the shooter of the projectile they are dodging, but if the shooter is an ally, or the projectile has no target pointer to their shooter. Then they will fall back to shooting at their target, if any.
  • Replaced the A_CustomBulletAttack() calls with a custom hitscan function that allows me to offset the position of the rifle hitscans.
  • Added some randomization to the directions at which marines throw empty magazines, I mostly did this so they don't all end up falling in the same place while they are behind cover.
  • Added an obituary for when the marine kills a player with a grenade.
  • Added liquid explosions to the grenades, when a grenade falls on top of a sector or inside a swimmable 3D floor with the default liquid flats, it will play an appropriate liquid explosion sequence. You can extend what textures will trigger the different liquid explosions by going inside the class definition for SM_LiquidTextureNameList.
  • Added splashes produced by marine hitscans hitting liquid flats, they use the same lists as the grenades, and display different colored splashes for each flat. The splashes only work with solid sectors and 3D floors.
  • Anything within 24 map units of a grenade will now take full damage from the blast, with no damage falloff.
  • Added impact sounds for machine gun and rifle bullets.
  • Increased the grenades' speed from 24 to 30, now the marines' grenades don't fall as short when they throw them.
  • Grenades no longer roll once they've lost enough momentum.
  • Finally stopped marines from running away from grenades that have already exploded. But are still producing a fireball or splash.
  • Grenades now have different blast radii (But retain the same amount of damage.) depending on where they exploded, ground explosions have an average blast radius, air explosions have a higher blast radius, and liquid explosions have a lower radius.
  • Added a new random death animation for the marine. Along with a new crouch death, for when the marine dies while in cover.
  • Shrunk the visual scale of the empty magazines the marines drop when reloading. Along with the size of its' hitbox, and the grenade levers' hitbox.
  • Fixed a bug that made dormant marines able to dodge projectiles.
  • Updated credits, readme, document, and design document.
  • Easter eggs

From now on I don't think I'll be updating the PB compatible version of the marine.

Version 1.1.1 re-release.

20 May 19:38
Compare
Choose a tag to compare

This is a fix for the normal version of the mod. Which had an Archvile replacement left in that I forgot to remove. Which I had written as an example for an article on the ZDoom wiki.

1.1.1 changelog:

  • From now on, the releases section will also include a demonstration map that I made. Which showcases most of the marines' features.
  • Replaced User_NoDodging with the more configurable User_DodgeRange, which allows you to change the range at which marines can see and dodge projectiles, setting it to -1 turns off dodging.
  • Hostile marines now dodge any projectile that's not on the IgnoredProjectiles list, including ones fired by other hostile monsters. Since unlike friendly ones, hostile monsters don't bother to avoid friendly fire by default.
  • Fixed a bug that made it possible to command dormant marines, and make marine alerts able to wake up dormant marines.
  • Fixed the range at which marines check for projectiles, it should've been 384, not 284.
  • Projectiles are now removed from the ProjectileList dynamic array when they are entirely removed from the map too. So if a projectile is removed before AActor::Die() is even called. The pointer to that projectile will be removed from the array.
  • Updated Document.txt, it now includes documentation on the specifics of the marines' projectile dodging behavior.

Version 1.1.0 release.

16 May 20:55
c05a922
Compare
Choose a tag to compare

This is the first semi-major update for the mod since the 1.0 release, I finally thought of a way to get the marines to detect most projectile types without needing to make invasive changes to the game that break compatibility. So now marines can dodge projectiles.

Don't expect many more updates like this though. I have already had to rewrite it 6 times over the course of a year, just so that it would function so I could've finished the 1.0 release. So at this point, I would much rather be doing literally anything else at all, than further work on the same NPC I've been working on since early-mid 2021.

  • Added the ability for marines to dodge projectiles. Marines will not dodge projectiles fired by allies, unless the projectile would harm them too much, or is part of the always avoid list. They will also avoid strafing in directions with nearby ledges or walls or the like. The lists of projectiles they always ignore and always avoid can be found and extended in the SM_FindNearbyProjectile() function.
  • Added a separate obituary message for when the player is killed by a marine on a turret.

Note:
For the PB version of the mod, the projectile dodging has been disabled, because the projectiles in PB are just so much faster than vanilla. The marines are not very likely to get out of the way of projectiles, even after I made several changes to make it easier for them to dodge than in the normal version. On top of that, the dodging code is oftentimes confused in PB. Because the mod marks a lot of non-projectile actors as projectiles.

Project Brutality version:

  • Added a damage factor for the Nailgun's damage type.

Version 1.0.3 release

13 May 17:14
Compare
Choose a tag to compare

From now on, both the PB and normal version of the mod will be released together. If there's any differences between the normal and PB version besides keeping the latter up to date with the former. Then they will also be listed below.

  • Bumped the minimum ZScript version needed from 4.3.3 to 4.7.0. Hopefully this will lead to less bug reports from people running older GZDoom versions.
  • Fixed a VM abort caused when the marine checked a player who has no weapon at all.
  • Fixed some typos inside of the readme and document.
  • Added possible fix for a bug that seems to make non-friendly marines start shooting at other hostile monsters. Even though the marines should avoid infighting.

Project Brutality version:

  • Marines no longer receive damage from the players' taunts.

Version 1.0.2 release.

08 May 04:49
Compare
Choose a tag to compare
  • Fixed a bug that made the marines start shooting a few times, even when an actor or hitscan blocking line was obstructing their target.
  • Fixed the marines' alerting, now marines will also alert each other if they were hurt by a player too, and not just other monsters.
  • Removed reference to a scrapped taunt feature.
  • Added license.
  • Updated credits and document.

Fixed Version 1.0.1 release for Project Brutality.

08 May 00:57
Compare
Choose a tag to compare

This is a minor update that fixes a bug that prevented the mod from loading up in PB, due to leftover references to the rifle the marines normally drop. I've also fixed the command sound not playing, and halved the amount of damage they take from some of melee attacks of the axe and chainsaw.

Version 1.0.2 release for Project Brutality.

08 May 04:50
Compare
Choose a tag to compare

This is the Project Brutality version of the 1.0.2 update to the marines, bringing over the fixes introduced in it.

Version 1.0.1 release for Project Brutality.

07 May 06:53
Compare
Choose a tag to compare

This is an alternate version of 1.0.1, that has been modified and balanced to make the marines work well with Project Brutality 3.0. The marines do work right off the box with PB or BD, but they are not balanced for the mod or anything like that. This fixes that.

  • Marines use the right damage types to be able to trigger the proper monster deaths in PB. Such as using the ExplosiveImpact damage type for their grenades, to blow the mods' monsters to pieces. Instead of using their generic deaths.
  • They have higher health and do more overall damage, so they won't be easily killed by the mods' custom enemies.
  • Their grenades replace the explosion sprite used in the normal version, with the explosion effect of PB's grenades.
  • Marines use PB's bullet tracer effects when shooting.
  • Marines can also run from grenades thrown by the player or former humans, in addition to running from their own grenades. However, this requires adding a single line of code in Project Brutality to work, look inside the README.txt file inside the PK3 for what you need to do.