Page 1 of 2

[Release ver. 1.1] RRWM

PostPosted: Sat Feb 09, 2019 10:29 am
by Player701
RRWM: Modern approach to classic gameplay

Nutshell

  • Vanilla-like weapons with reloading capability
  • Slightly improved special effects
  • Lots of extra options to tweak the gameplay to your personal preference
  • Highly customizable HUD (also available standalone)
  • Multiplayer support
  • Compatible with mostly any PWAD that doesn't replace existing weapons or items (see below for details)

Download the latest release (1.1)
Download the standalone HUD package (to use the HUD without RRWM, compatible with any mod and other games)

NB: Requires GZDoom 4.3.1 or later! (Latest version recommended)

Bitbucket repository (Development builds might be UNSTABLE and/or savegame-incompatible, use at your own risk!)

Spoiler: Obligatory screenshots



Core features

RRWM is a weapon mod that provides direct replacements for vanilla Doom weapons that function more or less the same, except for the reloading feature. It is intended especially for those who want a largely familiar, classic Doom experience, but also something new at the same time. The need to reload promotes a somewhat more cautious and less aggressive play style.

Additional changes to the gameplay include:

  • The chainsaw now has an ammo reservoir that drains over time as long as its engine is turned on. Use the reload key to start and stop the engine, and make sure to keep it off if you don't want to alert any enemies. When the engine is stopped, the ammo supply regenerates (it does that regardless of whether you have the chainsaw selected or not). Picking up another chainsaw immediately restores your ammo supply to maximum.
  • Berserk has been replaced with Adrenaline. In addition to increased melee damage that lasts until the end of the current level, it also makes melee attacks much faster and absorbs 50% of all incoming damage after it has been reduced by armor. This effect lasts for 30 seconds and can be extended by picking up additional Adrenaline items. In an homage to Quake II, Adrenaline also boosts the player's normal maximum health (reachable with medikits and stimpacks only) by one extra point, up to 200.


Optional features

RRWM also provides several optional features that can be adjusted to tailor the gameplay experience to your liking. Most of the core features are also customizable. All configuration is done through a special options menu, accessible from the very bottom of the main GZDoom options menu:



Some of the options available in the menu only provide visual enhancements, while others have a certain impact on the gameplay. You can learn exactly what an option does by accessing its in-game help page by selecting the option and pressing F1.

Note that there are several features that can only be customized before starting a new game. This is done for a variety of reasons, but mostly to avoid needless complication of the code by making it account for sudden changes of the setting. The corresponding options are called "persistent" and have their own group in the options menu, so it's very easy to recognize them. Think of each of these options as of a mini-addon. Just don't forget that you have to adjust them before you start a new game (e.g. on the title screen).


HUD

RRWM provides a replacement for the standard fullscreen HUD built into GZDoom. Due to some aspects of the reloading system implementation, a custom HUD is required to display the amount of ammo in the current weapon's clip. RRWM's HUD is highly customizable, multiplayer-ready, and is also available as a standalone package.

If you don't like the new HUD, the original Doom status bar, rewritten from scratch to support RRWM weapons, is provided as an alternative. Failing that, it is also possible to use GZDoom's "Alternative HUD", updated for RRWM to provide a clip counter. Third-party HUDs will not work properly with new weapons and are thus not recommended for use.


Multiplayer

RRWM fully supports multiplayer and has been extensively playtested in cooperative mode. Competitive modes are supported as well but may have balance issues.

If your network game de-syncs, verify that everyone is running the same GZDoom version and loading the same files in the same order. If you haven't found any inconsistencies, please report a bug. Other multiplayer glitches not related to synchronization should also be considered bugs and reported. Please see the "Reporting bugs" section below for how to report bugs.


Compatibility

RRWM is guaranteed to be compatible with vanilla and limit-removing maps. Please report a bug if you are experiencing issues. If there is also a DEHACKED patch, please read the rest of this section for further information.

RRWM will probably work with other mods that replace existing enemies. Note that RRWM options that affect monsters will obviously do nothing if these monsters are replaced by a third-party mod. Starting from version 1.1, RRWM also detects DEHACKED modifications to monsters and allows them to take priority over its own replacements. Please report a bug if you are experiencing compatibility issues with a monster-altering DEHACKED patch.

