S2ENGINE HD 2020.4 released

S2ENGINE HD

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 to all, Today we have released the version 2020.4 of S2ENGINE HD. [h2]WHAT'S NEW[/h2] In this version we have started to speed-up the code. In particular we have increased the string to string comparison. The strings are used in almost all parts of the engine, when you get a model node, when you get an object, when youo send a message or an event, when you set a parameter, all is done with strings. Comparing 2 strings, for example, for making a search or for retrieving an object from a table, is an important operation. Usually this operation is very computationally expensive. We have increased the speed of string comparison of a factor between 4x and 16x, this reflected on the general velocity of the overall engine and in particular when many characters, using gameMachines for logic, are on screen. The only drawback is that, now, all strings are NOT case-sensitive, this means that a node called "ROOT" is the same as "Root" and the same as "root", or an event called "START" is the same as "Start" or "start", etc... In the following video test there are many zombies, every zombi has 3 different gameMachines. The framerate is stable upon 30 FPS on an AMD radeon RX 550. With 2020.3 version (the previous version) the framerate of this test scene dropped to 14 FPS when all zombies were on screen: [previewyoutube=KBUW5B5zULk;full][/previewyoutube] Another relevant change is about the editor interface: We have replaced the "freeze/unfreeze" button with "enable/disable" simulation button. This means that now, during the editing, the objects are freezed (not simulating) by default, you must push a button to enable simulation during editing. Of course you can change the start state (enabled or disabled) of the button into the preferences of the editor. Many bugfixes have been made as usual as well as other minor improvements: [h2]RELEASE NOTES[/h2] [h3]CORE[/h3] [list] [*] [b][IMPROVEMENT][/b] Now the game simulation is freezed at start, and freeze button has been replaced by simulation button. [*] [b][BUGFIX][/b] When inserting a GUIObject from Create frame and a GUI is already in the scene, the Create frame GUIObject selection isn't erased. [*] [BUGFIX] Fsm and FSMparams parameters are still in the parameters of the GUIObject. [*] [IMPROVEMENT] Added Cube and Sphere models inside the Default folders of the basic packages. [*] [NEW] Added parameter simulationAtStart in Editor preferences [*] [NEW] Added SetObjectNodeScale action in GameMachine [*] [BUGFIX] Events of gamemachines on top of the first are not displayed on class panel. [*] [NEW] Added GetSourceModelNodeFromTarget action in GameMachine [*] [NEW] Added AlignObjectToDirection action in GameMachine [*] [BUGFIX] Wrong Scatter Color list in Material Props containing duplicated elements. [*] [BUGFIX] Events from animation keys are not sent to gamemachines after the first. [*] [BUGFIX] Animation keys aren't sorted when they are moved along the timeline. [*] [BUGFIX] If an asset is duplicated, without being renamed, more than one time, the new asset isn't referenced into the resource file table. [*] [BUGFIX] GameMachine Hitinfo and event stack aren't cleared when re-spawning an Object [*] [IMPROVEMENT] Speed up Culling thread synchronization when many objects move [*] [NEW] Added PhyRagdollToCharacter GameMachine action, for passing from ragdoll to character animations [*] [IMPROVEMENT] Speed up message Dequeuing [*] [BUGFIX] VoxelLightmap creation dialog wrong dimension. [*] [BUGFIX] Film grain post processing FX not visible [*] [BUGFIX] Sometime system crashes when duplicating a gameMachine state [*] [IMPROVEMENT] Added parameter "local" to Teleport trigger object class [*] [IMPROVEMENT] Added parameter "channel" to "SetSourcePitch" action in GameMachine [*] [IMPROVEMENT] Added parameter "channel" to "SetSourceVolume" action in GameMachine [*] [BUGFIX] When sending an event to a gameMachine owner, the event is sent only to the first gameMachine of the object [*] [BUGFIX] When an animation finished the event ANIMATION_FINISHED is sent only to the first GameMachine of the owner object [*] [IMPROVEMENT] Now switches send events (OPENING and CLOSING) respectively when they start to open and when they start to close. [*] [NEW] Added "WaterCausticsOfs" scene parameter for controlling ocean caustics height. [*] [NEW] Added "borderless" window mode as alternative to fullscreen for runtime applications. [/list] [h3]EGP[/h3] [list] [*] [NEW] Added "Locked" and "lockedText" parameters to ItemTAG class Object. [*] [BUGFIX] ItemObject "fsm" and "fsmParams" already visible. [/list] [h2]FINAL THOUGHTS[/h2] THIS IS ONLY A SMALL IMPROVEMENT, but it gives an idea about how much large is the room for optimize the engine. In the next months we will be mainly focused on HELLSEED game and on optimizing the rendering engine. Enjoy and Stay tuned! Profenix Studio