A shiny sky needs clouds too! Clouds are quite tough to implement due to the fact that graphics cards were not designed to draw half transparent objects, so you have to use various tricks to make it work, like sorting all objects every frame or implementing order independent transparency. Thankfully there's a lot of research on that - I chose to implement "Weighted Blended Order Indenpendent Transparency" invented by Morgan McGuire because its fast, comparatively easy to implement and delievers good enough results.
1. First working clouds with variable density (no WBOIT)
It uses efficient rendering methods so it can render over a kilometer of clouds quite easily (at least at this stage of the game)
2. Less ugly clouds after implementing correct transparency rendering using WBOIT
As you can see, the density and color of the clouds is just a value that can be changed anytime. This is important as I want to create different cloud patterns depending on the weather.
The cloud system is also using Shaders, so i can easily color them according to the sky colors during sunset (they are also vertically offseted here just for testing, I might make it a permanent feature):
Up next: More cleanup/refactoring and the beginnings of proper terrain generation.
I've added an ambient/fog system that works by layering ambient/fog colors on top of each other. This will come in extremly handy when there are several factors influencing the range and color of the fog. Examples: Air Humidity, Day/Evening, Underwater, Deep underwater, Potion effects, etc.
This system is already helping a lot in improving the look&feel when you jump into the water:
After lots and lots of studying OpenGL the game engine now supports GLSL Shaders. It's first use: A shiny new implementation of the Sky, including sunrise and sunset. Here, witness the very first sunset in Vintage story youself ;-)
In the video you can also see how the whole ambient and the fog is colored according to the suns color shift during sunset. This is also only possible due to the new ambient/fog system.
I also added dithering to the sky renderer to reduce color banding, which makes the sky look almost silky smooth. In the video the color banding is very visible probably due to compression.
TLDR: Screenshots below
Since I have full freedom on what I want to work on next, I often just focus on area for a short amount of time and then continue with something else. It keeps my daily coding on the game a bit more colorful!
The entity system got a complete rewrite, including some basic implementations of attribute trees and entity property system. These two system will allow to attach/detach behaviors and attributes to any entity which makes it a lot easier to add different entities in the future.
The Vintagecraft tree generator is now migrated to Vintagestory, which is a very flexible piece of code to generate a large variety of trees. It took some extra efforts to make it load the various tree types from external json files, instead of being hardcoded like it was in Vintagecraft
I'm a strong advocate for using a good toolset to achieve good results, so I am often spending time on adding stuff that help me spend less time on adding stuff ;-)
Since last update I added automatic reloading of server mods, you just save the changes, the server immediately recognizes the change and reloads all mods. This speeds up development when I have to do many small changes.
The creative inventory now shows an item tooltip when you hover over a slot, also I implemented moving items between slots using the mouse.
I also added a new sun texture to replace the one from manic digger. I spent quite some time on getting the glow around the sun just right.
I continued working on components required for worldgeneration. Before worldgen works as planned, many components have to be in place and working.
I did some playing around with fog, which will be a big part of the game as part of a weather system.