Comments are good. I don’t often comment in-project anymore but I will add a comment to something that looks “wrong”, and will make me wonder why it’s there later and possibly make me want to take it out. Then I will add a comment “This is here because of that, it works because of thus”, so I will leave it alone in the future.
Also, for version control I think it’s good to get in the habit of making small, frequent commits. I like to make a commit after I’ve added new assets, after I’ve worked out a small event group, after I’ve fixed a bug.
As @v9um adresses the subject, MOTIVATION is important in duration.
But this is not specific to GDevelop but very important.
On the other hand, v9um are right when he says to work regularly on the game via the engine.
I’ll also see well prepared your assets, particularly graphism because it is a pain with GDevelop to modify them.
Use FSM (Finite State Machine) to run the game. It’s a pretty simple concept that sounds complex. Group events based on the FSM state to which they belong.
It’s effectively using a string variable to keep track of what the game or an object is doing - “Main Menu”, “Pausing”, “Playing” etc for the game FSM, and something like “Idling”, “Walking”, “Running”, “Jumping”, “Attacking” etc for a player (or even an enemy) character.
For what I can add to everything rightly pointed out above, I can only say: --simplify—.
There are many days when you’re in the mood to write code—you write and rewrite, only to realize later that the same event (which worked fine, by the way) could have been written with far fewer lines, or even just a single formula.
One last thing, and I believe it’s the most important: learn to debug.
It’s very difficult—for everyone.
Don’t rush to ask for a solution on a forum or seek immediate help without truly having tried everything first…or it becomes impossible to learn
You might think at first glance that MrMen’s response is not specific to a games engine but in fact, it is perhaps even more essential with this tool than in classic programming.
To add to this. If you’re stuck on something that’s just not working and you can’t figure it out… Have a nap.
9 times out of 10 I’ll take a look at it with fresh eyes (usually after a good night sleep) and the issue I spent trying to fix for two hours gets solved in five minutes.
I was really struggling to think of things that I do that I’m 100 percent sure it would be good advice for others to do the same.
I don’t use many behaviours, and i don’t really utilize the full features on the engine - I just do things until they stop not working.
One thing I’m almost 67 percent sure is a good thing to do is…
When adapting or debugging I duplicate a block of events or event group, label them old and new and toggle off the old one and change the new one and then if i get in a pickle it’s easy enough to go back to the old one. I delete the old one once I’m satisfied things are going in the right direction. This prevents too much control z as the undo feature in GD is horrible.
I think a lot of persons do like you says, including me.
When you say that the cancellation function is ugly, i am not totally agree with you: of course, it is far to be perfect but it works even if sometimes, we not well understand the grouping of restored or canceled actions.
If you use a chatbot ask for the Javascript version. It’s much easier to read even if you have only a minor understanding of Javascript. Chatbots are excellent at creating formulas and general concepts. They still need more training on GD. They tend to suggest things that GD doesn’t have. I haven’t tried GDs built-in AI.
Use short but descriptive object and variable names. It’s a balancing act.
Use variable structures. They can make the events easier to understand. It’s also easier to save/load 1 structure variable instead of multiple individual variables.
If you have multiple similar events especially if the only difference is an object name then maybe it’s time to use an object group or create a function or behavior.
Take breaks. Especially if stuck. Get more sleep.
Use extension but also learn the fundamentals. You need to know how things work.