Developing a tactics engine in Godot

preview_player
Показать описание
In this devlog of sorts, we'll look at how I'm structuring the game engine for my future tactics game using Godot. Topics include level structure, unit structure, and action management.

What I'm making: 00:00
Level structure: 01:28
Unit structure: 06:00
Godot 3 vs 4: 08:22
Actions: 10:33
Рекомендации по теме
Комментарии
Автор

This is EXACTLY the kinda stuff I love hearing about in devlog type videos. I love systems design the most and you breaking down things such as hierarchy and how different systems are handled/interact is so enjoyable to me for some reason

Bitlytic
Автор

I really like how you covered the design of the game! It feels well laid out and extensible, and moving to 4 with its better handling of resources editor-wise is the right choice. No feedback on the implementation, but I think this is a great window into the thought process of actually creating a tactics type game

_gamma.
Автор

LOVE seeing your node structure. This is the most helpful kind of video.

lexolotlgod
Автор

I know nothing about developing games. I am starting from scratch. Don't know about any coding, but can do art (haven't tried pixel art yet, but I know it will be easy). I am on this journey because Square Enix won't make another Final Fantasy Tactics game, and if they won't, I'll do it on my fucking own.

juandiegotentoco
Автор

Having just gotten out of the basic godot tutorial and being struck dumb trying to figure out the top-level basic structure to use for my first self developed project, hearing you talk about the way you organised yours and what informed your decisions feels like opening my mind a little

RustoKomuska
Автор

Great video, I'm just getting started with Godot and trying to create a small Tactics game for practice, so this kind of overview is very helpful!

streambeon
Автор

I like the depth of your explanation on node organization. Will come back to study this video later.

pedrorns
Автор

I have a software engineering background and I've been working on a tactics game myself for the past several months. This is my first real game development project so it is taking me quite a long time. I am happy that it seems like the overall structure I have landed on is very similar to yours.

So far I have a "working" concept where I have implemented a "Move" action and can select and move units within their movement range along the grid. I have also implemented a basic melee attack action (that currently doesn't do anything because I haven't implemented a health system yet) which seems to work well.

I ran into a bit of a snag today when trying to ask myself what to do about actions that target different kinds of units (friendly, self, enemy, or multiple of these). Currently each unit has its own "Faction" property, and can be "player", "friendly", "neutral", "enemy".

I tried to use Data Driven Design where possible and I used an EventBus pattern for most of the communication between nodes. Currently most of the core game logic is being handled by my GameBoard class as that is what contains the actual grid. At first this seemed fine because the GameBoard could answer questions like "What is on the grid in this location?" and "highlight the valid cells I can move to with the move action on this particular unit". But as I go along, this class just keeps growing and growing. It is now over 250 lines, which doesn't seem right. Maybe it is? It just feels very icky to me.

I am finding that the Eventbus is just passing around the "active_unit" and "selected_action" around everywhere. Also I can answer questions like "Which cells on the grid are occupied by a grid_object (just units for now)" but I am struggling with more detailed questions like "get me all of the cells in range of this action that specifically have "Friendly" units on them".

I think I need to do some more decoupling and the "Services" you talk about sounds like it could be the answer. It's at times like this I wish I had a mentor or more experienced developer to keep me on the right path. I would love to see a more detailed overview of the Services pattern and how they communicate with one another.

richardwolfe
Автор

love this video. showing and explaining actual node structure when designing game is far more valuable then tutorials about features that beginner developer have no idea how to apply

Muphet
Автор

This is really cool, I like seeing good architecture and design patterns being applied in games and not just in other fields of Software development

PASTRAMIKick
Автор

Exactly what I was looking for and exactly what Godot needs. Beautiful explanations and break downs.

tenesenka
Автор

Thank you for sharing your experience with Godot and tactic games dev!
There are pretty clear and useful explanations you've provided in video.
The only thing was hard for me is to catch some of the examples related to the events and reaction loop without some kind of event sequence diagrams or other supportive visuals.
Anyway, now I'm going to watch the rest of your videos :)

MaksimZhouner
Автор

I was trying to make a little tactic game for godot about a half a year ago. It is pleasing to see that I had some similarities in architecture, though it was too much for me when I started AI

LiveGameDriveChannel
Автор

You are one of the most underrated Youtubers I watch. Your explanations are very concise and to the point, I always learn something from these.

DiSyllar
Автор

I'd love to see more about the Action system, it seems really modular and versatile! Excellent videos, love your content.

BoxiestLlama
Автор

I just realised I'm trying to make a tactics game. This helps tremendously, if only for that realisation. This came at exactly the right time, please more on this of you have it

JayFolipurba
Автор

Great video! Extremely helpful. Looking to create a similar game, and your insight into the game design rather than going into a deep dive into code is a great approach. Thank you!!!

southcoastgames
Автор

Such an awesome deep dive! Love to hear how you're thinking about scene organization and coding patterns

moonstar_connor
Автор

Thank you so much for sharing your code architecture

leonardoraele
Автор

Game design ~ node hierarchy 🤯
What a great insight, thank you!

andrewroby