[ON HOLD] Bumi: Real-Time Day/Night & Weather
Forum rules
Before posting your Resource, please make sure you can answer YES to any of the following questions:
Consult the Resource/Request Posting Guidelines for more information.
Please don't put requests here! They have their own forum --> here. Thank you!
Before posting your Resource, please make sure you can answer YES to any of the following questions:
- Is the resource ENTIRELY my own work?
- If no to the previous one, do I have permission from the original author?
- If no to the previous one, did I put a reasonable amount of work into the resource myself, such that the changes are noticeably different from the source that I could take credit for them?
Consult the Resource/Request Posting Guidelines for more information.
Please don't put requests here! They have their own forum --> here. Thank you!
- YukiHerz
- Global Moderator
- Posts: 1503
- Joined: Mon Dec 02, 2013 6:01 pm
- Graphics Processor: Intel (Modern GZDoom)
- Location: Where corruption is redefined daily.
Re: Real-time day/night and weather engine
That's good enough i guess, still pretty damn awesome.
Re: Real-time day/night and weather engine
Amazing video. It is kind of funny too, as this is running in an engine derived from the Doom engine. It kind of proves how far it (the engine) has been expanded upon. Its also kind of incorrect to state that this is the Doom engine at all as mentioned in some (banned) posts in this thread.
i cant stop thinking about GTA 2 when watching the video, its almost as if it is...GTA 2 in a first person perspective.
i cant stop thinking about GTA 2 when watching the video, its almost as if it is...GTA 2 in a first person perspective.

Re: Real-time day/night and weather engine
This is really cool. I hope it gets more development. 

Re: Real-time day/night and weather engine
Glad to see you're still working on this
definitely one of the better projects around imo

- SenteyHunter
- Posts: 14
- Joined: Fri Apr 04, 2014 4:58 pm
- Operating System Version (Optional): Windows 10
- Graphics Processor: nVidia with Vulkan support
- Location: Space
Re: Real-time day/night and weather engine
Good to see you again working on this 

