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

Where to begin?

Discussion in 'General Discussion' started by LargerEagle, Apr 26, 2015.

  1. LargerEagle

    LargerEagle

    Joined:
    Aug 15, 2012
    Posts:
    59
    I've had Unity for 3 years been on and off since I was a 8th Grader in school. Now as i'm getting older and have to make big boy decisions. I've come for some advice to the very supportive Unity forum. I want to pursue Software Development as I love programming and problem solving and have a passion for games. Going into my 11th Grade year soon I have begin studying JavaScript and the API for UnityScript. Now here are my questions.

    Questions:
    • What other careers should I consider and research?
    • Some more resources for beginning programmers. Ex: Books, websites, blogs?
    • Anyone willing to give advice through Skype as I progress in my programming adventures?
    • How did you start out, and what advice to you have for young/beginning programmers/game developers?
    I have been scavenging through free resources on google for a while now but hopefully this can help clear any questions up for me and anyone else starting out.
     
  2. darkhog

    darkhog

    Joined:
    Dec 4, 2012
    Posts:
    2,218
    Don't bother with either JavaScript or UnityScript. With first one you can bother only if you're considering career in webdev. It's the terrible language. As of UnityScript, it's even worse. Better use and learn C# as it will give you advantage of knowing C# which is useful in non-game related dev jobs as well.
     
    Kiwasi likes this.
  3. delinx32

    delinx32

    Joined:
    Apr 20, 2012
    Posts:
    417
    Yeah, C# is where its at. The only advice I have is to code read code read code. If you enjoy it, you'll learn and make a living out of it, if you find it tedious and boring then you probably should consider a different career. While I really enjoy unity and coding game stuff, I also get great enjoyment out of my day job writing back end engines for an insurance company. I could talk for an hour about the nuances of rating engines or sql optimizations. As I usually tell people, "This is why I'm no fun at parties."

    Good luck in your endeavors. Do it because you love it, not because you think you'll make money.
     
    LargerEagle, GarBenjamin and Teila like this.
  4. Socrates

    Socrates

    Joined:
    Mar 29, 2011
    Posts:
    787
    If you want to learn more about the business, I would suggest spending time at Gamasutra. A wide variety of articles are carried there, from industry information, to postmortems by game creators, to tips and tricks, to articles on how people got into the industry. With some searching, you should be able to find a number of articles containing suggestions on how to prepare yourself for the industry.

    I also recommend the Extra Credits videos on video games and game design.

    As for advice for a starting programmer: Remember to do some searching first because odds are that somebody else has had your exact same problem before. It is why you see frustration from some old-timers: They know that this same question was asked six times in the past year and all six answers would pop up on a Google search.

    For Unity and game development, I'll give the same advice I always do:

    If you are new to Unity and game development, my honest answer is to first work through most or all of the tutorials and topics in the Unity Learn section, with some picking and choosing among the Live Training Archive. This will go a long way to helping you learn Unity and the things you need to know there. The Survival Shooter and the 2D Roguelike both have concepts that apply to a typical RPG game.

    Don't just watch the videos and hope the information will stick. You need to open Unity and try out the things you are learning. Look for ways what you are learning can be used beyond the scope of the basic tutorials.

    While you are learning, create some prototype games. There are plenty of free assets on the Unity Asset Store, including a number from Unity itself. Start with something simple, like making a character run around a level made out of Unity primitives (cubes, planes, spheres, et cetera). You'll quickly start realizing all the things you don't know and where to focus your learning.

    Then do something a little more complicated. Make a simple game where the character runs around and beats on things with a sword or maybe throws magic spells. Now you're learning audio, GUI, particle systems, scoring, enemy spawning, navigation meshes... and a whole lot more a new Unity user doesn't even know they don't know.

    Then when you can complete a basic game prototype, you can start looking at making a prototype for something a little more complicated.

    It may seem like you're wasting a ton of time before you "get started" with this method, but what you are really doing is saving yourself frustration and wasted time later by learning now. In fact, I'd bet your total time from now to a complete RPG will be less by stopping to learn smaller lessons first.


    Also remember that the Unity Learn section has basic tutorials on C#. If you are new to C#, I recommend reading Rob Mile's "The C# Programming Yellow Book", which was created as the basis for a first year programming course and is available for free to download. It is not Unity specific, but the book has good examples and will get you started in understanding general C# programming.
     
    LargerEagle and elmar1028 like this.
  5. LargerEagle

    LargerEagle

    Joined:
    Aug 15, 2012
    Posts:
    59
    Thank you all for the suggestions, and so you think I should ditch JavaScript/unityscript and go for C#?
     
  6. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,141
    UnityScript is basically JavaScript modified to function as a .NET language. Resources intended for teaching the basics of JavaScript may not necessarily work, but C# is another matter as it did not require any modifications to work with Unity and thus resources for learning the basics (specifically .NET 3.5 and older) should be fine.

    If you're curious about the differences between UnityScript and JavaScript, the wiki has an article covering it.

    http://wiki.unity3d.com/index.php?title=UnityScript_versus_JavaScript
     
    Last edited: Apr 27, 2015
  7. Socrates

    Socrates

    Joined:
    Mar 29, 2011
    Posts:
    787
    First you need to be aware that language arguments can reach the level of a religious debate on programming forums, so always take what anyone says about Java vs. C# with a grain of salt, including what I say.

    With a bit of searching on this forum, you can find multiple threads arguing about which language is better. You've already skipped Boo, which is good because it's not a language used by very many and so would be very difficult to get support for.

    UnityScript is used to describe the JavaScript within Unity because it's not quite JavaScript. It is very similar, but there are enough differences that if you try and transfer that knowledge directly to using JavaScript elsewhere, you will have to make some adjustments.

    The C# used in Unity is still C#. It is not the most current version available, but the language has not made any radical changes, such as the differences in the jump from C to C++ or C++ to C#. Transferring programming knowledge to using C# elsewhere should require less adjustment than UnityScript to Java.

    Do you have previous experience programming in either Java, JavaScript, or one of the C-family? If so, you may want to choose the language of your first game or games based on that. Once you're more comfortable with Unity, you can shake things up by learning the other language as well if you want.


    Now for the more opinion based portion. I am a fan of C#. I like it better than Java, JavaScript, or UnityScript. I find it easier to program in. It also seems to be a language that has more employment uses, at least outside of web development. There are a lot of tutorials in C#. The Unity Learn programming videos are in C#. I have found more books on Unity and C# than with UnityScript.

    It seems like more of the Asset Store code items are C#. That last one is based on the fact that I won't buy a code asset in JavaScript/UnityScript because I do not want to deal with getting both code types working together. (Which can be done.)

    I am probably biased by the fact that I didn't do any Java programming until after learning three different versions of C, all pre-C# even existing.

    So, my recommendation is that if you don't have a previous programming history, start with C#.

    However, I also recommend that if you really do plan on programming as your career, try to learn a new programming language every year. Not just read a book about it, but actually do a project in it. Every new language you learn will help you get better at programming.


    Edit: Because I apparently can't tell the difference between Java and JavaScript when I write posts while drinking my morning caffeine.
     
    Last edited: Apr 27, 2015
    LargerEagle and Ryiah like this.
  8. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,141
    Not to mention when someone confuses Java with JavaScript. ;)
     
    Kiwasi likes this.
  9. Socrates

    Socrates

    Joined:
    Mar 29, 2011
    Posts:
    787
    I also want to recommend that once you are comfortable with a single language, you start reading about design patterns in programming. This will teach you things like what a Singleton is or how to use the Factory Method.

    One free book is "Game Programming Patterns".

    I am currently reading "Design Patterns: Elements of Reusable Object-Oriented Software", which I picked up because it was referenced in multiple places as being a seminal work on patterns.

    There are many other sources, both free and paid, of various design patterns. You will end up using design patterns ... well, the materials will likely explain it better than I can, but it boils down to part, "Why reinvent the wheel?", and part having a toolbox handy for creating programming solutions.
     
    LargerEagle and Ryiah like this.
  10. Socrates

    Socrates

    Joined:
    Mar 29, 2011
    Posts:
    787
    Last edited: Apr 27, 2015
    Ryiah likes this.
  11. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Time to invite @Tiles in the interests of a balanced language war?

    Back to the OP, I'd suggest investigating a computer science degree. While not strictly needed, it will help you build the skills required to work in the related software design fields.
     
  12. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,353
    The harsh reality is that it's not always possible to find a stable job in the game industry.

    I would suggest you to start learning Computer Science. This would allow you to know the core part of the programming: web and software development, hardware etc. After that it's up to you where you want to invest your time and money into.
     
    Kiwasi likes this.
  13. Gigiwoo

    Gigiwoo

    Joined:
    Mar 16, 2011
    Posts:
    2,981
    Kudos for coming here with such wonderfully open-ended questions. It belies a deeper understanding that the next steps in your life will require effort. As a 20 year professional developer and a long-time pro game developer, here are three suggestions:
    • Learn C# (Unity tutorials, youtube, google)
    • Take programming classes at school and/or in college.
    • Build, finish, and release games (MANY)
    Unity is free, and so are Inkscape (Vector art) and Paint.net (Pixel art). Which means the only barrier is investing the time to learn. And now is a perfect time to begin practicing your craft. Instead of playing games for hours every day, put that time into building TRIVIAL, TINY, ITSY-BITSY games. Share them. Improve. Begin again. Repeat until you hate it or you love it.

    PS - How to know if programming is for you? It has nothing to do with how good you are or how much you struggle. Even the best programmers started out ignorant, get stuck on hard problems, and have days where nothing works. It has to do with writing code and losing track of the time, as you dig deeper into the problem. You compile, test, code, compile, test, and look up to realize hours have flown by. In which case, programming might be for you.

    Gigi
     
    Socrates, Ryiah and Kiwasi like this.
  14. evan140

    evan140

    Joined:
    Jul 15, 2014
    Posts:
    72
    As a professional in another field, I would like to remind you to have fun. It's VERY easy to just get caught up in what you're expected to do. Be creative, try things, break things, push yourself.
     
    Kiwasi likes this.
  15. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    I hate javascript for all of the reasons that I love javascript. I exclusively hate it for the context of unity programming, but it's a fun language to mess around with.

    Does that object have this field? It does now!
     
  16. darkhog

    darkhog

    Joined:
    Dec 4, 2012
    Posts:
    2,218
    Paint.NET is terrible for pixelart. If you want proper pixelart program, get GraphicsGale. True, it looks dated (like Win98 program), but it works on modern systems and has everything pixelartist could dream of. Including onion skining which makes animation really easy to do.

    Exactly another point why JS is THE terrible language. Not only == vs. === but also misspelled field name will lead to hard to debug issues.

     
    kburkhart84 and Tomnnn like this.
  17. RichardKain

    RichardKain

    Joined:
    Oct 1, 2012
    Posts:
    1,261
    I would consider education and careers in the tech sector. This is a pretty broad category, so it covers a fairly wide swath of career options. If you have even a passing interest in logic and/or problem solving, take a few courses in programming. Some people mistakenly start off thinking that programming is all about math. But logic/problem solving is the true core of programming. If you're a decent problem-solver, than you can be a good-great programmer.

    Being in just about any technology-focused industry is a shortcut to opportunity and financial stability. There's always a demand for capable tech professionals, and most jobs in those industries pay better. A ten-year programming veteran can expect to be knocking down 70,000+ annual, depending on location. Even entry-level coders can usually come in at the 45,000+ range.

    I started my career off in graphic design. It's what I got my college degree in. I don't regret my education, but looking back I do wish that I had taken some programming courses. I was intimidated by code at the time and wasn't confident that I could handle it. I got my degree in an artistic field instead. I'm a decent artist, so it wasn't a bad fit.

    Once I got out of school finding work was difficult. Art professionals these days have a pretty hard time of it. The demand was much less, and the work was never very stable. One of my first solid jobs was creating Flash animations non-stop. They weren't particularly fun animations though, so it was a bit of a grind. But it began my slow shift from artistic discipline to a more tech-focused career.

    Now I'm a web developer, and do coding pretty much all day long. It's become much easier for me to find work, and I make almost 20,000 more per-year than I did as an artist. And of course, the technology-focused skills that I've learned have made it possible for me to go a lot further in my game-development efforts.
     
  18. 3agle

    3agle

    Joined:
    Jul 9, 2012
    Posts:
    508
    I personally didn't know a single bit of programming before I went to university, though I was fairly capable at maths.
    I did a course in Computer Science with some module choices leant towards Game Development, and got a job straight out of uni creating e-learning programs in Unity, which is where I very happily am now. I've progressed in terms of my skills and in terms of job position much faster than most for my age, which I believe I owe to my access to education.

    I would definitely recommend a formal education for a programming oriented career, it sets you up with exactly the right knowledge to go from strength-to-strength once you get into the field.

    As for advice, if you do go along the formal education route, make sure you keep experimenting in your own time, don't just stick to what your course is telling you you need to learn. Put that knowledge into practice, make some games, websites, databases, anything! Practical use of your knowledge will make you better, and get you a better grade, plus if you make anything good, it's a great thing to show off at an interview, and can really get you noticed.

    Here in the UK, formal education is really the only option for a career in programming, as it's fairly competitive. I understand that this may not be the case elsewhere though, and that there's nothing you learn in Uni that you can't learn elsewhere (though in my experience, mileage may vary).
     
    Last edited: Apr 29, 2015
    Gigiwoo likes this.
  19. kburkhart84

    kburkhart84

    Joined:
    Apr 28, 2012
    Posts:
    910
    OMG, I just laughed, really bad, NaNNaNNaN LOL, good thing I'm alone right now or I'd have some explaining to do.
     
  20. LargerEagle

    LargerEagle

    Joined:
    Aug 15, 2012
    Posts:
    59
    I would like to come back and thank you all for the wonderful advice! I read each one thoroughly and they helped a ton. Hopefully this article will be found by others with the same questions. Since April I started really learning code and I decided to go with C#, since then I learned a lot, created a couple of games which I will share soon, If any of you would like to check out the extremely amateur games. ;) Also I have started taking Computer Science classes and visited a few Universities in my area and I have decided to go to Uni to get a computer science degree. I am very excited to see what the future brings. And again thank you all, hopefully I will be able to update you with more good news in the next year! Cheers.
     
    Kiwasi, Gigiwoo and 3agle like this.
  21. Gigiwoo

    Gigiwoo

    Joined:
    Mar 16, 2011
    Posts:
    2,981