This update brought the conclusion to the 0.1.2 series and is the biggest update released to date. The Game Clock is here along with the Room System. Put all together, Bright Engine is now capable of creating dynamic worlds, with Day & Night Cycles, weather simulation, displacement cloud layers and orbital sun simulations. All neatly packaged into a fully fletched Room System allowing you to update the atmospherics and feeling of your scene based on your surroundings!
This update is huge. Which means a vast increase of new features and tools at your disposal. Six new systems were put in place each needing their own section to explain how they work and what it means for your projects!
The Game Clock has finally made its first appearance. You have complete control over how long a day in your game lasts in real life. As well as the ability to quickly jump to different times in order to perform various tests, you can speed up, slow down & rewind time to your liking to see what a time lapse of a day in your zone would look like
The pinnacle of this update was the Room System (and we don’t mean the kind with four walls, roof and floor :P ). With your Zone you can dictate which areas belong to which room each with their own set of properties. As soon as the camera enters these designated areas, the properties of the room take hold and blend in with the settings of the previous Room the camera was in. What's the advantage of that? Well let's say your character entered a cave, by designating the cave as a separate room, you can lower the overall lighting for a darker atmosphere, increase the fog density to make it harder to work out objects in the distance along with a misty particle effect and run a background ambient soundtrack of dripping water and soft gusts of wind. Suddenly you’ve gone from a nice day out to a dark damp creepy environment through the use of the Room System (without needing to write a single line of code I might add).
Each Room can be placed multiple times throughout the zone and have a plethora of settings for you to play with, starting with the Skybox. Once again the skybox got a revamp (because the last update just wasn’t good enough). They are now a fundamental part of the room system, you can create multiple skyboxes that fade in and out based on the game clock which allows you to create that ever so lovely simulation of a Day and Night cycle with accurate object lighting throughout.
What use is a Day and Night cycle without a Sun? Something has to be generating all that light after all, and so each room can have their own suns which fade in and out at the times specified by you. Each sun has its own set of properties which you can edit to yield beautiful results of moving real time directional shadows and lighting!
You now have a Sky and a Sun, what's next? Clouds! While this rendition of the cloud system is still in its early stages with lots of room for improvement, through the use of Normal and Height Maps and some devilishly clever maths, Bright is able to create 3D clouds from a 2D plane, fully animated based on the values you give it. By adding multiple cloud layers at varying heights and velocities, the resulting simulation returns some really nice results given the basic nature of the current system.
To Conclude our list of new features, we finished the Room system with its own Weather Simulation tools. Just like before you can create multiple types of possible weather per room and assign a probability of it being triggered along with control over how long for, lighting changes, fog changes, ambient sounds (a thunderstorm perhaps?) along with an Emitter to create effects such as rain!
For the weather system to have useful particles, we had to introduce one more new feature to the Particle system. Volume Spawning. The Particle Editor has once again had another update introducing new settings that allow you to define how your particles should spawn. Volume spawning, forces particles to spawn in a confined space with the dimensions you set. Basically, this allows you to spawn particles over a 3D area rather from a single point, and instead of just leaving it at a basic cuboid area, we also decided to add, spawning within a sphere and cylinder. The new effects that can be created are even more limitless.
Changes & Improvements
Based on community feedback and general use, we have re-gigged some of the UI of the Main Editor. Moving some of the commonly used elements to a more easy access area. But UI changes were far from the only thing we wanted to improve. Creating new projects system was re-written and resulted in roughly -50% in build time and optimised the process of transferring default content, fixing some errors where Windows would block the operation causing some problems. We also removed the Old Console. With the standard Windows output console being much more lightweight and efficient, the Old Console simply wasn’t needed so we just took it out altogether.
Dynamic Lights and Emitters got a touch up. We added some new settings which allow you to set the maximum render distance of them. After all why render a light when the player won’t be able to see it? Adding this system gave us a closer look to the rendering call for both objects which have subsequently been improved, moving data transfers outside of the main loop resulting in a faster fps.
We made a small touch up to the existing terrain system. When creating a new heightmap, it can sometime take a little while on different computers, so we added some useful outputs to show the progress, to stop the illusion of the engine freezing when it’s in fact working out stuff for you. We also made a few adjustments to the calculations for tracking the 3D position of the Sculpting brush making its movement much smoother.
As a final set of improvements, we gave the Particle Editor a small touch up while implementing the Volume Spawning system. Default values are now much more sensible and switching to the timeline mode no longer defaults an alpha value of 0 making the particles invisible and causing unnecessary confusion.
- Fixed bug where deleting a terrain from the scene caused a crash.
- Fixed bug where deleting a terrain from the scene wouldn't clear the stored .Dat files in the project (fixed memory leak).
- Fixed bug where deleting a newly created terrain from the scene wouldn't clear the stored .Dat files in the project (fixed memory leak).
- Fixed bug where adding a new terrain would not reveal the Done and Remove Buttons unless the terrain was then re-selected.
- Fixed bug where pressing the Del or Esc Keys would not interact correctly when a terrain was selected.
- Fixed bug where some GPU drivers would cause the viewport to simply render as White and not show anything correctly.
- Fixed bug where deleting a zone wouldn't clear all the data files from the project relating to that zone.
- Fixed bug where directional lights caused White Artefacts.
- Fixed bug where directional shadows did not apply correctly.
- Fixed bug where directional lighting did not apply correctly.
- Fixed bug where using the Timeline Settings for particles would automatically set the scale, alpha and color to 0 making the particle invisible unless the user changed it.
- Fixed bug where adjusting the time between spawn value didn't actually do anything.
- Fixed bug where particles using animated textures would show the whole tiled texture at the end of their lifespan.
- Fixed bug where animated textures did not work correctly if there was only one row of frames.
- Fixed bug where selecting a texture in the particle editor would not release it from memory, making it unable to be edited by other programs.
- Fixed bug where selecting a particle texture in a format unsupported by Windows default would cause a crash.
- Fixed bug where Particles using the Timeline Feature would have their position values skewed whenever switching between different emitters.
- Fixed bug where Creating a new Project would result it having the old format forcing an update when loaded next time.
With atmospherics and lighting now in place, the next step is creating realistic terrains with dynamic foliage with wind simulation. Sculpting was added quite a while ago and we’ve had enough time to find the problems and areas for improvements so that will be our upcoming focus. However before we start diving deep into another New Features update, there will be a mini-patch before. There are still some improvements we didn’t have to add for this update along with some additional features for the room system, as well as some bug fixes in Model Loading and Emitter Creation.
If you are interested in Bright Engine and want to snag up a free copy you are welcome to join the Discord community Ask questions to existing testers, get real time development progress updates or even download the engine to try it out for yourself!