Bright Engine is a Light-Weight C++ Rendering platform aimed towards, Real-time rendering for both Video Games and Cinematic Animations. It is still very early in its life-cycle, but has been designed with scalability in mind allowing for any form of project to be created. From a first person shooter to a Massively multi-player online game.
The mission is to create a robust development tool that acts as a viable alternative to other mainstream products by providing complete control and customisability, allowing the Engine to suit any project while still remaining simple and efficient to use. While the Editor does the heavy lifting, you can go into the heart of your project and edit the source code of the executable to achieve anything you want (including adding your own custom or other 3rd party libraries).
Bright Engine has undergone and still continues to be rigorously tested by a growing community of dedicated game developers who have ensured maximum stability with each new update.
If you are interested in Bright Engine and want to snag up a free copy you are welcome to join the Discord community to ask questions or follow our progress on Trello to get real time development progress updates!
After a trying few months, we are finally ready to unveil the next update for Bright Engine. As we stated in our last patch notes, this update series is all about moving the engine away from world editing, toward gameplay systems. As such strap yourself in, because we are about to go through a whirlwind of new features, improvements and bug fixes!
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!
Before we dive into the technical stuff, we’d like to give a shout out to our awesome community who have helped get Bright Engine working on Linux! While there is yet to be a dedicated build for the Linux platform, if you are using it, you can now play with Bright Engine without having to wait any longer!
First up, a brand new Project Launcher. Over the last few months, we’ve had growing complaints from the community over having to constantly search for the project file when booting up the engine. These were well founded since even we, the developers found it annoying. Thankfully those days are over!
The project launcher allows you to quickly open your projects in an instant, while also making the process of creating a new project simpler to understand!
With a more streamlined project loading system in place, we next turned our attention to world building tools. While this is not the primary focus of this update series, we noticed a rather glaring problem: You could only select one object at a time. Well, not anymore! Multi-object selection is now fully functional, along with a brand new Grouping System and Rotation Methods!
By holding the Shift Key (Default) you can select multiple objects of different types at the same time and perform transformations on them concurrently. To further extend this, enter the Grouping System. This is a method of saving previous selections if the user wishes to, that way in the future, if they think they might need to edit that specific collection of objects again, they can select the group instead which will select all the objects for them!
In addition to this, new Rotation methods have been implemented, that allow for a more extended transformation tool box! (This subsequently meant we had to rewrite the code for the 3d cursor and in doing so were able to remove 120 lines of code)
There are three rotation methods:
For those who have been following our progress so far, you may have noticed we like to get our lighting as advanced as possible. Afterall, so much of modern PBR rendered is dependent on good lighting. So as usual we still weren’t happy with our lighting system.
We started out with some basic improvements. Lights now slowly fade out as they reach their maximum render range rather than popping out of existence (which is optional for those who like the pop) and we changed how the color data was passed on to the GPU resulting in a small performance boost.
But those are not the star of the show, for we added something much more special: The Timeline Editor.
Previous versions of the engine had a collection of flickering settings. These allowed for variations in light strength to create a flickering effect for more atmospheric lighting. The Timeline Editor has replaced this system entirely. It actually does the same thing as the older system, the difference however, is now every light setting can be varied, including color!
This new tool opens up a whole new collection of design opportunities and lighting once again has been drastically improved. Despite this, I'm certain in the future we’ll find more ways to improve lighting even more!
Next on the improvement list was Terrain. Our existing terrain painting system is rather decent (we think so anyways) but there were some old school tools which never made it into the original terrain painting update, specifically Vertex Color Painting. While it's not a tool used by many, used well and subtly, it can create some really impressive results…. Or you can do what we did, and make Repulsion Gel from Portal 2 :P
This vertex painting suite was further extended into the Dynamic foliage system. Using vertex colors you can add subtle variations in color across a single foliage layer which adds an extra layer of realism!
But aside from that fun stuff, the texture painting needed more work. We want Bright Engine to be able to create photo-realistic results and terrain in its current form, just couldn’t quite do that and we pinned it down to one thing: Blending. Up to this point Terrain has been rendered with linear blending between layers, which in-combination with alpha masks, can create good results. We we want great results and so we’ve added an entirely new blending method for you to use, if you so wish. Height Based Blending.
This method takes the data from a heightmap for each texture layer and uses that to calculate which layer should be on top (unlike linear where layer 2 is on top of layer 1, layer 3 is on top of layer 2 etc). The result allows for much more realistic blending results. Effects like sand filling up the cracks between rocks is now completely possible!
But adjusting height map data can be a pain, so we’ve added height modifiers to the settings which allow you to move layers forcibly on top of each other. If used in conjunction with scripting, effects such as snow or puddle accumulation is now completely possible and the results look great!
Using brush strength, you can get a nice variation of height throughout your layer, so if you want a specific patch where snow fully covers rocks and another where it doesn’t, that's perfectly possible as well!
The last system that got some TLC this update is the Hierarchy Panel. Up to this point, it was more of a nuisance than a helpful tool and we think it was due to the fact that it became a clustered mess in complex scenes with 1000’s of objects. So we gave it a complete makeover!
It's got a much more fluid interface which fits better with the rest of the editor, as well as a brand new collection of organisational tools! You are now able to create folders within the Hierarchy and organise your objects accordingly. Furthermore whenever placing objects within the scene you can select which folder they should be placed in, within the hierarchy to automate the process in future.
In terms of editor performance, despite this not being the primary focus of the update, we did make some improvements. After adding more barrels to the stress test scene, the fps dropped to 43. We tweaked the methods of which data was being accessed and cut the number of cpu cycles along with altering how Vertex Buffers were being created for dynamic foliage, diagnostic, and instancing render calls. The result was a lovely boost back up to 62 fps!
We were also able to adjust the time of day calculations along with the auto saving system. All these changes put together amounted to around 400 lines of code being removed and each system subsequently working more efficiently.
As a final tweak, we updated New Zone creation to have a default skybox set up so new users aren’t met with a black screen, and fixed the bug where clouds weren’t being affected by the time of day modifiers
We have made some excellent progress in this latest update but the mission continues. We plan on continuing the toolbox beyond world building. Aside from the continuation of waypoints, audio and cameras are going to be next on the list along with a complete overhaul for the particle system and some further improvements to post processing!
Here we are at the final update of 015 update series, happy to present a significantly more stable engine! We bring this update series to a close with...
After two months of vigorously sweeping through thousands of lines of code, ripping out old systems with new ones and altering the architecture of the...
To kick start the first of many updates in 2019 we begin with the 0.1.5 series. As previously mentioned in the 0.1.4c patch notes, this series of updates...
This series of updates have had the goal of creating comprehensive tools for world building and so we are finishing it off with two new tools: Dynamic...
No articles were found matching the criteria specified. We suggest you try the article list with no filter applied, to browse all available. Post article and help us achieve our mission of showcasing the best content from all developers. Join now to share your own content, we welcome creators and consumers alike and look forward to your comments.