Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Jimmy

Rain

Recommended Posts

I'm curious to know if any Vanilla or Boom WADs out there have done a convincing rain effect.

Equinox MAP03 does have rain, and while it looks okay from a distance, you can't exactly walk through it and have it remain convincing - plus, the replaced actor is the big tech lamp, so the rain blocks the player's movement anyway. (The blocking could be dehacked away though, I'm sure.)

What I would prefer is if, say, a hanging corpse object could be made invisible and its behavior dehacked into spawning a sprite every few tics or so, which would mean each raindrop is a separate sprite, and the rain effect is created by placing multiple ceiling-spawned decorations that drop rain sprites. One of the animated hanging corpses would be easiest to modify in this manner, I reckon. Although, if this route is taken, I'd probably have to be careful actually placing them in maps in case of the sprite drawing limitations, especially in Vanilla (though I'm mapping for Boom).

Would a DEHACKED guru be willing to whip something up for me if it's possible?

*glances casually at Obsidian then glances away in embarrassment, having sent him two PMs today already*

EDIT: Oh, also, even better if it can make an ambient sound.

Share this post


Link to post

not sure there would be a way in vanilla/boom dehacked to get an object to spawn another object, if I'm understanding correctly. for that you'd have to up it to MBF and use A_Spawn, which would of course be quite easy to do. the first kind of setup that comes to mind, in order to make the rain a bit more random:

frame 1: dur X, chance to jump to frame 4, goto frame 2
frame 2: dur X, chance to jump to frame 4, goto frame 3
frame 3: dur X, chance to jump to frame 4, goto frame 4
frame 4: dur Y, spawn raindrop item, goto frame 1

even just 3 could work fine, or 2 if you want to be conservative, I suppose. or none at all if randomization is not on the top of your list!

edit: separate note, actually... if the raindrop is made a projectile but does not have a no gravity flag, I assume it would still fall straight down and enter its death states upon impact? if not I imagine maybe you could just have the "die upon impact" flag from MBF (I think), and it should behave that way anyway

Share this post


Link to post
Jimmy said:

*glances casually at Obsidian then glances away in embarrassment, having sent him two PMs today already*


:D

The answer I can think of off the top of my head is to use a projectile with gravity active like Tango said: I've toyed around with it and the projectiles do indeed enter their death state upon hitting the floor. The only snag is that it leaves at least one monster firing projectiles that abruptly flop onto the floor when it tries to fire. :P If someone can supply me with sprites and sounds I can jazz something up.

Share this post


Link to post

