Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Struggling to learn

Discussion in 'Getting Started' started by Nalonso, Sep 21, 2017.

  1. Nalonso

    Nalonso

    Joined:
    Sep 21, 2017
    Posts:
    4
    I'm quite new here, as I've never developed a single thing in my life. I've never done any coding ever before, however I thought I would try to learn the basics of Unity as a hobby. I'm motivated to learn how to make creative/fun games, however, I became frustrated when I realized that I may be in over my head. I watched Brackey's "how to make a game" videos on youtube where he demonstrated how to make the cube runner game, I completed that project. Then I decided that I would watch and complete the Unity official tutorials that come with the actual software. The "roll-a-ball" game was simple enough, and I completed that. Now, I'm currently on the "Space Shooter" tutorial. I'm about 12 videos into the tutorial, and I've come to realize that the tutorials are really pushing me to use the "Unity scripting API" to learn. I think this may be one of my main issues with learning, I can't understand anything in that directory. I know it's supposed to be as simple as possible for everyone to learn, but it seems like the descriptions of even the simplest of things are written in a completely different language. For example, in one of the recent videos I watched, we had to make an asteroid prefab rotate randomly to emulate how an asteroid would behave in space. We are told to use:

    rb.angularVelocity = Random.onUnitSphere;

    When I check the API for what the hell "onUnitSphere" does, it says:

    Returns a random point on the surface of a sphere with radius 1 (Read Only).

    I don't know what that means, and if it were not for the tutorial telling me to choose it, I would never have thought it does what it actually does. I feel like I won't be able to learn this program because I simply cannot comprehend what even the simplest of things do. Currently, I'm able to memorize what certain commands do and then emulate them in a script. I do not believe that is the same as "knowing how to script." Has anyone else felt like this before? And if so, do you have any advice for a newbie? Thanks
     
    amandathorp likes this.
  2. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Sounds like you need a basic foundation in maths and logic first. There should be plenty of primers on YouTube.

    Once you have that, try and get a solid foundation in C#. The scripting section in learn isn't bad. But you could also check out the yellow book or google C# courses.

    Once you can do maths, logic and code, programming in Unity will be a breeze.
     
  3. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    @Kiwasi's advice is good, but it's also possible to approach it the other way. As a yoot I first learned how to program; and then I found that math and logic were easy (because I had learned to program).

    So, one valid approach: simple persevere. Keep doing those tutorials, memorizing and using things even without understanding, if necessary. This will present the same concepts over and over, though dressed in different clothing, and eventually you will come to understand them.

    One trick you will learn is to break things down. Let's take the example you posted above.

    This sounds like Greek to you. But is it really? Let's take it bit by bit:
    • Returns something... What does that mean? You may know by now that this refers to a function that you call, and it gives you back a value. OK, so this is a function that gives us something. What does it give us?
    • Returns a random point. Hang on, what does it mean by "point"? Let's look at the function prototype just above.
      • public static Vector3... public... you could look that up, or skip it for now.
      • static... same deal, not really what we're looking for...
      • Vector3. Aha! So by "returns a point" they really mean "returns a Vector3" (which you probably know already is just a set of x, y, and z values).
    • Returns a random point. So the Vector3 that this returns is, in fact, a random one. You probably know what that means — it's different every time, like drawing cards from a deck or rolling dice.
    • ...on the surface of a sphere... OK, this part might be genuinely confusing. But what do we know about spheres? Well, they're round. They have a surface, and they have an inside. The Earth is one. So you can imagine a sphere as a cloud of points. This says, on the surface of a sphere, so I guess we're talking about points on the just the outside, not the interior of a sphere. Can you picture that?
    • sphere with radius 1. Well this is pretty clear: spheres can be any size, but this one has a radius of 1 (look up "radius" if you don't already know the term).
    So, now you're picturing a cloud of points, forming a sphere with radius 1, and this function picks one of these at random and returns its x,y,z values to you. Handy if you need a vector of length 1 that points in a random direction. Or in the example you were studying, if you're using those x, y, and z values as angular velocity (spin), and you simply want to assign a random spin to your object.
     
  4. TeddyGad

    TeddyGad

    Joined:
    Sep 12, 2017
    Posts:
    74
    I'm also learning Unity and have found the tutorials from Pluralsight to be helpful- they offer quite a few on scripting
     
  5. Bill_Martini

    Bill_Martini

    Joined:
    Apr 19, 2016
    Posts:
    445
    The jargon and concepts used in Unity can be overwhelming to a beginner. And looking up thing in the docs can just supply more jargon and concepts. Frustrating, I know.

    The fact is, we all have been there and if you stick with it, it will become easier and things will be a lot more clear. Keep with the tutorials until you have some bit of comfort with Unity and scripting, then try something on you own. Nothing big, in fact something quite small. Work out the issues as they come, break things down into smaller steps.

    All developers have one thing in common, perseverance!
     
    JoeStrout likes this.
  6. Nalonso

    Nalonso

    Joined:
    Sep 21, 2017
    Posts:
    4
    Hm alright. So do you guys think the Unity tutorials are a bit too advanced for me then? Should I start somewhere else and eventually move onto the Unity ones? Or should I stick with it and basically copy/memorize the code that the tutorials have me writing? I don't mind dropping them and starting somewhere else if you more experienced people think it will be more beneficial to me in the long run. Thanks again for your answers.
     
  7. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    I dunno... the Unity beginner tutorials are pretty good, I think. But there's no harm in following up on @TeddyGad's suggestion, too.
     
  8. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,956
    No. If anything I would argue the problem with them is they never truly advance beyond a beginner or intermediate level.
     
    Kiwasi likes this.
  9. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Each person approaches learning differently. You just need to find an approach that works for you.

    I personally found the complete projects a waste of time. The scripting section was okay. But I did most of my learning by reading the manual. I googled every word I didn't understand until I did understand it. Its a brute force approach to learning that works well for me.

    You need to find the approach that works for you. How do you normally learn new things?
     
  10. Nalonso

    Nalonso

    Joined:
    Sep 21, 2017
    Posts:
    4
    I would like to reach a beginner or intermediate level.. But I cannot understand the scripting documentation to learn new things which is my main issue I think. :(
    Hmm.. To be honest this is the first time I've seriously tried to learn anything such as a program. So I'm not sure what approach to take. I'm a bit clueless
     
  11. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Then its time to find out. Learning about yourself is just as exciting as learning programming.
     
    JoeStrout likes this.
  12. Nalonso

    Nalonso

    Joined:
    Sep 21, 2017
    Posts:
    4
    Lol I'm trying my best :oops:

    I guess the method I instinctively went to when trying to learn this stuff was just sitting down and doing following along with tutorials. Every day I try to see if i can remember the things I've done in the tutorial by doing the entire project from scratch without having to reference the tutorial. I'm able to remember everything I've done so far, however I feel like I'm only memorizing how to do specific things.

    An example to compare it to would be something like, if I was trying to learn math and I forced myself to memorize that 5*5=25. Yes I know the answer to the question, but I don't know why the answer is 25, if you know what I mean. I want to get to a point where I can visualize something in my head and then eventually create it in Unity, no matter what it is. I hope I'm explaining this correctly
     
  13. Akshara

    Akshara

    Joined:
    Apr 9, 2014
    Posts:
    100
    Consider giving Ben Tristem's Learn to Code by Making Games course a shot. Beyond learning C# and Unity, taking the course could help with staying motivated through the learning process. The course also offers a support community at Gamedev.tv, where you may find likeminded students and alumni willing to help.

    Of course this kind of thing isn't for everyone, yet sometimes having a good coach can make all the difference when approaching something that appears insurmountable or feels overwhelming.
     
    Last edited: Sep 22, 2017
    JoeStrout likes this.
  14. UnityFan18

    UnityFan18

    Joined:
    Jul 4, 2016
    Posts:
    62
    Hello,

    I know exactly the same feeling that you are describing. I started to learn Unity last summer as a hobby. I have never done any programming myself. I went through the official Unity tutorials and those were helpful, but I was more memorizing what they were presenting. Thus, when I started to make my own project, I started to look at the API, and I was completely lost and overwhelmed as none of the API made any sense to me. It was like a foreign language. I still struggle to learn as the API is really important. However, I don't understand the language used in. What I have been doing is making a project from scratch. I then break down tasks step by step. I keep the tasks simple, and try to take my time in figuring out the logic part of it. I struggle more with the logic and math aspect of coding more than anything else.
     
    JoeStrout likes this.