
The Making of "PlanetDrop"
How it started?

What was the budget?
Zero.
How many people participated in the development?
One.
How much time is invested?
Roughly 10 months, 10-20 hours per week.
What tools have been used?
The budget mandated only free tools/resources should be used.
- Game engine: Unity3d
- Code: Visual Studio 2019, Notepad++
- Models: Blender
- Vector graphics: Inkscape
- Raster graphics: GIMP
- Sound: Audacity
- Screen capture: Greenshot
Some thoughts on the tools
Remark: I do not claim to be even moderately skilled user in any of the tools I used. Any knowledge gained, came from needs, related to the project.
Notepad, VS2019, Audacity and Greenshot are great.
Blender capabilities - I did not even scratch the surface of its capabilities, but again - amazing tool!
Inkscape is a very good tool. It takes some time to get used to its quirks, but in general - does the job. Crashed a couple of times - nothing critical.
GIMP ... I had some experience with Photoshop CS3-5 (yes, 10 years ago), and I have to say I feel this tool is not even reaching "ancient PS" quality. No complains - I got it for free, it served its purpose. Regular crashes though.
Unity3d ... boy where do I start. My humble opinion is that Unity is a mess at this point (google it - I am not the only one). I counted ~50 versions in 2020 alone! Rendering pipelines, incompatible shaders, different ways to do the same thing in a span of just 5 releases, problems with shadows and materials, wrong documentation, bugs...things there change so fast, there is no chance this is stable and healthy environment for a long-term project. I think they are reaching out (unsuccessfully to this point) for the AAA-game-dev world and completely scraping the idea of beginner-friendly engine, which is rather sad. As I am writing this, their official website for DOTS (the fancy new programming technique, nobody knows how to use) is throwing 502-Errors. I liked Unity3d, but I would definitely check what the Unreal engine offers.
Notepad, VS2019, Audacity and Greenshot are great.
Blender capabilities - I did not even scratch the surface of its capabilities, but again - amazing tool!
Inkscape is a very good tool. It takes some time to get used to its quirks, but in general - does the job. Crashed a couple of times - nothing critical.
GIMP ... I had some experience with Photoshop CS3-5 (yes, 10 years ago), and I have to say I feel this tool is not even reaching "ancient PS" quality. No complains - I got it for free, it served its purpose. Regular crashes though.
Unity3d ... boy where do I start. My humble opinion is that Unity is a mess at this point (google it - I am not the only one). I counted ~50 versions in 2020 alone! Rendering pipelines, incompatible shaders, different ways to do the same thing in a span of just 5 releases, problems with shadows and materials, wrong documentation, bugs...things there change so fast, there is no chance this is stable and healthy environment for a long-term project. I think they are reaching out (unsuccessfully to this point) for the AAA-game-dev world and completely scraping the idea of beginner-friendly engine, which is rather sad. As I am writing this, their official website for DOTS (the fancy new programming technique, nobody knows how to use) is throwing 502-Errors. I liked Unity3d, but I would definitely check what the Unreal engine offers.
How much of the initial plan survived intact?

The music is really good, who made it?

How many lines of code?
9217
Is the code optimized?
Absolutely not. My entire approach was to do something the simplest way possible. In some occasions I had to go back and remove redundant things or re-write existing code so it is even simpler and shorter. No fancy programming techniques are used ... mostly because I do not know them. Spaghetti-code - ooohh yes :)
What was the hardest part?
Creating UI was utterly exhausting. I wasted more than a month working on it. The default (and free) UI capabilities of Unity are absolute garbage. Everything was fun and games, until I had to force myself to sit down and work on it.
Complex shaders are still a "black magic" for me. Also there is literally not a single comprehensive tutorial on Unity's shader graph - I guess nobody bothers to create such, as it will be obsolete in 3 weeks.
I also had a lot of trouble finding some textures for the planets and deciding which way to go there. Took a lot of experiments. Once you start working with big objects, you realize there are a lot of limitations involved. Procedural planet generation is just not a spoon for my mouth and probably would have taken 2-3 more months to figure out.
A major disappointment was the lack of adequate free assets on the Unity's asset store. Most of the "free-ones" are either old and not working or with extremely poor quality. I expected a lot more in that direction.
Complex shaders are still a "black magic" for me. Also there is literally not a single comprehensive tutorial on Unity's shader graph - I guess nobody bothers to create such, as it will be obsolete in 3 weeks.
I also had a lot of trouble finding some textures for the planets and deciding which way to go there. Took a lot of experiments. Once you start working with big objects, you realize there are a lot of limitations involved. Procedural planet generation is just not a spoon for my mouth and probably would have taken 2-3 more months to figure out.
A major disappointment was the lack of adequate free assets on the Unity's asset store. Most of the "free-ones" are either old and not working or with extremely poor quality. I expected a lot more in that direction.
What worked really well?

The "AI" code is just 309 lines - maneuvering over waypoints, investigating unknown radar signatures, reacting to incoming fire, avoiding obstacles and some other stuff. Yes, rudimentary implementation ... but it works.
The overall process after importing a ship model until it is ready to be played went also pretty good.

Destruction is procedural - this saved me a lot of time, as the other option is to create additional, destroyable model for everything.
Scene ordering, transitions, and loading, though hard to comprehend initially, appear to work just fine.
Unexpected fun?
The sound.
I have never, ever touched sound editing in my life. This was a brand new experience, and fairly enjoyable after all. I hope I did not mess it up completely.
I have never, ever touched sound editing in my life. This was a brand new experience, and fairly enjoyable after all. I hope I did not mess it up completely.
Should you give a try in game-dev?

If I can - anyone can (I guess even way better than me). Friendly warning though - regardless of what tools you will be using - prepare for a tough learning curve. To complete a game (even on the amateur level I am doing it) takes a lot of time, patience, persistence and efforts.
Any special thanks?
- Brackeys - this guys is a Godsend! Probably 1/2 of what I learned about game development is thanks to this man alone and his youtube channel. Unfortunately he quit it in September 2020.
- Imphenzia - another great channel for Blender modeling. Simple and understandable, even for noobs like me.
- Adasha & Koko - for the moral support and valuable feedback.
- GamesKeys - for including the game as "Top Steam Games To Tryout In November 2021"