I’m 73 lessons in the 2D unity course and I was told by a programmer who allegedly completed this course and recommended it to me that this did not teach C# and only the basics and that I would not be able to use Unity very well at all without completely learning C# standalone unless I spend my time only learning from a book and not a course… Does this mean I chose the wrong course? Do I need to purchase another course/book on C# before continuing with this one?
My opinion is that you definitely should do some C# alongside the course if you want a better understanding. While the 2d/3d courses do teach the basics, it very quickly dives into Unity which doesn’t leave a lot of time to get your head around everything you need to get going. This is nothing against the course at all, it’s just the nature of needing more time to figure the basics out before you get overwhelmed with the Unity side of things.
Speaking from personal experience, I tried learning unity in the past and had trouble when it came to my own games - as it turned out I really just needed to spend some time making my own programs (outside of Unity), solving challenges and really understanding some of the fundamentals of C#.
When I came back to Unity my understanding was soooo much better and I found myself breezing through tutorials and quickly being able to make my own stuff. Also a bit of Khan Academy helped as my maths was pretty atrocious too.
So yeah, I think it’s definitely worth doing. One book I can recommend is “C# The Players Guide” which is a fun book, filled with a good amount of challenges, and sets you up nicely with beginner & more intermediate concepts. Combine that with Tim Corey who teaches some good practices you can apply to Unity as well, especially when it comes to OOP and project management/scope etc.
I went to Udemy as an alternative since I’m better at learning through this… is there a unity course you’d recommend or are you confident I should just stick to C# a player’s guide?..
There are actually some good free ones on youtube. Look up Tim Corey, Jesse Dietrichson, Mike Deane (Giraffe Academy), and Mosh who also has a good Udemy course. That should keep you busy!
The reason I recommended the book is because sometimes there’s the habit with videos of copy/pasting and rushing through things cause you want to move onto the next video…for me going through a book changed a lot of my learning methods and helped me slow down and spend more time on fundamentals. I found I was really just “taking it in” with videos but not learning. (But I did use the above videos alongside my book to help reinforce)
But everyone is different.
Hi Xarce,
Just to make two things clear:
-
You definitely do not have to purchase another course to learn C#.
-
You do not have to learn C# first before you are able to follow our Unity 2D course. Rick teaches everything that is relevant for our game projects.
Is it a good idea to follow a pure C# course anyway? In my personal opinion, it is. Learning “pure C#” could be beneficial because you won’t get distracted by a complex system like Unity and/or by game design. Furthermore, you could gain a new perspective on programming in general.
If you are interested in a free C# course, I can recommend Bob Tabor’s.
If you prefer to dive directly into our Unity 2D course, feel free to do that. Ben and Rick created that course for absolute beginners with no prior knowledge in programming. Rick shows everything step by step, and he teaches everything that is relevant for the game projects in this course.
Did this help?
See also:
- Forum User Guides : How to mark a topic as solved
Yes thank you… I was hoping this course would be enough to kickstart a career. I suppose learning C# as a whole can only help… I was worried I would end up missing something along the way.
The thing about unity is that it uses c# as a programming language and unity already provides a lot of components like transforms, animators and so on. Unity also provides different data structures like vectors, quaternions, … that you can already USE and do not have to program yourself. So most of the time when developing with unity - especially when not developing too complex games - it is enough to just know HOW to use the provided API and editor features.
I do not specifically know about the content of the 2D course because when i started with Unity there was only the “Complete Unity C# Developer Course” available which was then later split into 2 courses one with focus on 2D and the other with focus on 3D games. Obviously the course cannot teach you anything about the engine, its API, and the C# programming language and also not in every detail. First because unity and c# are just tooo big and complex systems and second because unity is constantly evolving and features get added. For example the new input system, adressables, SRP, ECS, timeline, cinemachine, vfx graph, shaders, lighting, debugging and performance tools, and so on. You do not need to use all of these features when developing a game but they can be important if you get more serious about game development. Also if you get more serious usually working with a team you will build more complex games too which require more advanced/complex systems that have to be build.
Here you have two choices either you find assets or libraries that solve this and buy them or you do this yourself.
This is where it gets important to know more about C# as a programming language and more in depth about the unity engine and data structures.
The course is a good start. If you want to get more advanced you will end up making your own project(s). You will encouter problems, how to solve certain things in unity, research and find answers. Sometimes this takes some time because you will have to look into new topics like shaders, computer graphics in general or maths and want to better understand how to use c# as a programming language. Sometimes its working but youre not satisfied with your implementation or software design (there are books about this like “clean code”, “code complete”, “game programming patterns”, "refactoring: … " ). Later you will review your code/implementation and improve it.
I think the first step before deciding what you should learn, buy or do, is to figure out what you want, then make a plan to get to that goal.
The steps required to get a job in a AAA company are quite different from those required to get a job in a small indie company, they might be similar, but being a generalist might help you more with the latter while being a specialist would increases your chance of success with the first one. If you want to make your own games then everything becomes far more complex, especially if you are planning going solo.
This, I think, is one of the biggest issues I’ve seen with many students (myself included), they don’t really know why they want to make games, so think about that for a while and ask the right questions afterwards.
You can learn “C# as a whole” within a couple of days. There is not much to know about the programming language itself. The complexity stems from the frameworks. In our case, we work with the Unity framework to make games. Furthermore, there are general concepts which are independent of specific programming languages and frameworks. @Donlod mentioned a few things such as “refactoring”, “clean code”, “(game) programming patterns”, etc.
Since this field can be extremely complex and therefore overwhelming, it is a good idea to start “somewhere”. A nice course with interesting projects can help you keep motivated, especially at the beginning when everything is new.
Just to clarify I think the courses do teach more than enough c# ! I guess I would add one thing - if you’ve never done any programming before, it’s not really the syntax that throws you but it’s more the overall logic. When I was learning C# “with Unity”, the first time I really just didn’t quite understand how everything worked so much until I went and learned some basic programming on its own, finally getting my head around methods, loops, arrays, data, properties, and most importantly logic and problem solving (which for me was a bit lacking due to me working in the arts and not using math or logic for a long time!) In Unity you sort of jump right into the deep end and start using all this stuff from basically day 1 (As well as vectors, etc), which can be a little bit overwhelming depending on your background. For me I really needed to take a step back and start from zero, and spend a few months just getting my head around how it all works. Could be that I’m a slow learner but I do see people say a lot of the same things as well, and I also see a lot of people always relying on tutorials and copy/pasting code, even after having done a few courses.
This is nothing against the courses btw - they do an excellent job, but I think the nature of these courses means that people want to jump ahead and get to the ‘fun stuff’, which means they spend like, a day or two on C# and then move on (which is totally fine if you already have a hang of things or have done some coding before).
I know why I want to be independent.
I would like to have a team one day and maybe find a job until then. But you’re right I need a plan. My reason for developing games is that I want to create.
I enjoy having this challenge and being able to have the opportunity to make something for a medium I not only enjoy but want to contribute to with my own ideas and to share my vision with others. It feels right for me. So I want to do this right… Even if independence is difficult at first…
The logic is making more sense to me the further I am into the course. that’s why I was confused because I thought I was getting the hang of it but being told that this course teaches only the basics of C# threw me off because I questioned if I was actually learning or not… Which is why I posted since I needed to ask if my progress up to this point was worth anything…
Ohh ok. Well if you’re following along and you’re getting the hang of it then honestly you’re probably fine. My comments are more if you’re struggling etc. But the course does teach more than enough c# to keep going and other stuff you can pick up along the way! A lot of the extra C# stuff you may not end up using with Unity so it’s more like, learn as you go kind of thing.
If you are going solo then this courses are fantastic, but I have to say, do not over-consume courses, try to apply everything you learn, finish this course then participate in a jam (itch.io is a great place to find jams) or make a small project of your own, something that wouldn’t take you more than a month to make, then take another course and apply all of this newly acquired knowledge in another project, if you do that you’ll learn faster.
At some point I was consuming 3 courses or more in less than a month and I noticed I didn’t learn a thing because I wasn’t implementing any of those things in any project of my own. Be careful with that pitfall.
What I do recommend is to learn about repos, those things are game changers, you can get help faster, you can create a portfolio, your work will be safe and so on, do invest time on that, I would even suggest to stop working on the courses and learn about repos first, the difference is day and night. Gamedev.tv has a course on that, it’s short but great.
Oh that’s funny I got sort of used to using SourceTree when I was doing a course on skillshare but sadly it wasn’t for me. The Udemy course has worked out greatly though in comparison(I really love this course). Thank you for the advice… It means a lot… And I’ll take your advice and focus on this one for now. I was already planning on making a sort of recreation of SMB1 in unity as a birthday present for my partner after the course.
One thing I can recommend you to do on the side to improve your knowledge and understanding on C# is to read Rob Mile’s “The Yellow Book”. He used to be a CS professor in Hull University in UK. The book is free, but the best resource is his class’ weekly slides and lab work, which can also be downloaded for free on that website. He covers from the very basics in the first weeks to mid-advanced concepts by the end of the second semester (like events and delegates). I found it to be a really good resource.
Another good resource for practicing problems is exercism. The C# track has over 100 problems of varying difficulties that all teach useful concepts that you can later apply on Unity. Most of the problems revolve around collections, which is something that definitelly comes in handy for gamedev. However, I would only do those once you have some understanding of C#, as even easy problems can deal with complex concepts like LINQ (easy on that website means that the problem can be solved with less than a handful lines of code) but it always provides documentation and resources for further research on the concepts the problems are about.
uh… it seems to be launching soon but this is just what I needed thank you. I will remind myself to check it out after launch
Thanks a lot for sharing your experience, knowledge and opinions, guys! I’ve just moved this thread from “Ask” to the “Talk” subforum because I feel this is a great discussion, and I believe that there is no universal answer to OP’s question because “enough” depends on the context. Maybe more students would like to join this discussion.
@Xarce, if you want me to close this thread, please let me know.
Thanks Nina. Do as you like with the thread! I have no qualms letting other people partake in this discussion