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.

17 year old newbie asks some questions

Discussion in 'General Discussion' started by Shibilicious, Sep 16, 2014.

  1. Shibilicious

    Shibilicious

    Joined:
    Feb 18, 2014
    Posts:
    40
    Hey peoples!

    I'm 17 and it's always been a dream of mine to be able to program/develop game or whatever you call it. I've been researching about Languages, Game Engines, and whatnots, so now as a VEEEERY noob like, I'm still about to get started on learning about these kind of these, uhm...

    Is starting with the freebie of the Unity Application a good way to start off my knowledge? Cuz I have been reading about this website: http://unity3d.com/learn/tutorials/modules and I just skipped most of the topics for now and decided to give those projects out a try first.

    If not, What would be the best and first thing I should focus on to learn game programming?

    Bare with me if I'll ask too many questions in the future...I'm just very interested on game programming...

    Thank you guys in advanced!

    P.S: I'm a pretty quick learner!
     
  2. TheSniperFan

    TheSniperFan

    Joined:
    Jul 18, 2013
    Posts:
    712
    The best thing you can do, is to learn one specific aspect of game-development. There are many of them. There are programming, visual-design, audio-design, writing, 3d-modelling and many, many more.

    So you want to program games. Great, but you need to understand a few things first.
    • Programming does not mean learning a programming language
    • Programming does not mean learning Unity
    • Programming means learning how think in a special way, so you can solve problems in a specific manner (and more)
    People around here tend to recommend newbies the tutorials. I think it's a bad idea. Sure, Unity is simple, but I think it's way better for a newbie to learn the basics of programming first. Following tutorials without any proper understanding for the underlying processes, won't get you anywhere in the long run.

    If you aren't able to answer the questions "How?" and "Why?", you won't ever be able to apply this elsewhere (i.e. your own game).
     
  3. calmcarrots

    calmcarrots

    Joined:
    Mar 7, 2014
    Posts:
    654
    Wow +1 to you. That is the most real statement ever and I'm glad someone actually agrees with me. Do not start with unity.... not any engine.... not even games. Learn how to program first!!! Learn c# or something (strongly recommend c#).
     
    BrandyStarbrite likes this.
  4. Kondor0

    Kondor0

    Joined:
    Feb 20, 2010
    Posts:
    596
    Mmm, you may be right, I always recommend the tutorials to the newbies because they helped me a lot... but they actually helped me because I was already a experienced programmer.
     
  5. landon912

    landon912

    Joined:
    Nov 8, 2011
    Posts:
    1,579
    There is no reason someone couldn't learn to program within Unity using the right methods. That is:

    ~Making small proof of concept scripts.
    ~Finding real life applications of learned skills
    ~Finally, trying to put it all together into a very simple test prototype.

    What not to do:

    ~Try to make a MMORPGFPS.
     
  6. TheSniperFan

    TheSniperFan

    Joined:
    Jul 18, 2013
    Posts:
    712
    Of course you can learn programming with Unity...technically. Technically you can also bring down a brick wall with your bare hands.
    It's a horribly inefficient way. If you jump straight into Unity, with no skills, there is a much higher chance that you'll get stuck, frustrated and finally quit.
    He's 17. He has time. Lots of it. He should use it in an intelligent way.
    After all, writing code and writing actually good code, are two different things.

    How is he supposed to write proof of concept scripts, when he doesn't know control structures and data types, has no experience and doesn't know any programming language?

    There's just so much to learn...
     
  7. TylerPerry

    TylerPerry

    Joined:
    May 29, 2011
    Posts:
    5,577
    While learning everything is very time consuming, learning most aspects of game development is definitely worth while. You can only learn once but if I went back I'd still want to know:

    2D art.
    Programming.
    3D modeling.
    Design.
    Production.

    It's not like you need to be a master of the arts, but to truly be great you'd need to know at least the theory behind all of them. Really they are all pretty much the same thing taking different approaches that are more convenient to make content, like at the end of the day a 3D model is parsed into shaders and rasterisation, textures are just an array of bytes and coding supports a game.

    (Others that I haven't learnt but want to are: )
    Screen writing.
    Sound design.
     
  8. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    Don't you step on my dreams of making a Unity3D powered MMORPGFPS!

    But seriously, those 3 other points you mentioned are great. I've got chunks of projects all over my other projects. I think making successful ideas into modular pieces is also the foundation of the asset store, isn't it?
     
    Ryiah likes this.
  9. Shibilicious

    Shibilicious

    Joined:
    Feb 18, 2014
    Posts:
    40
    Wow thank you guys for such informative responses!

    Especially TheSniperFan.

    Although I'm still quite confused if I got the answer for my other question I asked which is; What would be the best and first thing I should learn?

    It would be cool if you guys could give me like 1 by 1 steps on which I should learn first then another, and another, etc...

    I wouldn't mind if it will take 1 or even 10 years because I am really willing to dedicate myself to this.
     
  10. randomperson42

    randomperson42

    Joined:
    Jun 29, 2013
    Posts:
    974
    Good, you'll need to be.

    Learn to program first. A quick google search will give you a number of results:
    http://www.codecademy.com/ (don't know a thing about this one)

    This site is great for learning a new programming language, though I think it's aimed at people who already understand programming concepts:
    http://www.learncs.org/

    The one thing I would say is to make use of the MANY tutorials and resources that can be found online. There is so much information for free - I always hate to buy a book for something like that.
     
  11. zDemonhunter99

    zDemonhunter99

    Joined:
    Apr 23, 2014
    Posts:
    478
    Just one word: Google.
     
    Ryiah and randomperson42 like this.
  12. calmcarrots

    calmcarrots

    Joined:
    Mar 7, 2014
    Posts:
    654
    Well, I recommend this site if you want to learn through video:
    https://buckysroom.org/videos.php?cat=16
    Through text:
    http://www.cplusplus.com/doc/tutorial/introduction/

    After that, you should program at least 10 meaningful programs through the console. Then continue to practice!!!

    Then, you can either go to DirectX programming (strongly recommended and suuuuuper fun) OR go jump into the basic Unity tutorials.

    PS - I understand that I gave you C++ tutorials when Unity doesn't even use C++ BUT if you are going into the game dev industry (i assume you are), a requirement on EVERY company is that you are proficient in C++. I personally think its the most fun to program in. Also, if you understand C++ (its not hard like everyone says trust me) then you basically understand every other language because they are all similar so getting used to C# should be a walk through the park.
     
    Stankiem, Sir-Tiddlesworth and Imre like this.
  13. Shibilicious

    Shibilicious

    Joined:
    Feb 18, 2014
    Posts:
    40
    Alright!

    Thank you guys so much for the help. I appreciate it a lot!

    Cheers~
     
  14. TheSniperFan

    TheSniperFan

    Joined:
    Jul 18, 2013
    Posts:
    712
    I'd love to give you a more accurate answer, but I don't have much time (bus is not going to wait for me).

    What you'll want to do, is to make sure that you'll do something that a) helps you accomplish your goal of becoming a game developer, and b) has a failsafe.
    The thing with game development is, that it's rather hard to get into and even harder to live off. Who knows how the industry will look by the time you're ready? You shouldn't put all your eggs into one basket. Stay away from studying "Game-Design" or similar specific things. They're not worth your time and money.

    I don't know where you live and what your school systems is like. How many years of school do you still have? One possibility is this:
    1. While still going to school, teach yourself programming
    2. After school (I don't know what comes next in the US - College?), keep learning programming
    3. Study computer-science and keep learning programming
    It's what I do (being in part 3 by now). That way you still have something, if your plans don't work out. When to start game-dev related things depends on your capabilities. I'd say the earliest point to start working on games, would be between 2 and 3. That's the time by which you can program already; By when you should have a solid base.

    When I get back from the university, I'll look for some online-courses/tutorials to get started - More specific stuff.
    Another important note: Don't neglect your maths. Really. I did, and now getting through the maths modules is like climbing an electric fence. Hard, painful and something I need to do with brute force.
     
  15. landon912

    landon912

    Joined:
    Nov 8, 2011
    Posts:
    1,579
    You're going to struggle in any enviroment when you're brand new. How are you going to program in anything without knowing what a data type is?

    You're not going to be able to make anything useful and that's the point. It doesn't matter where he learns to program in C#, it's all the same code, just different frameworks. There's no reason he can't learn to program using the many benefits of the UnityEngine namespace.

    Your analogy doesn't make sense. We could use a grovel to build our wall, or we could learn a bit more difficult to understand, semi-automatic machine that takes a lot of work off your back in the long run.

    Visual Studio programming and game development programming are very different niches. If he wants to make games, why waste time learning VS's awesome GUI framework.
     
    Last edited: Sep 17, 2014
    Ryiah likes this.
  16. Stankiem

    Stankiem

    Joined:
    Dec 4, 2013
    Posts:
    115
    So funny, I was going to post these exact same two resources! This This for sure! Learn to program, learn C# very well, maybe pick up 3ds max student free version and go through a tutorial series on that as well, learn how to animate a character, then go back and learn more C#!!!, then learn how to use Unity a bit, make a pong or tetris game, then learn c++ etc...

    You can do it, but it takes extreme dedication to be able to do things well.
     
  17. Gigiwoo

    Gigiwoo

    Joined:
    Mar 16, 2011
    Posts:
    2,981
    Have you ever played soccer? If so, then I expect like most, you spent a few minutes learning the game, before being thrown right into a game. You didn't spend years learning the perfect techniques for running, dribbling, and shooting before your first experience. The same is true with programming for games.

    Instead of spending years learning C#, go start with some Unity tutorials. Try a tutorial, make a change, and solve a problem! Then, try another, and another. Learn what you need, as you set about bringing ideas to life! Set little goals, and ACCOMPLISH THEM. Show your work to others and shrug it off when they laugh at you knowing you are building a habit of Try-Fail-Improve!

    UNDER NO CIRCUMSTANCES SHOULD YOU MAKE STATEMENTS LIKE:

    This is crap and I'm calling you on it. At 19 and 15, my children do not comprehend what it means to commit 10 years of your adult life to one task. So, don't go that route. Instead, take small bites! Take on trivial challenges, and complete them! Build a habit of try-fail-improve that is fed by the confidence gained from little successes. It works in soccer, in game development, and in life.

    Gigi
     
  18. randomperson42

    randomperson42

    Joined:
    Jun 29, 2013
    Posts:
    974
    With all due respect, who are you to say that he doesn't have the determination to do it?
     
  19. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    I know I was/ am. I am 22 now and I've been programming since middle school. I also don't think it takes more than a few days to get a good grasp on a language after you've dabbled heavily in C, Java and lua/python/javascript. Then you'll be familiar with verbose high level languages (java), interpreted scripting languages (javascript or other), aaaand whatever you would call C. Pointer madness? A language with no class? It's all seg's fault?

    When you learn a few languages in high school / college you'll find similarities and probably also how you learn best. I got lucky and I personally recommend, if it's your style, to just tear down and modify working examples until it's clear what every piece does.
     
    randomperson42 likes this.
  20. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,803

    Programming in an environment where you can see your code move pretty or not so pretty things about is a good place to test out your first scripts. Learning C# first will likely run him into all that near useless MSDN code snippetry. Learning C# in the Unity environment will progress him to his goal much quicker. I swear on oDesk jobs I have had to clean up so much crap that was C# cut and pasted from MSDN and they painted themselves into a code corner.
     
  21. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,803

    Ditto on ya.
     
    Gigiwoo likes this.
  22. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    I don't know who to agree with. On 1 hand, my experience is entirely programming first. I learned c++ then java then javascript then c then actionscript then python then lua (via minecraft!) and then recently c#. I'm sure I've skipped a few.

    If you start with unity and try unity-esque programming - multiple update functions, scripts on objects rather than objects made by scripts, sphere casting instead of doing a simple distance check, using Find to gather objects in a scene rather than making that scene with a script and storing the object references you'll need in an array, etc - then you might have trouble transitioning into other kinds of programming or even other game engines.

    However, if this person does start with C# and intends to program for unity, then I certainly agree unity documentation and code examples are miles ahead of MSDN. I'll recommend that anyone first...

    Make and study 'hello world' in at least 3 languages that are dissimilar. Make a text based adventure game in each language. That's all you need for a decent grasp of programming before jumping in to something like unity where you'll be learning to do a lot of things the unity way.
     
  23. Samuel411

    Samuel411

    Joined:
    Dec 20, 2012
    Posts:
    646
    I started off learning Java and making minecraft mods, later on I started learning html. While learning html I learned xml which I found similar and simple. Then I decided that I should make a game myself. I was one of those people who wanted to make a MMORPGFPS (If you look deep enough you can find the thread ;)).Eventually I got some common sense and took it down a notch. I made smaller simpler games for LD, android, and some just for fun. Recently I started learning some php. I would recommend starting with something basic in c++ or java. Codeacedemy is very great way to learn too. I have learned very much from that site.
     
    Gigiwoo likes this.
  24. Joe-Storm

    Joe-Storm

    Joined:
    Jul 2, 2012
    Posts:
    16
    I'm like Tomnnn. I see the points on both sides. As I'm a beginner/intermediate programmer.

    For me, at least learn the programming fundamentals and the basics of the C# language(Since you are on Unity) before you even go to Unity. Use Buckyroom C# page to learn some programming(He also has C++ and Javascript I believe) and just learn the basics from their.

    Now, I go from Monodevelop/Xamarin to Visual Studios most of the time. I would advise against learning to program in GUI form; Just pick the console window option.

    Learning C# in unity, you will have to learn the fundamentals, the language, Unity's API and Unity engine itself. Granted, you have to learn API off of any other game engine, but I rather know the language then learn the API then do it at the same time. It'll take a couple of days to learn the basics of C#.

    On the plus side, if by an off chance that you find out that you do NOT want to stay in game development/programming at least you know the language so you can use outside of Unity.
     
  25. TheSniperFan

    TheSniperFan

    Joined:
    Jul 18, 2013
    Posts:
    712
    He shouldn't learn C#. He should learn programming. That's a huge difference. As long as he doesn't have the basics down, he should stay away from Unity or similar, complex tools.
    I repeat myself: He has time.
    It's always better to learn things correctly the first time. If you learn something wrong, it's often harder to relearn it.
    My lecturer said something interesting a few days ago:
    "In order to master a programming language, one needs to know five others."
    A programming language is a tool. Nothing more, nothing less.

    @PenguinsFly:
    Here is something to start: Programming Basics
    Yeah, it looks like it's made for small children, but at the end of the day, it covers the following topics:
    • "Functions"
    • Function parameters
    • Mathematical operators (and stuff like priority)
    • Variables
    • The idea of datatypes
    • Control structures (if/else)
    • Loops
    • Finite state machines
    And, for beginners, covers them rather good. In a way it's similar to what my university used for a week before the first semester began. People who have never programmed before, tend to appreciate a slightly slower entry. It's easy to understand and helps you get a grip of the basic ideas. After that, you can go into the details. Other people posted links here already.
    Write simple things like the classical "Hello-World", a calculator and a small game (I wrote battleships, including a (stupid) AI enemy and a user interface).

    What language to use? Well, you have options. Lots of them.
    The obvious choice would be C#, because you want to use Unity.
    Java would make for an interesting choice, since they're so similar. If you're fit in Java, you can basically program C#. There are differences, but they're comparatively small.
    I tend not to recommend C/C++ to newbies, because of pointers and (manual) memory management. Even for skilled programmers, they're a world of pain. That's not to say that you can't start with them. It's just a personal opinion of mine.

    C#, Java or C++. (C is not "object oriented", which you'll want to learn because of Unity).
    The choice is yours...

    A small tip from me:
    I highly recommend you not to use an "IDE". At least not in the beginning. Auto-Completion and error-highlighting aren't good for learning. A simple text-editor with auto-formatting and syntax-highlighting would be better. On Windows you could use Notepad++.
     
    Last edited: Sep 19, 2014
  26. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,235
    Basic programming concepts can be learned from within Unity as easily as any other language. Does it really matter what the user interface looks like or the way results are returned so long as he learns?

    He could learn variables and loops by seeing the results in a console window. Or he could see basic shapes moving around each other.

    He could learn control structures by having controls that he looks at every frame and only providing results, such as translating or rotating a shape, if that key is pressed.

    Learning programming should be an enjoyable experience. Not a chore.
     
    Last edited: Sep 19, 2014
    BeefSupreme and landon912 like this.
  27. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Just do all the learn tutorials best you can til it clicks.
     
    Ryiah likes this.
  28. welby

    welby

    Joined:
    Mar 22, 2011
    Posts:
    549
    It's hard for me to say, since I did learn some 'basic' back in the day first. Cut to 20 years later and I wanted to jump into C#.

    I downloaded Microsoft Visual for free and looked for tutorials.

    I'd say ignore Everything involving graphics or sound and fx as a start( I know it's flashy and fun,..but don't). maybe even use the debugger window in Unity just to test/learn results.

    Learn how to make a simple calculator,..or form.
    Look up all the scripting terms,..like string and int . for next loops.

    It wasn't until I got a hold of that stuff that I went and moved into Unity and working with the objects.

    and then I abused the heck out of this
    http://docs.unity3d.com/ScriptReference/

    But aside from having that slight background in 'Basic',..I learned everything I know now by being patient and googling the heck out of the things I didn't know.

    cheers!
     
  29. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,235
    Programming tools were also quite different back then. I know when I began learning programming in 7th grade (roughly 1995) most IDEs were little more than fancy text editors with some syntax highlighting and limited context-sensitive help systems.

    I think a lot of programmers who recommend text editors and command line compilers are doing so because that's how they learned. I don't think it is truly necessary to be bare bones to pick up the basics of programming.
     
    welby likes this.
  30. Taschenschieber

    Taschenschieber

    Joined:
    Jun 8, 2014
    Posts:
    238
    Or maybe it is because most IDEs are a huge pain to use.

    (I come from Java and haven't found a single IDE for any other programming language that is as feature complete as Netbeans is, and I've really tried a lot of them. Visual Studio is... okay, I guess, but lacks the refactoring options Netbeans has. I really dig C# as a language, but for non-Unity stuff I'd probably still use Java just because it has the better tools. But hey, getting a bit off-topic here.)

    My experience, however, is that for the first steps, not using an IDE might be a good choice simply because some IDEs hide lots and lots of code behind their interface. Looking at you, Delphi 5! It's not as bad with any of the Java IDEs or Visual Studio, but still - getting to know the language without any of that fancy stuff might be helpful to avoid some potholes on the ride.

    When I switched to Java, I first used Notepad (not Notepad++, just plain Notepad), and switched to Eclipse after a couple of months. And that really helped me understand what was going on. Those were the days, back in 2008, when dinosaurs still roamed the earth. :p
     
  31. ajgr

    ajgr

    Joined:
    Nov 24, 2012
    Posts:
    29
    Have one objective. Make a game by Christmas. Doesn't matter how. That's how you learn!

    Don't get sidetracked. Programming in the end is 5% - 10%. You will learn what you need when you need it. If you want to study it first, you'll spend years and have no game. And another thing - if you can, find a fried to help you. That's all.

    Now stop hanging out in the forums and get cooking :)