RRWM will probably work with GZDoom-specific maps unless they have ACS scripts that manipulate the player's inventory. Unfortunately, it cannot be fixed in RRWM because the corresponding ACS functions do not take replacements into account. Custom inventory items, weapons, and enemies that do not replace any existing actors should not interfere with RRWM. Please report a bug if you are experiencing compatibility issues with a GZDoom map.

RRWM is not guaranteed to be compatible with other mods that replace existing weapons or items. This also applies to DEHACKED patches. Please do not report bugs if you encounter compatibility issues with such mods, unless you are able to reliably reproduce these issues without them.


Recommended map packs

Any PWAD with vanilla or Boom-compatible maps will generally play well with RRWM. However, "slaughtermaps" will become a lot more difficult since you can no longer keep shooting non-stop until you run out of ammo. The need to reload can be a serious tactical disadvantage when you don't have enough room to retreat; because of this, it is recommended to avoid levels that unleash numerous strong enemies on the player in confined spaces. Though if you still want to try, no one is stopping you - but if you play without saves, you're in for a lot of frustration. Well, you practically asked for it, didn't you?

RRWM has been playtested in single player on the Ultra-Violence diffculty with the following IWADs and PWADs, which have been found to be completable without the use of cheat codes:

Spoiler: Open list


Additionally, the following PWADs are recommended if you're looking for a map pack to try out RRWM with:

Spoiler: Open list



Reporting bugs

Despite countless hours invested into playtesting, it is still possible that you may encounter a bug. If it looks to you that something in RRWM is not working as it should, then it's probably a bug and you're encouraged to report it so that it can be fixed.

When reporting bugs, please follow the standard GZDoom bug reporting guidelines. Due to the nature of this project, it's usually not necessary to construct a test map for each report. However, please provide a detailed list of reproduction steps - what exactly should I do to experience buggy behavior? Screenshots and videos are optional and not a substitute for a proper testing procedure. If you are playing with some other mod (mind the compatibility notes above!), please check whether the issue appears only when you include that mod, or if the issue can be reproduced without the mod. Please provide links to all third-party content you are using, including the map pack (if any).


Sprite contributions

Spoiler: If you are a sprite artist and want to help this project, please read



Credits

RRWM uses many third-party assets, most of which are believed to be made by the following people:

Spoiler: Open list


RRWM also uses some assets which originally appeared in the following commercial games:

Spoiler: Open list

For the detailed credits list (with all the asset names included), please refer to credits.pdf in the release archive, or CREDITS.md in the Bitbucket repository.

Special thanks to the GZDoom development team and to Graf Zahl personally for making it possible to create RRWM.

Re: [Release ver. 1.0] RRWM

PostPosted: Sat Feb 09, 2019 4:09 pm
by Nems
Oh hey I remember this! I used to play with the original all the time. :D Gonna have to give this version a spin. :3

Re: [Release ver. 1.0] RRWM

PostPosted: Sun Feb 10, 2019 8:01 am
by Player701
Nems wrote:Oh hey I remember this! I used to play with the original all the time. :D Gonna have to give this version a spin. :3

Hello there! Nice to hear that someone was actually interested in the old release.

Well, this new version should play mostly the same, except that it should be more stable and less buggy, and there are a few subtle improvements here and there. For example, monsters can now reload weapons when they are not completely empty, and you can now control whether your weapon will reload automatically, and so on.

Unless someone wants to contribute sprites (see the corresponding section in the first post for details), further development will be focused solely on improving stability and fixing bugs. So far I've done enough playtesting to consider the project ready for a release, but of course I might have missed something. If this is the case, then I will probably do a new minor release in the future.

Re: [Release ver. 1.0] RRWM

PostPosted: Sun Feb 10, 2019 12:31 pm
by TDRR
Can you add support for Skulltag Emulation? Just replacing the Railgun, BFG10k and Grenade Launcher with any other weapon will work.

Re: [Release ver. 1.0] RRWM

PostPosted: Sun Feb 10, 2019 2:27 pm
by Player701
TDRR wrote:Can you add support for Skulltag Emulation? Just replacing the Railgun, BFG10k and Grenade Launcher with any other weapon will work.

