We released the last major update to GameGuru in April with the launch of the DirectX 11 engine and we're happy to announce the release of the next major update which, due to the size, we can only describe as a monster.
This monster update includes a host of new features and core fixes to give everyone a little of what they want to see, including an improved FBX model importer, faster rendering, better visuals, more dynamic lighting options, improved memory handling, underwater action, more sophisticated weapon system and improved shadows. It's in part to our fantastic community that many of the following additions made it into this update, and we are eager to see what you think of it. Here is a short list of the highlights you will find in this update:
Visual Improvements
We have made tweaks to the way non-PBR and PBR objects and terrain are rendered to create a closer match between the two and added extra control for those who want to modify the post process settings. We've also toned down the specular override on the PBR side to restore a realistic threshold for anyone wishing to boost the shinier objects in their game levels.
New settings have been added for changing the quality of the shadows and we have cleaned shadow artifacts on the light side of objects so you will see an improvement in the visual quality and clarity of real-time shadows.
We continue to improve the stock assets, converting more of them to use PBR textures, including the bridge folder assets and a sprinkling of additional PBR items in the stock asset folders.
Memory Improvements
A huge amount of work has gone into how GameGuru handles it's memory footprint, with a number of new SETUP.INI settings to give you the control you want when creating games for systems with low graphics memory:
- Added "standalonefreememorybetweenlevels=1" to free memory between levels of a standalone game
- Added "memgeneratedump=1" to view the actual memory usage of your game levels
- Added "memskipibr=1" to speed up texture loading for shaders not using IBR texture
- Improved texture reuse by setting the order of texture loads and original texture paths
- For textures created dynamically, we keep current compression for better memory use
- Vastly reduced use of mipmaps on editor graphics that do not them
Performance Improvements
New and improved shadow rendering has increased the performance for most levels and we've added faster depth map usage for PBR rendering. By enabling different shadow cascade sizes, plus a variety of other shadow and shader related tweaks we have managed to make considerable speed gains for this build. By default, GameGuru uses a vertical sync so don't be surprised if your FPS does not go above 60, but you can switch this off in SETUP.INI to see the true frame rate of your game.
Underwater Antics
A new flag in SETUP.INI called "UNDERWATERMODE=1" will enable additional player control mechanics and visual water effects, effectively allowing the player to enter deep water and survive for a lungful of air. We have also updated the water shader to avoid using the water-mask texture to improve performance, with an option to enable this if users prefer the older system using the SETUP.INI field "memskipwatermask=0".
New LUA Commands
For the scripters amongst you, you will find a host of new commands available that range from physics commands, which add the new sphere and cylinder collision shapes through to the control of dynamic lighting. New scripts, including Pickupable script which enables objects to be pushed, picked up and thrown.
Weapon System Improvements
Thanks to the help of a top GameGuru weapons artist, we have made some subtle yet powerful tweaks to the way weapons look and function now and in the future, including:
- Added infinity symbol for weapons that have a reload quantity of zero
- Fixed object texturing for weapons so the albedo is assigned for PBR only weapon textures
- Moved weapon muzzle dynamic spot flash so the gun is better lit while moving
- Enabled ENABLEPLRSPEEDMODS by default so weapons take on more realistic characteristics
- Fixed gun jamming code so reloading or dry-firing no longer heats up a weapon
- Added fields to GUNSPEC for INVERTNORMAL, PRESERVETANGENTS, and BOOSTINTENSITY for better visuals
- Added support for weapon gun-spec "zoom start and end-fire 2 and 3" animations
- Added new SETUP.INI flag called "disableweaponjams" to stop all jamming irrespective of weapon settings
- Fixed issue so "last fire start 2" and "last fire end 2" (and 3) now animate properly
- Added support for "zoom action start and finish 2 and 3" for better authentic zoom firing
- Ensured weapon animation speed consistent, even if jump and melee attack at the same time
- Now only plays dry fire sound if accompanied by dry fire animation for consistency
- Reduced force exacted on brass expelled from the weapon by a factor of 10 (brass now visible)
Improved FBX Importing
One of the exciting improvements we've been able to make is to the FBX Import System which formerly only handled a small variety of static FBX model files. The new importer can handle a wider range of both static and animating FBX models, a perfect compliment to the GameGuru PBR renderer which can handle models that use albedo, normals, metalness, gloss and ao texture maps as part of the texture ingredients.
Customizable Projectile System
Until recently the projectile system was limited to a few projectile types, now weapon artists can create and assign their own projectiles, the effects and sounds they use and the event that happens when they strike:
- Added support to customize trail, explosion and smoke images of projectiles
- Added new LUA globals to allow detection of projectile explosion events
- Added new script called MAGICEXPLOSIONEVENT.LUA which demonstrates projectile explosion events
- Added MAGICBOLT projectile and MAGIC STAFF weapon to demonstrate how to customize projectiles
Enhanced Dynamic Lights System
In the previous version, even though you could add as many dynamic lights as you wanted, only 3 would effectively illuminate the scene at any one location. This system has now been overhauled to allow 38 lights to be simultaneously represented at any one time, giving you incredible new options for lighting your game levels. We have also added a new lighting type for spotlights, which can be placed just like regular dynamic lights and can be found in the Markers tab of the editor.
Other Fixes And Additions
In addition to the headlines above, you will also find smaller fixes you helped report since May:
- No longer will you accidentally press the lightmapping function in test-game, you now need to hold down SHIFT before pressing the F1 through F4 keys
- Fixed issue with no decal effect when hitting a surface with a material index of zero
- Added extra documentation to MaterialIndexValues.txt to explain how the engine can provide metalness and gloss textures from the material index value
- Added CharacterKitSampleParts.zip to Docs folder for users who want to create their own Character Creator Parts and need a good sample
- Added NON3DSOUNDINZONE.LUA to show how to play a sound that ignores distance from the entity
- Model loading now ignores vertex color as not used in PBR shaders
- Model loader now determines a PBR texture name from the material name if no texture filename specified
- When multi-texture model loaded, it now scans for and loads full DNS and PBR texture sets
- Fixed issue causing scope overlays to miss out the bottom row of screen pixels
- Added new markers for Image Zone, Text Zone and Ambience Zone for easier, quicker logic placements
Community Collaboration
At the start of the year, we opened up the source code to GameGuru so that members of the community could get a little closer to the engine, and if they wished, contribute at a level they preferred, sometimes with the help of small incentives donated by a very generous game-making community. We are pleased to report our little experiment has done well, and a good proportion of the above features would only have been possible through direct community involvement. If you would like to learn more, feel free to check it out on GitHub.
We hope you enjoy this new update, and as always, if you have any ideas how we can make GameGuru better, or if you have any questions, feel free to contact us through the forum, facebook, youtube, support mail or the steam discussion board. Until the next update, happy game making!