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!
New Features
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 its own section to explain how they work and what it means for your projects!
Game Clock
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
Room System
The pinnacle of this update was the Room System (and we don’t mean the kind with four walls, roof and floor 😛 ). With your Zone, you can dictate which areas belong to which room, each with its 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 its 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!
Clouds
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!
Particle Editor
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 than 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
Project Build Times
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 a new project 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.
Object LOD
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 at the rendering call for both objects, which have subsequently been improved, moving data transfers outside of the main loop resulting in a faster fps.
Terrain Brush Improvement
We made a small touch-up to the existing terrain system. When creating a new height map, it can sometimes 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 to an alpha value of 0, making the particles invisible and causing unnecessary confusion.
Bug Fixes
World Editor
- Fixed a bug where deleting a terrain from the scene caused a crash.
- Fixed a bug where deleting a terrain from the scene wouldn’t clear the stored .Dat files in the project (fixed memory leak).
- Fixed a bug where deleting a newly created terrain from the scene wouldn’t clear the stored .Dat files in the project (fixed memory leak).
- Fixed a bug where adding a new terrain would not reveal the Done and Remove Buttons unless the terrain was then re-elected.
- Fixed a bug where pressing the Del or Esc Keys would not interact correctly when a terrain was selected.
- Fixed a bug where some GPU drivers would cause the viewport to simply render as White and not show anything correctly.
- Fixed a bug where deleting a zone wouldn’t clear all the data files from the project relating to that zone.
- Fixed a bug where directional lights caused White Artefacts.
- Fixed a bug where directional shadows did not apply correctly.
- Fixed a bug where directional lighting did not apply correctly.
- Fixed a bug where using the Timeline Settings for particles would automatically set the scale, alpha and colour to 0, making the particle invisible unless the user changed it.
- Fixed a bug where adjusting the time between spawn values didn’t actually do anything.
- Fixed a bug where particles using animated textures would show the whole tiled texture at the end of their lifespan.
- Fixed a bug where animated textures did not work correctly if there was only one row of frames.
- Fixed a 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 a bug where selecting a particle texture in a format unsupported by Windows default would cause a crash.
- Fixed a bug where Particles using the Timeline Feature would have their position values skewed whenever switching between different emitters.
- Fixed a bug where Creating a new Project would result in it having the old format forcing an update when loaded next time.
What’s Next
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 improvement 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.