S2 ENGINE HD is a complete general-purpose software kit for developing and running videogames, specifically dedicated to PC game hobbyists and enthusiasts. Its simplicity lets them turn on their computers and create amazing visuals in minutes just as if they were professionals.
Hi guys,
I have finally released the new S2ENGINE HD 2024.0.0.
There are a lot of news in this update.
[h2]IMPROVED PERFORMANCES[/h2]
As anticipated in the previous post I have improved performances a lot expecially on NVIDIA cards.
What I haven't said is that, thanks to the Discord community, we have discovered that also on Radeon cards the performances are much better, meaning that now the number of objects you can have on screen, while keeping a high framerate, has been incremented by 4x-5x and more.
From the last post I've also improved the matrix multiplication code by using the SIMD instructions. Since the matrix multiplication is a frequent operation, the overall engine performance has been improved another bit.
Last but not least I've started to change the Multithreading system by introducing a new Task-based parallel system that will gradually replace the old job system.
The advantages of the new system are several:
[list]
[*] In the old system jobs allocation is predefined, this means that a job is allocated into a thread at start and never changes, this reduces a lot the scalability with the number of cores. In the new system a task is allocated every time it restarts (usually everyframe) optimizing CPU core usage.
[*] In the old system the number of threads was limited to 3, in the new system the number of threads is scaled with the number of processor cores.
[*] A task can be subdivided again in more parallel code fluxes resulting in a more aggresive usage of the available system computational resources.
[*] In the previous system the synchornization points were per-thread this means that if a job has finished its work it has to wait for all other jobs in the thread! the new system has a per-task synchronization, this means that if a task has finished its work it hasn't to wait for all other tasks to finish before fetching its results.
[/list]For now I have ported in the new system only 2 tasks (projectiles and particle systems) but gradually all oid jobs will be ported to the new system.
[h2]IMPROVED AUDIO SYSTEM[/h2]
Thanks to the wotk I'm doing with HELLSEED I have discovered another bunch of bugs affecting the Audio system that could potentially prevent sounds to be played.
[h2]BUGFIXES and minor improvements[/h2]
A lot of Bugfixes has been done but also some minor improvements.
The most notable of these improvements are:
[list]
[*] Finally I've fixed the bug that, expecially on NVIDIA cards, creates a hole in the middle of the ocean surface.
[*] Finally I've found a solution to the physics character "sliding walls on air" problem.
[*] Finally I've found the problem that caused a wrong ambient occlusion computation in the voxel lightmaps when 512 samples were selected.
[/list]
The following are the complete
[h2]RELEASE NOTES[/h2]
[list]
[*] [b]OPTIMIZATION[/b]: When selecting more than one object the per-object gizmo text is disabled, it is showed only the first selected object text, this speed-up selection group visualization.
[*] [b]OPTIMIZATION[/b]: HUGE performance improvement on NVIDIA cards thanks to some AZDO functions implementation
[*] [b]OPTIMIZATION[/b]: Matrix multiplication speed-up with explicit SIMD instructions
[*] [b]OPTIMIZATION[/b]: introduced more flexible and performant new Task-based job system that will gradually replace the old one.
[*] [b]NEW[/b]: added "verticalSlideLimit" parameter onto Character class for controlling at which slope characters can slide
[*] [b]NEW[/b]: added parameter "recomputeTangents" in Decal and DecalObject object classes.
[*] [b]NEW[/b]: Added parameter "GlobalSound" in switch object class.
[*] [b]NEW[/b]: Restored "progressive refinement" and removed "2 pass" parameters in VoxelLightmap generation tool
[*] [b]NEW[/b]: sorted messages and events list into the object class tool
[*] [b]NEW[/b]: Added parameter everyframe to PauseGame gameMachine action.
[*] [b]NEW[/b]: Now counters send events "COUNT_INCREMENTED" and "COUNT_DECREMENTED" to the GUI object every time the object count changes.
[*] NEW: Added button "editing preview" in cutscene track tool
[*] [b]BUGFIX[/b]: Alpha blend surfaces aren't affected by reflection and roughness settings
[*] [b]BUGFIX[/b]: 3d Ocean surface artifact at 0,0,0 coordinates
[*] [b]BUGFIX[/b]: If a new scene is created into the root folder no ocean and rain materials are created and a wrong alert box appears causing engine to crash if OK button is clicked.
[*] [b]BUGFIX[/b]: Crash if reload the scene in the Building generator city project.
[*] [b]BUGFIX[/b]: Road feature models aren't visualized and cause memory leaks.
[*] [b]BUGFIX[/b]: Player character slide on vertical walls also if there is no ground.
[*] [b]BUGFIX[/b]: GetLevelParamVec3 GameMachine action doesn't work
[*] [b]BUGFIX[/b]: GetLevelParamColor GameMachine action doesn't work
[*] [b]BUGFIX[/b]: no-looping sound sources playing far from camera sometimes don't work if camera returns back close to them.
[*] [b]BUGFIX[/b]: SceneParamColor Track type doesn't allow to modify keyframe values for G and B channels.
[*] [b]BUGFIX[/b]: SceneParamColorHDR Cutscene Track type doesn't allow to modify keyframe values for G and B channels.
[*] [b]BUGFIX[/b]: PlaySound Cutscene Track type doesn't trig and stop sounds at right time.
[*] [b]BUGFIX[/b]: Objects Selection/Picking dialog doesn't work well when using the player / GUI set from project game configuration (playerStart system)
[*] [b]BUGFIX[/b]: When you clone an object and then change its layer, the object seems to belong to either the previous and the current layer
[*] [b]BUGFIX[/b]: when selecting 512 samples in VoxelLightmap generation tool, the ambient occlusion isn't computed in the right way.
[/list][h3]E.G.P.[/h3]
[list]
[*] [b]NEW[/b]: Added Parameter "ShowInventory" to ItemTAG object class
[*] [b]NEW[/b]: Now inventory keeps in memory the previously selected tab and the previously selected cell
[/list]
[h2][b]CONCLUSIONS[/b][/h2]
This update is a [b]real Milestone[/b] in the history of S2Engine since a lot of ancient problems (including performances on NVIDIA cards) have been solved.
From today a new series of improvements are finally possible and great things are waiting to be implemented in the future updates.
Stay tuned and enjoy!
PROFNEIX STUDIO