Bright Engine v0.1.8a Released – Diagnostics & Scripting Expansion

October 1, 2020

It’s been a trying time for everyone due to the Covid-19 pandemic, and unfortunately, it has caused some disruptions to the development of Bright Engine. However, things are now getting back on track, and we’ve managed to make excellent progress despite the ongoing situation. The scripting system is now approximately 40% functional, with six of the core classes now fully implemented! We’ve also completely revamped the diagnostics suite and squashed a whole lot of bugs!

A Huge Thank you to our Patrons! Your contributions make Bright Engine Possible!

Cody Pryor • Massum Zaidi • Mark Makarainen

New Features

New Script Object Classes

In the last update, input-triggered script events were introduced. But aside from getting the console to print “hello world”, there was no scripting functionality. We’ve now expanded the scripting class base to include – Cameras, Lights, Paths, Sounds, and Waypoints. That means you can control any of these objects by script.

We’ve also begun building up a base math library to speed up the process of performing complex calculations, starting with Vector2D, Vector3D and Vector4D math classes, while also laying down the foundation for more advanced calculations such as complex numbers.

Trigger Zones

A new addition to the object library of Bright Engine is Trigger objects. Being able to execute scripts using a mouse and keyboard is important, but games need far more flexibility than that.

Trigger objects are invisible areas you can place throughout your zones, which will execute a specified script when the camera enters its radius.

They are equipped with three trigger events. Entry (triggers when the camera enters the trigger radius), Exit (triggers when the camera leaves the trigger radius), and Inside (triggers while the camera is inside the trigger radius). This system also comes with a cooldown mechanism to prevent the execution of scripts for a certain period of time.

Changes & Improvements

Script Editor

Since the main theme of this update is scripting, we’ve made several improvements to the user experience of the Script Editor itself.

The code editor is now equipped with a more robust and optimised syntax highlighting system, along with an auto-completer for functions and object properties.

We’ve also made some tweaks to improve the in-editor documentation tooltips for a clear explanation as to what each function or property does and how they work.

Beyond these improvements, we’ve also added a file save-catching system to stop you from accidentally closing the editor without saving your work, as well as changing the default weight of a keymap to one instead of zero.

World Editor Diagnostics Profiler

We’ve completely removed the old GPU diagnostics suite and replaced it with a brand-new profiling suite.

Data and performance tracking are now far more accurate, as well as faster. A big problem with the previous version was the sudden decrease in performance once the diagnostics suite was opened. This is no longer an issue and has subsequently allowed for more variables to be tracked over time.

We’ve also taken the time to adjust the layout of certain components within the UI as well as fix some visual glitches. The object Place buttons are now in alphabetical order, icons in the hierarchy are thematically consistent with the rest of the editor, and some default values have been adjusted for a more intuitive workflow.

Zone Hierarchy

The zone hierarchy has also had some under-the-hood improvements. It now performs an object validation when loading zones to ensure any entries of missing objects are not included in the list (this eliminates a lot of problems where on the rare occasion, you could select an object that didn’t exist, causing all sorts of weird behaviour). We’ve also added a shortcut key to hide/unhide the entire selection of items within the hierarchy instead of having to do them individually.

Further minor optimisations have been added to the waypoint path transformation routines, reducing the number of CPU cycles and resulting in high-end FPS for users.

New Material Editor Nodes

We’ve introduced a new material type system. You can now create PBR materials as well as fully Emissive materials. The purpose of the latter is to exclude objects from the lighting and shadow calculations if they are never going to interact with it. This adds an additional layer of streamlining performance, as well as laying the groundwork for further unique materials such as Glass in the future.

The node library has also been expanded with the addition of the Animate UV node. This node brings support for animated texture atlases on your models, allowing for some crazy effects with both step and interpolated frame transitions.

As part of getting this node to function, the UV Coordinate input plug of the texture nodes is now functioning, allowing you to apply transformations to your object’s UV coordinates.

Bug Fixes

