Search Unity

[Released] Retro Remakes learning project

Discussion in 'Assets and Asset Store' started by Olipool, Feb 8, 2023.

  1. Olipool

    Olipool

    Joined:
    Feb 8, 2015
    Posts:
    322
    Hi all,

    I am very excited that my first asset got published in the Asset Store:
    https://assetstore.unity.com/packages/essentials/tutorial-projects/retro-remakes-242064

    It is a complete Unity project including source code and assets for three fully featured retro games.
    The goal of the project is to help advanced beginners to move on to slightly bigger games where a few systems are working together.



    From the store description:

    Do you want to make a game? Did you watch some tutorials and made some progress but somehow you wonder about the big picture? How everything can be pieced together? This complete project will give you an example of that.


    You will get three different types of games that are large enough to count as an example of something you might want to create but small enough that you can find your way around and add features or change the way the games can be played. The games are:


    • Roller Maze: guide a ball through a perilous maze to the exit
    • Lemurs: help a horde of lemurs to survive and find a new home by giving them orders
    • Oil Tycoon: manage an oil company - buy land, sell oil, and cheat on the other players


    By analyzing the games, the scenes, and the code you might find some inspiration on a range of topics:


    • How to go from one level to another?
    • How to fit infinite levels in one scene?
    • How to save and load a game?
    • How to make a game only in the UI?
    • How to control the flow of the game?


    Besides that, you also might find some advanced techniques and hard learnings I had to make while working on the project you can add to your tool belt. These include:


    • Working with collections using LINQ to extract useful data
    • Using interfaces and abstract classes to make your code more flexible
    • How to read and write textures while the game is running
    • Handy C# features

    Technical details
    • Multiple levels included (Roller Maze and Lemurs have 2 each)
    • Window/Screen framework (Oil Tycoon)
    • Designed artwork, not just placeholder art
    • Example sound effects and music included, open for extension
    • Packages and assembly definitions for each game
    • Over 400 well documented script files
    • The project will be updated with bug fixes and cleaner code and architecture

    More details can be found in the documentation: HERE


    The project is also explained in greater detail on this Youtube channel, with more videos being added over time: HERE


    Do you want to know more or have a question about the code or even found a bug?

    You will find me for support on Discord: https://discord.gg/grjdJvM

    Thanks for reading! :)

    Roller Maze:


    Lemurs:


    Oil Tycoon:
     
    Last edited: Feb 8, 2023
    CodeSmile likes this.
  2. CodeSmile

    CodeSmile

    Joined:
    Apr 10, 2014
    Posts:
    5,981
    I‘m going to get this simply because I‘m a big fan of all three originals! :)
     
    Olipool likes this.
  3. Olipool

    Olipool

    Joined:
    Feb 8, 2015
    Posts:
    322
    Ohh, thank you! :) Then our tastes align well :D

    Let me know what you think and what I possibly missed!
     
  4. CodeSmile

    CodeSmile

    Joined:
    Apr 10, 2014
    Posts:
    5,981
    Mach ich! :)

    I noticed on Twitter that you're also german! ;)
     
  5. CodeSmile

    CodeSmile

    Joined:
    Apr 10, 2014
    Posts:
    5,981
    I checked it out, I give it my two thumbs up! :)

    It was fun playing specifically since you really remade those classic games 1:1 including the graphics but also some of the odd UX choices of the time. I hope that doesn't put some devs off, like having to click on the monitor on/off switch to leave a menu in Oil Tycoon.

    The only minor thing I have is a little grief I have in general with Unity code examples, where you see something like someObject.transform.GetComponent<type>() repeated over multiple lines where you could get the component once and use that (DRY principle). But that's totally fine given the target audience, may even have been a deliberate choice.