- Oberron
- Posts: 1048
- Joined: Sun Aug 02, 2015 1:20 am
- Graphics Processor: ATI/AMD (Modern GZDoom)
- Location: Czech Republic
- Contact:
Re: Real-time day/night and weather engine
Pardon me for reviving the thread, but the weather and lens flare looks so cool. Kind of a early 2000's feel to it.
Re: Real-time day/night and weather engine
Only 1 item remains in the task list. This weather system has come a long way, code-wise, since I made this thread in 2014. Code has been drastically changed and improved upon. I've switched compilers from acc.exe to gdcc-acc.exe and coding this has been so much more fun and easier, and I can write stuff much cleaner because I no longer have to hack around with acc.exe's limitations. The precipitation system also does not lag as much as it used to now, meaning rainy weathers won't butcher your frame rate too much. I will use the same system to spawn and render snow flakes.Upcoming features before I release version 0.9 BETA:
- Fog and haze Done!
- Seasons Done!
- Snowing during winter
- Seasonal texture swap (level textures that change appearance depending on season, in real-time) Done!
- Stars in the sky Done!
I've also made tremendous improvements on how things are setup so that you, as a mapper, do not need to be too careful of too many restrictions on how the system is setup. It used to be that you had to setup special linedef scripts, assign some tags that you had to memorize, and other nonsense, to make the weather system work correctly in your maps. Almost all of that stuff cruft is gone now. My eventual goal would be to allow you to just make your map, copy and paste the template skybox anywhere into your level and it will just work™.
Anyway, the final task (falling snow), and documentation, should be done in a few days.
I want to talk about my plans to release the open source as beta. It will stay in beta because there are currently 2 engine features that prevent me from declaring this as complete:
1) GZDoom flat sprites
In the video demo from 2014, the clouds seen in it are models (flat planes) rendered with the "Shaded" render style. This lets me draw clouds that can have smooth transparency, but the catch here is - it only supports 1 colour. So the cloud textures are really just a huge blob of white with varying transparency. I cannot colourize the clouds because the darker a colour is, the more transparent it will get (so I can't do black clouds, for example). This has nothing to do with alpha (more on that in the next paragraph).
With flat sprites, I could render the clouds as a normal sprite, with rich colours and full alpha, and then make them flat. It looks so much better than the previous "shaded model" technique. I will put up a comparison image sometime soon so that it's easier to see the differences.
tl/dr: clouds will look uglier in the beta release
2) Visibility filtering
Rain (and eventually snow) is constantly spawned around the player's position, instead of all over the entire map, and is attached to the player so that it follows the camera. This technique is more practical than simply spamming the entire level with precipitation sprites because it would introduce massive lag and STILL wouldn't look good anyway especially if the player moves fast. The downside to this technique is that, every player can see this mass of precipitation move around other players. If there were 2 players in-game, I could see player 2's rain sprites, and they could see mine. To combat this, visibility filtering is needed so that I can limit the visibility of the sprites to ONLY the player the sprites "belong" to.
tl/dr: rain and snow will look like crap in multiplayer in the beta release
And in case it wasn't obvious... I am currently developing these with custom home-made GZDoom builds. The issues I talked about can easily be disabled for official GZDoom builds and swiftly re-enabled when GZDoom officially implements flat sprites and visibility filtering.
That's all I have for now. I'm excited to let this bad boy out and hopefully it will be helpful to everyone in some way!
Re: Real-time day/night and weather engine
On the topic of precipitation- do you or someone else happen to know/make an educated guess whether having droplets with NOINTERACTION (set into motion by ThrustThing(Z) rather than gravity) and spawning the splash as a hitscan puff delayed by distance would be less CPU intensive than normal projectile collision?
Re: Real-time day/night and weather engine
I did not know exactly how much (or if it at all) does it improve performance but the rain drops currently do have +NOINTERACTION. This unfortunately made it unable to detect the water level for some reason, therefore not being able to spawn splashes when the rain collides on top of 3D water, so I made it so that the rain splashes actually have nothing to do with collision - they just spawn around the the player and at the player's Z height and separately from the rain drops. This gives it a chance to trace down to the real sector's Z height so that splashes don't form in mid-air, and also check water level (the splashes don't have +NOINTERACTION because if they do then it'd be back to square 1). The splashes have a lower spawn chance than the rain drops so hopefully that would have helped with performance. Although I can't really say unless this gets more testing from people with differing hardware.
Re: Real-time day/night and weather engine
Guess what happened? I couldn't sleep and spontaneously implemented this dynamic sound dampening system! The rain and thunder sounds will get dynamically low passed depending on how far you are from the exterior. This isn't scripted, it totally works in real-time and with any kind of map!
What's hilarious is that I wasn't even planning on working on this particular feature so soon! It was an idea I dropped in a single-line comment... reminded myself that eventually I would figure out how to do this but I never even thought of this or even tried to think how it would be done until I actually started to do it today. Sleep deprivation may have played a huge factor in implementing this.
So, bonus feature for y'all that I didn't even expect to make, yay!
Re: Real-time day/night and weather engine

- Fog and haze Done!
- Seasons Done!
- Snowing during winter Done!
- Seasonal texture swap (level textures that change appearance depending on season, in real-time) Done!
- Stars in the sky Done!
ALL DONE!
Just need to prepare the docs and the devkit, and fix a multiplayer sound bug only discovered 10 minutes ago, and... this would be good to go!
Kept you waiting, huh?
- Ozymandias81
- Posts: 2068
- Joined: Thu Jul 04, 2013 8:01 am
- Graphics Processor: nVidia with Vulkan support
- Location: Mount Olympus, Mars
- Contact:
Re: Real-time day/night & weather engine [source+beta immine
I second the drooling, only add WOW! as well.
-
- Posts: 310
- Joined: Fri Sep 21, 2007 1:08 am
- Location: Poland - Bytom
Re: Bumi: Real-time day/night & weather
I can't even imagine the amount of work that you do with all this things. That's something incerdible and I can't wait when you finally comes out with beta, so I check this thread from 2014 hoping to see download link. Your work inspired me to create another city-themed level.
Re: Bumi: Real-time day/night & weather
Neat! I wonder if there will be survival simulators on GZDoom now...
Also, I don't know if this is a proper question, but... how is the dynamic weapon shifting done here?
Also, I don't know if this is a proper question, but... how is the dynamic weapon shifting done here?