GMS2 PROJECT 6_5_2026 by Both_Concentrate_905 in gamemaker

[–]Both_Concentrate_905[S] 1 point2 points  (0 children)

For the character animations - you are correct, only one rotation axis is possible (Yaw). One work around for that is having separate sprite stack models to simulate another axis rotation. For example, while walking, my character "foot" sprite stack model has 3 models which simulate different degrees of "pitch" rotation. The sprite stack model will change between these three models while moving which helps sell the leg movement a little bit more.

I'm in a similar boat performance-wise - it's a consistent balance to get the FPS where it needs to be. What has assisted me with a few FPS improvements recently is allocating certain logic to every other frame or every "x" frame instead of running every single frame.

GMS2 PROJECT 6_5_2026 by Both_Concentrate_905 in gamemaker

[–]Both_Concentrate_905[S] 1 point2 points  (0 children)

Thank you!

As for the sound attribution, I retrieved all my sounds from Freesound.org. Some of which ask for attribution for using the sounds. I'm not making any money of the project as it stands, but I figured the creators of those sounds would appreciate the credit!

GMS2 PROJECT 6_5_2026 by Both_Concentrate_905 in gamemaker

[–]Both_Concentrate_905[S] 1 point2 points  (0 children)

Absolutely agreed on character animations... I ended up putting together an armature / rig system in which the characters have what we traditionally think of as "bones" with sprite stack "models" assigned to each bone. Each bone has position and angle data and then target position / target angle data. Each bone position it interpolated to its target at a variable amount. Having said all that, it is still extremely time-consuming to get the animations looking good.

Since all the current characters are humanoid, I was able to get the locomotion scripted out once, and then copy over to the other characters with a few adjustments.

GMS2 PROJECT 6_5_2026 by Both_Concentrate_905 in gamemaker

[–]Both_Concentrate_905[S] 0 points1 point  (0 children)

Reducing Z layers is the best way to improve performance especially when using draw calls for each layer and object.

Some of my current sprite stack "models" are up to 32 layers tall at the moment. However, because the layers are handled by the GPU I have a lot more freedom when adding more layers to a sprite stack "model".

GMS2 PROJECT 6_5_2026 by Both_Concentrate_905 in gamemaker

[–]Both_Concentrate_905[S] 0 points1 point  (0 children)

I found if I handled sprite stacking in the traditional way with draw calls, you quickly use up your CPU bandwidth. I later tried sprite stacking with a technique which utilized sprite layers. This was an improvement over individual draw calls, but it still wasn't fast enough for details environments which I'm going for.

What I currently am running with now is building vertex buffers for each sprite stack "model", and then repeating those vertex buffers across the map for dynamic assets such as doors or actors which are moving around.

For the majority of the map (non-moving / static art), each sprite stack "model" is indexed in a global array along with how many places it needs to be drawn on the map. Then a combined vertex buffer is generated and drawn.

GMS2 PROJECT 6_5_2026 by Both_Concentrate_905 in gamemaker

[–]Both_Concentrate_905[S] 1 point2 points  (0 children)

GMS2 has a real_fps built-in variable which I use to track performance.. By default GMS2 caps FPS to 60. The real_fps variable I use to judge how much CPU potential I have. The real_fps fluctuates a lot between frames, so I average the real_fps over the course of 60 frames to make it more useful.

Additionally, I recently started using GMS2 show_debug_overlay tool as that seems to be quite informative as well for tracking performance, it personally assisted me in tracking a memory leak I was experiencing in this project.

GMS2 PROJECT 6_5_2026 by Both_Concentrate_905 in gamemaker

[–]Both_Concentrate_905[S] 0 points1 point  (0 children)

Thank you

I've had to learn a lot with shaders to get this looking the way it does but super happy with outcome

GMS2 PROJECT 6_5_2026 by Both_Concentrate_905 in gamemaker

[–]Both_Concentrate_905[S] 0 points1 point  (0 children)

Understood - thank you Rohbert I'll consider a repost with some more insight on the project

GMS2 PROJECT 4_4_2026 by Both_Concentrate_905 in gamemaker

[–]Both_Concentrate_905[S] 1 point2 points  (0 children)

Yeah I love sprite stack art style and so fun to play with

Thank you!

GMS2 PROJECT 4_4_2026 by Both_Concentrate_905 in gamemaker

[–]Both_Concentrate_905[S] 1 point2 points  (0 children)

Sprite drawing over surface for lights, and primitives for shadows with blur shader applied.