Тёмный
No video :(

How I Design Architecture for Godot Engine Projects 

GodotGameLab
Подписаться 6 тыс.
Просмотров 16 тыс.
50% 1

In this in-depth video, we'll go a journey through the intricacies of designing code architecture for larger scale Godot games. Whether you're a seasoned developer or just getting started, this tutorial will provide you with invaluable insights and actionable tips to elevate your game software architecture.
🎓 Learn More About Godot:
Godot Docs:
docs.godotengi...
docs.godotengi...
☕ If you want to support me, buy me a coffee at:
ko-fi.com/godo...
🔥 Connect with Me:
Instagram: / adamgulacsi
Twitter: / adam_gulacsi
Mastodon: mastodon.gamed...
#godot #godot4 #godotengine #tutorial #codearchitecture #codedesign

Опубликовано:

 

23 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 59   
@shrewdon
@shrewdon Месяц назад
timestamps for me: 31:00 - procedure for creating a system
@noofwitloof
@noofwitloof 6 месяцев назад
I can't believe this video only has 2,7k views. Absolutely one of the most valuable Godot videoes i've ever watched and has answered my most important question when it comes to game dev, which was how to plan scene structure and code.
@godotgamelab
@godotgamelab 6 месяцев назад
Thanks, you are really nice! :)) I'm glad you found it useful! Spread the word if you can 😅
@btCharlie_
@btCharlie_ 4 месяца назад
Not just Godot, this applies to all game dev, and if you squint a bit, also to any software project planning. A very valuable insight into organizing a project. It's not an understatement that game devs need to be multi-hat experts. Especially solo devs need to get the hang of coding, project management, design, UX, marketing, and I'm sure there are other essential things, and it's usually the things just outside using a game engine and making art that are very often omitted from the discussion, cause they're not as sexy to talk about.
@godotgamelab
@godotgamelab 4 месяца назад
@@btCharlie_ nicely put! 100% agreed
@GratissTVofficial
@GratissTVofficial 2 месяца назад
Thabk you so much. Ive been learning game development for the past few months but no tutorial/guides talks about architecture but you! Your guides have been so useful!! Its really hard to understand certain topics coming from outsife of all this, for instance just the idea of naming everything with underscores when saving, or how to allocate each folder where, exc. Thank you so so much
@godotgamelab
@godotgamelab 2 месяца назад
Thanks for the kind words, glad you found this video useful! :)
@FabioGemesio
@FabioGemesio 5 месяцев назад
This is SERIOUS stuff! A very good design method, that was missing in S1 episodes. As a web dev in the way of converting to Game Developmen this is so usefull and I missed your reasoning in season 1, that I followed without understanding some of the logics behind your great work. You are helping me so much.
@godotgamelab
@godotgamelab 5 месяцев назад
Thanks for the feedback, glad it helped! :) All of this was possible because feedback and comments like yours! 👀
@RafaMartinelli
@RafaMartinelli 7 месяцев назад
Just finished watching. First off, thank you so much Adam. I really love learning about this because what first struck me about your code is how tidy it is - so immediately wanted to understand your thinking behind it. Also, I am actually applying the knowledge in an indie Mars colony survival roguelike game I'm developing. 🚀 Secondly, as far as the Queue as a solution for the Relics pain point, I think it's a pretty good solution. At the same time, I am reminded of the Yu-Gi-Oh card games on Gameboy Advance. I believe after the Draw Phase there's a Standby Phase which is in charge of resolving card effects (which can get quite complex with player/enemy chained effects) and that is how they seem to have fixed a similar problem. Their Turn structure is: Draw -> Standby Phase -> Main Phase 1 -> Battle Phase -> Main Phase 2 -> End Phase. *TL:DR*: So, what if each Battle Activated Relic included a property stating during what Battle Phase its effect is triggered, AND the battle manager performed a Standby Phase / Relic Effect Check in between Phases and see if any Relics have a trigger property for that Phase, activating it by whatever instructions are in the Relic resource itself? This seems to me pretty similar to your solution, however slightly different. Maybe it inspires another approach to the question. Let me know how it feels for you (or if it was unclear). I'm excited for the next season, I've truly learned so much!
@godotgamelab
@godotgamelab 7 месяцев назад
Thanks for the detailed feedback and the idea! That's what I love most about being a teacher, I learn just as much as you do. Someone already suggested something similar and I've been thinking about it. This solution you propose seems so much easier to implement so I'll probably go with something like this. Thanks again! 😊
@jamesridley1937
@jamesridley1937 7 месяцев назад
This is exactly what I was hoping for after leaving my comment… THANK YOU, I really do appreciate your willingness to do videos like these :)) happy new years!
@godotgamelab
@godotgamelab 7 месяцев назад
happy new year 🥳 hope you like the video!
@dmsys6516
@dmsys6516 7 месяцев назад
What a way to start the year Honestly was suprised to see the just how much we will be adding to slay the spire in the next season
@godotgamelab
@godotgamelab 7 месяцев назад
Yeah it's a lot of ground to cover, but we can do this 💪
@ShinSpiegel
@ShinSpiegel 7 месяцев назад
Holymother, some archtecture video using Godot! Thanks for the video.
@godotgamelab
@godotgamelab 7 месяцев назад
Thanks for watching it! 😊
@JasonMorelandDigitalrecline
@JasonMorelandDigitalrecline 7 месяцев назад
Excellent video. Not many quality, talk though of architecture and coding out there. Awesome to see other people's reasons for doing things similar or different makes a great video where we can learn something new or cement the things, we do the same. Starting to feel like you're the codemonkey of Godot which is a great thing.
@godotgamelab
@godotgamelab 7 месяцев назад
thanks for the compliment! glad you like it 😊
@lunasti
@lunasti 4 месяца назад
probably the most insightful tutorial I have watched so far. thank you so much!
@godotgamelab
@godotgamelab 4 месяца назад
Glad you liked it, thanks for the feedback!
@longuemire748
@longuemire748 7 месяцев назад
good years :) Thanks for this video, I've always wondered about the process followed to arrive at a reliable code structure.
@godotgamelab
@godotgamelab 7 месяцев назад
happy new year 🥳 thanks for watching!
@RafaMartinelli
@RafaMartinelli 7 месяцев назад
I can tell this is gonna be epic learning!
@VaporCode
@VaporCode 7 месяцев назад
Excellent video to start the year 🎉 🤯
@godotgamelab
@godotgamelab 7 месяцев назад
thanks, happy new year! 🥳
@aleserantes
@aleserantes 7 месяцев назад
Amazing video! I love specially the scattered reasoning and back and forth during the system design, can relate 100%. For the diverse relics, I think the observer pattern could help. All features in general could subscribe to the "run" subject which is responsible oforchestrating through system wide events, then each feature reacts accordingly as observers of these events. The shop relic discount prices if "shop_opened", the other would react if "battle_started", etc. To avoid race conditions or simultaneous reactions, couldn't you just create more events? "battle_started", "start_battle_effects_applied", etc.
@godotgamelab
@godotgamelab 7 месяцев назад
Thanks for the input! The EventBus we have in the project already is an implementation of the Observer pattern. However, your idea to avoid race conditions is very interesting. Probably that's a lot easier than creating the queue. I'll think about it, thanks!
@ThunderPlayStudios
@ThunderPlayStudios 8 дней назад
that's what I was looking for :)
@rafaStr
@rafaStr 7 месяцев назад
I really liked the tutorial style. And this lesson too. Thank you. (I'll donate to you when I have a bit more spare money. This lessons are so helpful for my situation. Thank you for publishing it for free.) Just want to suggest for you also explain and go through the refactoring process of the project in part 2. (probably you were already thinking about doing that)
@godotgamelab
@godotgamelab 7 месяцев назад
Thanks! Don't sweat about donating if you can't. I'm happy that you're here 😊
@Ignawesome
@Ignawesome 7 месяцев назад
hey that's my comment! happy new year and thank you for the detailed explanation. I'll watch it slowly to really take in all the information
@godotgamelab
@godotgamelab 7 месяцев назад
👀 Happy new year! 🥳 Hope you like the video!
@LuizMoratelli
@LuizMoratelli 7 месяцев назад
Happy new year! Amazing video idea :D
@godotgamelab
@godotgamelab 7 месяцев назад
Happy new year 🥳
@iHydrogen
@iHydrogen Месяц назад
deserve 1 million subs ngl
@godotgamelab
@godotgamelab Месяц назад
Thanks, I wish mate 😂
@thelastnamesake9
@thelastnamesake9 2 месяца назад
My biggest question about relics is how they will be stored. If the only data common to them is name, art, id, and maybe some kind of trigger time (i.e. start of battle), then how do you store the other data? Does each relic need to be its own node with its own methods? I've been making my own deckbuilder game and I got stuck hard with implementing a relic system.
@godotgamelab
@godotgamelab 2 месяца назад
Hey, good question. My relic video drops this weekend if you're interested in my implementation. I ended up using resources to describe relics in terms of data (art, type, tooltip etc.) And they all have their own custom scripts to describe their behaviour.
@Chillerll
@Chillerll 7 месяцев назад
New year, new season. Lets go.
@godotgamelab
@godotgamelab 7 месяцев назад
Let's go indeed! 💪
@fcw185
@fcw185 7 месяцев назад
Thank you for the beginner.
@user-tc5yk4zd5k
@user-tc5yk4zd5k 7 месяцев назад
happy new year!
@godotgamelab
@godotgamelab 7 месяцев назад
happy new year! 🥳
@ThomasBCharlie
@ThomasBCharlie 4 месяца назад
Hi, I love this example in architecture design. It feels like I've always lacked structure in approaching the projects I want to make, so this gives me something to work with! However, despite my attempt at breaking down the game idea I have like you suggest, I struggle with one key thing - I cannot decide what interacts with and what data it needs or produces. It feels really opaque when trying to peek into the future of the project and without much experience in architecture design, I tend to fall into the pitfall when I re-type the major feature name into its feature list, the data, and can't see what it could interact with. I guess this is expected without the experience of finishing a project before, but my question is - should I spend more time on trying to flesh the architecture out as much as I need or is it good enough to have a rudimentary idea about the features and add onto the list as I get more intimate with the systems I'm making? I don't know how best to spend the little time I have to work on these side projects 😕
@godotgamelab
@godotgamelab 4 месяца назад
Hey, That's a totally valid question. I would suggest not overthinking these questions for now. Best thing you can do is to make some small-scope projects (game jams are perfect for this). They shouldn't be super polished but at least have the core gameplay loop intact. After doing a couple of those you'll be much better at identifying systems and the communication between them. No need to overthink it :) go and make games even if the code is a big bowl of spaghetti. That's the only way to learn. Just. Do. It! You can do this! :)
@ThomasBCharlie
@ThomasBCharlie 4 месяца назад
@@godotgamelab Thanks, I guess there's no magical route to avoid some major refactoring rounds down the line 😅
@AV-qr4kl
@AV-qr4kl 7 месяцев назад
🎉
@zzzzzzzzzzzzzzzzzzzzzzzzzzzz__
@zzzzzzzzzzzzzzzzzzzzzzzzzzzz__ 6 месяцев назад
poggerton champington
@MattHorton
@MattHorton 7 месяцев назад
Please don't make unedited a common thing. The value I got from your StS series was how well organized and planned it was.
@godotgamelab
@godotgamelab 7 месяцев назад
Hi Matt, This video was requested by many other lab technicians and they said that they would benefit a lot from hearing an unfiltered version of my thinking process. This is more like an experimental video but this is not a tutorial per se. My courses (and StS season 2 as well) will follow the format of season 1. Cheers!
@MattHorton
@MattHorton 7 месяцев назад
I understand. Just wanted to be a voice asking for the other thing. I appreciate your work!
@aleserantes
@aleserantes 7 месяцев назад
I respectfuly digress, the BEST part for me is how he speaks out the multiple ways he can go about solving one problem, I think it's specially useful for those who are trying to learn how to do this one day by themselves. At least for this part of system design where it takes the most "thinking" than any other.
@1_Kirby
@1_Kirby 7 месяцев назад
Happy New Year!🥳🥳 It takes a lot of time and consideration to make a new game logic than I thought. Watching this video, I felt that I should work harder on the design of the game.😥 I'll be looking forward to season 2!
@godotgamelab
@godotgamelab 7 месяцев назад
Happy new year! 🥳
@krishnansarkar3969
@krishnansarkar3969 4 месяца назад
thank you, this was very helpful
@godotgamelab
@godotgamelab 4 месяца назад
Glad you like it!
Далее
Godot 4.3 is Here!
19:20
Просмотров 83 тыс.
Building An Ascii Particle System
1:45:39
Просмотров 120 тыс.
Risc-V Bare Metal C Hello World!
21:37
Просмотров 4,1 тыс.
Linus Torvalds on why desktop Linux sucks
11:07
Просмотров 1,3 млн
How To PLAN your Game as a Solo Developer
16:26
Просмотров 488 тыс.
6 Tips to Better Organize your Godot Projects
11:39
Просмотров 134 тыс.