How to start learing Unity C# and not use YouTube tutorials?

I want to become a reasonably known game developer, but i can’t seem to get into the learning process of Unity. Unity Learn is too simple, C# books are too complicated, and i can’t find a sweet spot where i can learn and also feel comfortable with learning it. Any ideas on how i can start learning?

I find the very idea of comfortable learning sweet spot to be odd. Because you learn when you overcome problems.

If unity learn is too simple, then start with C# books which are complicated or see alternative C# books.

Normally a programmer would approach this sort of software by at least skimming through manual and script reference to see what’s in there.

4 Likes

If you have come that far to find Unity Learn too simple, it’s time to get crackin’ on an actual project!
Don’t expect to become known with your first project though. A lot of factors have to come together for success and experience on the task is a major one.

So continue learning through practice. You’ll stumble across problems where it will be tempting to try out some of the slightly more “rare” features of the language like lambdas and inheritance*. Key features of Unity (as well as its API) like coroutines and scriptable objects should have been covered by Unity Learn.

What I would recommend if the truly in-depth and often NET focused C# libraries are too complicated, is a book on design patterns. For example this one: https://www.amazon.com/-/de/dp/1800200811/ref=sr_1_2?__mk_de_DE=ÅMÅŽÕÑ&crid=12W7XV2U23NGB&keywords=game+development+patterns&qid=1663966059&sprefix=game+development+pattrern,aps,141&sr=8-2

  • not sure why I count inheritance as “rare” but I find myself using it way less than my education on OOP made me think (with tons of examples aka: Here’s the animal kingdom → let’s hierarchically categorize animal families, breeds etc.).

EDIT: Wait, you do not have gone through Unity Learn yet?
Hmm, tricky spot. What exactly is your background in software dev?

Made me laugh. :slight_smile:
That is such an honorable and realistically achievable goal. You nailed the goalsetting sweet spot!

I bet Catlikecoding will match your sweet spot, there’s at least one for everyone.

2 Likes

just make a game/tool and use youtube tutorials or anything you can find on google to help you solve problems that you face along the way to finishing your project.

The method you use to learn is only important to people with low self esteem. Real macho developers just get the job done and use whatever method is demonstrated to produce results.

I don’t think there are any “well known developers”? Games are made by teams. The games everybody knows are made by massive teams. The names associated with the games is usually like a CEO or director - not necessarily somebody who is writing c# script.

“Learn unity c#” is also not a very good goal. How do you know when you reached it?

“I want to work at x,y,z company as a ____”, or “I want to publish a game/tool that does ____” is a goal that you can actually know when you reached it.

1 Like

Microsoft has a section dedicated to learning and a website that you can run small snippets of code through.

https://dotnet.microsoft.com/en-us/learn/csharp
https://try.dot.net/

On the topic of how to start learning I remember just experimenting around with code until things just clicked for me. It’s common to tell people to replicate the tutorial in your own copy of the software but I recommend taking it one step further and playing around with the code once the tutorial is complete. See what happens when you change things. That’s largely how I learned programming languages.

Learning programming though is more than just about learning the language. You need to start thinking like a programmer which is to say you need to start trying to break down problems into the smallest steps needed to complete them. It can be hard too because it’s not normal for people to think like that.

If you wanted to run an errand you wouldn’t normally think about opening the door of your car, getting into the seat, inserting the key, turning the key, putting the car into whichever drive mode it needs to be in, etc. But that’s precisely how a computer has to be told to do things. One very small step at a time.

1 Like

Seems like a good place to start!
I see that it’s simple, it goes step by step, everything is easy and calm!
Thanks man! :smile:

PS. I wonder if there is a 2D course i could use? If not, then welp, change of plans then.
Thanks again!

1 Like

2d and 3d is just a change of perspective, the lesson will translate once you get the gist of programming and making ANY game.

When it comes down to it, you can only really learn programming with practical experience. If you’re already past Unity Learn tutorials, the thing that I always recommend is to recreate a simple Atari-era game like centipede or pacman. Maybe make a souped-up 3d version if you want. If you ever get stuck, try to find-out what you need to know in the manual or the API documentation.

As for me, I made a simple clone of Berzerk and working-out the bugs in my project taught me more about the engine than any tutorials.

1 Like

Aw don’t work on mobile, no enter key

I suspect this was a mistranslation and the OP actually meant that he wants to be a “reasonably knowledgeable game developer.” Maybe I’m wrong. :smile:

These are wonderfully true words.

The only way you learn at a reasonable pace is to stay either on the edge of your comfort zone, or just outside it.

For someone new to coding this should, you would hope, be nearly all the time. At least up until that ‘click’ moment where all these disparate bits of knowledge start to form together in a cohesive whole, making it a lot easier to on-board new information.

Though not much I else I can say that hasn’t already been said here. OP should just try make a game, even if the goal is a bit lofty, so long as they learn plenty along the way.

Unity is running necro spam bots now? Nice.

:stuck_out_tongue:

At least this time it’s only 3 weeks old instead of 3 years.

1 Like

That sweet spot is really unique foreach person. Usually you have to choose one that could be similar about what you are looking for and adapt yourself to it.

Anyway, if you want to give a try to a free online gamedev bootcamp I did I’m sharing the playlist with you. You can find the code necessary to do each lesson at the beginning and the end of each lesson (in the slides) so you have a starting point and later you could compare if what you did is similar to the final solution. The slides foreach lesson are in each lesson video description:

https://www.youtube.com/playlist?list=PLPtjK_bez3T4-OWhfs3TXY3uYfsUaOuXr

Feel free to ask any doubt you may have.