Devlog - 85 [wall of text]




Okay.. so this one got pretty huge... enjoy a wall of text.

Anyway, hello everyone.

I've decided to put the "Changes" section below this section for now since these devlogs are getting out of hand in length here.

So, the port is pretty much finished at this point at least regarding the standard Windows version, Windows YYC (aka the higher performance version) and Linux will be fixed up a bit later.

The plan now is to get the new demo test up on Discord (link at the bottom of this post) within a week (at most two weeks) and start testing the new standard Windows version of the demo and then later do the same for Windows YYC and Linux. (YYC will probably come before Linux)

After that the demo will be released for everyone and the port will be considered 100% done and I will continue moving forwards with the game content.

So yeah, don't really have much else to say right now so until next time.

------------------------------------------

Changes:

ANY OS:

- Added a new game option: Sleep Margin, default value is 10.

Higher values should help fix FPS issues at the cost of CPU usage.

Lower values will heavily reduce CPU usage but can cause FPS to fluctuate or be stuck at lower than 60 FPS.

60 FPS is what the game is supposed to run at (unless frame skipping is enabled then it will render at 30 FPS), anything lower will cause things to move in slow motion and anything higher will cause things to move too fast. (the latter shouldn't really happen though)

So if the game is running in slow motion for you, try changing this option or enable frame skipping if you are fine with 30 FPS rendering.

- Added a new game option: Sleep Timing Method, default value is "VSync" but "Sleep" may be more beneficial for laptops.

This works in tandem with the Sleep Margin setting and may or may not result in a smoother experience on either setting.

- Added automatic setting of sleep timing method depending on OS and available settings (this only happens if whatever setting it is on is incompatible) as the sleep timing method option does not work on all platforms.

- Added new mechanics to fluids (water, etc), acting like somewhat of a disadvantage to the player.

- Added an error logging system which now logs various warnings, errors and misc information, it also writes this log to a text file.

- Added an "error log" menu button, pressing this will display the log in-game.

- Added more robust checks for game option compatibility.

- Added missing shader compilation checks.

- Added low-end compatibility for misc rendering effects.

- Added non-shader support for glow effects, they can now be enabled even if shaders did not compile.

- Added non-shader support for ambient occlusion, it can now be enabled even if shaders did not compile.

- Added non-shader support for the new fluid mechanics and some of the effects.

- Added clamping to misc settings for better compatibility with older setting files.

- Added more information to the "Shaders" menu option.

- Added information on the error log menu screen on how to navigate the log.

- Added a red "!" in the bottom left of the screen indicating that an error has occurred which has been logged in the error log, entering the error log menu removes this indicator until a new error has been logged.

- The error log menu button now pulsates in a red color when an error has occurred, this does not go away when you enter the log unlike the red "!" icon.

- Added game option to disable the red "!" error log icon, this option is off by default and forced to off in the demo.

- The game now uses a new folder structure, "Bin" and "Data", "Bin" is where the executable file lives and "Data" is where misc data lives.

This folder structure change had to be done because GameMaker Studio 2 does not allow you to write files in the same directory as the executable file, so this is a workaround for that so that files can be written into the "Data" folder.

- The game now uses the new "Data" directory to store saves, settings, etc.. instead of using "C:\Users\YOUR_USERNAME\AppData\Local". (or some other path depending on OS)

- Added a custom error message and triggered game crash if the file "folder_identifier.txt" was not found in the "Data" folder.

This has been done to be kind of like a safeguard to make sure the game is reading/writing to the correct directory and that the executable has not been moved to an incorrect path.

- Added a custom error message and triggered game crash if a room file was not found in the "Data" directory so the game now crashes instead of being stuck in an infinite room transfer loop.

- Added some new debug performance metrics.

- Aiming straight down while ledge grabbing can now be done by holding both the diagonal aiming buttons.

- You can now hold down and press jump to let go off ledge grabbing with the "Ledge Grab Extra Aiming" option enabled as this option prevents simply pressing down to let go. (or simply press the jump button but then you jump instead of letting go)

- The "Ledge Grab Extra Aiming" option is now enabled by default as it makes aiming while ledge grabbing easier, it is now required to do the above to let go unless you disable the setting in the game options.

- Holding the "Action" button and the "Aim Straight Up" button no longer cause the player to aim straight down as this prevented the player from shooting secondary fire while aiming straight down since holding the action button is required to use secondary fire.

- Bloom and Glow Map game settings have been combined into one setting called: "Glow Effects".

- The "Effect Render Scale" game option has been renamed to "Effect Quality" and now controls resolution among other things related to effects. (ie: glow/bloom, ambient occlusion, lighting, etc)

- The "Fluid Quality" game option has been renamed to "Dynamic Fluids" and can now only be set to "On" or "Off".

- The "Glow Effects" game option can now only be set to "On" or "Off".

- The "Foliage Quality" game option has been renamed to "Dynamic Foliage" and can now only be set to "On" or "Off".

- The "Ambient Occlusion" game option can now only be set to "On" or "Off".

- The "Lighting Quality" game option has been renamed to "Dynamic Lighting" and can now only be set to "On" or "Off".

- Improved fluid visual quality with new effects.

- Improved Glow Map performance and visual quality.

- Improved Bloom performance and visual quality.

- Improved Lighting performance and visual quality.

- Improved Ambient Occlusion performance, visual quality and rendering compatibility.

- Improved fluid smoothness while the view is moving, should be no more choppyness.

- Greatly improved the lightning bolt / electricity effect performance and also reduced it's memory usage and improved it's visual quality.

- Reduced Laser Turret enemy laser flickering so it's not as jarring.

- Tweaked player momentum a bit, the slowdown when landing is now based on falling speed so you don't come to a complete stop when doing small jumps.

- Increased the speed of the room transition animation a bit.

- Improved the visuals and mechanic of a certain upgrade.

- Reworked the save station animation with new visuals and a faster animation.

- Improved Spark particles visuals / physics a bit.

- Improved player beam visuals a bit.

- Improved fading smoothness of "Category" type menu buttons, "Options" category for example.

- Improved surface memory usage by using "surface_depth_disable" (disabling the depth buffer) which supposedly reduced surface memory usage by ~50%.

- Effect resolution now clamps to game resolution so we don't render effects in a higher resolution than needed. (improves performance when not using 400% render scale and high effect quality)

- Removed the "Effect Frame Skip" and "Lighting Frame Skip" game options, while they did improve performance they also caused many visual issues so decided to remove them for now.

- The previous "Minimal" global graphics option has been removed and now uses the "No Shaders" setting but is still called "Minimal", there was not enough difference between "Low" and "Minimal" to warrant them both existing.

- Removed a few unused shaders. (could help with game option compatibility if one of these were not compiled and as such forced "Shaders to "Off")

- Removed the "Scale Interpolation" game option and anything related to it as it is no longer being used.

- Removed the "Advanced GPU (Graphics) Options" menu category, it's existence was pretty pointless.

- Removed the "Misc Options" menu category from the "Display" menu.

- Removed the ability for the player to disable upgrades on the upgrade screen as there is currently no real reason for this to exist, will be enabled again when/if there is a mechanical reason for this to exist.

- Re-organized misc menu buttons. (a mini menu organization rework is underway)

- Reworked "ElectroPlant" enemy collision checking for more accurate collisions and it also fixes misc previous issues with it.

- Converted all 2D arrays from the old GMS1.4 syntax (A[0,0]) to the GMS2 syntax (A[0][0]). (GMS1.4 to GMS2 compatibility fix)

- Removed all usage of "d3d_set_projection_ortho" (GMS 1.4 compatibility function) and we are now 100% free from GMS2 project conversion compatibility functions. (aka: the game is now fully using GMS2 code and the "port" part of the port is done)

This should also improve performance a little bit since we now use pre-calculated matrices instead of calculating them every "d3d_set_projection_ortho" function call.

- Removed the GMS2 default camera, apparently this was being "used" even when it was not being used. (new issues may or may not crop up thanks to this)

- Disabled all usage of "Views" and "Viewports" as these should not have been used (defaulted to enabled when converting the project) and may or may not have rendered things that should not have been rendered.

- Improved "Shader is compiled and can be used" checks. (better compatibility)

- Removed all remaining references to "Alternate Sync" since it no longer exists.

- Fixed 47 bugs/issues. (many related to GMS2 port but not as many as last time)

------------------------------------------

Links:

Patreon

Discord Community

Get Zordak

Comments

Log in with itch.io to leave a comment.

Is there any possibility we will be able play this on our steam decks at some point?

(1 edit)

If I ever get my hands on a Steam Deck then I would start testing on it but as of now I can't really say as I don't know if it would work or not.

The game will be available on Steam when released though, not sure how much that helps in this aspect.

(+1)

Thanks for the reply. The game looks great. Excited to give it a try on the deck.

Good work man! Kudos on not using %appdata%/Zordak/ to store data, it's obnoxious when every program needs to leave crap all over my system which eats up space even when it's uninstalled.

Thanks, and yes, using appdata for storage is annoying to me as well.

I would have done this sooner but it was not possible in GMS1.4 without using extensions.. However, now that the game has been ported to GMS2 it is possible so it has been done. ;)

(+1)

Looking forward to playing the full version!