Great video! The first time I worked with a team on a game jam we didn't know how to organize our files and it turned into complete chaos. By the end of the competition we couldn't find anything in our project. Organization is so critical yet can be so easily overlooked.
When I started I was grouping files by type (I think some tutorial suggested that), but with time, I've also landed on grouping by functionality instead. So I approve this message!
One thing that made my workflow work better was adding a “support” folder that includes raw assets for itch store pages, unprocessed audio files I may use, credits, etc. Great video, I’ll pick up some of those organizational tips!
I really like the folder structure. It seems really intuitive to keep everything related together like that. I'm so used to keeping all singular file types together (scripts in Scripts, models in Models), and oftentimes it takes me a while to find the file I need. I'm strongly considering implementing a hierarchy like this now!
I said it can take a while, not that it was hard. You've typed exactly the structure I had before, and have used for years outside of Godot. If I'm dealing with an object/scene that has a model, sprite, script, resource and script for the resource, it's comparatively quicker to find them all in one dedicated folder for that "entity type", shall we say, versus needing to visit 5 different folders.
This is awesome. I had everything in seperate asset>art and scripts folders and was quickly losing everything, and finding I was creating different directory structures. This is much easier to keep track of everything. Thank you so much for sharing.
I've always wanted to see a video like this showing how to organize game code in a game engine, because it's very different than how most software is organized and architected.
This is similar to vertical slice architecture, which is a method in distributed systems and back end architecture design for organising code by features rather than technical concerns. Interesting to see parallels in very different software engineering domains
Yes! I kept think of this throughtout the video. This is my favorite architeture for organization, I am glad to see a implementation of it in another context.
And this technique scales pretty well. It’s what I’ve been doing in my 100K line (NestJS server) project. Basically “abstracting” the folders. - src - automation - config - data -- common -- crm -- db -- metrics -- csr -- branch -- common -- … -- server - lib
Love this! Great to see someone elses implementation and organization strategies, even if there are some downsides. I find that managing shared files often gets overlooked with the "organize by usecase". Like a player and an enemy that both have a shared health script. The health script doesnt belong in either folder, and thus is booted up a layer. Despite the feeling that it should live at the same level as both the player and the enemy. It almost feels as if like a file hierarchy isnt doing justice to the complexity of the code structure. Like if i could organize files based on a 2D graph instead of a filesystem, i feel like that would almost be more intuitive. Forget folders and organization strategies, and just looked at which nodes / files are tied to each other in the 2D graph.
Do you know this is by far the Godot video I've watched the most so far, except maybe the Miziziziz's video about tutorials ? This is extremely precious knowledge and I'm glad you spent time sharing this with us because it's very good !
Thank you for showing us behind the curtain of a well organized and large Godot project! Very helpful. I can see how this system could work in lots of ways, and scaffolding you've got here is very good!
I've taken notes from this video and put it in a nice document called 'Game Dev Wisdom', and I will be using this structure when I eventually delve into a bigger game!!! I appreciate this breakdown so much! This system just makes so much sense
Excellent video! I've just gotten back into game dev after a few years out, and am always interested to hear about things like directory structure, design patterns, how entities communicate etc. So would love to see some more of this style of video if it's something you're interested in covering!
That's a big tree! I'm surprised that you haven't color-coded anything in there. I love having different folder colors for art, UI, scenes+scripts, etc. At least in my experience, it's made things a lot quicker to find.
@@visibletoallusersonyoutube5928 Just right-click on the folder in the FileSystem dock, then select a color under "Select Folder Color..." Colors are applied to nested folders automatically.
I'm here watching this for the second time as I'm reorganizing my little project just because when I watched it for the first time I knew I must do it this way. Seems super intuitive.
As a new game dev, but a long time developer, I love this. I keep watching tutorials with a Scripts folder and that just seems like such a horrible idea for a real game to me. This also gave me some ideas on how to better structure my own work moving forward. Thank you!
This is a extremely well written and well executed video - bravo As a follow on - id love to see. the scene architecture that correlates with all this. How does a main menu get loaded, how do we load the gameplay, where does the various scenes and entities load into one another. Great video, super helpful
Neat. Personally I'd split Entities into `Entities` and `Objects`, where things like the player, enemies, npcs are 'Entities' but things like weather/doors/etc would be `Objects`.
This was one of the most helpful videos I have seen in a long time. Not only does this inspire new developers to better organize their projects but also seasoned developers. Personally I think maintaining good orginasized code throughout the project is the most challenging. Your ability to organize your project is inspiring. Thank you for uploading such a good content
Great video! As someone who struggles with organizing projects to the point where I feel like I’m constantly changing my folder structure, this is very insightful. I especially like your naming conventions for different inherited objects, it’s feels really intuitive. I’d love and appreciate more content like this!
Honestly I'd just move config into the utilities folder since you don't need to access it often. Really nice video, I feel the sudden need to organize my project now :))
The big drawback to any file organization is the folder system. We're stuck with it for so long because real life documents can be only in one place at the time. I believe tag-based organization system would be more versatile. Anyway, thank you for sharing your approach, seems reasonable and more natural than "hey, here are all the flowers' looks and there are the smells".
Thanks so much, I have definately struggled to find something which makes sense and prevents bleeding functionality from one component to another. I can see this working well, will have to give it a go.
Thanks for this. I've made a lot of small game jams, but I'm just not starting on a larger project and this is a big help. I'd love more general Godot engine stuff like this.
Really congratulate you for the ammount of work put into this game, sincerely the boat sailing around the island and the trasparent sea looks amazing. Great work and thanks for sharing with us
Thank you, great video on an obscure topic! Please tell us more about game inner workings and how to organize a game from the inside. For a beginner dev like me, without coding knowledge and experience, it's such a valuable source of learning!
I'm currently making my game in Game Maker Studio 2 and I've let my file/folder structure turn into a nightmare. This is good motivation for me to finally clean things up
The timing for this video is insane. I'm planning on making an unusual inventory system for my game, but I didn't know if I would be able to manage all of the lines of code. I'll definitely be using some of these tips. Thank you!
Dauphin has a few inventory implementations in my UI folder for the player equipment, player inventory, and fishing rod setup. Fun to build out - good luck!
Looks like a professional take on the subject, fellow dev. I do find putting all stuff concerning one model or entity or even system very close to each other very smart. One problem you might encounter with your specific solution is compilation time since you got most of your stuff in entities, but I have no idea of Godot so I might be wrong here.
Thanks for this content. For self-taugh gamedevelopers and programmers, it's useful to see a skeleton of OOP for an complex game in Godot. There isn't such a lot of content on this. ;)
At first it looked weird but as you went on explaining it started to make a lot of sense, I will start considering something like this for my future projects, so far I've been organizing stuff mostly by type rather than functionality and it starts getting messy real fast. Been looking for alternative ways for a while now.
Nice Vid! Love this type of content. Would be awesome to see a video on how you have structured and/or manage and/or share states of both the player and NPCs, and maybe how you manage and/or share collisions/attacks/interactions, etc. between entities, items and the environment, etc., if that makes sense 🤔
Thanks for the tour! I would be interested to see examples of whats in that common folder and how you write them so they are reusable in different projects.
Hey, love this video! So good to see the internals of a more mature project in Godot. One question I feel like I never have a great grasp of is how to scale sprites. For example, at 2:30 in the video I see a text popup in the bottom left and the font is very legible, but only takes up a small part of the screen. That makes me think the resolution of your game must be quite large, but your main character is still very chunky and pixelated. Can you elaborate on your window size, stretch mode (canvas vs viewport?), font size, and scaling of sprites?
Working in software I feel the pain of organizing a project propelly all the time. I have a similar structure, but I'll for sure make some tweaks based on your suggestions. I particularly like the ide of organzing entities based on classes. Thanks a bunch and keep it up. The game is coming out top notch!
Great video. Im making an rpg in Godot too and I love hearing about how to organize the project and design patterns and such. I've been really busy lately and i haven't worked on my game because life happens(i got married). But someday I'll finish it.
i kind of like organizing each aspect of the game in its own folder for example id have code, scenes, textures and audio as the first level of folders and then in those add sub categories to things like entities, gui, items misc etc. and in those id add more sub categories.
I think 11k lines for a 4 year project is actually really amazing. One of my games had 9k lines after only 6 weeks (to be fair it's written in Rust/Bevy so no meta files, instead all in the code). I think the less code you have the better. Are you putting effort into keeping your code clean/small? Like regularly refactoring or similar.
I think this is very interesting because the first organizational choice you make at the top level will often drive the rest of your organization. And I have found how you pick to do that is how a combo of keeping top level folder count low + how you think about finding things personally off the top. For example if you have a bug in one of your enemy behavior scripts, how would you think to find it? Is it “oh it’s an enemy and of this name so it’s there?” And therefore follow a pattern shown here? Or is it “oh an enemy script is having a problem so I better go to my scripts and enemies” etc. For me personally I find I like organizing my top level by types (levels, audio, scripts, etc) and then subfoldering in the way that is grouped by logic in the game. But both ways are good, just make sure you stick to it consistently! Mixing styles gets confusing fast lol
Interesting video. I am wondering what you do with shared assets. I.e. two in-game objects that use the same sprites or sounds. I generally prefer something like your structure, but it always ends up coming back to bite me, as things get more complicated. And as I was watching your video, one of my first thoughts were "Where did he put his UI folder?!" :D
This is so clean and well thought out. At what point did you create this organization? I love the implementation BUT also love the reason and process to get there.
Awesome content! BTW I'm just starting 2D game dev in Godot and I become really overwhelmed by all the skills I need to learn, and I'm actually more concerned about art stuff rather than Godot, because I have background in programming. Do you mind making some roadmap video on this in the future on this?
what do you think about naming "0 Tilesets" or "Z Tilesets" so it always shows up at the top or bottom? also is there a way to color code folders? thanks
I can’t manage to organize files like this, feels too much like inheritance. I understand you store an entity in a far sub folder, but where do you store components that it and other entities share? Like a health component.
I have a question. In godot using composition we create standalone components. Are they equivalent to scriptable objects of unity? I am new to game dev.
in my projects, the folder name "common" does not mean "things which can be used in any project" but "things which at least 2 other things in my project uses"
So I just started to make my project big enough that I actually have files to organize and move around. How many dependencies have you broke with this many files in your game?
You started this Project 54 months ago, yet there are only 53 Videos in the" Dauphin Development Logs" Playlist. There is an ENTIRE video less than i want. When do you upload a new Video in the Playlist?
Deeefinitely please make more of these educational videos! This one was very insightful
Hey will do, thank you!
I've just hit the point in my RPG dev where I need to seriously consider how I want to organize everything. Truly perfect timing
That's a pretty exciting point in the project! Happy this helped!
I really needed to learn this! So many tutorials seem to stop at the minigame level.
Yea its to the point where I'm starting to doubt the axiom that making a ton of small games is good for you.
Great video! The first time I worked with a team on a game jam we didn't know how to organize our files and it turned into complete chaos. By the end of the competition we couldn't find anything in our project. Organization is so critical yet can be so easily overlooked.
When I started I was grouping files by type (I think some tutorial suggested that), but with time, I've also landed on grouping by functionality instead. So I approve this message!
I love this. Put files closest to their level of use. If shared, go high. If object specific, go deep.
One thing that made my workflow work better was adding a “support” folder that includes raw assets for itch store pages, unprocessed audio files I may use, credits, etc. Great video, I’ll pick up some of those organizational tips!
I really like the folder structure. It seems really intuitive to keep everything related together like that.
I'm so used to keeping all singular file types together (scripts in Scripts, models in Models), and oftentimes it takes me a while to find the file I need. I'm strongly considering implementing a hierarchy like this now!
Why where they hard to find?
What's was hard about something like Scripts -> Player -> Controllers etc.
I said it can take a while, not that it was hard. You've typed exactly the structure I had before, and have used for years outside of Godot.
If I'm dealing with an object/scene that has a model, sprite, script, resource and script for the resource, it's comparatively quicker to find them all in one dedicated folder for that "entity type", shall we say, versus needing to visit 5 different folders.
@@AspiringHeroGames Idk sounds like it was harder to navigate to me
Cool
This is awesome. I had everything in seperate asset>art and scripts folders and was quickly losing everything, and finding I was creating different directory structures. This is much easier to keep track of everything. Thank you so much for sharing.
I've always wanted to see a video like this showing how to organize game code in a game engine, because it's very different than how most software is organized and architected.
This is similar to vertical slice architecture, which is a method in distributed systems and back end architecture design for organising code by features rather than technical concerns. Interesting to see parallels in very different software engineering domains
Yes! I kept think of this throughtout the video. This is my favorite architeture for organization, I am glad to see a implementation of it in another context.
And this technique scales pretty well. It’s what I’ve been doing in my 100K line (NestJS server) project. Basically “abstracting” the folders.
- src
- automation
- config
- data
-- common
-- crm
-- db
-- metrics
-- csr
-- branch
-- common
-- …
-- server
- lib
Love this! Great to see someone elses implementation and organization strategies, even if there are some downsides. I find that managing shared files often gets overlooked with the "organize by usecase". Like a player and an enemy that both have a shared health script. The health script doesnt belong in either folder, and thus is booted up a layer. Despite the feeling that it should live at the same level as both the player and the enemy. It almost feels as if like a file hierarchy isnt doing justice to the complexity of the code structure. Like if i could organize files based on a 2D graph instead of a filesystem, i feel like that would almost be more intuitive. Forget folders and organization strategies, and just looked at which nodes / files are tied to each other in the 2D graph.
Do you know this is by far the Godot video I've watched the most so far, except maybe the Miziziziz's video about tutorials ? This is extremely precious knowledge and I'm glad you spent time sharing this with us because it's very good !
Thank you for showing us behind the curtain of a well organized and large Godot project! Very helpful. I can see how this system could work in lots of ways, and scaffolding you've got here is very good!
I've taken notes from this video and put it in a nice document called 'Game Dev Wisdom', and I will be using this structure when I eventually delve into a bigger game!!! I appreciate this breakdown so much! This system just makes so much sense
Excellent video! I've just gotten back into game dev after a few years out, and am always interested to hear about things like directory structure, design patterns, how entities communicate etc. So would love to see some more of this style of video if it's something you're interested in covering!
That's a big tree! I'm surprised that you haven't color-coded anything in there. I love having different folder colors for art, UI, scenes+scripts, etc. At least in my experience, it's made things a lot quicker to find.
Forgot that this is a feature
Whoa I need to do this!
Is there a quick way to explain how it's done?
@@visibletoallusersonyoutube5928 Just right-click on the folder in the FileSystem dock, then select a color under "Select Folder Color..."
Colors are applied to nested folders automatically.
@@visibletoallusersonyoutube5928 Just right-click on the folder color in the FileSystem tab, then select a color under "Set Folder Color...".
I'm here watching this for the second time as I'm reorganizing my little project just because when I watched it for the first time I knew I must do it this way. Seems super intuitive.
Interesting concept. Not what I use, but still good to see a different approach.
As a new game dev, but a long time developer, I love this. I keep watching tutorials with a Scripts folder and that just seems like such a horrible idea for a real game to me. This also gave me some ideas on how to better structure my own work moving forward. Thank you!
This is a extremely well written and well executed video - bravo
As a follow on - id love to see. the scene architecture that correlates with all this. How does a main menu get loaded, how do we load the gameplay, where does the various scenes and entities load into one another.
Great video, super helpful
Neat. Personally I'd split Entities into `Entities` and `Objects`, where things like the player, enemies, npcs are 'Entities' but things like weather/doors/etc would be `Objects`.
This was one of the most helpful videos I have seen in a long time. Not only does this inspire new developers to better organize their projects but also seasoned developers. Personally I think maintaining good orginasized code throughout the project is the most challenging. Your ability to organize your project is inspiring. Thank you for uploading such a good content
4 years! Wow that's gone fast. I'm looking forward to playing this on release ❤
Great video! As someone who struggles with organizing projects to the point where I feel like I’m constantly changing my folder structure, this is very insightful. I especially like your naming conventions for different inherited objects, it’s feels really intuitive. I’d love and appreciate more content like this!
Honestly I'd just move config into the utilities folder since you don't need to access it often. Really nice video, I feel the sudden need to organize my project now :))
Thank You!
This has finally helped answer some of my questions that I can never seem to find information or advise on! 😭
The big drawback to any file organization is the folder system. We're stuck with it for so long because real life documents can be only in one place at the time. I believe tag-based organization system would be more versatile.
Anyway, thank you for sharing your approach, seems reasonable and more natural than "hey, here are all the flowers' looks and there are the smells".
Thanks so much, I have definately struggled to find something which makes sense and prevents bleeding functionality from one component to another. I can see this working well, will have to give it a go.
Thanks for this. I've made a lot of small game jams, but I'm just not starting on a larger project and this is a big help. I'd love more general Godot engine stuff like this.
Definitely more like this! Your insight into good development practices are super helpful.
Really congratulate you for the ammount of work put into this game, sincerely the boat sailing around the island and the trasparent sea looks amazing. Great work and thanks for sharing with us
I needed that video. I was actually struggling hard with organizing my game project - and it was nowhere near the Daupin complexity!
Thank you for this video. This is something I've been struggling with a lot. I would love to see more in depth how you handle this
Thank you, great video on an obscure topic! Please tell us more about game inner workings and how to organize a game from the inside. For a beginner dev like me, without coding knowledge and experience, it's such a valuable source of learning!
super useful! would like to see more about how you avoid clutter
I'm currently making my game in Game Maker Studio 2 and I've let my file/folder structure turn into a nightmare. This is good motivation for me to finally clean things up
This is honestly really really great for me to be hearing right now. Thank you so much for making this for people like me to find!
Really enjoy these highly focused videos about one topic. I dare say I like them even more than the regular Dev Logs (which are still interesting!).
The timing for this video is insane. I'm planning on making an unusual inventory system for my game, but I didn't know if I would be able to manage all of the lines of code. I'll definitely be using some of these tips. Thank you!
Dauphin has a few inventory implementations in my UI folder for the player equipment, player inventory, and fishing rod setup. Fun to build out - good luck!
This was awesome! I found this super helpful even after working with Godot for a few years. MORE PLEASE :D
Looks like a professional take on the subject, fellow dev. I do find putting all stuff concerning one model or entity or even system very close to each other very smart.
One problem you might encounter with your specific solution is compilation time since you got most of your stuff in entities, but I have no idea of Godot so I might be wrong here.
Please make a video on making a "common" classes and scripts for reusable scenes. That would be really helpful!
Dauphin looks fantastic, great work!
Thanks for this content. For self-taugh gamedevelopers and programmers, it's useful to see a skeleton of OOP for an complex game in Godot. There isn't such a lot of content on this. ;)
Thanks for this. Just starting out with some game development and always wondered how to group stuff.
This is very helpful. Thank you so much for sharing your approach!
I love these "educational" videos in addition to the devlogs, great work! :)
Super insightful, I really appreciate the in depth walk through and examples you gave!
Thank you, Ben! I will definitely implement this pattern in my project. It brought several ideas that are certainly very useful!
Common folder is brilliant. Very very smart.
@DevDuck Please make a video on how to make a "common" reusable assets! That would be really helpful
At first it looked weird but as you went on explaining it started to make a lot of sense, I will start considering something like this for my future projects, so far I've been organizing stuff mostly by type rather than functionality and it starts getting messy real fast. Been looking for alternative ways for a while now.
Nice Vid! Love this type of content. Would be awesome to see a video on how you have structured and/or manage and/or share states of both the player and NPCs, and maybe how you manage and/or share collisions/attacks/interactions, etc. between entities, items and the environment, etc., if that makes sense 🤔
Love that t-shirt. Really cool! 🧊
Thanks for the tour! I would be interested to see examples of whats in that common folder and how you write them so they are reusable in different projects.
Hey, love this video! So good to see the internals of a more mature project in Godot. One question I feel like I never have a great grasp of is how to scale sprites. For example, at 2:30 in the video I see a text popup in the bottom left and the font is very legible, but only takes up a small part of the screen. That makes me think the resolution of your game must be quite large, but your main character is still very chunky and pixelated. Can you elaborate on your window size, stretch mode (canvas vs viewport?), font size, and scaling of sprites?
Damn, I thought I got a big screen but brotherman out here sitting in front of a TV.
Another fantastic video as always
Nice video. I group by functionality too. Not using Godot yet but I hope to use it for my next project.
Just getting to adding folders to build the prototpe and my organizational OCD is thrilled and terrified
This is really useful! Nice work!
Working in software I feel the pain of organizing a project propelly all the time. I have a similar structure, but I'll for sure make some tweaks based on your suggestions. I particularly like the ide of organzing entities based on classes. Thanks a bunch and keep it up. The game is coming out top notch!
Great video. Im making an rpg in Godot too and I love hearing about how to organize the project and design patterns and such. I've been really busy lately and i haven't worked on my game because life happens(i got married). But someday I'll finish it.
[3:11] Same, I don't know; I like leaving it by default in the root because it’s clean and feels more organized.
YES. Such a persistent problem for me.
huge life safer for my own godot project after this video decided to take the time to sort out the mess
i kind of like organizing each aspect of the game in its own folder for example id have code, scenes, textures and audio as the first level of folders and then in those add sub categories to things like entities, gui, items misc etc. and in those id add more sub categories.
I think 11k lines for a 4 year project is actually really amazing. One of my games had 9k lines after only 6 weeks (to be fair it's written in Rust/Bevy so no meta files, instead all in the code). I think the less code you have the better. Are you putting effort into keeping your code clean/small? Like regularly refactoring or similar.
I think this is very interesting because the first organizational choice you make at the top level will often drive the rest of your organization. And I have found how you pick to do that is how a combo of keeping top level folder count low + how you think about finding things personally off the top. For example if you have a bug in one of your enemy behavior scripts, how would you think to find it? Is it “oh it’s an enemy and of this name so it’s there?” And therefore follow a pattern shown here? Or is it “oh an enemy script is having a problem so I better go to my scripts and enemies” etc. For me personally I find I like organizing my top level by types (levels, audio, scripts, etc) and then subfoldering in the way that is grouped by logic in the game. But both ways are good, just make sure you stick to it consistently! Mixing styles gets confusing fast lol
Interesting video. I am wondering what you do with shared assets. I.e. two in-game objects that use the same sprites or sounds.
I generally prefer something like your structure, but it always ends up coming back to bite me, as things get more complicated.
And as I was watching your video, one of my first thoughts were "Where did he put his UI folder?!" :D
Super helpful video
That's it! Thank you.
This is so clean and well thought out. At what point did you create this organization? I love the implementation BUT also love the reason and process to get there.
Are you crowd sourcing the localised text? Be interesting to see how you handle that
Awesome content! BTW I'm just starting 2D game dev in Godot and I become really overwhelmed by all the skills I need to learn, and I'm actually more concerned about art stuff rather than Godot, because I have background in programming. Do you mind making some roadmap video on this in the future on this?
It would be great to see how you're doing enemy AI. It looked like you had a reusable state machine for that.
How would you organize a project with DLCs? Thanks for sharing!
sailboats anchor from the bow (the front)
the beard 🔥
I'm curious on how you organize files that are shared between entities. For example a hurt sound effect that all enemies share.
what do you think about naming "0 Tilesets" or "Z Tilesets" so it always shows up at the top or bottom? also is there a way to color code folders? thanks
I can’t manage to organize files like this, feels too much like inheritance. I understand you store an entity in a far sub folder, but where do you store components that it and other entities share? Like a health component.
ty for this bro!! ^_^
I have a question. In godot using composition we create standalone components. Are they equivalent to scriptable objects of unity?
I am new to game dev.
Your config folder sounds like something that should be in user:// rather than res://
How did you make that burning crab look so smooth.
in my projects, the folder name "common" does not mean "things which can be used in any project" but "things which at least 2 other things in my project uses"
So addons folder should be in Utilities right?
what's the difference in the UI folder in Commons and the UI folder in Entities?
Do you make that clothes?
Thanks
So I just started to make my project big enough that I actually have files to organize and move around. How many dependencies have you broke with this many files in your game?
If the game is 10k code lines how much % of the project is completed?
50th ??!!
do you have ebook for this, like pdf for free 😅
Swear you wrote Common folder !
You started this Project 54 months ago, yet there are only 53 Videos in the" Dauphin Development Logs" Playlist. There is an ENTIRE video less than i want.
When do you upload a new Video in the Playlist?
You probably should organize code by real actual dependencies, and then only after then by conceptual category.