Search Unity

What do you need to learn before using Unity?

Discussion in 'General Discussion' started by Shadeless, Aug 13, 2013.

  1. Shadeless

    Shadeless

    Joined:
    Jul 22, 2013
    Posts:
    136
    Hey guys, I'm new here. :)

    So I've been thinking about using Unity as a game engine. But a lot of people have said it's a bad idea to just start using a game engine before learning essential things about game programming and graphics programming. And they generally say that all you will end up is with a level editor and making a whole level, but not having an actual game.

    So I've been learning C# and XNA, I've already learned 2D game programming pretty well, and now I'm learning 3D graphics programming in XNA, and then I'll probably learn HLSL. Everything is pretty much automated in XNA when it comes to matrices and everything, but I'm very good at math, as it's my main direction, should I learn SharpDX too maybe?

    So basically my question is. What's everything I should know/learn before using Unity? When will I be able to use it to make full games?

    Thanks! :)
     
  2. KheltonHeadley

    KheltonHeadley

    Joined:
    Oct 19, 2010
    Posts:
    1,685
    When you can program, make 3D art and make a game.
     
  3. Deleted User

    Deleted User

    Guest

    It sounds like you're ready to use Unity. If you know how to program, especially in C#, and know 3D basics, you're ahead of most people. And the shader stuff is a bonus.
     
  4. dxcam1

    dxcam1

    Joined:
    Feb 6, 2012
    Posts:
    477
    Linear Algebra, trigonometry, quaternions, applied mathematics, algorithms and algorithm analysis, computation theory, precalc, data structures, color and composition theory, anatomy, creative writing and last but not least, experience. Have fun!
     
    Figoment, bakinto and OZAV like this.
  5. KheltonHeadley

    KheltonHeadley

    Joined:
    Oct 19, 2010
    Posts:
    1,685
    Nah :)
     
  6. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,822
    You're on the right track. With Unity you can focus purely on C#.
    Get Visual Studio and invest in some tools like Resharper and UnityVS to make your life much easier.

    Leave the art for the artists :)
     
  7. Shadeless

    Shadeless

    Joined:
    Jul 22, 2013
    Posts:
    136
    Thanks for the advice guys, I know a lot of the math, I just need to study some algorithms.
     
  8. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,619
    It sounds like you'll be fine. People around here who've started from less have finished games before, so you should be ready to rock. Just don't ever stop learning. ;)
     
  9. MurDocINC

    MurDocINC

    Joined:
    Apr 12, 2013
    Posts:
    265
    Programming is important but I think you can learn that within Unity. I say making 3D character assets is more important before starting Unity. Making a model, unwrapping it, rigging a skeleton, binding it to model and animating it. Player character/mechanics and enemies will be one of the first things you should tackle when making the game. Like you said you'll end with a level and not a game without player mechanics and enemies to fill it. Of course you can use simple shapes in the beginning to set it all up but to make it presentable you'll need animated models.
     
  10. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,619
    Heavens no.

    Why do so many people think this? Would you suggest learning 3D modelling within Unity? Or learning image editing within Unity? Or graphic design?

    Like any of those, programming is a skill in and of itself. It's a pretty complex one that takes quite some time to master. I guess the main difference is that you can't see people's code from looking at their game, and since many programming tools are free people take them less seriously than modelling/image editing/audio software that costs hundreds or thousands of dollars.

    If you're serious about learning to program then it should be learned separately to learning Unity, as its own skill. Furthermore, game programming is a specialisation, not a subset, so learn the basics of general programming first.

    Having said all of that, you don't need to be a programming expert to do entry level stuff in Unity.
     
  11. dxcam1

    dxcam1

    Joined:
    Feb 6, 2012
    Posts:
    477
    Agreed, I recommend learning programming elsewhere and picking up a general programming book rather than doing it within Unity. You'll just be teaching yourself the wrong mindset.
     
  12. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,822
    Huh? He's a programmer, why does he need to learn how to make 3D models? While I do agree it does help to to understand the workflow, it is certainly not 'more important' as a programmer to learn how to do that than to learn how to code effectively in Unity.
     
  13. Shadeless

    Shadeless

    Joined:
    Jul 22, 2013
    Posts:
    136
    Hey guys, thanks so much for all the input. :)
    I should have probably said a little bit more about what I know, so you guys better know where I stand.

    Firstly, I have done 3D and learned to use 3Ds Max, and I'm very good at it, I know how it all works. And yeah, the programmer doesn't necessarily need to know how to make models, but that's an extra for me I guess. :)

    Also, yeah I'm learning programming separated from Unity. :) I'm learning 3D programming in XNA right now with C#, and I'm doing great. :)

    And it's good to know that I don't need to be an expert programmer to use Unity, so I guess I'm on the perfect track.
    And no worries, I'm not in a hurry, it all takes time to learn, so I'm giving it a lot of time. :)

    Cheers! :)
     
  14. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,619
    If you're doing one of those make-stuff-happen-in-XNA courses then I'd also suggest learning some more fundamental computer science. Learning the XNA specific stuff is great, but learning just XNA specific stuff is kind of the same as learning just Unity specific stuff.

    It's important to learn foundational programming knowledge. Stuff like what's going on in memory as a result of the code you write. As you say, it takes time, and it does sound like you're off to a great start and have the right attitude, so I'm confident you'll do well. I just wouldn't want you to accidentally miss some fundamentals because tool-specific courses don't go into it.
     
  15. Shadeless

    Shadeless

    Joined:
    Jul 22, 2013
    Posts:
    136
    Oh yeah, I know exactly what you're talking about. And most tutorials don't offer that fundamental knowledge you need to have to know what the code actually does. Fortunately, I've watched over probably 60 hours of C# with XNA tutorials from 3D buzz, that explain everything that's happening in Memory, heap and stacks, and even how to initiate a game loop and update and draw methods, and window from forms, etc etc.

    I really feel that I was just lucky that I stumbled to the "good stuff", I think it should be more obvious for beginners that they need to learn that too. Thanks for pointing it out. :) And you're definitely right that XNA is very simplified, but I've searched hard for the right tutorials that explain everything that happens "behind the scene".

    Cheers! I really feel good about this.
     
  16. Kurso

    Kurso

    Joined:
    Jul 29, 2013
    Posts:
    7
    Hey Shadeless,

    I'm two weeks into Unity and can give you a newcomers perspective.

    First, I have had no training as a programmer unless you count my Pascal class from High School (20 years ago). I have played with Visual Basic a couple of times and do consider myself very technically capable. I'm 5k lines of code into a game and I'm having a great time. My biggest problem is code management and lack of techniques for managing what are more than likely common problems. But I have no major roadblocks I can't overcome.

    Jump right in. If you don't know how to do something Google it. You won't regret it for sure.
     
    Archeia likes this.
  17. Shadeless

    Shadeless

    Joined:
    Jul 22, 2013
    Posts:
    136
    Thanks Kurso, I really wanted a newcomers perspective. :) It's great to hear that.
     
  18. alexzzzz

    alexzzzz

    Joined:
    Nov 20, 2010
    Posts:
    1,447
    Creative writing sounds boring.
     
  19. tatelax

    tatelax

    Joined:
    Feb 4, 2010
    Posts:
    1,168
    I started using Unity with my only prior knowledge being HTML. I now have a job as a programmer! Prior knowledge can help, but it's not a requirement. There's more than enough things in the Asset Store to help you get started.
     
  20. Shadeless

    Shadeless

    Joined:
    Jul 22, 2013
    Posts:
    136
    Just for the sake of perspective. How long did it take you guys to be proficient in programming and Unity?
     
  21. landon912

    landon912

    Joined:
    Nov 8, 2011
    Posts:
    1,579
    I would say it took me about two years and thats with full-time school. But that's not to say that I'm done learning. You will always have to be learning new things to keep up.
     
  22. Gigiwoo

    Gigiwoo

    Joined:
    Mar 16, 2011
    Posts:
    2,981
    You know enough to get started. Which means, you might be ready to read this thread.

    PS - The deepest learning comes via failures. So, fail fast and often.

    Gigi.
     
    Last edited: Aug 15, 2013