again not sure if you feel like extending your featureset to MBF (so that you don't have to sacrifice any monster projectiles), but I did some quick testing also, here's what it looks like:

http://imgur.com/rKu6vEQ

used the 4 frame method I described above. lemme mess around with the flags some more and see if I can get it to properly explode on impact. ps Obsidian the sprites I'm using are the ones on Realm667, pretty simple but decent ones

edit: yeah, just changed the rain item to a projectile, and it works all good (as Obsidian said). here's a pic:

http://imgur.com/xLY4J6v

so there are 4 frames for the rain spawner itself, again, as above. the rain drop has 8 frames total (using the sprites from Realm667), 1 for falling + 7 death. the bex patch in the picture only uses 5 total for the raindrop, so to complete the animation I'd need to clip a few frames from other items, which is quite doable (the hanging body/other gore decorations are always good candidates imo). but I suspect you're trying to keep this boom compat so I'm not sure any of this really matters anyway haha

edit: not sure what the best thing would be to do about the sound though, MBF or not. Obsidian?

Share this post


Link to post

I'd just make it loop the Pain parameter and set it's pain sound to be the ambient sound myself. I'll post my shot at it in a bit.

Share this post


Link to post

Thanks for all the help so far, guys. :D

My project is all Boom format maps at the moment and I'm testing primarily in PrBoom+ and ZDoom, so I reckon MBF changes shouldn't be a problem. MBF DEHACKED will work within PrBoom and PrBoom+, yes?

I reckon it would be interesting to see if any like this is indeed possible in Vanilla, but I'm not in need of that.

Share this post


Link to post

Ta-daa!

Currently in Boom format, but only tested in ZDoom: the ambient sound is in Ogg Vorbis format and there may possibly be other bugs. Speaking of bugs, summon the Arachnotron for a bit of added hilarity. :P With a bit more time I can iron out some of the kinks, so let me know if you want a proper implementation.

On a side note, I reckon it'd probably be a better idea to have the ambient sound effect spawned by a different actor to avoid being deafened if there's lots of spawners.

Share this post


Link to post
Obsidian said:

Speaking of bugs, summon the Arachnotron for a bit of added hilarity. :P

It seems to be having some continence issues...

Share this post


Link to post

Obsidian: Nice, thanks a lot, that does look great and was exactly what I'm after! :D

Unfortunately it seems to crash PrBoom+ when the rain actors "wake up".

Also I'm wondering if it has to be the Arachnotron plasma? I wouldn't really like to exclude them as an enemy. Sorry for being picky. D:

Share this post


Link to post
Jimmy said:

Thanks for all the help so far, guys. :D

My project is all Boom format maps at the moment and I'm testing primarily in PrBoom+ and ZDoom, so I reckon MBF changes shouldn't be a problem. MBF DEHACKED will work within PrBoom and PrBoom+, yes?

I reckon it would be interesting to see if any like this is indeed possible in Vanilla, but I'm not in need of that.


yeah, PrBoom+ is capable of MBF, that's what I primarily tested Mayan Mishap in. G/ZDoom also supports MBF bex patches, though presently Zandro does not, so you'd need to include a separate DECORATE patch for the rain.

Obsidian: haven't taken a look at the wad file itself, but I'm assuming then that the rain replaces the arachnotron plasma and the rain spawner loops a frame that shoots arachnotron plasma?

edit: oh, just saw Jimmy's post, which answers my question haha

Share this post


Link to post

The humor of a person with a spawn cube avatar making object and monster spawn scripts and tricks. He planned the invasion all along !

Linguica said:

It seems to be having some continence issues...
http://i.imgur.com/n8xylzt.gif


Crouching impse, Dripping Arachnotron.
Starring Chow Yun Fat as the fighter who was not allowed to love !

Share this post


Link to post

aight here's my stab at it, MBF compat, works in PrBoom+ and GZDoom. includes testmap map01.

https://www.mediafire.com/?9bc16511rs7h1ep

no idea how performance would be with lots of these in large areas. I imagine if it gets to be too intense, one could simply increase all the frame durations for the random jumps so that each spawner spawns less often, but you would be able to place more spawners, in theory. breakdown of frames used:

4 frames that are in the table but unused (NOT MBF beta frames, default frames in vanilla); 45, 46, 887, 892
frames of thing 49 + 63, swaying hanging body (these appear to be identical things?)
thing 23, dead lost soul, is replaced and used as the rain spawner, but it had no unique frames iirc
frames from thing 26, twitching body on a stick
frames from thing 73, hanging body (this thing is now the rain drop)

(all affected, replaced things have been made invisible/untouchable)

think that covers it. swapping frames around to replace different things (say, if you wanted to replace marble columns instead of hanging bodies) would be pretty easy, because in all only 12 frames are required in this setup, 4 of which are already free, unused frames.

dunno if this is going to be what you end up wanting, but this seems like the best way I can think of going about rain without using ZDoom features. there's no sound included in this, but implementing a sound per raindrop would be easy (make the looping, falling raindrop frame last some number of frames, and call A_Playsound at the start of every frame; potentially add in some more RandomJump frames to make the sound less frequent or w/e), though I'm not sure if that's optimal way to do it. dunno if it would be good for 50 different raindrops in an area to each be trying to play a sound (might not be an issue, I really don't know), so another alternative would be to have just another invisible actor that itself just plays the rain sound. this thing would obviously need to be placed manually, though. I guess another alternative would be to just give the raindrop a deathsound.


edit: here's a few images showing what it looks like in-game a little better, with a DB shot to give you an idea of how many spawners are placed to produce what you see. taken in GZDoom, no slowdown for me with what's there. should probably try it in PrBoom+ too though, as software usually doesn't handle this stuff as well.

edit edit: yeah, seems fine in PrBoom+ on my computer. again though, not sure what the limits on this are

edit x3: just realized Obsidian addressed the same issue with the sound in his post, didn't see that oops

Share this post


Link to post

Could you use monster attack logic to make entities that only spawn raindrops when the player was relatively close to them?

Share this post


Link to post
Linguica said:

Could you use monster attack logic to make entities that only spawn raindrops when the player was relatively close to them?


