Second post, first thread. Anyway, I'd like to take the time to publicly announce my new (well, not really, I've been working on it for a while) mod project.
As you may or may not have been aware, CloneJCDenton has had a lot on his plate in the real world and entrusted me with the mod source several months ago. Unfortunately, I also had a lot crop up for a period shortly after and was unable to continue development.
With most of that now out of the way, I've had the time to go and make a wide variety of changes and feature additions to Denton's already superlative work. Changes I've implemented and their descriptions area as follows: (you might recognize some features from the forums, that was one of the first places I went trolling around for ideas. If you see something of yours here, please let me know so I can add you to the credits. I'll try and assemble a list before I release the mod to fill in any blanks.)
- console-variable-controlled alternate third-person perspective
Enabling the new variable pm_useOTSThirdPersonView modifies the third-person camera to use a slightly different method for determining focus location. Offsets are controllable with other cvars, with defaults very similar to Gears of War. This came from the forums.
- HUD visibility while in third person mode
Enabling ui_ThirdPersonHUD forces the HUD to show up in third-person mode. Considering making a slight change to have a secondary HUD for third-person mode, as some additional ideas of mine would look funny unless viewed in a first-person perspective.
- Modified/improved weapon effects
Made changes to some of the weapon particles to create heat hazes, etc. when firing weapons. Experimenting with materials for more realistic effect fading. There's also a bug in how Doom 3 handles rendering that causes the effect to look rather odd if displayed in front of glass. Working to fix, but this may be impossible, unfortunately.
- Procedural frost formation on visor when on Mars surface and subsequent melting when re-entering the base
Used materials, interpolators and some pre-existing player SDK code to create a rather cool, animated frost effect when wandering around on the surface of Mars. At time of writing, there are still a few issues-- effect stength and duration are uncustomizeable outside of SDK changes, but this is relatively easy to remedy and I am in the process of fixing this.
- Near-complete repair of the pm_modelView commands and D3 Alpha-style first-person death
It took a lot of fiddling, frustration and swearing, but I was finally able to change how the commands work in order to get them mostly functional. There are some mild clipping issues with first-person ragdoll death and a small bug that allows you to rotate the view around after you're dead. (not game-breaking, but rather funny to watch your crumpled body spin around like a top in third-person mode) no monster munchies, though, sorry.
- First-person viewable body
Basically a sub-feature of pm_modelView working again. There are some clipping issues and the IK can create some funny business when walking up steep stairways very quickly. For best results, set ui_showGun to 0.
- Fixes to projectile launching code that finally sends bullets in the direction the gun is actually pointing
An extension of the LaunchFromBarrel key in projectile definitions. Before bullets would be launched in the direction the camera was facing, which looked funny in combination with some other miscellaneous edits I made.
- Fixes to idStaticEntity class that would allow AI to see through it unintentionally
Edit of a few arguments in SDK spawn code for the class. This also came from the forums.
- Edits to bob values for more realistic camera movement
Your view height, pitch and roll now noticeably change. It looks really pleasing in motion. Thanks to Benzo for showing me how to do this.
- Halo/F.E.A.R.-style grenade usage
Press the left mouse button (configurable, it's actually just the grenade key) and toss a grenade! Working on variable-strength tosses, which aren't functioning correctly at time of writing. Based off of EasyGrenadeToss, mod author name eludes me at the moment.
- Chaingun barrel windup alternate fire
Use the weapon alternate-fire key to wind up the barrels in advance. Then just press fire and watch as your foes are reduced to fine red mist!
- HeadExplody(tm) system
Detects fatal headshots on idActors with attached heads and changes the head model to a user-configurable 'blown-off head' version. Effect can also be disabled with the use of the 'headExplody' spawn key. Also working on creating a custom particle effect and gib spawn.
- More custom texture work by me
Couple random edits here and there, notably a new machine gun heightmap for use in the relief mapping mod.
- Gib removal time hooked up to cvar
Gibs now are removed after a number of seconds equal to the g_gibStayTime cvar. Some bits fade according to old timings, but new ones don't at time of writing (issue #1 very fixable, I just need to make some edits to material definitions)
- More realistic gibbing effects
Humanoid characters (not demons) now spawn those dismembered body part bits upon gibbing in addition to the normal 'pork' things. Thanks to Tets for showing me how to do this.
- Weapon gib behavior fixes
Edited a lot of weapon defs to remove gibbing ability. Now only the super shotgun, rocket launcher, grenade, chainsaw and BFG gib bodies. Also removed the rather stupid blood spurt and decal effects from the flashlight and fists. Idea from forums, implementation my own.
- Env_ragdoll gib fixes
Changed SDK gib code to enforce consistent gibbing behavior between editor-placed ragdolls and dead actors. If a weapon can't gib actors, it can't gib env_ragdolls.
- Flaslight additions and weapon changes
Integrated NoMercy's flashlight mod with Denton's toggleable flashlights. Added machinegun light, also toggleable with alternate fire key, as shotgun. Meshes have been edited for correct effect placement.
Also edited ammo limits to more realistic amounts. You generally can't hold more than 5-ish clips for any given weapon, and I may reduce this even more. Finally, incorporated NoMercy's fist mod to allow for kicking.
- Doom 3 Alpha-style HUD
Basically took the Alpha HUD and plopped it into the retail version. I have some changes in mind for this to a more Metroid prime/Halo 3-esque version, so it looks like it's being projected onto the inside of Doomguy's helmet.
- Doom 3 Alpha door sounds
Edited door sound shaders to use Trent's awesome sounds. Doors are now kind of intimidating.
- Equipment jingling/moving around audibly while walking/moving or turning
Used some more of Trent's sounds and applied them to player movement. Pretty cool in action, and great for immersion.
- Footstep sounds whilst crouched
I found it kind of odd how you didn't hear any footfalls while crouching. I fixed this, although I may make a few edits to adjust volume or possibly even use different sounds.
- Weapon clip droppage on reload
Reload your machinegun, pistol, plasma gun or BFG and watch the spent clip clatter to the floor.
- Integration with ShinyBluds, GoW spatters and Chromatic Dispersion Special FX
Cube-mapped blood decals, Gears-style spatter on player damage, and chromatic aberration on refracted light, respectively. Also made some changes to blood particle materials for realism. No more glow-in-the-dark, opaque blood drops!
- Miscellaneous optimizations
Adjusted code placement, logic test order and additional conditional (hey, it rhymes!) statements for some mild speed boosts and overhead reduction.
Not much to say about this. I did consider making it kind of 'blindfire-y' by only adjusting the weapon position and not the view. Might go either way depending on popular opinion, or might just make two different modes. The effect can be disabled on servers by changing the g_allowLeaning cvar.
- Red Orchestra-style first-person aiming
Hard to describe unless you've seen it. It's pretty much the near-complete detachment of aim location from view direction. There are videos of it on YouTube and it's pretty cool in action. The adjusted projectle launch system would makes this reasonably simple and mostly transparent.
- Nicer implementation of first-person body
There are issues with the pm_modelView version of this (namely the third-person weapon models look godawful in addition to some clipping) so I'd like to make a slightly different implementation for when you're not using the pm_modelView mode.
- Republic Commando/Metroid Prime-style helmet visibility while in first-person
See little bits of your helmet while in first-person mode. Pretty straightforward.
- Cinematic gun/muzzle smoke
Full fluid simulation is basically out of the question, but it would be kind of cool to fill the room with smoke after dumping a clip from your machine gun into that pesky Hellknight. A hack is somewhat possible using particle systems, though.
- External blood spatter on helmet/visor
Apparently planned for the final version of Doom 3, but cut for whatever reason. Get blood on your screen when chainsawing or shooting something at close range.
- Possible AI rewrite to use a planning system a la F.E.A.R.
Not *extremely* hard to do, and makes AI variations shitloads easier. Not to mention increased smart across the board. Would require some *big* changes to scripting behavior, though.
- Fullscreen motion blur
While doing everything fully object-based is pretty much impossible, (I can think of a way that might work, but it's really a horrendous hack) doing something when you turn around would be neat, like in Gears or Crysis (on lower settings)
- Screen-space ambient occlusion and indirect illumination
As seen in Crysis, with an additional step devised by myself to create decent fake GI effects. Far from physically correct, but looks the part, mostly.
- Depth of Field
Kind of goes hand-in-hand with some of the requirements for SSAO, a depth buffer. While it would be nice to just take the one Doom uses for pixel visibility tests, it ain't gonna happen. With some hack work, though, I can probably re-render everything, or, failing that, just edit the main interaction program to piggyback the alpha channel for scene depth. 8-bit precision would probably look like ass, but it's certainly better than nothing. I hope.
- Soft particles
With the use of custom shaders and access to a depth buffer, it would actually be *very* simple to get this working for smoke and similar. Just an additional subtraction operation along with a handful of adds or multiplies, really.
- Possible custom interaction program support
Using more hacks than I care to count. I can think of a possible workaround involving very liberal use of shaderparms and some additional helper functions SDK-side.
- Less shitty models
They need less fail. Normal maps != TEH UBAR FIX TO EVERYTHIGN!!!!11shift+eleven. Unfortunately, I'm not the greatest modeler.
- Other suggestions
NICE BUT IMPOSSIBLE STUFF
- Fixed GL fragment program parsing
Carmack made some real pants-on-head retarded moves when making the renderer that continue to baffle me to this day. One of the more classic is the tremendously broken method used to determine the end of a fragment program that renders (no pun intended) the use of 99% of the SM3.0 functionality exposed in OpenGL revisions totally useless. What's really agonizing is that the issue could be fixed in maybe 1 line of code. More likely the addition of ONE SINGLE CHARACTER to the particular line.
- Shadow map support
I R HAET SHADOW VOLUMES. THAT IS ALL.
- Less shitty decal/sprite handling
It's just really fucked up, no way around it.
Thoughts? Comments? Concerns? Help offers? Put 'em here.