Godot Tactics RPG – 12. Stat Panel

7thSage again. This time we’ll be creating some more UI elements. We’ve been working with stats for a few lessons now, and its time we created something to show at least some of them. We’ll create a pair of panels to show the character’s name, level, HP and MP values. We’ll be mostly using the primary panel for now. The secondary panel we’ll use later for the target of an action.

Continue reading

Godot Tactics RPG – 11. Jobs

7thSage again. This time we’ll be working on adding a job system. Providing different stats and growth characteristics depending on which job a unit has. We’ll be loading in a .csv file, and creating a prefab for each job in code. We’ll also be adding some of the elements from the last couple lessons to our actual game characters.

Continue reading

D20 RPG – Refactor Injection

In the past, I have often created multiple iterations of prototypes before ever posting any content about it. This project has been raw – you are seeing it as I develop it. The hopeful benefit to that approach is that I am better able to share my thought processes behind each step of the way. That includes showing when I may decide I’ve gone down a wrong road, or at least that there is a better way to do something. While refactoring isn’t necessarily the most fun thing to work on, it is an important part of the process, and I think you’ll enjoy some of the changes I will make.

Continue reading

Reflecting on Dependency

It’s been a little while since I last updated my D20 project series. So, I want to take a moment to “reflect” on the architecture pattern I had been using for managing dependencies. There is a bit of a play on words there, because I had so much fun with “reflection” in my previous post, that I decided to experiment a bit more on how it could be used for a something that feels like auto-injection.

Continue reading

Attributes & Execution Order

When working in Unity, a lot of times making good use of both Awake and Start can be enough of an “execution order” to handle the initialization of your systems. For example, you can use Awake to make sure that local references are hooked up, then use Start to handle any coordinated or delayed initialization that might need to occur. This lesson is really about what you do when those two entry points are not enough.

Continue reading