We are proud to announce the release of the November update to GameGuru! As always we depend on our community to let us know what they want to see next and a resounding vote for better AI has been the inspiration for this update. But for those more interested in other aspects, read on for what is another bumper update of features across the engine.
Aside from the usual myriad of tweaks and fixes, we have focused on a number of areas this time including models, importing, physics, particles, and of course A.I, all of which are geared to making sure you can make better games. Here is what we have for you this time:
New Physics Shapes
We have added sphere and cylinder physics shapes to the options you can specify when defining the shape of your model via the FPE file, allowing barrels realistically and spherical objects to roll away if subject to gravity. We also took the opportunity to fix an issue that caused physics to change its simulation speed based on the FPS, which caused some unstable collision activity.
As we worked on importing many types of model, we expanded compatibility with models which might have erroneous constructions so now GameGuru can load in a model file that only contains animation data, allowing such data to be appended to the master entity object. In addition, the importer:
- Now supports the 8-system where bone weights are spread over a unit of 8 (FBX), as opposed to an overall weight of 1.0 (Fuse)
- Can detect spine and spine 1 limbs/frames to allow the "isspinetracker" FPE field to allow movement to be controlled the animation data
- Added SetEntityAnimation(e,slot,start,finish) command to override or assign animation sequences via LUA script
- Added IGNORECSIREFS to entity FPE so that old CGI animation references can be skipped in favor of original animation fields
- Fixed ragdoll bone structure so feet and hips no longer twist into unrealistic angles
- Added GetEntityAnimationFound() command to determine if entity pre-assigns animation sequences to a specific slot
- Non-Ragdoll characters no longer disappear at end of their death sequence process
The benefits of the above improvements can be seen with the new and improved character AI detailed below and helps users wishing to take their scripting furthermore control of the models and how they load into the engine.
New and Improved Importing
In addition to the 8-system support we have extended bone count support for GameGuru models to 170 bones per mesh, allowing for a wider selection of character models to be imported into the engine, including iClone and MakeHuman characters. The new support also extends the system to support 8 bones per vertex, using a new APBR_ANIM8BONE shader. Most games use 4 bones per vertex, but if your game needs characters with moving fingers or talking faces, then you need 8 bone support for the best results.
As well as improving the geometry handling, we now scan for additional material and texture references to make importing models with unusual texture assignments easier and quicker. In some cases, a texture reference can be generated even if the model only contains material names and no original textures as the source model file.
Finally, to ensure all textures imported via the importer make it to the standalone of your games, special texture references are recorded in the entity created from the import process to ensure that even unusual or non-compliant texture files are still retained for the final game build.
The F11 mode to view PBR texture stages can now be disabled in the SETUP file of the standalone executable for the final shippable title. In addition to the above improvements to retaining model textures, we have also fixed the issue of incorrect FOV when modifying it within the game via a script.
New Script Pre-Exit System
A new way to handle entity demise has been added to the script system and allows the scripter to control exactly how the entity is removed from the game. Previously, the entity would either turn to ragdoll, disappear or explode. Now you can intercept the final moments of an entity removal with additional script code, allowing all manner of last minute tasks such as extra animations, changes to game logic, score handling and even resurrection.
A good portion of time for this update has been on the A.I of the characters, making sure they deliver the kind of gameplay you would expect from a modern shooter. Here are the highlights:
- Added new 'ai_melee_animmove' script which allows models that include movement info inside their animation data to take effect in the game
- Changed default CONE ANGLE of all default characters to 270 degrees total so they can 'see from the corner of their eye' better
- Vastly improved character cover zone detection, so placing a cover zone marker down will attract a soldier engaging with the player
- Added additional behaviors for A.I soldiers including strafing, ducking, crouch running, rolling and avoiding - harder to hit a moving target
- The A.I now picks up on the players gun sound origin rather than where the impact of that bullet happens - more engaging battle
- Added GetMovementDeltaManual command so can detect actual speed of progress of any entity, good for animation speed control
- Improved character A.I rotation code so more behaviors use smooth curving angles - see new movement progress of Zombie A.I characters
- Reduced the 'circling' effect when A.I gets close to their final destination by increasing rotation speed as they get closer to target
- Improved handling of 'very fast' A.I bots that would get ahead of the logic that directed their pathfinding navigation
- Relegated all CharacterControlX LUA commands as they are redundant in the new external script-based system (open better than closed)
- Activated detection of dynamic obstacles for moving A.I bots that rely on physics
- Added additional cover zone markers to the Big Escape level to provide a good example of how they should be used
We are also pleased to report that this A.I includes code contributed from the long-standing master of GameGuru scripting, "smallg" and we are excited to see this level of participation in the development of GameGuru AI by the community.
Speaking of community contributions, another power-giver in the community, "AmenMoses" has generously given of his time to improve the particle system of GameGuru, here are some of the highlights:
- You can now create particle emitters for entities with new ParticleAddEmitterEx command (move the emitter with your entities)
- Specify custom particle image and frame count of image animation (choose 4, 16 or 64 animated frames for your particle)
- Added SetHoverFactor command to override hover height on entities that use the hover factor value in the FPE (see Scifi Drone Ally)
- Vastly expanded access to attributes of a particle emitter to give you full real-time control of what particles do
- Added particle commands documentation in the appropriate section of the global.lua file
- Added command to control the gravity setting of particles
With the addition of custom particles, we also expanded the standalone export process so all the extra media you might use to construct your particle effects are included in your final game build.
New FPP File Behavior
You can now include a '.FPP' file to accompany '.FPM' files to specify extra folders and file to add and remove from the final standalone executable. For many updates, users have wanted a way to control exactly what gets added to the final standalone game and what stays out. This FPP system allows full control of this, from whole folders all the way down to specific files.
Other Fixes And Additions
The actual list of fixes and tweaks is a little too onerous to make into entertaining reading, but a full chronological history of every single change can be found in the GitHub repository which tracks the continual development of GameGuru, which you can find here. We do have some highlights, however, to give you a flavor of the improvements that have been made so far:
- Added a flag to the SETUP file which forces GUNSPEC files to be reloaded without having to restart GameGuru - ideal for weapon artists
- Invisible walls once again repel players from walking through them
- Replaced hand models with a proper magic staff when the player is armed with this magic weapon
- Fixed the 'black weapon' issue caused by old multi-texture DNS textures under the new PBR, also added illumination texture support back in
- Fixed issue of weapons picking up dynamic light information for the correct lighting of the HUD model
- Added default behavior which boosts albedo of old weapons denoted by them not specifying a shader
- Multi-texture DNS textures now carry over to the final standalone game build
- Great SetFont fix by "cybernescence" to ensure you can use your own fonts in your finished game
- Fixed issue with the behavior of LoopNon3DSound so that re-entering the zone is handled correctly
- Added SetEntityString command to override data and also to trigger a new sound be loaded into a slot in real-time
As always, if you find an issue of your own, you can report it right away by visiting our GitHub issues tracker and posting the problem you have, and as always, the more detail you can provide the better. Here is the link to our issues tracker.
As you may know, at the start of the year we opened up GameGuru source code into a GitHub repo, that while not open source, would give you the ability to download, compile and run the very source code that makes the product. It could be used to enhance your own game project, or we hoped, help some of you contribute to the very engine and improve things faster. That hope came true, and much of what you play now is partly thanks to the community that surrounds it.
At the request of the community, we also opened up a Donations System so that we may administrate the paying of freelancers to accelerate this effort even more, and we have already had some success there too. Feel free to check out the page which details how the system works, what the donation pots look like now and where we have spent your contributions. Check out the Donation System here.
We can reveal that one freelancer is currently working on GLTF importing, and although we would have liked to have seen it in our November update the task has grown into quite a beast, especially with the different variants of GLTF animated and textured models out there, so please bear with us while we make sure this feature is solid before we add it to GameGuru. To see how GLTF support might fit into your game making universe, check out the Sketchfab store which is one of the places we are using to export GLTF models for testing: sketchfab.com
We hope you are finding GameGuru to your liking and, as always, if you have any suggestions on how we can improve things further for the next update, you can contact us through a variety of channels, including Facebook, YouTube, GameGuru forums, Steam forums, and our direct support system. Best of luck with your game-making projects and keep an eye out on the news feeds for more announcements from GameGuru land!