[WIP] Dynamic Weather and Climate Engine


Left: WeatherSystem: Off; Right: WeatherSystem: On.

AssetStore link
YouTube
Climate Demo
Playable Demo 3D
Playable Demo 2D

Welcome to WeatherBlender, the ultimate Weather Manager and Climate Engine for Unity. If you are looking to polish your game with a nice weather system, you’ll love us. The tool makes it dead easy to:

  • Have a functional setup in under 3 minutes.
  • Adding parallel weather systems to the same scene
  • Bolster efficiency and reduce repetitive work

Artist/Designer Friendly

  • No need to write any code to have a scene working
  • You don’t even need Playmaker to set up the scene
  • You can use any effects you already did in Unity, plug and play

Developer Friendly

  • Full source code
  • Documentation is underway
  • Accessors allow you to tap into the data for your use
  • Performance aware (plus no GC allocs at runtime)
  • Code is written in C#

WeatherBlender facilitates development of dynamic weather systems (yes, with an s!) in the same scene. Weather systems can be manipulated individually, allowing for a plethora of possibilities and varied weather effects. Climate also plays a role. Each WeatherSystem has its individual light source which can be dynamically tinted to convey different moods.

WeatherSystems can be combined, or blended, so that each effect has an impact rather than overwriting previous data. This works well with a seamless grouping category, which reduces drag and drops without sacrificing depth and content. Categorisation is up to the designer, however, there are some conventions which may help you get the most out of it. (Video Link coming soon…)

Players can experience a mix of those effects as desired by the designer, without the need to write any code. Climate can be integrated with other mechanics to help bring the world to life, allowing for flags fluttering along the wind up to its own AI driving the WeatherSystems.

WeatherBlender empowers the designer to easily set up a system in minutes, without ever repeating that process again. The system stores the data for reusability and allows for easy tweaking. This minimises the time needed to set up the system, freeing up more time to design intricate mechanics to complement these nice effects.

WeatherBlender does not include a particle engine. Rather, it is intended to play well with other AssetStore content. Developers can reuse any package they bought and manipulate the results via the weather system. The intuitive setup allows designers and artists to easily blend effects. Players can still see the rain pouring in the last area they come from, yet glimpse the sunrays beaming on the horizon.

This is not only limited to particle effects though. Whenever players step into a WeatherSystem, it can activate any object bound on it. This is triggered via the inbuilts physics engine, and works in both 2D and 3D dimensions. This becomes a powerful LOD system in itself.

First Time Setup

Scene Workflow

  • Drag a number of WeatherArea prefabs
  • Drag the prefab called WeatherManager
  • Bind the respective areas with their particle effects and weather states
  • Drag in the character controller prefab
  • Press play!!

This will take you only a couple of minutes to setup, and allows you to reuse the same assets while creating dynamic and varied effects.

Features

  • Workflow is the same for 2D and 3D scenes
  • Support for ScriptableObjects, with a custom editor and enhanced control
  • Climate Data exposed
  • Experience different moods within the environment by tinting area lights, combining multiple states
  • Grouping reduces Drag and Drop gestures, allowing your mouse hand to click more cat gifs… err
  • What’s exposed via the API will be supported via Playmaker as well
  • Utility scripts out of the box, like randomizers and example setups
  • Highly performant - 0% interference, 0% processor hungry, 0% GC alloc
  • Detailed documentation and video tutorials

Thanks for reading!
It’s worth noting that this is still WIP, so if you have any questions, please do not refrain from sending requests or feedback.

cheers,
mic.

A new integration video is live. I am illustrating the integration process in a 2D game. Here is the direct link.

I am looking for a weather system with a decent time of day feature as well, one that I can tie into my game so that events occur based on time and on the current weather. If you do not plan to implement a time of day feature, possibly you could integrate with a popular time system, such as Time of Day, which is what I use now. It does not feature climate or weather though, which means I have to find that elsewhere.

Most of the weather systems on the asset store are either abandoned or they are far too heavy on performance. I am making a PC game but because it will be multiplayer, I would like to keep performance decent. I don’t need a bunch of bells and whistles but I do want a climate system that can handle different climates in an open world and can base climate/season changes on time.

Looking forward to seeing more.

1 Like

Hi Telia,

The framework currently offers a Weather and Climate system, accompanied with triggers (3D and 2D) and Lights. Events are exposed and you have full control over the system. I am working on the Documentation for the existing API, however, the same functionality will be mirrored via Editor tool like Playmaker. Regional Weather Systems are demonstrated in “The Basin” and should satisfy your needs. You can also rest assured on the performance side as well.

With regards to an internal Time System, I can say that it is on the Roadmap along with a plethora of other components. Unfortunately, it will not be available upon release, however, there are plenty of angles to tackle that problem. Taking the basin as an example, the regional system is activated once the player is detected. This setup requires no code whatsoever and should be useful when prototyping.