I'm not quite sure what Skulltag Emulation is, but I guess it probably involves Skulltag weapons. There is nothing in my mod's code that would prevent it from being compatible with third-party weapons, but the general idea is to provide a 1-to-1 weapons replacement of the vanilla armory. For any other weapons, it is not possible to decide exactly what they should be replaced with. Providing replacements for third-party weapons is therefore outside the scope of this project.

However, you can make your own addon where you can replace any weapon with any RWWM weapon as you see fit. You can even add your own weapon complete with a reloading capability, which leverages the methods of RRWM's base reloadable weapon class. There is, however, no guarantee that the API will not be changed in the future.

BTW, since you've mentioned railguns: it should be noted that there actually is a railgun in this mod. It was originally implemented in the very first release (which is no longer around); it was left in because it was fun doing some playthroughs with it. It can be enabled in the options menu to replace the rocket launcher, but it can and will make some maps unwinnable (think Doom II MAP30), since you no longer have any weapon that does splash damage. There is a fair warning about it on the corresponding option's help page, so don't be surprised. The scope sprites are also terrible because they're the only ones I drew myself :P (it was done ages ago but I don't think I can do any better these days).

Re: [Release ver. 1.01] RRWM

PostPosted: Fri Feb 22, 2019 2:13 am
by Player701
RRWM has been updated to version 1.01. Download the new release HERE (the link in the first post has been updated too).

This is a bugfix update. The main goal is to prevent RRWM from breaking when this GZDoom bug is eventually fixed. Errouneous code in the mod has been fixed and shouldn't cause any problems when checks for const-correctness are fixed or properly implemented in GZDoom.

In addition to the above, this update fixes a small bug which prevented smoke from being properly crushed by closing doors and descending ceilings.

NB! Due to some refactoring performed as part of fixing the first issue, certain save files made with version 1.0 are not backwards-compatible with this version. Before loading an old save file, ensure that the level does not contain any of the following:

  • casings that were spawned less than 3 seconds ago;
  • rockets in flight (applies to RRWM rockets, vanilla rockets are OK).
If anything from this list is present in the level, then an attempt to load the save file will result in a VM abort due to a read from address zero error. However, if there are currently no such objects on the map, the save file should work fine, and the warning message that will appear on the screen can be safely ignored.

Please report any bugs or other inconsistencies if you notice any. See the first post for details on bug reporting procedures. Thank you very much :)

Re: [Release ver. 1.01] RRWM

PostPosted: Fri Feb 22, 2019 6:24 am
by StroggVorbis
I didn't playtest this excessively, but from what I gathered it works excellently.
The only thing that sticks out is that the shotgun is always pumped after reloading. Realistically, it should only do so if reloading from a completely empty mag tube, because pumping after a shot already chambers in a new shell. Doing this twice in succession would waste a shell.

Re: [Release ver. 1.01] RRWM

PostPosted: Fri Feb 22, 2019 6:35 am
by Player701
Yeah, it has always been like that for historical reasons. This mod is not aiming to be 100% realistic; however, the current behavior may be changed in a future release. Thanks for pointing it out!

Re: [Release ver. 1.01] RRWM

PostPosted: Sun Mar 03, 2019 11:33 am
by Player701
DabbingSquidward, could you please check out this experimental build? The shotgun reloading sequence has been reworked so that the pumping animation now plays only when reloading from an empty tube. The animation is played after loading the first shell so that the sequence can be interrupted later at any time without the delay incurred by it (i.e. if you have to fire immediately). Is this what you had in mind? Be warned that save files from old versions will not work correctly in this experimental build (it will be addressed in the release version however). Glitches may also occur since the new feature hasn't been thoroughly playtested yet.

Re: [Release ver. 1.01] RRWM

PostPosted: Sun Mar 10, 2019 1:23 am
by StroggVorbis
Just tested the latest build and from what little I have tested, it works wonderfully!

But this isn't all, I do have some suggestions for future versions:
-Options to make the pistol/chaingun, Shotgun/SSG and Plasma Rifle/BFG all have seperate ammo.
-An option to make the pistol 100% accurate and as fast as you can pull the trigger.
-Option for square or smooth casing smoke particles.
-An option for all hitscan weapons to have "squared" spread. As in, 2.8125 horizontal; 2.8125 vertical instead of 0 vertical; 5.625 horizontal, and 9.1735 vertical & horizontal for the super shotgun.

