Search Unity

Games [OpenTesting][Android] "Your Home Planet" + experience and tips to make your life easier

Discussion in 'Projects In Progress' started by TadasTalalas, Mar 22, 2021.

  1. TadasTalalas

    TadasTalalas

    Joined:
    Nov 7, 2016
    Posts:
    33
    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.

    collectionmenu.gif

    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.

    start1.gif

    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)

    start2.gif

    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: https://unity3d.college/2017/05/25/unity3d-object-pooling-advanced/

    companions.gif

    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"

    questcompleted.gif

    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
     
    Last edited: Mar 22, 2021
    DonPuno likes this.
  2. DonPuno

    DonPuno

    Joined:
    Dec 22, 2020
    Posts:
    57
    Hey TadasTalalas,

    many thanks for sharing your experiences. I just started seriously working with Unity around 4 mounths ago. Before I was programming engineering applications and problem solving tools in the field of mechanical engineering. But somehow I was always dreaming of programming my own game. Finding Unity, gave me finally a very handy tool, a very fantastic fondation, to build games on.

    Sure, you've learned so to say "on the job", while programming the game Your Home Planet, and I think it might be difficult to draw a clear line between tutorial learning and learning while working on projects. But all in all, how long did it take you to reach your current level?

    By the way, doing physical excercises help a lot! In my opinion, it's the best brain-food you can "consume" and the biggest favour you can do your whole body. I made the experience, doing physical excercises helps a lot to make a step back, when you're trapped within a hard problem. Suddenly, coming back to the same problem after sports, finding a solution is way easier. Sometimes, even while sports activitiy you already find the solution.
     
    TadasTalalas likes this.
  3. TadasTalalas

    TadasTalalas

    Joined:
    Nov 7, 2016
    Posts:
    33
    Hey @DonPuno

    You know it was not consistent first. But let me tell you bit at least roughly. So first I did those 4 unity official tutorials roll a ball, space shooter then was roguelike game and later 2 player on same keybord tanks game, i don't remember exactly but it took me roughly let's say a month or few weeks for those tutorials well because of day job you know. I was just working in a restaurnt as a food runner. :) OK so after those I though wow I want to learn more, but for the sake of learning, just I liked the sense of achievement of completing tutorial and finishing the given task :)) So I bought that book "Unity Games by Tutorials: Make 4 Complete Unity Games from Scratch Using C#" and then I was super super fast with that book even too much I think because it took me only 30 days to finish everything there. And after a book I'm thinking OK I did already 7 mini games that all of them kind of had decent gameplay and it was already 2-3 months of road so far. And actually I did nothing else, except a few Brackeys tutorials and that's it. Then I found these guys Jason Weimann (Unity 3D College), Jason Storey, Matt Schell (Thousand Ant), Infallible Code and was watching a lot of these guys podcasts and everybody is saying "make your own game, make yur own game.." Then yeah I said lets do it and it took me to make this game around one year. :D With ups and downs. SO roughly I have one year and a half home experience of actually working on something :)) Let me tell you that big mistake was that this game is too big for a first own game actually. Man it has level up system, all those difficult codes like pooling, state machine... I wish it was like something super simpler you know for my first game, but it is what it is. Now after all this i woul make something more simple, with less duplicate code and more generic stuff inside, less rubbish laying around :D But one more thing, all those learnig stuff before was super helpfull because for example I knew already how gamemangaer works, that you can make singletons and stuff. Ah yeah forgot to mention I did on unity learn those intermediate programming courses, they have stuff about gamemanagers, audio systems and stuff. So when I was making my game I was constantly on tutorials to check how to do exactly one thing that I need in my game you know. Tooons of tutorials like nice audio system that it blends music files together smoothly when you change song in the game, instantiates audio sources if needed and plays them on one object, a lot of stuff.

    Now in short it took me around 2 years to reach this level. But with 40 hour a week job on the side also ofcourse. And not even being consistent. But I learn so much stuff, now would approach a new game in a diffrenet less naive way. :DD Thanks man for asking really appreciate! Tell me if I can answer something more or I even answered your question you know. :) Peace
     
    DonPuno likes this.
  4. DonPuno

    DonPuno

    Joined:
    Dec 22, 2020
    Posts:
    57
    Hey @TadasTalalas

    Many thanks for the deep insight into your learning progress.
    Currently I'm on the same pathway that you went in the past two years. But you have far more milestones passed since you're already learning for two years :)

    Currently I learn a lot about specific issue solving. As you've mentioned already before, there are a tons of tutorials that show you how to solve problem A or B or C, maybe some alternative solutions and so on.

    Basically you can develop everything in life with two fundamental approaches. Bottom-Up or Top-Down.
    With all these tutorials in mind, you can easily fulfil the Bottom-Up approach, since it shows you the solution for all the specific little problems that you encounter while programming. It's like you get a lot of puzzle pieces, each of them have a correct shape for matching another, but they are not printed. So from where should you know how the whole picture will look like? :p If they are printed, it'll make the whole thing easier to fit the pieces efficiently together. I hope you get what I like to say :D

    The higher the game's complexity, the more you need the Top-Down approach and game architecure planing before.
    Until now, I couldn't find any decent source which explains a nice game architecture approach in Unity.

    Which sources did you use, for getting an overview about the game/application architecture?
     
    TadasTalalas likes this.
  5. TadasTalalas

    TadasTalalas

    Joined:
    Nov 7, 2016
    Posts:
    33
    DonPuno likes this.
  6. DonPuno

    DonPuno

    Joined:
    Dec 22, 2020
    Posts:
    57
    Thanks a lot! That's excatly what I was looking for! Many thanks :)
     
    TadasTalalas likes this.