Hello people. Let’s make this post useful for you by sharing some stuff I learned while making this game.
It is not to promote my game, I care more about sharing some real practical stuff (instead of “oh look how great is my first game, can you try it?”), it might help you.
OK with what experience I started making it?
I did these unity tutorials: roll-a-ball, spaceshooter, roguelike, tanks;
Then I bought a book and finished it: Unity Games by Tutorials: Make 4 Complete Unity Games from Scratch Using C#;
Additionally I’v read a book called: Clean Code (suggested by Jason Storey on one of Infallible Code videos);
Ofcourse I saw most of the Brackeys videos c’mon like everybody here.
After all these tutorials I understood more or less how games are built and was familiar with writing basic gamemanager with states, use events, actions, some interfaces, how to organise files, how to try to write understandable lines, some understanding of canvases, particles.
But I can say nothing is better then making your personal stuff, I learned way more stuff on my own game then following tutorials, my brain was actually super focused on how to solve specific problems and those experiences dig deep and way more deeper then any tutorial.
If I will make another game in my life first I will write it down somewhere some raw representation how it should look like and what the game logic, menus, options, win-lose conditions everything EVERYTHING should be, it will save my life. I messed up super badly by just sitting down and saying “ok now lets create gamemanager” (super dumb).
If you cannot write your game on paper you cannot make it on computer 100%.
Another mistake? Never participated in any game jam. I’m sure those things are cool. All about is experience.
What else? Make it simple first, write those 100 lines if else statements, nobody cares, then later you will realise “aaaaa so I can make here inteeerfaaaaace” and volia, but you will only learn by your messed up code, no other way. Just make it work.
Also try to use always square images divisable by 2, then unity compresses them properly, you save ton of space and try to use the same materials everywhere as possible, don’t make silly similar copies everywhere. Convert audio files to mp3, don’t use animations on UI, use tweening. Try to have less AudioSources in the game if it is as simple as this, let those sounds play from one source if possible.
I don’t know so far so good, I hope anybody read at least something here. Down below are some nice links to advanced systems if you like. And more below some life tips. Yes life tips.
I will say some facts that might be interesting:
All game is in only 1 scene. How? All UI and all other stuff is responding to GameManager states. I have here UIManager, PlayerManager, DataManager etc. all of them listening for states.
Another nice fact: The game I made based on already made long ago watercolor art pictures, the artist game me the original sources and I cropped them. The idea of the game is pure imagination from higher powers.
Game is using 0 animation. Everything is animated using or coroutines or LeanTween plugin. There is nice video explaining everything. Find it on youtube by writing: “You’re Animating Your UI Wrong in Unity” (Alse in description of the video it will point you to Unite 2017 original video)
Super saved my life here is advanced pooling system by Jason Weimann, I found his pooling system and integrated in my own game immediately, well it took me 3 days to understand the code, I actually wrote the code on the paper and was tracking line by line to understand EXACTLY what is going on. Here is the link to the system: Unity3D Object Pooling - Advanced - Unity3D.College
Another thing super saved my life again from Jason Weimann is his extensible state machine. If not that I don’t know how I would have handled my enemies, lost rockets and companions, even quest item uses state machine it is just fantastic approach. It is using advanced stuff but again it took me a couple of days to understand that state machine… Find it on youtube by writing: “Unity Bots with State Machines - Extensible State Machine / FSM”
Any life tips?
Yeah try to work on game in silence, not to be distracted by music or other stuff. Why? Catch yourself when you actually trying to solve any hard task you unintentionally turn off any sounds around you.
More tips?
Yeah make sure you do physical exercises sometimes, it improves your brain power and focus dramatically you don’t even imagine. (I’v read a book called Spark, explains everything there)
So my game is on open testing now on google play store, if you want to check it out please check it out, if you don’t also very good.
https://play.google.com/store/apps/details?id=com.mintygames.yourhomeplanet