Sunday Funday

Sunday Funday

Happy Sunday!

Now that the website is mostly set up and looking good, I plan to make this blog/devlog a weekly contribution, published every Sunday. This approach will allow me to focus more on the project itself, while also giving me time throughout the week to draft and refine the post. By setting a consistent schedule, I hope to provide viewers and subscribers with something to look forward to each week.

This week has been a bit slow overall, with not much progress outside of website work and drafting a few key systems. At the moment, I'm focusing on systems that won't be affected by any potential creative changes, as I'm still not entirely sure what the game's design will be. Will it be a 2D top-down game with pixel art or vector art? Or will it be a fixed-view 3D game, similar to Diablo? Perhaps a fixed-view 3D game with camera rotation on the Z-axis (where the camera can rotate but never look at the sky)?

All these possibilities are still up in the air, and I'm currently weighing the pros and cons of each. Personally, I'm leaning more towards a low-poly 3D style with the possibility of using flat-shaded pixel textures. A great example of this style can be found in Kenneth Fejer's work, which would be a big inspiration for my 3D design if I go in that direction.

Now, onto the systems I've made the most progress with. Here’s what I’ve completed so far:

  • State Machine: This is fully functional and easily customizable. States can be modified to fit any creative direction, keeping code blocks compartmentalized and organized.
  • Stats System: The stats system is fully implemented and efficiently manages the addition and removal of modifiers and calculations. I've also annotated the three main scripts with custom comments to easily identify areas that will need modification when adding or modifying stats.
  • Resource Component: Instead of having separate components for Health, Mana, and Stamina, I decided to consolidate them into a single component. This approach reduces the number of components per actor and eliminates redundancy, as all three resources are managed in a similar way. The Resource Component pulls max values from the Stats System, which also calculates all modifiers and listens for stat changes. It handles regeneration based on stat system values using a Regen Pool and a Decrement Pool approach. This system ensures that float calculations (such as stamina decreasing while running or health regenerating) are preserved, even though the stats are clamped to integer values for display. When the pool reaches a value of 1 or higher, it will be subtracted from the pool and added to the resource.
  • Util Class (Autoload): I’ve added a global utility class, an autoload in Godot (also known as a singleton), which currently references the player object. Additionally, I've implemented functionality to spawn floating text values (e.g., when healing, regenerating, or taking damage). While the styles are still a work in progress, the focus is primarily on core functionality at this stage.
Floating Text Example

Looking ahead to next week, my primary goal is to finalize the decision between 2D and 3D. This choice will have a significant impact on other systems moving forward.

Thanks for tuning in and taking the time to read my ramblings. Until next time!

Subscribe to IndieGameDad

Sign up now to get access to the library of members-only issues.
Jamie Larson
Subscribe