GameGuru MAX - December update released!

We aimed - and we scored!  That's right, by placing the highest priority on bug fixing we didn't give those pesky bugs a chance, and those keeping a tally of the bug count will be pleased to learn that on the 15th December we reached zero bugs on the issues board for GameGuru MAX. Given that we still had 290+ in August, the team is very pleased to reach this milestone for 2023 and looks forward to what happens next in 2024.

Above, for prosperity, are shown the last five bugs on the issues board before they too went the way of the other 561 that came before them. Naturally, as with all software development, we will see new reports come in, especially as we add new features, but it's far easier to tackle a dumpy hill of issues than a mountain of them!

Some of the highlights since the last update include better support for selecting multiple objects and affecting their properties on mass, including the ability to select a range of objects to change their transparency, double-sidedness, reflection and the ability to cast shadows. We also added a double-click option in the detailed object view to instantly select all instances of a single object parent, a very useful feature. This final ability was instrumental in improving the performance of several HUB demos, including the Canyon Offensive level which near constantly at 60fps on minimum specification hardware.

On the subject of performance, we recently discovered a new profiling tool called OPTICK, a very lightweight API for injecting profile markers into the engine code and measuring over time how long various parts of the engine take to process. We had profilers in the past, but the lightweight and instant nature of OPTICK impressed us, and were able, within days, to locate and optimize several areas. Operations involving ray casting in some cases dropped from 8-9ms down to less than 1ms, and to help with our efforts we added visualization of the expensive ray casts to see what was looking at whom.  Rest assured we will be making heavy use of OPTICK in 2024 to achieve our next milestone of 60 fps for all built-in demos for 94% of all Steam users internationally, and included in those stats are some real GPU-crocs!

Finally, as we move closer to the implementation of a new project system for those authors well into making their magnificent octopi, we made sure the storyboard and associated screen editor are up to scratch. We have added a better draw order system so you get full control over what overlaps what, we added a new text area gadget for multi-line text elements, and separated the arrow/delete keys operations to either the level area or properties so no more confusion with shortcuts and newly created screens are placed more conveniently for quicker storyboard creation.

And for the final time this side of zero bug count, the remaining issues log shows all remaining fixes from the GitHub repository since mid-November 2023:

  • Fixed issue with RPG screens disappearing due to new draw order system
  • Added ability to multi-change certain material properties of rubber band-selected objects
  • Can now double-click on an object parent grouping to select all instances of it
  • Weapons no longer render a shadow on them when pressed too close to a wall - rescaled shadow surface towards camera
  • Added new draw order layer system for screen editor in storyboard
  • Tweaked shadow cascade thresholds to reduce gaps in interior rooms
  • Added more HUD Screen actions 2 to 32 to complete storyboard logic choices
  • Fixed LOOT DROP system to account for all percentages specified
  • Included FLAG objects as points that can extend the nav mesh area
  • Added TEXT AREA choice to the storyboard screen editor
  • Restricted ARROW and DELETE keys so only works to affect widgets when pointer within the edit area
  • New storyboard screens are positioned more conveniently when created
  • Improved protection of hard-coded elements of fixed game screens
  • Added an Improved Steam Workshop Updater
  • FPS now shows when pressing F11 in standalone games
  • Fixed the issue of 'entityinzone' not resetting when entities leave the zone
  • Added extra profiling markers for continued performance work
  • Using PHYSICS RAYS for 'INTERSECTALL' PERFORMANT used by characters (MUCH faster)
  • Added debug visual to physics rays so can see where they are used
  • Improved the location of ray cast from characters (using the real-time head position)
  • Adding the use of a profiler to the main MAX engine to work on raycasting
  • Added OPTICK includes lib files
  • Added basic higher-level events for OPTICK to track basic in-game perf metrics
  • Amended weapon drop to pre-spawn weapons before the game for performance smoothing
  • Some code cleanup to remove legacy empty functions
  • Added new GetWeaponName LUA command
  • Improved performance slightly when running standalone
  • Reduced live dynamic object creations during the game loop (more needed)
  • Fixed new weapon system to produce correct HUD.DBO with animations
  • Reduced legacy particle code related to explosions
  • Standalones now export the correct files for explosions
  • No longer attempts to create debug objects when running a standalone game
  • Added for behaviors to specify any weapon from the list
  • Fixed the issue of custom projectile weapons not having more than one limb
  • Objects no longer need to be characters to show the weapon drop-down

Also, remember our end-of-month live broadcast is a great place to get a look at some of these fixes, so if you want to join in on these extended hour-long Q&A sessions, we host them on the last Wednesday of every month at 7PM GMT on our YouTube channel - see you there :-)