The art of your project folder


#1

First of all if you want to check my upcoming game “Miko Adventures Puffball”
please do so … I just released the gameplay trailer (And don’t forget to let me know what you think :heart:):


Alright so let’s talk about your projects files…

There is a rule: you are your project files.

How you live, how you wake up and live your day is how your project files will look like.
Game dev made me a cleaner person, in fact it made me so tidy that my project files are so clean that I can leave the game for weeks and when I come back, I remember every single folder and part and where everything is (Yeah I know it’s crazy but it’s true).

Alright let’s get into details on how it really works:

3 Steps…

1- Folders my friend, folders…
Take a look here…

1
This is the main folder of my game, this folder alone has around 1000 folders and counting…

Which all are over here:


Seems like not much going on right? well have a look inside the folder called “My project4”:


Wait that’s not all, this is a fraction of what’s really going on, have a look inside the folder called “All sprites”:


You see what I mean? it’s a maze and that’s a fraction of more than 1000 folders I have to go through every single day, so let’s just talk about this, how is this even possible? well it takes years to build your tree, let me explain…

Set back >> relax >> grab some snacks and let’s get into this…

Hold up! You got that new picture? put it in a new folder and make a folder named “Temp pics 1” but why is that 1? I’m just going to put all the folders in one place and that’s it…right? NO!!! what if you got a new picture that you feel can go in another folder? what if it’s for another style? what if the asset is in higher quality than the rest?

Always have folders with 1, 2 ,3 ,4 ,5 and so on… at the end you’ll automatically sort your folders and in the end you can give each one a separate name along with the numbers.
Some of you might feel that this is stupid but when you’re working on a big project, you’ll thank me later honestly.

2- Main folder >>> Sub folders >>> Sub-Sub folders >>> Sub-Sub-Sub folders >>> etc.
Please don’t be afraid to sort your pictures and objects so many times in your game folder.
Don’t be that guy (That was me) that make a new folder and names it “Game assets” then puts all the main character, objects, enemies, background, and everything in a single main folder … NO!!!
.
Do it like that:

  1. Main folder “All assets”

  2. Then Sub folders called “the main character” and another one called “enemies” then another one called “background” and so on…

  3. Then you take that sub folder above called “background” and make another sub folders inside called “Main background” and another called “Level 2 Background” and another and another and another…

  4. And inside these sub-sub folders you create another sub folder called “Level 2 main background” and so on…

You get what I mean?
Always make folders for everything because with time, you’ll have thousands of assets and you’ll feel so lost, it’ll make you feel terrible inside, it’ll consume your time.
You work for 1 hour but 40 minutes of this 1 hour you’re just looking for stuff around your game folder…
Always Make everything in pieces, your brain is great at sorting stuff >>> so use that brain!

3- Naming your folders…
OMG it’s so important, don’t go like character standing 1 and then character walking… no no no
Go like this:

  1. You made a folder named “the main character”

  2. inside it there is a sub folder called “Idle”

  3. Inside this “Idle” folder you go ahead and put your pics inside

  4. Then you name every single pic inside and go ahead and do it like that: “Main_Character_Idle_1” then the next picture is called “Main_Character_Idle_2” and so on…

  5. Wait, your character has 2 idle animations? don’t put all the pictures in the same folder, make a new folder for it and put it there.

This way windows will make it clean for you, GDevelop will read it in a simple way and you can import your images so easily.

From just these 3 steps you know:

  1. Your folder location

  2. Your main folder and subfolders

  3. Your folder names

  4. Your assets names

See what I mean now?
Instead of 1 single main folder that have all the pictures, you have a giant tree that you grow with time with new folders, subfolders and so on…

Your folders are a mirror of you

There is another post on my mind that talks about, how to clean your events and another one about how to keep your project files safe from corrupting and how to save yourself from losing hours of progress, soon I’ll be writing these…

I just love sharing what I learned along the way with the community, my time is just very limited most of the time, but I’d wouldn’t be here if it weren’t for this awesome community who holds my hand and got stuck with me through the whole journey, GDevelop is the best thing that happened to me :heart:

It made me a better person :heart:

See you soon :heart: And as always stay awesome everyone :heart:


#2

My structures for görtan and other projects look similar.
But tbh,
I think your project is still not very tidy, no folder for older versions of you jsons, no folder for your psd files
no proper name for the myproject folder (which is fine if you work on 1 game only), and no date in your jsonfiles.
I recommend to always write the date into it + the newest test mechanic. This helped me a lot to find the right version fast, if I needed to go back for code comparison or just copy/paste old block of code that worked over newer experimental once that bugged out.

And I am pretty chaotic in RL and super organized and planned when it comes to GD. So yeah, not necessarily related.

Keep up the good work.


#3

These are named properly because I use them 90% of the time, that’s why they’re not in a folder but named properly, it’s faster to get back to them.
And they’re in a place where everything else is in a folder.
There are folders for older versions whether it’s .json or .psd, the ones you see are the new ones actually which again I use 90% of the time.

I haven’t said it is, I think no project can be 100% tidy actually.

Then the post in not related to you, it’s made for folks who need it.
Thank you.


#4

I would also recommend to not only copy paste JSON files as backups, but to use git. With git, every time you make a change to your game, you make a commit, and then have a list of all the commits (all the individual changes you ever made). If you think you have introduced a bug in a recent commit, you can travel back in time by returning to an older version of your project without discarding your current progress, as you can go back to your current work at any time. It also has branching, so that if a feature you are working on isn’t working well you can commit it in that branch, go in your “main branch” without that broken feature, work a bit on something else then go back to working on that broken feature in another branch. If one commit is causing a bug, you can easily revert that one commit without undoing all commits afterwards.

And the best of all, you can easily put your game on a private github repository, so that it is as close as it gets to impossible to lose all your work. It can always happen that you get a ransomware, that your hard drive dies, or that a power outage causes corruption of the data. GitHub has copies of the code on multiple servers all over the world, partnerships with archiving projects and even puts all code on it on ultra lasting data mediums in the Arctic. There is no way in the world that your game files can get lost using it.


#5

I know yeah, it’s just the main copy on my PC but I have copies basically everywhere, other devices, google drive on several e-mails … family devices even :sweat_smile: , every month or so I update these copies but it’s bit of a tedious process yeah, but like once every month is not a big deal for me.

This is actually very helpful, the thing is I never understood git … I might get in contact with you to learn a bit how to use it instead of just uploading files on drive, devices and so on.

Yeah, there is this quote that says: “Anything that can go wrong will go wrong” and it’s 100% true.

That’s crazy information, I didn’t know this.


#6

GitHub has a collection of decent resources for learning git: https://try.github.io/


#7

Awesome, going to check it out soon … thanks for sharing.