cheers!

It would be useful for prototyping. I do wonder if I could tie in the activation with the time of day system I have already. Or maybe I would need to do that at all.

Night/Day would depend on Time of Day, but I add your system to control weather when a player is present in the area. I am assuming this would work fine with multiplayer as every player that enters the system area would see the rain/snow. I could use the time of day system to add cloudiness/darkness to the sky. Then it is a matter of syncing the two, which might not be too bad. ToD has a nice way of syncing time with events.

I watched your videos and I like the simplicity. Looking forward to seeing more.

1 Like

That could be a plausible solution and should work. I have never used Time of Day myself, but I will look into it and get back to you.

Multiplayer could work in various ways. A possible scenario is to allow the game to do whatever it requires locally. However, if your game might depend on weather for gameplay purposes, you might need to sync the states over the network. It requires minimal integration effort, and makes for a more consistent experience without favouring opposing parties.

Thanks for the kind remarks. The majority of the work was, in fact, trimming down the fat to come up with a solid yet extensible framework.

1 Like

The first version has been accepted on the store. I updated the first post for convenience.

You really need to add a demo that people can play before buying, a 2d and 3d example. I checked out your YouTube videos and still do not have a feel for the quality of the asset and what I might actually see when using it. Great setup tutorials but not enough videos showing it actually working.

I have no idea whether it is worth $100. :slight_smile:

1 Like

Demos are linked in the first post. You can move around in the 2D and 3D scenes, thus triggering the respective systems. The climate demo showcases the interaction of the various weather effects and the resultant climate factors. If there’s anything I might have left out, please voice your concern.

The asset currently makes heavy use of EditorWindows and custom inspectors to create and customise prefabs and scene objects. It also leverages ScriptableObjects as data containers. There are no additional systems that you need to be familiar with, as shown in the Setup video. There are additional samples provided with the project so that you can get started immediately.

The Weather Engine works in two ways, either through triggers as shown in the 2D and 3D scenes or through code, as in the climate demo. I intend to publish a separate package for playmaker sometime in the near future, depending also on the number of requests.

With regards to the value, I cannot provide a clearcut answer but I can share my advice based on my experience. If your intention is to learn how typical systems work, then I would suggest having a go at building a system yourself as there is so much you can learn. Speaking from experience, I learnt a lot myself from such an endeavor and had some interesting conversations with friends about possible solutions. Getting here was one of the most rewarding experiences working with Unity in the last couple of years.

On the other hand, if you require a system that works out-of-the-box, I guess it’s worth spending a couple of dollars to avoid having it developed inhouse. The time spent to recreate the systems can be spent to create more content and interaction. If you calculate it in simple terms of a salary and say you pay yourself $20 per hour, the package will break even just after 5 hours of work. There are other solutions available on the asset store as well, however, we had different needs than what was on offer.

To reiterate on the benefits of the engine:
Artists may hook up their particle effects in a scene and tweak their results to achieve the look and feel they desire, without any additional configurations or code. However, the most advantageous feature was the ability to create multiple systems in a single scene. The designer has ultimate control over how the weather reacts and interacts with external elements, with very minor intervention from the programming side. The same elements were easily reusable in other scenes and projects as well.

The effects are reversible in each local weather system, even the lighting. Duplicates are handled automatically by the engine, preventing the same effects from being added multiple times. This is especially useful when using WeatherGroups as a single state might (need to) be present in different groups. The reversible states also apply to the Randomizers provided out-of-the-box. This simplifies the workflow for developers without having to create complex state machines.

Extensive documentation and a Manual are also a nice addition if you’d like to skip the videos.

I hope that makes it easier for you to make a decision. Also, as per your earlier request, I am looking into an implementation of a Time of Day, Day & Night and a Season cycler.

Thank you for the information. I found the demos but they really do not show me very much. It is awkward to use the controls and the sky never seems to change. This does not feel like a complete weather system yet. It needs a lot of work.

Good luck to you. :slight_smile:

1 Like

You are right in that it needs more work, and the early release may help you shape the asset according to your needs as well.

The sky will be integrated with the season cycler in the upcoming update. This is planned for release late May.

I am sure that is true. But unfortunately, I have taken far to many risks with assets that have never really lived up to expectations. If yours does, I will look more seriously at it. But right now, it is definitely not worth the risk, especially at that price. Please do not think I am asking you to reduce the cost, as I wouldn’t at this point buy it anyway.

I believe developers should set their price based on what they think their time and efforts are worth. :slight_smile: I buy what works for me, regardless of cost…well, within reason.

1 Like

Fair enough and with good reason :). In the meantime, feel free to vote for any feature you’d like to be implemented in the next phase.

An update is on its way, however I need more time to polish and upload new tutorials.

The new preview contains a snapshot of upcoming features. The most notable of all are dynamic skies!