ᴆᴀᴎᴉᴋᴀᴢᴇ
@danikaze.bsky.social
2.7K followers 1.2K following 1K posts
I've made up my mind and this time I'm coming back as #solodev + #indiegamedev 👨‍💻 Application Architect 📸 Photography 🕹️ Games 🚘 GR86 📍 Japan 🐹 福助's dad
Posts Media Videos Starter Packs
Pinned
danikaze.bsky.social
Hello bluesky algorithm! 👋
How do you work if my timeline is mainly about...
🗼 Japan (living in Tokyo 10+years)
🍡 Showa Japan (retro atmosphere is the best)
📷 Photography
🕹️ Games
👴 Retro games!
💻 Game Dev
👨‍💻 Web dev
🏎️ Cars (GR86)
🏁 Sim Racing
Let's connect and rebuild what Xwitter broke...
danikaze.bsky.social
I always tell to myself I'll start as soon as I have something to show 😅
danikaze.bsky.social
Any advice on what to do?
For the future me :)
danikaze.bsky.social
You can also enable linting directly in the #godot editor with the gdLinter addon.
It runs automatically on save, so you get instant feedback instead of waiting until commit time to fix style issues.

godotengine.org/asset-librar...
Screenshot of how gdLinter runs and shows in the Godot editor
danikaze.bsky.social
Starting with the basics: code style. Consistency matters, but don’t reinvent your own rules—use an existing linter.

I found gdlint + gdformat (provided in Scony's toolkit), run automatically through a pre-commit git hook to keep everything clean.

github.com/Scony/godot-...
Example of running gdlint and having one error Example of running gdlint with no errors
danikaze.bsky.social
Some in the #indiedev community dislike unit tests, but I see them as essential for quality.
Maybe it’s my 20 years of dev experience, but manual testing feels like wasted time (in a way)
Here’s how I handle CI/CD and automation in my projects.
danikaze.bsky.social
I’ve been using the logger addon I built recently as a shared module, and it’s been pretty stable and feature-complete so far — so I’ll be releasing v1.0.0 soon!

I’ll use this thread to share things I’ve learned about the #Godot ecosystem.

github.com/hanpeki/hanp...
GitHub - hanpeki/hanpeki-godot-logger: Logger for Godot based on Transports with namespaces.
Logger for Godot based on Transports with namespaces. - hanpeki/hanpeki-godot-logger
github.com
danikaze.bsky.social
Yes! I've seen it. It looks beautiful!
danikaze.bsky.social
I've been playing Cornerpond for a while now and I finally was able to understand the charm of the idle games.

I never have time to play anymore cuz I'm developing or busy doing whatever... but having this in the background kind of gives me the sensation that I'm playing nevertheless 😅
danikaze.bsky.social
Uhm... I'm seeing that using the Globals that #godot provide has a catch (who would have thought, using global variables!)

I think I prefer having only ONE global to provide global access, and then have that provide the others as instance members. It helps with memory management and memory leaks...
danikaze.bsky.social
I understand that pov,
But I think creating a game is not just the fun parts, but also taking care of the details and quality overall.
Then we have lots of buggy games lol 😅
danikaze.bsky.social
I agree!
And that's written to be run in GUT 💪
danikaze.bsky.social
You are just assuming I'm not playing my game because I have tests? Ok... 😅
And if you are not sure tests reduce bugs ... 🤦‍♂️
Have it your way 😁
danikaze.bsky.social
Even small projects like this get big enough for one guy to maintain using just his free time so, call it an investment to save time later.
danikaze.bsky.social
Idk if smart or not, I just don't like finding random errors that I thought I fixed before.
Also, a lot of experience in an enterprise development environment.
Trust no human check. Automate as much as possible 💪
danikaze.bsky.social
What are you saying now? On base of what?
🤦‍♂️🤦‍♂️🤦‍♂️
danikaze.bsky.social
Also, the 2nd (or even 1st) most important feature of unit testing, is helping with regression!
Something that you already tested and it was working fine, might stop working after some unrelated changes without you knowing...
Will you test everything, everytime??? that's the crazy one
danikaze.bsky.social
I think you have a huge misconception about automatic tests.
It's not to detect something you don't know, that's impossible.
But it tests that the output is the expected one! You might think your code is correct but OH SURPRISE! It happens always.
danikaze.bsky.social
By the way, this is my script (just a concept)... is just a few lines but validates all the actions syntax, etc.
I still have to improve it after adding user selection, but it's easy to do!
It will save HOURS of testing and stupid bugs
Small Unit Test in godot (GUT) to test every line on the script files, checking for syntax and correct values of the parameters.
danikaze.bsky.social
You know the cases you want to test because these are the features of your game.
Also, nobody said about covering 100%. But if you find a bug, usually you write a new test case for it to make sure it doesn't happen again (in a proper enterprise environment at least)
It's just about good practices 😉
danikaze.bsky.social
But playing the game for 10 minutes doesn't protect you of regression bugs.
The idea is to invest on time writing automatic tests and then run them every time to detect introduced bugs fast
danikaze.bsky.social
I'm not talking about logging, but about automatic unit tests.
This way you don't have to analyze or read anything, and you can run the tests as many times as you want in a few seconds to make sure you don't introduce regression tests in further changes.
danikaze.bsky.social
That's... what you think 😁
The truth is you run into 100% of the bugs you run into... but they might be only 70% of all the bugs in your code 😢
So having unit tests help.

Also, manually testing everything everytime is a waste of time.
Just write test once and run every time!
danikaze.bsky.social
You got me right! 😅
And yeah... I don't have any tests at this point tbh... but finding some typos or wrong vars in the scripts randomly is scary... so at least this quick way to ensure they are properly written (because no tool, just plain text) makes me feel safer xD
Small unit-test on pre-push!