Weather in games can be much more than simply a visual effect – it can shape large parts of the overall experience. Heavy rain that limits visibility may change how players explore. Blizzards and heavy snowfall may impede progress and diminish your chances of survival. Hot, dry spells may negatively impact the growth of crops. In many modern games, dynamic weather adds realism, strategy and atmosphere, turning environments into living, exciting, and often unpredictable spaces. For Minor Deity, I have the following main aims when it comes to weather: Firstly, weather needs to be localised, allowing various different biomes with different weather conditions on the same map. Secondly, weather needs to be dynamic, allowing both small and large changes over time, either via deliberate player actions, or natural dispersion. Finally, weather conditions need to have a definite impact on the game, both visually and in terms of gameplay. Let’s see how we can use burst-compiled jobs on parallel threads, as well as blended layers in a tri-planar, tessellation terrain shader, to achieve these aims on very large maps.
This is the story of implementing what I've learned into a gridless, interactive, world-building sandbox game called Minor Deity.
Minor Deity on Steam: https://store.steampowered.com/app/3876240/Minor_Deity/
Minor Deity Discord Server: https://discord.gg/2NEb4HxwhF
00:00 Introduction
00:36 Our Requirements
01:11 Choosing Parameters
02:09 Data Design
02:54 Linking with the Terrain Shader
04:49 More Data!
05:24 Objects on the Terrain
06:17 Making Weather Dynamic
07:46 Smoothing Out Changes
08:23 Outro