Last but not least, dunno how you feel about this, but since all weapons have, apart from added reloading, vanilla timings, this does make them slower. How about an option to increase the firerate to counterbalance the need of having to reload?

Keep up the good work!

Edit: An option to make health and armor deplete at the same rate. To find out the required Armor.SavePercent, just calculate "Armor.SaveAmount / (Player.MaxHealth + Armor.SaveAmount)".
-LightArmor: 50 / (100 + 50) = 33.335%
-StandardArmor: 100 / (100 + 100) = 50%
-HeavyArmor: 200 / (100 + 200) = 66.667%
-SuperArmor: 300 / (100 + 300) = 75%

Alternatively, make the SavePercent dependent on the SaveAmount itself, e.g. the more armor you have, the more protective it is, the less you have, the less it absorbs. Just like HeXen.

Re: [Release ver. 1.01] RRWM

PostPosted: Sun Mar 10, 2019 1:51 am
by Player701
Thank you very much, I will do more extensive playtesting when I have the time and then I can do a new release. This could take a while so unfortunately I cannot promise anything... didn't have much time to work on this lately.

As for your suggestions, most of them are valid but not everything can be implemented that easily. For example, adding separate ammo types is not difficult in itself, but remember that we only have 4 ammo types in vanilla, so we can't provide direct 1-to-1 replacements. I also need to get sprites for those extra ammos from somewhere. Same if you want new smoke effects. I wish I were a sprite artist, but sadly I'm just a coder.

Also, the pistol (and the SMG!changun, for that matter) is already 100% accurate as long as you don't hold down the trigger when you fire. This option emulates vanilla behavior and is called "Enable sniping". It is enabled by default and can be changed at any time during the game.

As for the timings, they haven't bothered me in the slightest in all my playtesting sessions. Maybe they indeed should be reduced a bit, but implementing this as an option will be difficult. Therefore, I think it's best to leave everything as it is, at least for now. This is a mod after all, and it doesn't have to play exactly like vanilla (though I do want it to be pretty close to that), so consider this a kind of an extra challenge. :P

Re: [Release ver. 1.01] RRWM

PostPosted: Sun Mar 10, 2019 2:13 am
by StroggVorbis
About the ammo types, here are some ideas:

-Clips, shells, cells are pIstol, shotgun and plasma rifle ammo while clipboxes, shellboxes and cellpacks are chaingun, SSG and BFG ammo respectively.
-Small and large ammo pickups have an equal chance of being ammo for one or the other weapon. As in, clips can be 9mm mags for the pistol or 5.56 for the chaingun, same for the clipboxes, either 9mm or 5.56. If possible, add a slider where you can change the probability for one ammo type spawning over the other, default 50%.
-Small & large give both ammo types. e.g. A clip gives 10 pistol and 20 chaingun bullets (5 and 10 if dropped from an enemy, or zombiemen drop pistol ammo and commandos drop chaingun ammo).

Re: [Release ver. 1.01] RRWM

PostPosted: Sun Mar 10, 2019 2:26 am
by Player701
This kind of stuff would affect the gameplay much more severely than timings, but maybe I can consider it later if I still have an interest to work on this. Thank you anyway, ideas are always welcome. :)

Re: [Release ver. 1.02] RRWM

PostPosted: Mon Mar 25, 2019 11:11 am
by Player701
I thought I'd wait for a new GZDoom release before doing this update, but then I realized that I could leave out the latest changes for now and do another release later. And so...

RRWM has been updated to version 1.02. Download the new release HERE (the link in the first post has been updated too).

NB: This is the last version targeting GZDoom 3.7.2. Newer versions will only support further GZDoom releases starting with the upcoming one. The new localization features introduced in development builds of GZDoom necessitate some changes in RRWM's UI code to display some parts of the menu properly. Unfortunately, these changes will make RRWM incompatible with GZDoom 3.7.2.

This is a minor release with a few small improvements and fixes. Save files made with 1.01 should load and work fine with this new version. The warning message that will appear on the screen can be safely ignored.

