7th March 2017
Having given the 2017.02.28 update a chance to settle down and really get a thrashing, I now have a number of fixes to make to improve and restore the AI system to where you need it to be, so thanks to those that produced videos, steps and levels for me to test and reproduce with. Here are my tasks so far, but expect plenty more during the rest of this week:
* Fixed melee punch condition to revert to recover and prevent startidle movement
* NOTE: Noticed MoveForward creates physics inertia and slides AI object WAY ahead of final pos when FAST
* Increased timing of path regeneration to avoid fast AI bots stop/start effect
* Improved COMBATCORE script for better classic Zombie and melee AI behavior
* Zombies (combat melee script) now remain idle until player detected
* Critically halved motion multiplayer to stop zombie/legacy character sliding
* Fixed soldier AI so those who patrol paths can continue doing so, even after stopping
8th March 2017
Work continued on the AI improvements, and I also found time to get the voting board updated and a thread started to collect final tweaks before we press the big red reset button on the old votes. Here are my tasks from today (which includes an update to the beta and public preview builds):
* Updated the legacy character movement to include the new character avoidance logic
* Restored AI bot speed system and readjusted Zombie characters to correct issues
* Reduced turn speed so characters no longer turn instantly to their new direction
* Ensured when high-speed AI reaches very last node, stop movement flag sooner (stop move spin)
* Replaced code which contains AI within their designated floor zones
* Increased frequency of path generation from 1 second down to 0.75 seconds
9th March 2017
More AI improvements and Building Editor fixes to get the most common reports sorted sooner. I had hoped to start some new cool things for the March update but it makes perfect sense to sort AI and Building Editor while the iron is hot:
* Removed forced animation speed from new AI behaviors to allow entity property control
* Removed forced turn speed from new AI behaviors to change it via entity SPEED property control
* Improved stair climbing detection for faster AI bots and characters in general
* Removed TEXTUREPATH from saved EBE entities to prevent use of temp ebebank\default caches
* Increased speed of all soldier characters to match legacy tweaks and AI back-end movers
* Stopped duplicate EBE thumbs being created in local library entitybank list
* Any EBE temp files and EBE texture files are removed from testmap folder on NEW level
* NOTE: It is normal for EBE items to disappear from local library, only their copies are used
* NOTE: To treat an EBE as a normal entity, simply delete the EBE file associated with it
* Building Editor textures recovered after texture cache clearance deletes them on session exit
10th March 2017
In addition to some essential fixes, I took a small break to drag some new assets kicking and screaming into the SCIFI DLC. They had been lying around for a while now, and I also made a commitment to improving the DLCs we offer from time to time with new content. Thanks to the new AI system, and the foresight of my artist to create cool stuff, for those lucky enough to own the SCIFI DLC you will soon be able to drop scout, security and self-exploding drones into your futuristic game level and watch them patrol paths, and go nutsoid when they see you. I have also dragged across the Futuretek Shotgun into the DLC as well, as I needed a back-end weapon for the security drone and it fitted well. Anyhoo, as part of this asset collection, scripting and testing, you also get some new features a la gratis:
* Fixed issue of multi material models with short texture names corrupting model data
* Corrected multi material object rendering to once again populate first slot with diffuse texture
* NOTE: The above fixes ensures the Galaxy Seed sky scrolling effect is restored
* The ENDCOLLISION property no longer sends ragdolls through floor and entities
* Added 'forceobstaclesliceheight' to FPE fields to allow AI obstacle plane height to be set
* Added 'notanoccludee' to FPE so entities can be designed to never get occluded by occluder
* Adjusted blood splat decal effect so only used if NO 'materialindex' specified in FPE
* Added 'explodedamage' to FPE to specify the default explosion yield of specific entities
* Added 'hoverfactor' to FPE to give hovering capability to 'flying' entities (drones)
* New SCIFI DLC Assets (Mission To Mars) and all new DRONES - Definitely Check It Out!
Onto some good news for me, not so much for you guys, I will be away next week to celebrate St Patricks Day in the United States and doing a few touristy things to chill my brain including some skiing at Lake Tahoe. I promise to be careful and not break my fingers off, and will resume my coding when I return on the 20th. After some evening testing, I will be releasing the above updates as the official build so everyone can enjoy the critical fixes to the AI and the extra boon from the other features. It's been great fun developing at this pace and quantity, and I hope you're seeing the benefit of this blitz through 2017. Hopefully the voting board reset will yield even more goodies for everyone too, so exciting times all round.
If you subscribe to my Twitter feed (@leebambertgc) I might even post a few photos of my antics next week and for those steadfastly waiting for the next GameGuru update, my plan is to get stuck into some water related issues you have been reporting for a while now. As you can see so far this month, AI has remained my top priority until it gets you where you want to go, and will remain so given the importance of it, and my return will resume this work to ensure it does the job. If I can return to some simple step by step bug reports to reproduce the issue quickly, I can guarantee quick fixes and turnarounds for you, but until that intensity returns, let me thank you for your help during these updates, and wish you the best for your game projects in the coming week.
Just a few things left to do now, some more testing, final release, build a replacement PC as my role of hardware guy, pack suitcase, check documents, crack open a bottle of Jack and catch-up on my boring but essential non-development emails I reserve for when I wear my CEO hat. Hopefully, TGC still exists when I return in 10 days
Until then, happy game making!
22nd March 2017
Well, I've had my nice holiday for the year, and now I'm back in the hot seat ready to continue coding. Spent most of Tuesday sorting out backlog (a lot of backlog) and then Wednesday stuck into fixes and new features for March update. As you can see from my last entry, you might get a clue which one of the top items I have chosen as my pet project. The top vote by the end of April will be the one I will code in May, but terrain textures have been requested for well over a year and I had some ideas on the plane back to the UK how it could be done, and so this will be my own selection from the list. Progress is going very swift, which often happens when you spend more time thinking than coding, and performance so far is higher than the current terrain renderer, so that's good news. Thursday I plan to re-use some of the UI and custom texture techniques borrowed from the Building Editor to allow the texture atlas palette to be altered to whatever you want, so that's 16 textures in any order and ones chosen by you. I will also write something to convert the old terrain texture system so older projects will continue as though nothing has changed, so this should be fully backwards compatible
Also thanks for the videos of the remaining AI issues, I will be checking those out as part of this update too. Here is my list from today:
* Added new switches in fixtures folder with new scripts to control doors remotely
* Breaks association from linked parent when EXTRACT used on an entity
* Improved accuracy of texture paint cursor at lowest brush radius
* Prototyped a new terrain shader to allow 16 textures to be painted instead of 4 (half way through)
24th March 2017
I was intending to finish off the terrain texture stuff, but decided to tackle the EBE issues reported from the previous update and found enough to keep me busy there, but the good news is that the issues I was able to reproduce are now solved. I did not get a chance to upload an internal beta this evening, but I have the weekend and don't intend to sit on my hands, so I hope to bring good news of fixes in a day or three. Here is my task list so far:
* Fixed AI_WANDERER script to use correct internal function names
* EBE structures loaded into level now carry the correct textures into level
* EBE structures being edited now use their own correct textures previously stored
* When save EBE structure, it now uses unique texture in ebebank, not current one
27th March 2017
This update has taken me right to the wire, and perhaps a shade over it to eat into some of my testing time. I had to use a lot of the weekend to chase an extremely annoying texture artifact problem which turned out to be related to the strange way in which GPU hardware renders to the screen. Some of you might know that all modern GPU's render to the screen in quad batches (2x2) for performance reasons, and this process when drilled down into the pixel shader can throw up some interesting pixel errors when you take FULL control of where the pixels come from. After 20+ hours of essentially scratching my head, and rewriting the terrain texture technique using volume textures and even cube textures, I finally understood the nature of the original issue and reverted to the original 16 textures per terrain approach and solved 90% of the issues. The last 10% threatened to delay my scheduled update so I have left it in for you to discover, and to put out the challenge to the community to see if someone can solve it before I do.
The issue comes down to a single question, "what are the correct partial derivative values for the tex2Dgrad commands that are used to fetch the texture atlas texels allowing for both mipmapping and texture filtering?". I believe I have solved the mipmapping issue, but I suspect the min/mag filter requirements are not being met by the current DDX and DDY values currently passed into the texture fetch command. Naturally, I will continue learning about this strange GPU art form, but I am also opening it up to brain box shader experts who might throw me the answer as an afterthought.
Anyhoo, it's been a 16 hour day but I have added all the code I had hoped to add today, and tomorrow is my big testing day to make sure the other 98% of GameGuru functions normally, and also to allow my internal beta testers to thrash the version too. So more testing on Tuesday, but for now here is my current completed task list:
* Prevented rogue 'loaded' temp EBE items being added to local library list
* Stopped crash when an EBE that shares a texture is edited to customize the texture
* Created new terrain texture system which uses a single atlas texture inc 16 textures
* Terrain texture system scans for old terrain bank folders and creates new atlas
* Add new UI for terrain texture painter to select and customize up to 16 textures
* Grass no longer overwrites underlying terrain paint for more grassy options
* Corrected several AI_*.LUA scripts which used incorrect MAIN and INIT names
* Created new terrainbuild\texturesource folder to store new terrain texture choices
* Now only shows grass paint in grass painting mode for better texture editing
* Updated super texture to handle new 16 texture terrain (instead of previous 4)
* Trigger super texture to recalculate if terrain texture change detected
* Added new 'default.fpm' which loads automatically when welcome splash present
* NOTE: Above helps show new users GameGuru is more than just a green flat landscape
28th March 2017
Another long day, another internal beta update and this one comes with a host of fixes, plus some 'usability improvements' suggested by Ricky baby who felt the experience could be improved somewhat. The big news is the help everyone provided on the strange GPU issue that had me stumped, and finally Preben who weighed in with the actual shader code fixes to solve the problem completely. What a guy! The last hour I have been testing and all my tweaks are holding up, so time for another internal beta update very soon, but I intent to continue testing to ensure some other areas are in check. I suspect a memory leak, but have no proof yet, so going to break out the Visual Studio memory monitor and see if it helps the cause. Here are my fixes from today so far:
* Moved super terrain texture palette generation until leave texture selector panel
* Resets terrain texture painting mode when start new map to remove unwanted panel
* When start new level, texture terrain panel instantly removed if was open
* When change levels in editor, terrain texture panel now reflects latest texture
* Removed redundant terrain texture toolbar icons, replaced with single button
* Terrain textuer selector custom requester now points to PNG initially
* NOTE: Above coupled with Diffuse Only PNGs screens out accompanying Normal files
* Fixed small seam effect between texture choices (thanks to the mighty Preben!!)
* Now removes the terrain texture panel quicker when have it open and load FPM
* When enter F9 mode, no longer brings up terrain texture panel in-game
* Entirely moved terrain texture palette generation to test/game process
* Empties custom terrain texture files from testmap when start new level map
* When start new level, terrain texture panel selection image restored to default
29th March 2017
We have now narrowed in on a good version, and the few minor tweaks below get it to where a first version needs to be. Going to spend a few more hours on testing the overall software (not just terrain texturing) and then go live so we can catch anything not found during beta and preview tests. I am sure one or two things will pop up but I have Thursday and Friday to resolve any last minute issues quickly so by the end of the week we should have a lovely enhanced terrain texturing system for everyone to play with. A question has been raised about the 'banding' effect from the internal team but without a radical re-write of the terrain system in general, the existing rules apply and if in any doubt I have made a video showing the correct way to make your terrains without banding. I do feel the issue should not go away however, and I will be looking to use my freed up GREEN and ALPHA channels of the paint map to come up with a cool solution that keeps what we have but gives users the extra ease they require (my first 'quick' thought was a simple second layer that can paint independently over the first, which offers plenty of solutions, but would be a performance hit so want to leave that experiment until after release). For now, here are my final tweaks before I send up the final public preview build prior to going live:
* Moved terrain texture paint toolbar icons to join other terrain button tools
* The IMPROVEDDISTANCE setting is now set to ON by default, improving distant textures
* Small corrections to terrain rock ratio and normal mapping for improved visuals
* Fixed issue causing all specular to be dropped from textures, now restored
* Ensured terrain texture panel texture selection does not render its alpha elements
* Switched the new terrain texture diffuse plate to use DXT5 which preserves specular
* The black terrain issue may be solved - the new DXT5 memory size is 16MB vs 64MB
PC SPECS: Windows 8.1 Pro 64-bit, Intel Core i7-5930K (PASSMARK:13645), NVIDIA Geforce GTX 980 GPU (PASSMARK:9762) , 32GB RAM