To keep you informed of my coding progress, I will be posting brief daily reports here so you can keep pace with the development as it happens. It won't be as grand and verbal as my old blogs, but it should provide some insight into next update and general activity 'behind the curtain' so to speak. It can also provide some topics of interest for the weekly Twitch broadcast sessions if you want me to drill into any of the improvements / fixes reported here.
6th Oct 2016
Off the back of the performance improvements reported in V1.132, I researched into additional speed savings with fresh eyes and reports since the last performance work, and found some improvements for levels with a large number of static entities. I also had the opportunity to fix an issue with the occluder system revealing entities too late, thanks to a good reproducible report, which also highlighted an issue with the light ray switching off with the terrain visibility.
* Optimized entity and anim loops to favor dynamic elements (do static entities need loop functionality)
* Limited DarkAI to only control bots within a 2000 unit range (only AI within game play area matter)
* Improved occluder with predictive occlusion (marches in advance of player) - stops disappearing walls
* Fixed bug which stops updating light-ray render when terrain is hidden (F11 terrain off mode)
10th Oct 2016
Before I go head-long into the Easy Building Editor, I thought I'd get a few core fixes off my 'waiting list' and into the engine, including per-entity control of the occluder and the ability for skies to specify their own shaders. I also got a request from the author of 'Apocalypse Town' to switch off the rag-doll collision, so you now have a property for that.
* Added secret backdoor password for Restricted Mode (9119 unlocks restricted mode)
* When playing video in standalone executable, left click now ends the video as designed
* When video playback is stopped, the sound is also stopped (used to carry on to the end)
* When play video in standalone, on exiting video, no longer shows low FPS warning
* Added new END COLLISION field to entity properties; can now switch off collision of ragdolls
* Added new OCCLUDER and OCCLUDEE fields in properties to control per-entity occlusion states
* Added new SKYSHADER and SKYSCROLLSHADER fields to SKYSPEC to allow custom sky shaders
15th Oct 2016
As I work on non-EBE tweaks and fixes, I get the strong feeling that I am working on 'core' stuff, and as the engine improves with every item, I am thinking perhaps that this update interlude could in fact be a regular thing. That is, one update deals with the voting board, followed by one or two that deals with core and essential engine items. In this progress report, I am very pleased to have worked on elements that allowed me to improve the Fast Zombies AI script, and although I am technically not on AI from the voting board, it's amazing how a few sounds, collision and timing tweaks can really bring our aging zombies to life (so to speak). In the new script, they actually surround you and don't waste any time attacking you!
* Added 12 new Zombie sound effects to improve 'repetitiveness of audio'
* Added 3 new sound slots (Sound2, Sound3 and Sound4) for more LUA opportunities
* Fixed issue which prevented SOUNDSET slot to be used by regular non-voice sound file
* Updated AI_FASTZOMBIE, AI_ZOMBIEWALK and AI_ZOMBIEWALK3 to use new Zombie sounds
* Fixed MAJOR LUA script issue which would call _init 'BEFORE' preparing g_Entity structure
* Improved AI_FASTZOMBIE to fix issue of roar responding to sound but not chasing
* Further improved AI_FASTZOMBIE to increase ferocity of attack and moves- a taste of better AI
* Added new field to FPE called 'endcollision' which when zero will disable collision of ragdolls
* Added new LUA command "SetPlayerRun(x)" where zero in X will disable player ability to run
6th Nov 2016
More core fixes added to the engine, and a new beta version sent out for internal testing. It has been a pretty busy few weeks at TGC, so I have not had time to do as much work as I would have liked, but managed to make some key improvements which I hope to release as V1.133 very soon.
* Fixed issue of camera locked third person locking onto itself when firing fireball
* Fixed lua_setfreezepositionXYZ and lua_setfreezepositionAXYZ commands to use floats
* You can use 'ignorematerial=1' in gunspec file to hide the decal impact from weapons
* Fixed issue of third person weapon not activating when move from level 1 to level 2
10th Nov 2016
Early reports from the internal beta are favorable, which means a much quicker launch for the next update! Also managed to clear out some long awaited smaller tasks and get them into this update, one of which I am sure you will welcome to be sure. The new LUA commands are to allow scripters to be able to create player progression for in-game weapons, a vital ingredient in creating lastability in your game play.
* Ensured lightmapper updated with new entityelement/profile data structures
* Added legacy terrain generation system when select NEW RANDOM LEVEL from FILE menu (by popular request)
* NOTE: Further increased terrain randomness by changing old fixed range (6) to new (5+Random(4)) for better choices
* Added the following new LUA commands for attribute control of any in-game weapon:
GetWeaponSlot ( index ) -- Gets WeaponID from slot, index is 1 through 10
GetWeaponID ( GunNameString ) -- Gets WeaponID associated with current GunNameString
GetEntityWeaponID ( e ) -- Gets the WeaponID associated with the entity specified
SetWeaponDamage ( WeaponID, FireModeIndex, Value ) -- Sets damage value of weapon
SetWeaponAccuracy ( WeaponID, FireModeIndex, Value ) -- Sets accuracy value of weapon
SetWeaponReloadQuantity ( WeaponID, FireModeIndex, Value ) -- Sets reload quantity value of weapon
SetWeaponFireIterations ( WeaponID, FireModeIndex, Value ) -- Sets shot iterations value of weapon
SetWeaponRange ( WeaponID, FireModeIndex, Value ) -- Sets range value of weapon
SetWeaponDropoff ( WeaponID, FireModeIndex, Value ) -- Sets dropoff value of weapon
SetWeaponSpotLighting ( WeaponID, FireModeIndex, Value ) -- Sets whether weapon uses spot light effect
Value = GetWeaponDamage ( WeaponID, FireModeIndex ) -- Get damage value of weapon
Value = GetWeaponAccuracy ( WeaponID, FireModeIndex ) -- Get accuracy value of weapon
Value = GetWeaponReloadQuantity ( WeaponID, FireModeIndex ) -- Get reload quantity value of weapon
Value = GetWeaponFireIterations ( WeaponID, FireModeIndex ) -- Get shot iterations value of weapon
Value = GetWeaponRange ( WeaponID, FireModeIndex ) -- Get range value of weapon
Value = GetWeaponDropoff ( WeaponID, FireModeIndex ) -- Get dropoff value of weapon
Value = GetWeaponSpotLighting ( WeaponID, FireModeIndex ) -- Get whether weapon uses spot light effect
25th Nov 2016
The internal beta testers have been pretty active and found lots of juicy issues for me to fix, so energy has been placed there to ensure the next V1.133 release is a good one. Most users reporting a performance boost as well, which is nice.
* Fixed issue of game running slower after a saved game reload
* Updated Classic Character Scripts (from expansion pack) thanks to SmallG's scipting talents!
* Prevented sky messing up when save standalone (removed auto NIGHT export for now)
* Now saves out textures from internal ELEPROF and parent ELEPROF data (MMS level textures)
* Shifted 'graphicsmediumgrass=high' and 'graphicshighgrass=highest' for better export in SETUP.INI
* Added code to TITLE.LUA to reinstate the auto-title-music feature, add TITLE.OGG to DEFAULT folder
* Fixed issue of distant path-based AI stuttering by allowing ALWAYS ACTIVE to work within AI system
* Also increased AI deactivation range so that the stutter is never seen (3000 now same as GG range)
29th Nov 2016
As we stomp closer to a final V1.133 release, a few more tweaks have made it into the update, including a few that have perhaps been long awaited such as the issue of some Zombie feet sinking into Asylum floors and the return of the old legacy terrain generator. I also think you will like the addition of the Specular field in entity properties which will allow you to modulate how much of the global specular is used on a per entity basis. This percentage value can also be under and over exposed for some cool effects if your game needs it (i.e. super shiny entities as a cheap form of metal effect until cube mapping returns).
* Improved random terrain generator to create good balance of flats and hills (more like legacy)
* Fixed issue of DOF not working when SAO is zero
* Added support for per entity specular modulation, specified as a percentage of the global specular
* NOTE: Above feature can overexpose specular for cool metallic effects on entities of your choice!
* Fixed issue causing some characters (zombies no ragdoll) to get hit/headshot and not use animation
* Added code to character physics positioning so AI like Clown Zombies will find Asylum floor
30th Nov 2016
My internal beta testers are not letting me off the hook this week, some good last minute reports. It also caused me to finally find and solve the strange 'jerkiness' on some levels. Try Mountain Stroll level and bask in the ultra smoothness of it now (if you're lucky enough to be at 60fps+).
* Improved constants (TIME,SINTIME,DELTATIME) passed into shader so they use PerformanceCounter
* NOTE: The above affects sky scroll shader, grass animation, anything that uses timer for shaders
* Extended higher precision timing code to physics update for triple-figure FPS fidelity
* Extended higher precision timing further to include time slicing logic for all in-game logic
* Solved the slight jerkiness when mouse looking quickly - now SMOOTH AS DATA'S BOTTOM
* Fixed issue of SAO = Zero triggering SAO shader instead of BLOOM shader in recent beta fix
PC SPECS: Windows 8.1 Pro 64-bit, Intel Core i7-5930K (PASSMARK:13645), NVIDIA Geforce GTX 980 GPU (PASSMARK:9762) , 32GB RAM