A small update that fixes some things, optimizes some things, as well as adding a few small features.
- Downgraded the Godot version to 4.4.1-stable. With Godot 4.5, the decision has been made to drop support for older versions of Windows. It is important to me that Bopimo supports as many systems as possible, so I’ve made the decision to keep Bopimo in Godot’s 4.4 branch.
- Rewrote level environment code again and removed usage of a 4.5 function to be compatible with Godot 4.4.
- Majorly reworked directional player input code to better support controllers.
- Fixed undefined behavior in the Day sky’s shader, causing graphical issues on certain graphics drivers.
- Fixed issue with light-emitting blocks differing in power compared to before 1.1.
- Changed
rendering/limits/opengl/max_renderable_lights
andrendering/limits/opengl/max_lights_per_object
in the project's settings to 128. With the instanced rendering introduced in 1.1.0, each block of the same type could only have a maximum of the default 8 lights shared across them. For example, all opaque cubes being rendered are treated as one object and could previously only have 8 lights acting on them. - Added 2 new skies, "Perplexion" and “Azure”.
- The interact action can now be used to advance dialogue.
- Fixed grates not using mipmaps.
- Removed usage of
RenderingServer::multimesh_instace_set_*
functions, replaced with a manual buffer which is uploaded before each frame is drawn. This should improve the performance of rendering. - Fixed pattern opacity not working on fences.
- Blocks with an opacity of 0 are no longer rendered at all, instead of being rendered at 0 opacity and causing transparent pipeline artifacts.
- Image HTTP requests will now check if other HTTP requests for the same URL are outgoing, and if they are, they will wait for that request to finish and use its result instead of sending a request of its own.
- The results of image HTTP requests are now cached to the file system. When Bopimo initializes, all cached images that haven't been modified in a week or longer will be deleted.
- There can now only be 255 stars in a level, as opposed to the previous 256. Star ID 0 is now reserved as NULL.
- Fixed render distance setting not working.
- Added property "Sound Distance" to Note Blocks, mainly for the people who wanted to make their Note Block sounds heard anywhere in the level.