hmm. that is a great question. this sort of thing is obviously easier in ZDoom. I imagine it very well might be possible to do this by having another sightcheck (one of the bspi codepointer things? I don't actually know how those work exactly though) frame paired up with the rain spawn frame, so that the sight check always happens before spawning the raindrop. I think if that was the case, the one problem you'd have really is that the raindrop spawner itself, on the ceiling, could be out of the player's sight but any potential raindrops wouldn't be. so looking at an outside area from an inside one, if this works how I imagine, the rain would stop spawning until you walked outside

Share this post


Link to post

Tango, that works a treat, awesome stuff. :D

It definitely looks good in Jungle Spirits (how did you guess that's what I needed this for? :P). I won't be using it as much as in big open areas like the beginning of MAP02, but it's certainly a cool effect and adds a ton of atmosphere. I'm trying it out with various skies to see what looks best (I'll be keeping the one currently in the Jungle Spirits beta but there'll be a new one for MAP12 onward, those maps will likely all be rainy or at least darker).

Unfortunate that it means I have to find alternatives for the twitching body decoration and from the looks of it, the crushed blood/guts decoration too, but eh, not to worry. Also I will try and investigate setting down an ambient sound, though it may not be wholly necessary.

Obsidian, thanks a bunch for your help. I may end up using Tango's version, but your work is still really super-appreciated. :) And I may actually come to you for monster behavior help (still for Jungle Spirits) later on. x)

Share this post


Link to post

yeah. like I said though it's a pretty easy fix to put it over other things, so if there are other decorations you'd rather it over, I can do that too (or you can take a stab at it if you feel so inclined, WhackEd4 is really awesome). long as the necessary additional 8 frames are freed up, anything works.

and it wasn't very hard to guess what you had this in mind for :p

Share this post


Link to post

This is awesome! I might just ask for some help with this later on (Tango!), concerning a long overdue WIP megawad project..

Share this post


Link to post

awesome! yeah of course.

@DMGUYDZ64: pretty neat SRB2 can do that. I think for that sort of thing to work with boom though it would need to be hardcoded in, so unfortunately I don't think it would really be possible to put it in boom :(

Share this post


Link to post

I suppose you could make a "rainy window" or even a "rainy outdoors" in vanilla Doom by using transparent animated textures and/or sprites, representing a curtain of rain, and placing them appropriately. Mid textures do not tile vertically, so you'd have to use height offsets to create "tall rainy sectors". Also you'd need several layers of them (possibly out-of-phase) to give the effect of a rainy area, and not just a single curtain of rain or synchro-rain.

Of course, this would eat up visible two-sided linedefs pretty quickly (esp. in doom.exe), so you'd have to use it very sparingly (e.g. just make a small rainy courtyard, use it only as an effect to be viewed through windows etc.).

Share this post


Link to post

Equinox.wad map03 has some rain near the start (replaces one of the animated decorations), but it's not in an area that the player can access, so it may present some difficulty if the player needs to run through it.

Share this post


Link to post
Salt-Man Z said:

Reverie MAP18 has vanilla-compatible rain that you can walk through. (Jump to about 1:15):

To be honest, and contrarily to most people in this thread (as it seems), I really prefer the texture-based vanilla compatible rain/snow over the THING-based one. If you place the "rain" things too densely, they'll cause the game to lag much easier than dense linedefs would. If you don't place them densely enough, it won't really look like rain. And if you will make the rain sprites wide, it'll look odd when viewed multiple of them from various angles. This Reverie's rain looks good enough to me. With Boom's translucency, it might have looked even better, plus you don't have to worry about DRAWSEGS in Boom and you can have taller textures.

Share this post


Link to post

The Reverie effect is almost exactly what I had in mind, though I imagined rain falling at an angle. With some extra work, it's possible to add neat effects like "lightning" (making rainy sectors flash randomly), wind direction changes (e.g. have a set of animated rain textures with one of them having a sudden "slant"), and of course having puddles/splashes at the ground level.

Share this post


Link to post

It's pretty damn late at the moment so I haven't read the longer posts, but if someone did want to use THING based rain and have it animate smoothly, there are a few unused/generally unecessary frames that could be used through dehacked to allow like 20 frames of animation for a single object. (I'm sure many of you know this, but what the hell.)

Like scifista, I prefer linedef rain, as it can be used so much more. The only unfortunate drawback with vanilla is the inability to change texture animation durations (which gives sensations of realization which sweep the nation)

okay im done

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×