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. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

Game Creation Philosophy

Discussion in 'Getting Started' started by Kybo10, May 25, 2015.

  1. Kybo10

    Kybo10

    Joined:
    May 25, 2015
    Posts:
    11
    Hey guys, I am new to Unity and I am liking everything so far! There is just one hurdle that keeps me going away and coming back to programing and trying to create games, that I hope you guys can help me with. I started out at 10-11 years old programming c++. I would get as far as to make word games with the simple code in DOS, then when I looked into making a 2d game from a book, I just got lost and gave up. Through the years (I am 19 now) I would like to start making games as a hobby, but it has just been off and on for me.

    A couple months ago, I was learning C#, would take some tutorials, then try to make a windows based word game and ask for help along the way if I got stuck. That did not work because I had SOOO many questions, and they could not be answered fast enough.

    Right now I knew a little C#, and tried to make a 2d game following a tutorial. Got to video 5 out of 21 and I feel like I am lost. I am following the code he is typing, and I may retain some of it, but I think I could watch all the tutorials in the world, then if I start to make a game have no idea where to start.

    For example, in the 2d platformer tutorial, we are looking at how to clone the sprites in the background and foreground, so we dont have to make extra long sprites. In my head that seems easy enough, but then he types code for about 30 minutes, and he is using logic that I never think of, and I don't think I would ever think of.

    "First we need to create variables, then make another function that sets the camera and transform variables, now under the start function we have to make a sprite renderer and get a component of that sprite renderer and set it to our sprite renderer variable. Next under the Update function we have to make the camHorizontalExtend variable and set it to the orithiographic camera size and multiply it by the screen width and divide by 2."

    It just seems like my brain does not work that way for me to put these things step by step with programming logic, even though I want it to. Is there any way I can train my brain to do this? If so, what is the best method of self-teaching unity/c#? I feel like I can teach myself, but I am not doing it correctly.

    TL;DR: I feel I cannot grasp the logic of programming, even though I want to. I want to know the best/efficient way to teach myself how!
     
  2. DuffyT

    DuffyT

    Joined:
    Dec 16, 2014
    Posts:
    37
    I think you're trying to do too much, too fast. I was just the same. I have a full-time job and started doing a IT-course last september and I felt just the same in the beginning. Just don't get ahead of yourself. You see everyone doing this and that, it looks cool and you wanna do that too. But it really pays off to spend a few weeks, months even getting to know the coding language. You'll feel so much better.

    And I don't mean starting with Unity tutorials, I mean start C# (or any language, but C# for Unity) from scratch. Learn the basic variable types, the loop-kinds, the very logic that the language uses. That abstract thinking you need for good programming usually comes along with it. And learning a new language in the future will be alot easier.
     
  3. SomeJDude

    SomeJDude

    Joined:
    Feb 13, 2015
    Posts:
    10
    Ditto what DuffyT said. I am fairly good at programming, but only because I have literally spent thousands of hours learning and practicing it.
     
  4. blizzy

    blizzy

    Joined:
    Apr 27, 2014
    Posts:
    775
    Instead of trying to juggle many things in your head at once, break the task at hand into smaller subtasks. Divide and conquer. Repeat until you can easily handle the smallest task, then do the rest of the tasks.

    Juggling many things in your head at the same time will get easier the more experienced you get, but it isn't something you should strive to be able to do when starting out.
     
  5. jhocking

    jhocking

    Joined:
    Nov 21, 2009
    Posts:
    813
    Start with the simplest thing that you can play (like just a square moving around the screen) and gradually build on top of it. Don't think in terms of a complete project but rather in terms of adding one thing at a time to a "seed" project. If a tutorial has you typing code for 30 minutes before anything happens, then it's doing it wrong. I mean, that much boilerplate is (unfortunately) common in most approaches to game development, but one of the biggest advantages of Unity is that you don't have to do that much setup.

    obligatory plug: My book Unity in Action sounds like it may be a good fit for you; it's for people who already know how to program but know little (or nothing!) about Unity. It's about to go to print and is already available as pdf downloads. I take exactly the approach described here, of starting with something simple and gradually building on top of it.
     
    Last edited: May 26, 2015
  6. Kybo10

    Kybo10

    Joined:
    May 25, 2015
    Posts:
    11
    Thanks guys I really appreciate all of the information! Just like everything in life I am very impatient, and I feel like I am pushing myself to be the best at something before I really have done it before. I guess I am probably going to set aside a little time each day to continue to learn C#, then once I am comfortable with that I will make baby steps to learn how Unity and C# can go together.

    Thanks again guys! I will try to take a slower approach! I appreciate all of your help.
    Kyle
     
  7. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    You do learn to hold more things in your head with more experiance. But holding everything in your head is not always the ideal way to code.

    One of the big advantages of OOP is coding by black magic. With modular code you can focus in on what you are building now, and let everything else do it stuff.
     
  8. rbosse

    rbosse

    Joined:
    May 21, 2015
    Posts:
    18
    I'm no pro at programming but I can tell you two things based on experience.

    1. Programming in general, unless you retain info well, Google is your friend.
    I have friends who are full time programmers for game companies as well as non game companies and they all have to Google it sometimes.

    2. From teaching people SQL, most learn as they type it out. It becomes second nature however the key is performance which is engrained over time aka noticing issues as they arise.

    Do tutorials non stop, make several crappy games, save your scripts, and you'll use them as reference.