Changelog:

  • Added realistic shotgun reloading mode (idea by DabbingSquidward), which can be enabled via the RRWM options menu. Note that it is not possible to change the mode on the fly for technical reasons, you should set it before starting a game. When loading a save from 1.01, the value of the new setting will of course be off, so you will have to start a new game if you want to experience the new mode. To be consistent with the default value of the setting, the value of the corresponding CVAR is also off by default.
  • Added a user setting to allow precise control of fully automatic reloads. In short: "full auto" mode can be made to behave like "semi-auto" if the amount of spare ammo you have is less than a configurable threshold value. Please refer to the in-game help pages for further information - remember that every setting in RRWM has a help page! Just go to the menu, choose an option and press F1.
  • Lowered the maximum value of the "Debris queue size limit" setting from 10000 to 2000.
  • Added a gap in the main options menu between the RRWM options submenu item and the rest of items. This way it should be easier to find the RRWM options menu.
  • Added a random factor that affects the X-coordinate of particles spawned by plasma balls, resulting in a uniformly distributed particle trail produced by a stream of balls.
  • Smoke now dissipates faster when casings are retained inside the SSG before reloading.
  • Removed a duplicate Shotgun HUD sprite and merged HLD2 and OSHT sprites into a single sprite series.
  • Made the "Air" string displayed by the HUD air supply indicator localizable.
  • Moved the version check routine in RR_LocalEventHandler from OnRegister to a separate method invoked externally by the global event handler.
  • Changed the persistent settings system to support loading of save files from old versions, where some of the settings might not exist yet.
  • Added a note to the readme regarding compatibility with monster-altering DEHACKED patches (better safe than sorry).
  • Some minor language fixes.
  • Fixed: The delay value used for calculating smoke count of Super Shotgun casings was incorrect.
  • Fixed: The Super Shotgun was missing a SlotNumber assignment (applicable when playing with custom player classes).
  • Fixed: The version check warning message concerns the console player only.
  • Fixed: one of the calls to frandom in RR_Spark::SpawnRandomizedAt lacked the RNG name.
  • Fixed: (HUD) The extra vertical offset for fonts should respect the current Y origin of drawing.

This version has been playtested with the following WADs:


Re: [Release ver. 1.03] RRWM

PostPosted: Sun Apr 07, 2019 3:13 am
by Player701
RRWM has been updated to version 1.03. Download the new release HERE (the link in the first post has been updated too).

NB: Starting from this release, GZDoom 4.0.0 or later is required to play. This requirement is necessary due to some changes in GZDoom's menu code that RRWM now makes use of. Supporting both old and new versions is theoretically possible but it would incur extra maintenance costs and would also have an impact on the stability of RRWM's code base in the long term. We do not encourage the use of old GZDoom versions, please upgrade now.

This is a minor release intended to make RRWM fully compatible with GZDoom's new localization features. It also fixes a minor bug related to weapon sprite offsets. Please note that save files from older versions are not compatible with this new version because GZDoom 4.0.0 cannot load save files made with GZDoom 3.7.2.

Changelog:

  • Removed limits for pistol fire as well as shotgun fire and pump sounds. This is because sometimes there are too many enemies wielding the corresponding weapon(s), and, especially in the Shotgun Guy's case, the firing sound will not play due to these limits.
  • Fixed a bug where switching to a weapon without select animation while reloading the Shotgun would mess up that weapon's sprite offsets.
  • Fixed: Sprite OSHTG0 should not be shifted down.
  • Fixed air supply indicator in hubs
  • Minor language fix (make an option name longer since it now fits on the screen nicely).
  • Fixed the Console::MidPrint call in the version check routine to use the implicit default font instead of smallfont
  • Fixed: some fields were missing the "private" qualifier.
  • Switch to ZScript version 3.8
  • Put an extra space after the version string to ensure some distance between the string and the screen edge
  • Changed color for persistent setting values from ice to sapphire for better contrast (ice color is hardly distinguishable from white with the new font).
  • Use the new bigfont to draw the help menu title (the font is read from the parent menu's descriptor).
  • Use Menu.DrawOptionText() and Menu.OptionFont() to draw option values and static text in the new font.
  • Added a vertical offset to BigFont in RR_HudDrawer because the height of the font has changed.
  • Some improvements in the options menu logic for built-in menu items
  • Removed references to hardcoded colors in menu code and replaced them with values from OptionMenuSettings instead.
  • Removed RR_MenuDrawer::DrawConText and replaced calls to it with calls to RR_MenuDrawer::DrawString.
  • Removed unused code in RR_MenuItemOption

This version has been playtested with the Reverie megaWAD.