Jump to content
  • Advertisement
Sign in to follow this  
Alphabet

Learning path in C#

This topic is 696 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello Community, I'm a beginner at making games and writing code.

I'm hoping someone can guide me to fastest and most efficient way to becoming a programmer that can tackle any programming problems that may occur during unity game development. So my questions are.

1.will I be missing out on key programming skills for game dev if I learn to program in c# through unity first?

2.or is it better to learn c# through traditional application first?

Keep in mind I plan on being indie. Focusing on combat systems and animation. I'll be buying environment/character art from content creators since I'm just one person.

Share this post


Link to post
Share on other sites
Advertisement
The fastest and most efficient way would be like following a path on a tech tree in the Civilization games. If such a thing existed, you could simply mark things you already know, select the concepts you want to learn, and follow the prerequisites between concepts, learning each one along the way.

There are problems with this:

- I don't believe anyone has comprehensively mapped out the possible concepts and the dependencies between them formally. I.e. Nobody has an exact "tech tree" that you can easily use.

- The resulting network of concepts would be GIGANTIC and very difficult to navigate.

- When you're starting out, you don't even really know which concepts you need to know.

- Not every game uses every game-development concept. You can skip most of them and still make a successful game.

- It's hard to know when you have successfully "learned" something. It's easy to skim over the details but still feel like you "know" the concept. In reality, there are nuances to concepts that aren't obvious, or are only important in particular combinations with other concepts.


This explains why most of the answers you get will be inexact things such as "read some books" , "find some tutorials", "try going to college", etc. Nobody has thoroughly mapped the exact details of everything in a way that lets us answer this question. Edited by Nypyren

Share this post


Link to post
Share on other sites

There is no "correct way/path/technique" to learn to code apart from the hard way. Does not matter if it is a game or otherwise.

By this I mean you will

  • Make mistakes in design.
  • Create stupid bugs.
  • Box yourself into corners that cause you to re-write massive blocks of code.
  • Create code that does not perform well
  • Use the wrong data structures

The reality is no course or book will teach you this stuff. It is what you learn by building different non-trivial projects and making the mistakes listed and then learning from them so you can spot them ahead of time on the next project. It is also learning different languages over many years so you have different tools and techniques at your disposal :)

So read stuff, learn stuff and try it out the repeat. And enjoy the journey :)

Oh.... There is a golden rule that should ALWAYS be followed no matter the language or type of thing you are working on, be it just your or a team of people. It will save you a world of pain :)

Drum roll......

Learn how to use source control (Git, SVN or any other, does not matter which) and then use it always. 

 

Share this post


Link to post
Share on other sites

instead of Unity I'd go with 

Otter2D 

or 

Duality 

 

both use C# 

both are for 2D games 

 

both are great for beginners learning to program games 

 

make pong 

make asteroids, 

make a platformer 

make a side scroller 

make a tower defense 

 

you'll learn tons of stuff 

 

you can make 2D games with Unity, but Unity just has too much stuff  

Unity was built for 3D games first and the 2D stuff was added later

 

so in my opinion its better to start off with something designed for 2D from the start 

then once you get a hang of it move on to Unity and 3D 

Share this post


Link to post
Share on other sites

1.will I be missing out on key programming skills for game dev if I learn to program in c# through unity first?

That is going to happen if you don't go into theory and if you get stuck in one single language. Even today it's possible to be tempted into writing small C++ libraries for C# code (but specially if performance is involved). 

 

 

2.or is it better to learn c# through traditional application first?

Not really. But the console is a good start.

Share this post


Link to post
Share on other sites

If you're not used to programming, then trying to make games, even on Unity, before getting some experience in programming, is like trying to learn to pilot a launching rocket before learning what all the controls are: you will crash and burn, and it might be fatal to your motivation.

 

 - Things will go wrong, and you won't understand why

 - You'll not have the basic knowledge to roll up your own solutions to problems specific to your project.

 - You'll feel stuck, and induced to follow thousands and thousands of tutorials to bring their code to your project, even without understanding them.

 

Overall, programming is often very frustrating, so you must take care that the frustration does not increase faster than your ability to use your skills or cope with it. In short

 

Game programming is an unforgiving MVP

 

Unity wont make learning easier - it'll make learning HARDER. The engine will bring lots of new constraints like the preference for components oriented systems, simulation rules, etc. There's no shortcut, so if you're not in a hurry to make a game (and should not be), take a few months to learn C#. Solve some code kata* until they feel trifling, all the while reading a lot about how game engines works

 

* http://codekata.com/

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!