World Editor

  • Fixed a bug where removing an object would sometimes re-appear in the hierarchy the next time the zone is loaded
  • Fixed a bug where selecting an object from the hierarchy sometimes caused a crash
  • Fixed a bug where manipulating an object’s waypoint path offset with the 3D cursor incorrectly updated the UI and sometimes caused a crash
  • Fixed a bug where deltaTime was being calculated twice per frame
  • Fixed a bug where camera lens settings were not being copied when duplicating a camera object
  • Fixed a bug where audio effect settings were not being copied when duplicating an audio object
  • Fixed a bug where camera lens settings were not being correctly registered with the undo/redo system
  • Fixed a bug where the audio effect settings were not being correctly registered with the undo/redo system
  • Fixed a bug where the Waypoint Sleep Randomiser setting was missing
  • Fixed a bug where changing the Position offset values of an object assigned to a waypoint Path caused a crash
  • Fixed a bug where changing the Rotation offset values of an object assigned to a waypoint Path caused a crash
  • Fixed a bug where entering a hexadecimal colour code without the hashtag symbol sometimes caused a crash
  • Fixed a bug where entering a double negative sign into a vector 2D or vector 3D field would cause a crash
  • Fixed a bug where the Ctrl key was defocusing UI, preventing users from copying/cutting/pasting values
  • Fixed a bug where creating a new zone led to errors in the Post Processing Data file, causing the engine to crash
  • Fixed a bug where the Editor camera speed was not being loaded correctly upon restarting the engine
  • Fixed a bug where the Editor Camera Range was not being loaded correctly upon restarting the engine
  • Fixed a bug where adjusting the camera range using the keyboard shortcuts allowed a value to be out of bounds causing a crash
  • Fixed a bug where adjusting the camera range using the keyboard shortcuts produced incorrect results
  • Fixed a bug where diagnostic textures were not being bound correctly
  • Fixed a bug where adding a camera to a scene with no lights caused a crash
  • Fixed a bug where adding a particle to a scene with no lights caused a crash
  • Fixed a bug where duplicating a light would crash if the colour mode of a light had not been previously set
  • Fixed a bug where duplicating an object after deleting another object of the same kind resulted in an incorrect write to the data files corrupting the zone
  • Fixed a bug where importing corrupted model files caused the engine to crash
  • Fixed a bug where selecting a group of emitters when there are no lights in the zone caused a crash
  • Fixed a bug where Emitters could be placed without specifying an emitter file path
  • Fixed a bug where selecting an Emitter when there were no lights in the zone caused a crash
  • Fixed a bug where selecting an Emitter when there were no models in the zone caused a crash
  • Fixed a bug where removing an Emitter would sometimes cause a crash
  • Fixed a bug where Input keymaps were not updating until after the World Editor was restarted
  • Fixed a bug where changing the light type before removing the same light from the scene would cause a crash
  • Fixed a bug where changing the particle system of an emitter before removing the same emitter from the scene would cause a crash

Material Editor

  • Fixed a bug where changing the preview mode caused strange behaviour when using keyboard shortcuts
  • Fixed a bug where the bloom effect was still being enabled when previewing the material outside of the composite mode
  • Fixed a bug where duplicating a Color Node did not copy over the colour value to the new node
  • Fixed a bug where duplicating an Image Texture Node caused a crash
  • Fixed a bug where moving a Comment Box after changing the zoom level sometimes did not move the nodes with it

Script Editor

  • Fixed a bug where the autocompleter did not ignore whitespaces when generating lists

What’s Next?

Last update managed to excite a lot of new developers to join the alpha. This is awesome to see, but it did reveal a lot of hardware-based problems with the engine. Therefore, the next update is going to be focused on fixing those bugs as well as some drastic improvements to performance! We’re also going to be continuing our efforts to expand the functionality of the scripting system to include more Classes as we slowly move closer towards implementing the first round of user interface systems! Stay safe, and thanks for tuning in!

Home » News » Patch Notes » Bright Engine v0.1.8a Released – Diagnostics & Scripting Expansion
Bright Engine 2022 R3 Released – Performance & Optimisation

Bright Engine 2022 R3 Released – Performance & Optimisation

Continuing on from the upgrades introduced in R2, the engineering team have been redesigning major parts of Bright Engine’s rendering system. Plenty of redundant code has been removed, and significant chunks of the CPU-sided code have been rewritten to be both more memory efficient and reduce GPU idling.

Bright Engine 2022 R2 Released – Performance & Optimisation

Bright Engine 2022 R2 Released – Performance & Optimisation

It’s been two months of an architectural overhaul for the Bright Engine render pipeline. The engineering team have been making substantial changes to how the engine draws the scene, resulting in significant performance boosts without loss of graphical fidelity. Let’s dive under the hood to see what’s changed.

Bright Engine 2022 R1 Released – UI & Resource Management

Bright Engine 2022 R1 Released – UI & Resource Management

After months of programming, the time has come again to show off what our engineering team has been up to. A lot of under-the-hood architecture has been rewritten, drastically reducing memory usage and improving frame rate. Meanwhile, a brand new UI system and editor have emerged. This is more of a technical update than a visual, so pretty pictures will make a return next time.