Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Can I make a Top Down 2D open world town sim?

Discussion in 'Getting Started' started by lazycoffeeguy, Jan 31, 2023.

  1. lazycoffeeguy

    lazycoffeeguy

    Joined:
    Jan 31, 2023
    Posts:
    3
    Greetings!

    This is my first time posting on Unity. I am a complete noob at game development, but have had a passion for making a certain type of game and am tired of telling myself when I have more time. So I just want to just go ahead and dive in. But before I get too deep I wanted to ask the community's opinion if what I want to do is possible (I'm sure it is...but it helps knowing from others.)

    Here is what I'm trying to do technically:
    • I want to make a top down, 2D Pixel Art game that is more of a life simulator than anything else.
    • I want there to be a town that the player can explore and talk with NPC's. But I want to make the NPC's respond differently based on various things you do in the game. For example, if you romance one character - you can't romance others. Or certain jobs won't hire you until you reach certain hidden or known stats (for example, you've taken a bath, you have ID, you haven't been arrested in the last 30 days.)
    • I also want to program each NPC to have a weekly routine. Where you could follow them around and see exactly what they are up to. Maybe even talk to them at different points during the day.
    • Finally, based on certain decisions you make in the town - I want most of the NPC to act a certain way around you from that point forward.
    I feel like doing something like this would require me to script out a lot of "if this" than "that" things? I'd have to write tons of dialogue. But I just wanted to verify something like this was even possible. If so, is anyone familiar with any tutorials they would point a newbie toward? I will be looking up some classes on youtube as well as paid classes because I am very serious about this. But I wanted to ask here as well. This is literally day 0 of me on this journey :D
     
  2. AngryProgrammer

    AngryProgrammer

    Joined:
    Jun 4, 2019
    Posts:
    435
    Everything sounds good and can be done.

    I advise you against looking for a tutorial on how to make the game you described. Many of these tutorials are just copy paste what you see, not teaching with understanding. Some parts can be but to modify the idea you must have at least basic what and where.

    Before you start making games first get comfortable with Unity editor, get basic knowledge about components and scripting.
    https://learn.unity.com/pathway/junior-programmer

    During learning you need to be patience and it can be difficult at first. It is worth developing the habit of self-reliance in solving the problem before looking for a solution on the web. Independent work includes skillful use of documentation, it will profit later.
    https://docs.unity3d.com/Manual/index.html
    https://docs.unity3d.com/ScriptReference/index.html
    https://learn.microsoft.com/en-us/dotnet/csharp/

    During making pathway from the link above, you should learn the basic approach to developing anything (not only games). Don't rush with graphics, music, sounds, building a big town, etc. First you must split you're game idea into smaller pieces, each piece should be own small prototype project where you can test and verify idea before you merge it to the main project. Why this is important? Reducing time waste, time managing principle.

    Over long time, you're a prototype project could look like a bunch of colored squares, circles, etc. But will be functional and you can again verify if idea going in the right direction and is entertaining. You can give it to family or friends for their opinion.

    Plan before you start and keep the plan to end. Don't add new ideas during this stage, write it down, add it later with new plan or you stuck in a never ending loop of one more thing... and you never finish anything to end or get bored, even rage quitting everything.

    I try to continue this post later from home and post you some basic topics that can be helpful later on.

    Edit: I had fixed some obvious typos and some syntax.
     
    Last edited: Feb 2, 2023
    LethalGenes and lazycoffeeguy like this.
  3. RichAllen2023

    RichAllen2023

    Joined:
    Jul 19, 2016
    Posts:
    1,026
    You can literally make anything, the only limits are your imagination, and obviously your programming skills.
     
  4. lazycoffeeguy

    lazycoffeeguy

    Joined:
    Jan 31, 2023
    Posts:
    3
    dude!!! Thank you so much for taking the time to verify what I want to do is possible and give me some very practical tips on getting started. I will make sure to go the prototype route so I can really understand the coding and not just copy and paste stuff.

    if you have any additional tips or guidance I would love to know. I’ve found a skill share class that I think might be helpful, as well as a few super long YouTube videos going over the basics of the engine. I will be going to the links you provided first though. any other recommendations would be appreciated otherwise thank you very much for taking the time to respond with so much detail!
     
  5. AngryProgrammer

    AngryProgrammer

    Joined:
    Jun 4, 2019
    Posts:
    435
    I'm glad I could help a bit. For now, I'm stuck in the work-home-sleep loop, so I'll try to write more on Friday. I will also try to correct my previous text, a lot of typos and other errors.
     
  6. AngryProgrammer

    AngryProgrammer

    Joined:
    Jun 4, 2019
    Posts:
    435
    Continuing my previous post, I'll try to add first step to consider.

    As I wrote earlier, it's worth getting used to using the official Unity manual. In it you will find e.g. what is 2D in Unity, what elements you will use and a quick introduction.
    https://docs.unity3d.com/Manual/Unity2D.html

    At this stage, don't think about pixel art yet, the maximum level of detail should be a single-color primitive object.
    https://docs.unity3d.com/Manual/2DPrimitiveObjects.html

    Congratulations, you've returned to the old days where in games one square was the player and the other was the opponent, rock or chair (you can add color to make bit different).
    https://docs.unity3d.com/Manual/Sprites.html

    Try to work a bit with these primitive shapes. Scale them, move them in the editor, rotate them, overlap them (see the topic of layers), change their colors or transparency.

    I don't want to overwhelm you with too much information, so I'll stop here. The next topic will cover a simple move script. If you're doing a junior-programmer pathway in 3D, you can try to figure it out in 2D by then.

    Tip: There is no Vector3.front only left, right, up, down.