we are proud to announce that S2ENGINE HD 2019.1.5 is finally among us.
We have focues the last days in improving the runtime configuration tool (fullscreen buig fixed), introducing the "graphics presets" into the EasyGamePack game option menu (GUI prefab) and testing the whole system.
Following is the final list of new contents.
RELEASE NOTES
[BUG FIXED] Crash when selecting an object by picking it from Object pick dialog and after remove it from the picked objects list and press OK on the pick dialog
[NEW] Added possibility to choose the axis of alignment when checking the "align to world" object placing option
[IMPROVEMENT] Now "Targets" parameter of SetFlags action can be a variable.
[BUG FIXED] when editing keyframes in cutscene curve editor, new keyframe values aren't updated into keyframe parameter group of Cutscene tool
[IMPROVEMENT] Now "Targets" parameter of SetObjectParam action can be a variable.
[BUG FIXED] Sometimes floating dialog boxes are partially hidden by the interface below
[BUG FIXED] If you select an object owning a game machine and the game machine graph viewport is visible, if you then select the GUI viewport and hide the scene viewport, if you then select GUI root widget from widgets list tool, then if you inspect the gameMachine of the GUI and then select the scene viewport, if you finally run the game test engine crashes
[BUG FIXED] If a particle system is marked as "local" and it is attached to another object, it disappears when camera rotates at certain angles
[IMPROVEMENT] General rendering speed-up of about 15-20%
[BUG FIXED] Crash when re-importing a model and ModelViewport is visible and cotains the model begin re-imported
[IMPROVEMENT] Now the "create new project" dialog always starts from "projects" default folder, avoiding the project in project creation.
[IMPROVEMENT] Added memory page bounds check in FS Memory Allocator for avoiding invalid allocations that cause crashes.
[IMPROVEMENT] Non-emitting light particle system materials now can be animated
[IMPROVEMENT] Speeding-up particle systems rendering
[IMPROVEMENT] Improved particle systems rendering (soft particles)
[NEW] New Animation blending during transitions in gameMachine
[IMPROVEMENT] Improved cutscene track and curve editors
[NEW] New Animator and Animator3d object classes
[NEW] New parameter "curve" in vec3Animate and floatAnimate GameMachine actions
[BUG FIXED] In editor, When starting game in fullscreen, the scene viewport is drawed 2 times causing strange behaviour of some GUI widgets.
[BUG FIXED] Configuration cannot be changed into the published aplication runtime
[BUG FIXED] Presets aren't loaded into the published application runtime
[BUG FIXED] Not all resolutions are listed when loading cofiguration (editor and runtime)
[IMPROVEMENT] Added "Render Quality" parameter into S2Configuration.exe application.
[IMPROVEMENT] Added "tooltip" text to combobox editor interface controls.
[IMPROVEMENT] Added a small delay to tooltip display
[NEW] Added "RefreshQualitySettings" action in GameMachine
[BUG FIXED] After updating the game machine of a GUIObject the GUI widgets hierarchy is lost.
BuildingGenerator (BG)
[BUG FIXED] Pillar texture parameter of Ground floors has wrong default max value (must be 3)
EasyGamePack (EGP)
[NEW] Added parameter "batteryDischargeAtStart" into PlayerCharacter class
[BUG FIXED] Fixed Explosion splinters prefab that causes crashes if instanced repeatedly
[NEW] Added "Render Quality" option into game GUI menu
We hope to turn back publishing new tutorials on youTube expecially about the latest features.
Today I would like to show you some cool results I've reached during the last 2 weeks. I've worked on particle systems and general performance improvements.
PERFORMANCE
Using some cool tools from Intel I was able to better understand what part of engine code needed improvements. With some fast and easy modifications I've gained about 3-6 and more fps in a variety of situations. This is only a small part of what it can be made for optimizing the code so, step by step, the engine will be even faster and faster in the next future.
The system I've used for the performace tests is the usual: - CPU Ryzen 1500x (4 core, 8 threads) - GPU AMD radeon Rx 550 4 GB - RAM 16 GB
For catching framerate, this time, I've used MSI afterburner tool. FPS stats are on the top left corner of the screen.
Following are some results from the easy game pack zombi town demo:
Also Haunted House benefited from code optimization:
Instead the city project scene of the Building Generation package has less more the same performances (it was just fast) except when the ocean is visible (also from the distance) as you can see from the following images:
PARTICLE SYSTEMS
Particle system were the real stick in the mud of S2ENGINE HD rendering system. In particular particle systems reflecting light (no emissive) were too much fillrate/shading bounced.
For solving the problem I've used a technique that reduces the resolution of all the particle systems on screen by drawing them on a secondary render target, and then applying the result to the main screen with an upsampling shader. In this way a lot of fillrate is saved improving framerate.
This was particularly evident in the zombi town scene when grenades exploded, as you can see from the following image:
One of the advantages of this tech is that It automatically can support soft particles (thanks to the depth buffer use) without performance drops. Soft particles solves the typical problem that makes a line visible when particle system intersects a surface (the line that separates the particle system from the surface).
Soft particles plus the increment in performances let me to insert into zombi scene some fog zones using the cloud objects (that ,technically, are fixed particle systems with disk shape), without framerate drops:
Note that there is no continuity solution between the fog particles and the ground, thanks to soft particles :).
For 2019.1.5 version I think this is all: curves, improved particles and improved performances. All I've to do now are some small refinements and tests before releasing.
We are very proud to announce that, after more than an year of sacrifice, passion and hard work, one of the best DLC we have ever made, HAUNTED HOUSE DLC is finally among us :D
we have released a new update before the Haunted House DLC publishing. One of the latest features added is the Texture resolution parameter of the engine configuration. It allows you to "reduce" the resolution of all the textures used, it could be considered as a first step towards the "texture streaming" features we want to implement into future versions.
RELEASE NOTES
[NEW] Now when a new object is placed into the scene it is automatically assigned to the currently selected layer
[BUG FIXED] When unabling selection of a layer and placing a new object it is collides with unselectable layer
[NEW] Added "refresh Prefab" option into project browser
[IMPROVEMENT] When attaching an object to another, previous scaling transformation is keep (just as for position and rotation)
[BUG FIXED] Sometime crashes when choose albedo or normal debug drawing mode.
[NEW] Added parameters "SCacheMax" and "SCacheStaticMax" in FX tool, for controlling the shadowmap cache reserved memory
[NEW] Added new action "SetMaterialAlpha" into GameMachine
[IMPROVEMENT] Improved multiple lights rendering speed expecially for indoor environments.
[IMPROVEMENT] Improved Shadowmap cache updating speed by distributing shaowmap rendering over multiple frames.
[NEW] Added possibility to set variable to "time" and "event" parameter of the timer action in GameMachine
[NEW] Added dropdown menu for choosing assets and objects from the string type parameter of the parameters list of a gameMachine
[NEW] Added possibility to set variable to "material" parameter of SetMaterialLayerAlpha / SetMaterialAlpha / SetMaterialEmissionColor / SetMaterialUVOffset actions
[NEW] Added "RotateTo" action in GameMachine
[NEW] Added possibility to set variable to "event" parameter into SendEvent, SendEventInRange, SendEventBroad actions in GameMachine
[NEW] Added possibility to set variable to "messageName" parameter into SendMessage, SendMessageInRange, SendMessageToNode actions in GameMachine
[NEW] Added "animation", "speed", "loop" parameters to PlayOneShotAnimation action in GameMachine
[BUGFIX] parameter "targets" of AwakeObjects gameMachine action doesn't work if a variable is assigned to it
[NEW] Added "stopAllAnimations", "pauseAllAnimations" and "resumeAllAnimations" actions in GameMachine
[NEW] Added new "lockAnimation","openLoop", "closeloop", "openSpeed", "closeSpeed" parameters in Switch class
[IMPROVEMENT] Now object icon markers take into account depth and perspective
[NEW] Added new "LockSpeed" and "lockLoop" parameters in Switch class
[NEW] Added texture resolution option into engine configuration
DO NOT FORGET TO FOLLOW OUR TWITCH CHANNEL to know when we are LIVE! Many exciting news are on the way (weekly reports, making of, tutorials, ...). https://www.twitch.tv/profenixstudio
We believe Discord could become a great place in which make s2engine community growing, because it is a social platform designed specifically for doing this :)
we found Twitch as a great platform for making streams, much more performing than other streaming services. The only drawback is that we can only make streams for now, we CANNOT repeat streams storing them as videos (such as Youtube), because we have to become affiliates.
One of the pre-requisites to become affiliate is to have more than 50 followers SO follow our Twitch channel, for 2 reasons: 1 - you will be notified when a stream starts, so you will not miss streamed tutorials, or weekly reports 2 - Help us in becoming Affiliate and then have the possibility to store and re-play all the streams
What you fill find on the Twitch channel? For now we have planned to make WEEKLY REPORTS of the S2ENGINE development status in form of video streams.
JOIN US
Help us in growing S2ENGINE community and join these 2 new channels, we are really interested in make these 2 the preferred way to communicate with our users and really simplify the way through which we can communicate information.