[Release ver. 1.04] RRWM

Projects that alter game functions but do not include new maps belong here.
Forum rules
The Projects forums are ONLY for YOUR PROJECTS! If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.

[Release ver. 1.04] RRWM

Postby Player701 » Sat Feb 09, 2019 11:29 am

RRWM

TL;DR: Reloadable weapons and other minor enhancements. Vanilla-like gameplay with a few twists. Somewhat customizable. Works well with vanilla and Boom compatible PWADs, also in multiplayer. Third-party GFX/SFX, 99.9% original code.

Download the latest release (1.04)
NB: Requires GZDoom 4.1.0 or later!

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

Spoiler: Obligatory screenshots

What is it?

RRWM is a complete ZScript rewrite of a weapon mod with a similar name released on idgames in 2010. There have been several improvements to the released version in the mod's SVN repository (a link to it can be found in one of the readme files that come with the mod), but no further releases were ever made. Eventually, I concluded that improving the mod further without turning its code base into a complete mess would not be productive because of the inherent limitations of DECORATE, so I had to abandon it until better times. And now these better times have finally come. With the advent of ZScript, the limits have been transcended, and the impossible has become possible.

Enter RRWM.

In this new form, RRWM is first and foremost a coding experiment and only after that it is a weapon mod. The primary goal of this project is to leverage the power of ZScript to produce hack-free, well-readable, thoroughly commented code, which is less buggy than DECORATE and easier to maintain. Do not expect to see a lot of fancy special effects in this mod.

Note: Further information has been grouped under spoiler tags so that the post doesn't look like one huge wall of text.

The reloading system
Spoiler:

Gameplay
Spoiler:

Customizations and addons
Spoiler:

HUD
Spoiler:

Technical
Spoiler: Requirements

Spoiler: Compatibility with other mods and maps

Spoiler: Recommended map packs

Spoiler: Multiplayer

Spoiler: Reporting bugs

Sprite contributions
Spoiler:

Credits
Spoiler:
Last edited by Player701 on Mon May 06, 2019 2:05 am, edited 6 times in total.
User avatar
Player701
You are now breathing manually.
 
Joined: 13 May 2009
Location: Russian Federation
Discord: Player701#8214

Re: [Release ver. 1.0] RRWM

Postby Nems » Sat Feb 09, 2019 5:09 pm

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
User avatar
Nems
Wait what
 
Joined: 12 Jan 2005
Location: I don't even

Re: [Release ver. 1.0] RRWM

Postby Player701 » Sun Feb 10, 2019 9:01 am

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.
User avatar
Player701
You are now breathing manually.
 
Joined: 13 May 2009
Location: Russian Federation
Discord: Player701#8214

Re: [Release ver. 1.0] RRWM

Postby TDRR » Sun Feb 10, 2019 1:31 pm

Can you add support for Skulltag Emulation? Just replacing the Railgun, BFG10k and Grenade Launcher with any other weapon will work.
User avatar
TDRR
putting jelly on this hot dog
 
Joined: 11 Mar 2018
Location: Venezuela
Operating System: Windows Vista/7 64-bit
Graphics Processor: Intel (Modern GZDoom)

Re: [Release ver. 1.0] RRWM

Postby Player701 » Sun Feb 10, 2019 3:27 pm

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).
User avatar
Player701
You are now breathing manually.
 
Joined: 13 May 2009
Location: Russian Federation
Discord: Player701#8214

Re: [Release ver. 1.01] RRWM

Postby Player701 » Fri Feb 22, 2019 3:13 am

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 :)
User avatar
Player701
You are now breathing manually.
 
Joined: 13 May 2009
Location: Russian Federation
Discord: Player701#8214

Re: [Release ver. 1.01] RRWM

Postby DabbingSquidward » Fri Feb 22, 2019 7:24 am

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.
User avatar
DabbingSquidward
 
Joined: 08 Nov 2017
Location: Germany

Re: [Release ver. 1.01] RRWM

Postby Player701 » Fri Feb 22, 2019 7:35 am

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!
User avatar
Player701
You are now breathing manually.
 
Joined: 13 May 2009
Location: Russian Federation
Discord: Player701#8214

Re: [Release ver. 1.01] RRWM

Postby Player701 » Sun Mar 03, 2019 12:33 pm

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.
User avatar
Player701
You are now breathing manually.
 
Joined: 13 May 2009
Location: Russian Federation
Discord: Player701#8214

Re: [Release ver. 1.01] RRWM

Postby DabbingSquidward » Sun Mar 10, 2019 2:23 am

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.
Last edited by DabbingSquidward on Sun Mar 10, 2019 2:51 am, edited 1 time in total.
User avatar
DabbingSquidward
 
Joined: 08 Nov 2017
Location: Germany

Re: [Release ver. 1.01] RRWM

Postby Player701 » Sun Mar 10, 2019 2:51 am

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
User avatar
Player701
You are now breathing manually.
 
Joined: 13 May 2009
Location: Russian Federation
Discord: Player701#8214

Re: [Release ver. 1.01] RRWM

Postby DabbingSquidward » Sun Mar 10, 2019 3:13 am

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).
User avatar
DabbingSquidward
 
Joined: 08 Nov 2017
Location: Germany

Re: [Release ver. 1.01] RRWM

Postby Player701 » Sun Mar 10, 2019 3:26 am

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. :)
User avatar
Player701
You are now breathing manually.
 
Joined: 13 May 2009
Location: Russian Federation
Discord: Player701#8214

Re: [Release ver. 1.02] RRWM

Postby Player701 » Mon Mar 25, 2019 12:11 pm

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:

User avatar
Player701
You are now breathing manually.
 
Joined: 13 May 2009
Location: Russian Federation
Discord: Player701#8214

Re: [Release ver. 1.03] RRWM

Postby Player701 » Sun Apr 07, 2019 4:13 am

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.
User avatar
Player701
You are now breathing manually.
 
Joined: 13 May 2009
Location: Russian Federation
Discord: Player701#8214

Next

Return to Gameplay Mods

Who is online

Users browsing this forum: Card Master, MauiBot, Ryuhi and 9 guests