Search Unity

  1. Unity 2019.2 is now released.
    Dismiss Notice

Tired of wasting time. What's the fastest effective way to learn C# and unity?

Discussion in 'Getting Started' started by vsan, Feb 15, 2015.

  1. vsan

    vsan

    Joined:
    Feb 15, 2015
    Posts:
    1
    I've been wanting to make my own game for 4 years now but I've been procrastinating and becoming preoccupied with other things and generally wasting time. I feel like I've wasted so much time. I first tried C# and XNA and learned basics of code (then forgot) then I tried RPGmaker, made a few events in it, realized too limiting for my needs. I then tried unity3d and was faced with learning to code and I got frustrated so I tried to find a way to visual program things, which I think just delayed me learning to make games for years. I tried stencyl, construct, unreal engine blueprints. I spent days watching tutorials on so many things about game making, even when not understanding much of it I still watched. I think I know alot already but also I think I actually know nothing because I havent created anything past an almost pong game in unity.

    Anyway, I finally want to stop wasting time and just get right into it and learn it. I'm not even sure what type of game, maybe a zelda type game, or platformer with combat, or space shooter. I like all those. But can anyone just give me advice for like, just to literally just learn unity3d in and out and c# programming for it? a paid tutorial series or something. Or advice on how to stop wasting time and learn it?

    I feel the biggest thing holding me back right now is the wall of learning c#. I've watched introduction series on that too, and I think I have some foundation of programming centric thinking now, but I've still not put it into practical use past "almost" creating pong.
     
  2. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,431
    I know this may not be what you want to hear, but did you try the learn section?

    You should be able to create Roll-A-Ball direct from there. Then review the entire series on scripting. From there work through some of the other projects on the Learn section. Frequently refer back to the introductory scripting tutorials as you encounter new topics in use.

    Your first independent game should be something really simple. I typically recommend cloning flappy birds. The game is recognisable as a real game. But the thing is ridiculously simple. Follow the entire process through to getting it built for the webplayer and on an actual server. Kongregate is a good one that doesn't mind people posting rubbish games.

    Then start moving your way up. At this point you should be working on something slightly more complex. Use Google, MSDN and the Unity docs heavily. You should be spending as much (more) time there as in Unity itself.

    Finally head over to answers and start solving the easy problems you find. It will surprise you how much you can pick up about code practice and by debugging just by solving other peoples real life problems. Setting your own exams is difficult, but solving others problems gives you a real chance to face stuff you hadn't thought of before.

    By this time you should have picked up enough about the process of learning to solve the rest on your own.
     
  3. MD_Reptile

    MD_Reptile

    Joined:
    Jan 19, 2012
    Posts:
    2,582
    I recommend the tutorials available for free and some paid over at 3dbuzz, they cover stuff fast and effectively enough to get started, and slow and thoroughly enough to understand what your doing, so later you can do it without a tutorial :p they cover mostly beginner stuff so nothing should be too complex to get through. Good luck!
     
  4. SteveJ

    SteveJ

    Joined:
    Mar 26, 2010
    Posts:
    3,038
    Here's the thing - to make a video game, you're either going to need to know how to program (and program pretty well), or you're going to need to use a "Visual Scripting" tool (eww!) like Blueprints, PlayMaker, etc. If you've tried the Visual Scripting tools and found them too restrictive (or not understood them), and you've attempted to learn programming but you haven't been able to grasp it, then the basic truth is possibly that you're not meant to make video games. It's certainly not inconceivable that that's the answer, as "making video games" is very DIFFICULT.

    Anyway - I don't say this to be negative AT ALL. I only say it so that it's there in the back of your mind. If you still aren't getting anywhere in a month, 3 months, a year from now, then maybe consider other areas (in which you might excel) where you could have better spent that time.

    OKAY! So having said that, if you're super keen to go the programming route (which is the best way to go) using C# in Unity, download the free C# Yellow Book. You won't find a easier to follow guide for learning C# programming: http://www.robmiles.com/c-yellow-book/ (EDIT: read it from cover-to-cover like a novel).

    ALSO! Consider that maybe Unity still isn't the right choice for you. I think if I was a beginner with no programming experience, I'd probably be considering GameMaker as a very tempting option these days, especially with this recent (and excellent) tutorial series by Tom Francis:


    You can always circle back to Unity later.

    And other than that, as BoredMormon said, make extremely simple things. If you stick to basics, it shouldn't take too long before that light goes on in your brain and you just "get it". If that doesn't happen, even while only sticking to the basics, then re-read my first paragraph :)
     
    musolo, Schneider21, npksm and 2 others like this.
  5. SteveJ

    SteveJ

    Joined:
    Mar 26, 2010
    Posts:
    3,038
    Sorry - I ranted a little there. I was rife with rant.
     
  6. kdub

    kdub

    Joined:
    Apr 19, 2014
    Posts:
    165
  7. DanielQuick

    DanielQuick

    Joined:
    Dec 31, 2010
    Posts:
    3,137
    The best way to learn is to start using it. Follow along with the tutorials, possibly making your own minor variations. Watching tutorials by themselves is nothing more than entertainment. By the time they finish you'll have either forgotten most of it or will be overwhelmed trying to understand all of the content at once.

    When you feel you have the minimum amount of knowledge to work with the basic feature-set of Unity, make a very (very!) simple game to cement your knowledge. Build a strong foundation before exploring the finer aspects of Unity.
     
    Kiwasi likes this.
  8. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,431
    C# is valid outside of Unity, and I constantly see the advice to do 'real' programming as well as just learning Unity scripting. I'm still on the fence on this one.

    I have no real programming experience outside of a scripting environment. I build applications inside of engines. I started scripting inside of Excel and Access at my day job, now I do Unity for fun. I made several attempts to learn programming from the bottom up, learning the low level details and tools first. It just wasn't for me. I never got past displaying "Hello World" in the console. I have no interest in the low level stuff, that's why I buy an OS, I don't care how my hardware works, I just want to do things. I see the same thing with the engine. I don't care how or why programming works, I just want to do stuff. As I'm doing stuff I'll read up on the how and why to get the job done.

    So go ahead and learn real programming from a C# textbook if you like. But its not the only way to learn to script in Unity. Nor is a traditional grounding in C# needed before just doing stuff in Unity.
     
  9. GSteele

    GSteele

    Joined:
    Feb 4, 2015
    Posts:
    9
    I'm currently learning Unity and this is my current approach:

    I am waking up an hour earlier then I usually do (I have a full time job)
    I watch a video on C# (Like if, else statements etc..)
    Then I watch and follow (typing out the code not copy and paste) one of the cooler tutorials here on Unity (All Free)
    I started with the 3d shooter. I know it is advanced, but it lets me see how these concepts are used in a game.
    I add comments to every single line of code I write to remind myself of what that line does and how it is used.

    Then in the evenings, I watch other videos, in fact i am also watching the gamemaker video linked above. It helps me understand the concepts of the code. The code is mostly the same.. lots of if statements, getting an object and its properties etc..

    Then the next morning I start again...

    In my note book, I write down what I can do.
    • I can control a 3d characters movement.
    • I can get an enemy to chase me
    • I can fire a bullet
    • I can die, enemies can die
    • Keep score
    • etc..
    Then I start to dream up simple game ideas that would take advantage of what I can do. And think about what i would need to learn to complete them..

    After 2 weeks.. its starting to sink in A LITTLE! lol but it is and hopefully in 3-4 months i will be able to attempt something original. A simple single level game.

    Good luck
     
  10. Cameltotem

    Cameltotem

    Joined:
    Feb 16, 2015
    Posts:
    5
    Yeah would also like some tips.

    I did program half a year in Java and SQL so I have some basic knowledge, I made the rolling ball game and everything was smooth, went directly to the zombie shooter game. Created my own map and mesh from that, then added a jump function to my player, also added weapons. However now I am stuck with trying to add bulletforce :/

    I just come up with all these ideas that I wanna do in game and just overload my brain.
     
    Chrispins likes this.
  11. GSteele

    GSteele

    Joined:
    Feb 4, 2015
    Posts:
    9
    @Cameltotem man, you have done so much already! I want to use the free tutorials as bases to push on from. Adding jump like you have etc..

    I was also thinking about having the player move back with each fire to show recoil..

    I think you have to focus on either the bulletforce and what you want that to do, it might need breaking down further? OR leave that and move onto another idea. You might solve something else and then come back to the bulletforce later?
     
  12. jshrek

    jshrek

    Joined:
    Mar 30, 2013
    Posts:
    220
    winterfive and Billy4184 like this.
  13. leohartas

    leohartas

    Joined:
    Jul 23, 2016
    Posts:
    1
    I'm at the same stage, struggling to get a handle on the simplest concepts. I'm working through several tutorials like you and generally surrounding myself with everything I can find about Unity and C#. The problem I found with the tutorials and courses was that I'd get to a certain point, quite early on, then some small thing would go wrong and I'd be completely lost. It's very frustrating, and using forums to ask questions is just too slow for me. I've now found an online tutor and am paying for Skype lessons. This has been a total revelation as the tutor can help me immediately with concepts I don't understand, and point out where I'm going wrong and why I should do things. It does cost money, but I think the value huge, at least to help me over the first hump of learning basic concepts. Now when I go back to the online tutorials I understand a lot more.
     
    MD_Reptile likes this.
  14. WilliamKus

    WilliamKus

    Joined:
    Oct 16, 2016
    Posts:
    2
    I am completely new to Unity. I know nothing about C#. But I imagine if I want to learn, and try hard enough, and stick with it long enough, I will learn.

    I'm trusting in the Unity website that their free tutorials are the best way to go. I've completed Roll a Ball and the Space Shooter. I am in the middle of the Zombie one on a different computer.

    I thought I would learn more if I hand typed all the script, but I'm not sure if that is really helping me, since the tutorials themselves often cut and paste. In fact, it may be taking away from actually learning what the code is doing, because I'm too focused on spelling, formatting, etc. And the code that's included for copying and pasting has notes for every line of code, which I am not even seeing when I try to hand write the code.

    But anyway, the scripting looked completely alien to me on Roll a Ball, and I was like, "Omg, will I ever learn this?", but I'm just doing what the tutorial people say.

    I mean, am I seriously thinking I am going to learn C# by my 3rd or 4th tutorial? I realize this is a multi-year project, but one totally worth it with great dividends in the future.

    Even just going through the tutorials, I am learning about the basic structure of the script. I have begun to see some similarities. There are parts of tutorials that aren't completely baffling.

    I have begun to look up basic terms, like Classes, and Functions. I'm starting to see how some script needs to be written, with functions being uppercase, how to do those private/public thingies, etc. You know, super basic stuff.

    I see progress, and that's what is important. Because I didn't see any progress in the scripting after Roll a Ball. But as I moved on to other tutorials, it started to look more familiar and less alien.

    My first goal is just going to be to go through all the game tutorials and assorted mini-tutorials. Then I want to memorize how to script Roll a Ball from memory, because I have a tendency to learn by doing, and then try to tweak it where I can. I also have a tendency to forget a lot, so it's important I commit it to memory by repetition.

    There are also mini-tutorials on YouTube that just go through the most basic junk, like how to make a light go on and off when you press a key, or how to make a gun shoot a rocket. Useless by themselves, but useful in a greater whole.

    The most fulfillment I've gotten so far was learning how to do the tutorials made in 4.2 into 5.3 (or whatever version it is on.)

    I liken it to Mr. Miyagi and the Wax On/Wax Off philosophy. I will just do it and not realize I've learned anything until I'm down the road and look back on where I started from and see how far I've come.

    So that is my experience from the last month, from someone who knows nothing. I hope it helps.
     
    jordie922 likes this.
  15. Root13

    Root13

    Joined:
    Nov 2, 2016
    Posts:
    12
    So many tutorials, hope I'll have patience to pass them all
     
    BrandyStarbrite likes this.
  16. jessechunn

    jessechunn

    Joined:
    Jun 10, 2015
    Posts:
    18
    Best answer: Dead Earth at Game Institute. Go through that and you will be a game programmer. And it is fun as hell.
     
  17. JaFaRi_CO

    JaFaRi_CO

    Joined:
    Jun 12, 2018
    Posts:
    1
    God Helps you guys
     
  18. Tset_Tsyung

    Tset_Tsyung

    Joined:
    Jan 12, 2016
    Posts:
    355
    Hey everyone.

    Several years ago I wanted to make games from scratch in C++ using Directx11. So hard, so much to learn... needless to say got number out and gave up.

    Few years later I started using Unity and loved it.

    From what I've learned and how I've learned allow me to bullet point what I feel is the best way to learn (in hind sight)

    1. Put you dream game on hold - learn the trade, learn how not to become disillusioned. Let the ideas of your dream game brew and ferment along with the new tricks you pick up along the way.
    2. Do as many of the tutorials as you can from the Learn section. Even if it's not the genre of type of you game you want you WILL learn something new everyone.
    3. Go over each tutorial twice or more if you need to. And if you're still unclear on why you're so if something, or why something isn't working go to point 4.
    4. Google can be your friend. Typing question about scripting, physics and anything else in unity into Google will most likely pull up a forum or UnityAnswer page where someone has already had the same question... and been answered.
    5. By all means use thus getting started forum, but please PLEASE be accurate in your questions. Threads that say "I apply upward force but my character doesn't jump" is not gonna get you any help. You need to include screenshots of the inspector, so we can see what's going on with your objects and hierarchy. We also need to see code (just make sure you use the 'Code block tool so it's formatted properly).
    6. Going back to the tutorials. Once you've done one and get the hang of it, add a new element or feature (just one!) to the game - this is a good test of your understanding.
    7. Once you can modify the tutorial games, set your eyes super-ridiculously-low and make a simple game from the ground up (think pong, breakout or the aforementioned flappy bird).
    8. REMAKE the game from point 7 with something new to make your game different.
    9. Finally try making a few "game in a week" games if you can (work, family, health permitting) I learned SO much about my own coding bad habits from this.
    Phew, that was a lot... but please don't despair, many of us have struggled from the beginning and we found that just pulling out one element from the pile o mess and working it until it was understood fully and working is the best thing to do - after all... how does one eat and elephant? Answer: One mouthful at a time.

    All the best, hope to hear from you all soon.

    Mike

    P.S. Disclaimer. I DONT EAT ELEPHANTS! It was a metaphor yo!
     
  19. matthewsladebooman

    matthewsladebooman

    Joined:
    Mar 31, 2019
    Posts:
    12
    I know this is a pretty old, year-old thread, and that it's a little off-topic, but I do want to add a little snippet to this thread if you do decide to take the latter path and decide that you're better off not making video games, as others said - at least not directly.

    If you do decide that coding isn't for you, that doesn't mean your game ideas and dreams are dead necessarily. You could actually just be the manager of a project instead and get coders to work on the game for you. Heck, you don't even need to avoid all involvement in the project itself aside from just simply managing the team, which is what the manager's main job is anyway. You could contribute to graphics, sounds, and even some coding if you still wish to get involved in that specific department, and you don't even necessarily have to be good at it; you can be absolutely terrible at it and yet still have very, and I mean very, ingenious ideas for the code itself, where even the experienced ones working on the code itself would've never known.

    One such idea would be a system that could detect not only bad words on a family-friendly server, but how the "bad" word was relayed to the server itself, if in or not in a offensive way. Since the example shown below itself is completely off-topic and therefore is only used for more information about the example itself, this is why it's in a spoiler.
    For example, supposed "choco" is a "banned" word on a server, and if used a certain way, rather than just simply being used at all, it could either report the user to the moderators, or outright ban the user for a certain amount of time or forever; to prevent wasted time due to a word being used in a way that was not offensive and yet the filter still recognized it as that way, and it matters more than you think, too, as sometimes, if the latter were to happen, the moderators would never notice the false ban appeal, or otherwise, and the user would've technically been banned forever unfairly as a result of this one simple mistake. Conversely, if the word is used in a way that was not offensive, but the filter would've normally recognized it as such, the user wouldn't receive any consequences for their actions, since they didn't use the word in a offensive way. For example, if the user said the sentence "I want chocolate", although they said "chocolate", and yet the word technically contains the "bad" word, the end user wouldn't be reported or banned or any other consequence, since they used the full word in a way that was not "offensive". Conversely, if, on the other hand, they said "I like choco", assuming the word by itself was considered in the "offensive" way, and used in the way it was in the sentence itself, the filter would've noticed the difference and therefore the "offensive" usage of the "bad" word itself, and therefore the console would take action, either reporting or banning the user. Of course, the "banned" word and the "offensive" usage of the word itself isn't offensive at all; this is just a "clean" example without having to risk breaking any rules or anything like that.

    Going back on-topic, if you do decide that directly working on games isn't going to work out for you, you can just be the manager of a project and get other people to work on the game for you; your minimal task is to manage the team and keep them competent and on their toes. And I'm not trying to discourage you from doing game design yourself, of course; I'm just saying that just because you can't make games yourself, doesn't mean you'll have to leave your game dreams and others like that behind permanently; you could just manage a team, and have them do all the work for you, and watch your dreams and ideas come to life. I also do respect you, the OP, wanting to do game design yourself, and if that's what you want to do, go ahead! Spread your wings! But if you do decide that doing all the work yourself isn't for you, you can either just manage a team to do it for you and still get your ideas off the ground, or you can just give up on it entirely if you really don't enjoy it. It's up to you, and them, others that do come on there, really.

    If I had to make one final quote, and I had to do so because I needed to have at least one thing about this post that's completely on-topic, I wouldn't recommend starting your first project with a huge idea - even if you seemingly "plan" to evolve it over time. It's not not okay, per se; it's not "banned" or anything like that, but it's highly discouraged; you may never actually truly get anywhere with the project, due to how complex it might just turn out to be with the code, 3D modeling, and other big stuff like that, and that's even worse than simply the project going at a unacceptable snail's pace, because your project is making no progress at all; it may be time to bail out on it and start something smaller the next time. I speak from experience, and I've only truly learned that just now; I am dead serious.
     
  20. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    14,270
    No, this is a four year old thread, and the original poster hasn't been seen since the day it was created (which also happens to have been the same day they made their account). Your advice is sound but let's be completely honest here because the OP definitely wasn't completely honest with themselves.

    If someone shows up out of the blue saying they wasted four years procrastinating and now want to buckle down and learn game development only to waste yet another four years... then it's proof enough that they didn't truly want to make a game.

    Learning C# was never holding them back. What was holding them back was the fact that they never put any effort into it.
     
    Last edited: Jun 8, 2019
  21. matthewsladebooman

    matthewsladebooman

    Joined:
    Mar 31, 2019
    Posts:
    12
    Responses in bold.

    I'll also admit something else: I've actually never been able to tell if coding and just learning Unity in general was going to be for me. I would get flustered over not just small, but tiny, problems in coding, and, among other things, I tended to shy away from asking questions online, since I felt like I would be asking so many there would actually be a problem there. But now I've learned many lessons just now with game design, and I've just decided to start fresh and along with that and among other things work my way up from small games. Unlike the OP, I've definitely decided to actually "buckle down and learn game development"; I'm at least giving it a try, essentially one more chance, before just deciding to go ahead and managing my own team of coders and other members instead.
     
  22. MD_Reptile

    MD_Reptile

    Joined:
    Jan 19, 2012
    Posts:
    2,582
    This is actually not necessarily a bad thing. When users are first starting out there are lots of questions to be asked. And a large number of those questions are already answered several times in several places (answers, the forums, youtube videos) and the users just in a hurry, because our capitalistic world wants you to spend your entire life grinding and yadda yadda...

    When first starting its best to keep quiet and soak up all the learning you can! Then when the time is right, and you hit a wall that isn't available online, you can learn more - how to do research. A critical part of just about all of life!