Search Unity

What every newbie should be told about Unity on day 1, from a newbie

Discussion in 'General Discussion' started by RJ-MacReady, Jun 22, 2014.

  1. RJ-MacReady

    RJ-MacReady

    Joined:
    Jun 14, 2013
    Posts:
    1,718
    One month ago, I could barely figure out how collisions worked. I was copying and pasting objects instead of instantiating them in-game, because I didn't know how to use Instantiate. I had great confusion about how all of this works. When @Adam Buckner replied to my inane, rambling posts complaining about the lack of tutorials/learning materials by pointing me to a page full of tutorials and videos, I decided to spend several hours each night watching and following along. These nights ended anywhere from 12:30am - 3:30am. I completed the space shooter tutorial, started tinkering on my own and today decided I wanted to learn to do cars. Discovered that there are tons of complete projects in the Unity Asset store.

    What I have learned so far, that every n00b should be informed of IMHO.
    1. Unity is not simple.
      • Is it a level editor? Is it a game engine? Yes, no. Maybe so. Mostly it just ties together all of your resources and scripts together into one kick-ass interface. It sure beats staring at code! But you're still going to spend a lot of time staring at code. Even when you're not looking at your code, you are, because all of the components your objects use are just scripts behind-the-scenes.
    2. Unity is not easy to learn.
      • You don't have to know as much as you would to build your own game from nothing, not even half by a long ways. But you still have to know a lot. And that can be frustrating at times. I just want to click on buttons and have my perfect game made for me! No. Not even close. Because Unity does so much, almost all of what I've been spending my time doing is learning how to get Unity to do what I want... very little has been focused on making any kind of game so far.
      • Nobody is holding your hand. People are helpful and there's a lot out there, but if you have to do something by yourself without a tutorial or any help, you still have to walk the lonely road and think for yourself. Darn!
    3. Unity is not straightforward.
      • Want to edit a part of your prefab? Drag it into a random scene and then edit it, then apply your changes. "Why can't I just edit the prefab in the inspector?"... uhh, because... "I can edit individual components inside of the inspector, but I can't access child objects?" It is the way it is. That is all.
      • Terrains. Don't forget the +1 to your dimensions, 'cause that's an industry standard that every game developer knows already. 'Cause, ya know, you're an experienced game developer, like everyone else EVER.
      • Basically anything, period. Seriously. Good luck.
    4. Unity is REAL software...
      • No more kid stuff. I mean, you can do kid stuff in it, but you can do kid stuff in some pirated version of Flash (because all the 15-year-olds on Newgrounds.com purchased Flash).
      • Really, what's the point if you're not serious?
      • It is a lot to learn because it is a lot, it does a lot. It's worth a lot. And it's free!
    5. Unity is misunderstood and underutilized by pretty much everybody.
      • Exceptions being those who use it to release profitable games.
      • Everything you think you know about Unity's limitations, what is available in the free version, what your publishing rights are, how much it costs to use, you're probably wrong. It's not your fault, the internet is littered with old posts and misinformation about Unity. Even the friendly, colloquial banter on these forums is often a bit askew.
      • Most people's source for info is other people... the rabbit hole indeed runs deep.
      • You can most likely do what you're thinking in Unity and if you can't, the problem is probably not Unity.
    6. Unity is worth learning to make games in.
      • Precisely because it doesn't hold your hand, you are learning actual problem solving skills, real coding, abstract thought, deductive reasoning. You're learning structure and flow. You're not going to find that in 5 years that all the time you spent "playing around" in Unity was completely worthless. You could pick up any software language and have a pretty good idea of how to incorporate the standard libraries, I would imagine.
      • The amount of what you aren't learning to do (working with memory, tinkering with graphic output device settings, blah blah blah...) really amounts to very little compared to what you are learning by making your games in Unity.
    That's it. Thanks for listening, internet.
     
  2. KheltonHeadley

    KheltonHeadley

    Joined:
    Oct 19, 2010
    Posts:
    1,685
    Last I checked, Unity isn't real. It's all in the imagination.
     
    Deleted User likes this.
  3. RJ-MacReady

    RJ-MacReady

    Joined:
    Jun 14, 2013
    Posts:
    1,718
    I didn't say "real" I said REAL.
     
  4. Khyrid

    Khyrid

    Joined:
    Oct 8, 2010
    Posts:
    1,790
    I thought you could edit childen in the inspetor by clicking that arrow on the prefab.
     
  5. giyomu

    giyomu

    Joined:
    Oct 6, 2008
    Posts:
    1,094
    Yes, but if you start having more nested object inside each other you cannot reach them
     
  6. destructivArts

    destructivArts

    Joined:
    Jan 30, 2013
    Posts:
    29
    I really like point #6.
    Learning Unity itself, teaches both the skills necessary to use Unity, but also the skills necessary to do just about anything in life. Maybe Unity should be used in more grade-, middle-, and high school curriculums for just this purpose. Even if a class used a bunch of drag and drop scripts that were prewritten, students stand to gain a lot just by being exposed to the program.
     
  7. Velo222

    Velo222

    Joined:
    Apr 29, 2012
    Posts:
    1,437
    I agree. I've been learning a lot of problem solving skills I never had to try in middle-school or high-school. I think it's a great experience, and teaches you how to try to think to solve problems. I know that sounds cliché, but in middle-school and high school I was always eventually handed the answers, or the teacher had the solution. I hardly ever had to solve a real problem with real world application.

    With programming and game design, I actually have to "go out there" and solve the problem by myself in any way possible. Very good brain exercise :)

    Although I still don't do the fundamental underlying math equations to a lot of the things I'm using haha.
     
    RJ-MacReady likes this.
  8. destructivArts

    destructivArts

    Joined:
    Jan 30, 2013
    Posts:
    29
    Draw out frame by frame diagrams of what you want to happen. As a visual thinker, this kind of thing really helps me debug my code when its something that happens every frame. Especially collision related stuff. It will also help illustrate what your equation is doing.
     
  9. Deleted User

    Deleted User

    Guest


    There still seems to be some confusion going on here, let me try and add some explanation below:



    It's a game engine, many people seem to debate what a game engine is but I've never found the definitive that difficult. DX / OpenGL is the core and engines are the tools that manipulate it, I wish every engine developer would realize that. If you're constantly adding toolsets to a fairly closed engine then you might as well have done the rest from scratch. There are renderer templates out there, you can put a basic system together in less than a month.



    Ohhh it is, try making a game with the OpenGL API then you'll know the true meaning of pain. Then again that's the price you pay for flexibility, the more open and flexible the engine is the harder it becomes to use. CE for a example makes beautiful looking environments simple, but that's because all the core lighting / shadowing / performance / AI and shader properties are all done for you. Don't want to do it there way? Then you'll have to spend additional time reverse engineering how they did it to be able to change something and not break something else.


    Unity becomes difficult when you start wanting to manipulate the core functions, like you would when using OpenGL directly. Making shaders in Shaderlab, trying to dynamically insert heavy lighting functionality in a closed environment means you'll get stuck in places and adding plugins can be more intensive then creating the API from scratch. We have to remember that not every game needs all the tools that Unity supplies, there are pros and cons to doing it from scratch.. You don't even need an API, you could just have a renderer with some toolbars you disable when you publish the game, kind of like what UE4 does.



    Compared to what exactly? As opposed to DIY, it's very straightforward as opposed to any other engine it's very straightforward. So let’s boil it down, we have mecanim whilst touchy is great for animation, we have a suite of easily modifiable pre and post, we have beast for baking, we have the slightly hit and miss occlusion culling system and we have a suite of shaders we can easily manipulate the basics like UV tiling. We have the beauty of having lightning fast shader compilation and code compilation, add up the minutes wasted compiling one thing or another in some engines and you can waste a good hour of your day.


    The API makes sense and it's clean, sub menus of submenus get confusing unless you spend ages learning it all.



    Well it's not fake :), it's aimed at game studios and it's for professionals. Beauty is it's so efficient that you can use it as a hobbyist..




    I wouldn't be so sure about that, but it is VERY VERY rare I've seen anybody here or anywhere else actually push Unity to breaking point. You need a specific type of game which usually features a lot of staff and a lot of money to be able to make these types of games, as Unity is aimed at Indie developers and generally budgets rarely stretch into the hundreds of thousands, never mind millions. Not to say that small teams can't push Unity to the point of utter failure because I've seen three or four man teams make MMO's that have. But still it's rare..



    Unity is, it's a great way of entering the games arena without becoming totally overwhelmed and I actually prefer it from a standpoint of experience due to just how damn rapidly you can prototype. But neither do I believe anyone who wants to make a career in 3D games especially should ever limit themselves to learning one engine only. I also believe everyone should at least try and build their own small 3D engine in the likes of LWJGL or OpenTk to expand their horizons, when you come back to Unity then you have a new perspective.


    All engines do something right and wrong, you have to find out by yourself what that is though.
     
    AndrewGrayGames and inafield like this.
  10. RJ-MacReady

    RJ-MacReady

    Joined:
    Jun 14, 2013
    Posts:
    1,718
    You could have just said, "It's a lot easier than doing it all yourself from scratch." Your opinions are obviously skewed by your experiences, you're a bit out of touch with the average joe.

    For those of us who haven't been pursuing this our whole lives, amateurs and hobbyists, tools like RPG Maker and GameMaker are more our speed. In my opinion, as a person with limited time to devote to these pursuits, it's always been about getting the most productivity for my time with the least amount of homework.

    When I first opened a book on "Making games for teens in OpenGL" or some such drivel, I skimmed through and saw how little was produced with so many function calls. Downloading updated libraries, obsolete calls. And when I looked into DirectX, having no education or training in computer graphics at all, I had no effing clue what I was reading. I might has well have been attempting minor surgery.

    Unity wasn't free up until the last 5 years. I don't remember it being announced on CBS or anything like that, so I just found out about it a couple years ago. I didn't even look into it until about a year ago because I remembered that engines like Unreal and Unity were going for high dollar amounts, assumed the free versions would be stripped down, useless versions.

    It wasn't until Microsoft officially gave up on XNA that I realized I had to do something, and fast, if I was ever going to be able to develop games that people would actually want to play. I was going to buckle down and do it the hard way, the tried-and-true way, learn C++ and start from the bottom up, follow every book and guide out there. Then, I stumbled on to Unity with my (at the time) team. To my surprise, it appeared to have good reviews across the board and the support base was (and is) f***ing ENORMOUS.

    After months of my team doing nothing, I broke free and now I'm running solo and this is now my experience with Unity I'm recounting, from my perspective, learning from zero.

    I can't imagine what core functions I will ever need to manipulate. My aim is to emulate graphics better than Nintendo 64 but not as good as XBOX 360/PS2. Hahahaha. People often don't think of that era as "retro" but I remember 70's games being retro in the 90's. Weird how weird people's thinking can be.
     
  11. Deleted User

    Deleted User

    Guest

    If I'd of said it's a lot easier than doing it from scratch, I wouldn't of helped anyone would I? Just because we may reply to one person. Doesn't always mean it's only for the benefit of said person as this is an open forum for everyones viewing.

    It's not the average Joe, it's people who take it seriously vs. others who like to mess about with it. Either is great IMO, games design is a great place to shut away the world and just have a bit of fun. But I'm not one of them people, I do this as a career and Unity is a professional tool that some livelihoods will depend on. Maybe not now but in the future..

    If you're starting out and think you would like to take this industry seriously, then NOW is the time to look at every engine you can get your hands on, try different art tools, try coding your own small engine etc. etc. get the basic feel for what's right and wrong. Get used to C++ and C# etc. etc.

    Then come back and re-evaluate all your findings, you'll still be a N00B just a very informed one.

    P.S "Core funtions" I bet you'll touch on shaders sooner or later.
    P.P.S I like Gamemaker, I'm sure many die hard devs snub there nose up at it.. But if I was making a little 2D JRPG game I'd be all over it and would probably leave Unity or any other engines out the picture :D.
     
    Last edited by a moderator: Jun 23, 2014
    AndrewGrayGames and RJ-MacReady like this.
  12. RockoDyne

    RockoDyne

    Joined:
    Apr 10, 2014
    Posts:
    2,234
    The irony of the people calling unity easy to use (of which I am also guilty) is that they are still experienced developers. I definitely see misconceptions that people think it's a toddler's first game engine, when it is still, very much a big boy toy.

    What makes people say unity is easy usually involves reasons like compile times and how fast they can prototype. But that isn't coming from people who need to learn what a capsule is.
     
  13. Leuthil

    Leuthil

    Joined:
    Jul 26, 2013
    Posts:
    97
    Easy is a relative term and that's why people can debate about Unity being easy or not forever. Even saying something is easy to learn is debatable to each individual.

    However, Unity is easier to learn in comparison to other engines or coding your own engine from scratch. But just because it is easier than other options does not make it easy for everyone.
     
  14. Deleted User

    Deleted User

    Guest

    Well that's one of the beauties of it, personally I think its easy(ish) to learn and hard to master. It's not a toy engine, it's a professional development suite. But if we don't compare it to other avenues how do we compare difficulty? I've plenty of experience in the engine development arena only to be left completely baffled by some of them.
     
  15. Polantaris

    Polantaris

    Joined:
    Jun 25, 2013
    Posts:
    18
    Hey! Some of us LIKE staring at code.
    I always felt that the only thing Unity really took out was the rendering and basic functionality. Don't get me wrong, that stuff is hard as hell to write, but there are far too many people that think that Unity will make their game for them; That they won't have to write anything, etc., and then are disappointed later when they're wrong. I wish the first page on the Getting Started documentation said this flat out.
    You can edit first children, just not children of children of the parent. It's certainly annoying, but it's not that bad unless your prefab is huge or something like that.

    There's certainly room for improvement for Unity.
    The best tools have to be learned.

    My only major issue in this department with Unity is that a lot of the documentation is outdated, and sometimes could be a lot better. Even with the newer documentation that they just changed to, a lot of functions have overloads that aren't mentioned at all, and some functions don't even appear on it at all. Other portions don't have code examples, and EXTREMELY vague explanations that don't tell you anything.

    I understand that updating the API Documentation at this point is a monumental task...but it's very hampering when you're new, or need to do something you've never done before. I found myself redoing things there's already a function for, and I find out after I'm done. While technically this is good for my overall experience, it's pretty aggravating.

    One particular annoyance is the Input Axis key code definitions. They expect certain values...and you don't know what they are (unless they're straight forward, but off the top of your head, what's the value expected for defining a Positive/Negative key on the numpad? Don't know? It's [#], which is completely random). Only one random page in the MANUAL says what they are, and that page feels like it's hidden in the middle of no where. Don't look up Input.KeyCode, it doesn't tell you.
    My least favorite part of this issue is the, "Because Unity is free, only S***ty games are made with it." I've seen more than a few Steam Games get bashed because they use Unity, as if it had any relevance to the game itself. It might look a certain way, but gameplay is engine independent, and it really annoys me when I see these kinds of posts.
    The thing is, you have to work to get these things. You have to have an idea and go after it. I've seen plenty of people complain that they want to use Unity, but they don't know what to do. Jump in!

    I started with Unity less than a year ago, and I jumped straight into the code. I had to learn how to use Unity from a code aspect before I learned how to use Unity's interface itself, because I'm writing a roguelike (which is completely procedurely generated). So I had to learn how to write the code that interfaces with the game, and in the end I believe it made my understanding of Unity come that much faster. Do I know everything? Not by a long shot, I don't think I ever will and I certainly will not say that I do, but I certainly know a lot about it because I jumped right in. It's always a learning experience and once you realize that there's always more to learn, and asking questions is a great way to learn, you'll be fine. The amount of times I've Google searched some random problem and gotten answers I didn't even know I had the questions to is almost mind boggling.
     
    RJ-MacReady likes this.
  16. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Got rid of a bunch of trolling. Less arguing since I'll just nuke posts that go too far, in general. I mean I'm really tolerant of people but when it starts being willy waving you can just have your precious text nuked.
     
  17. dbryson

    dbryson

    Joined:
    Nov 9, 2009
    Posts:
    269
    Well done. I think OP has a great post. Said as one who has been edited.
     
  18. RJ-MacReady

    RJ-MacReady

    Joined:
    Jun 14, 2013
    Posts:
    1,718
    I wasn't even aware that people been trolling.
     
  19. Gigiwoo

    Gigiwoo

    Joined:
    Mar 16, 2011
    Posts:
    2,981
    Nice post. And grats on your learning! I look forward to when you release something.

    Gigi
     
  20. RJ-MacReady

    RJ-MacReady

    Joined:
    Jun 14, 2013
    Posts:
    1,718
    I wouldn't release something any time soon. I am moving as fast as I can through the material without killing myself, but I can't see the light at the end of the tunnel yet so I can't even gauge the length of said tunnel.

    Currently I'm going through this book because I want to master the basics. I tend to over prepare. I have this philosophy which I appreciate which, in my own words, amounts to from strength, attack weakness. I have found if I study everything from every possible angle, over and over again, it brings a certain ease to the work that lends itself to better success rates for me. If I'm just trudging along, barely competent, the task is hard and it distracts me from the higher purpose and, not to mention, heightens the likelihood of just giving up.

    Also, I'm reminded of something brilliant I heard while watching the pre-release production footage in anticipation for Star Wars: The Phantom Menace when I was just a wee lad:

    Nick Gillard, stunt coordinator for the fantastic light saber battles of the Star Wars prequels, said in his approach to bringing the sword fights to life that he "wanted to convey the sense that the Jedi had studied every single style of swordplay available, his idea being that since they had chosen such a short-range weapon, they would have to be so good if they're up against ray guns and lasers."

    As a person from a relatively low class with no formal education using tools that lag a generation behind, I really like that.
     
  21. peterdeghaim

    peterdeghaim

    Joined:
    Apr 10, 2014
    Posts:
    154
    If only I knew this stuff before I started, good thing I ended up learning them anyway (though not as easily as reading a post). Great job OP!