Will i ever learn coding?

When i first got into game development which was about 6 months ago, i was completely lost and didnt know where to start, then i discovered Unity, watched some tutorials about Unity, and decided to learn Blender with it too. Was pretty good at Blender, and i only wanted to make 3D models for games, because programming was scary and i didnt want to get anywhere near it.

I realized that i wont get anywhere if i didnt learn coding. 3D models alone wont make me a game, and my goal was to be a game developer not a 3D modeler, so i just went ahead and tried to learn coding by watching some Unity C# tutorials.

I learned what a variable is, i learned what a function is, i learned IF statements, and other basic things. I can make a cube jump for 5 seconds and land, i can make a cube change colors, i can make things keep rotating, but that’s it, i only can do basic stuff, when i open Unity and say “Ok, i will just open Unity and make the game in my head, i can do it.” i decide to start with the character controller first, but how am i supposed to make a character controller? i only know how to make a ball jump! I search for a character controller on Google and see all these vector 3 and delta. I try to stay determined and not give up and go watch some Youtube tutorials about character controller, then i get this guy saying “Hello Youtube, today we’re going to make a character controller for Unity3D! It’s okay if you’re an absolute beginner with no experience, just do what i do!” then he writes the whole code without explaining anything and expects me to know what he’s doing, 90% of all tutorials are like that. How am i supposed to learn by just doing what they do?

Now i’m good at Blender, good at Unity, but coding is just the only thing i cant learn. How did all these programmers learn to code? They are humans just like me, we’re the same, why can they learn and why can i not? What exactly do i need to learn so i can actually open Unity and get things done instead of having like 100 empty projects?

When am i going to make the game in my head?

I also would like to say that i completed the whole eteeski game development tutorial series, that took months to finish, but i still cant code.

3 Likes

Programmers put more hours into training. That’s all there is. Someone might have 5…10 years of experience in software development, if you started few months ago, you won’t be able to catch up with them for quite some time.

The best idea for you would be probably to team up with a programmer that doesn’t have your skills and make game together. OR you could hire that programmer. You could keep learning programming, of course. Working with unity is simpler than writing applications from scratch.

Generally, programmer would approach the problem like this:

  • “Okay, I made a cube jump on the spot. How do I make it move with wsad?”
  • Checks manual, finds input manager, figures out how to adjust position when a key is pressed.
  • “Alright, I have a moving cube. How do I make it a character?”
  • Checks manual, finds skinned mesh renderer, animation controller, animation state machines, few hours later replaces cube with a character.
  • “Alright, I have a cube. How do I give it a sword that can hits stuff?”
  • checks manual, some time later figures out how to attach a weapon with a collider on it and script in damage.
  • “Alright, now I want an enemy that can attack me!”
  • checks finds navmesh agent,figures out how to write an ai driver for character that supports navmesh agent.

So, to summarize: “Identify the feature needed to advance project towards desired goal, find means of implementing the feature by searching through documentation, then implement the feature. Repeat until project is completed”

8 Likes

Have you tried experimentation? Try downloading a tutorial from Unity Learn, or follow along with the videos making it yourself - and then when it works, change something in it. If you get an error or it doesn’t work, go back and try something else. As you do this, and the game changes with your modifications, your brain will become familiar with the nature of what the terms on the screen mean. Don’t just copy code, play with it, make it do things for you.

2 Likes

It seems to me that you are progressing fine. Your concern is stemming from an expectation that you can go from “I know how to make a cube jump”, to “I know how to make a full-blown game”, without having to learn anything else first.
“Make my game” isn’t a skill. It is a collection of thousands of skills. Variables, functions, etc, are the language. It is like learning how to write grammatically correct English. But a game needs to be more than grammatically correct. Imagine if you wanted to use your English skills to write the design for a space shuttle. You would have to be an expert in all of the scientific and engineering principles in building a space shuttle. Actually writing the English sentences is the easiest part.

So what does this mean for you?
To write a character controller, you first have to learn how to write a character controller.
Knowing C# is not supposed to be enough. You need to understand vector algebra and how it is used in physics.
If you don’t know what vector 3 and delta are, then you don’t know how a character controller works, so of course you aren’t prepared to write one. But why are you writing your own? You could use a standard one that is already written.

1 Like

Why do you think programmers get paid so well (unless they’re a game programmer… :S)

Its hard. I got a degree in computing. it took around 5 years. Not all of it was programming, but a big chuck was. Point is it takes a lot of time to get good at coding. Jumping into Unity doesnt help with learning basic/core programming. Its too overwhelming. Sounds like you have made a good start. Just keep plugging away, you’ll eventually become competent enough to realise it just comes down to how good your google fu is, pretty much as NegInfinity said.

Identify correct way to google what problem youre trying to solve…

ie. How do I read keyboard input in Unity… find example, apply it to your move code. Progress.

4 Likes

How did you learn this stuff? Was it from resources about learning programming, or was it from resources about learning Unity?

I’d suggest finding The Yellow Book by Rob Miles and working through it.

2 Likes

Give up. You won’t ever learn to code. Might as well quit now and move on with your life.

There is no shame in deciding a particular career is not for you. I am not a musician or and artist. I tried those careers and found they weren’t for me, and moved on. In fact eliminating things from your to do list quickly can lead to finding what you really want to do much sooner.

I’ve given the positive answer in this thread the last five times it turned up this week. So I thought I’d try something different.

4 Likes

This is very true. Very few people do all of the different bits of game development. Most people are programmers or artists or sound/music composers or designers. There’s generally some crossover, picking up a little skill from other areas, but generally expertise in only one. Furthermore, someone will also generally specialise within their area. Programmers generally have a niche they’re good at - they’re a graphics programmer, or a network programmer, or something. Same deal with artists - they’re a character artist or a UI artist or an environment artist or something.

Games are generally made in teams. People are picked for teams (or hired) based on their area of expertise, not the breadth of their knowledge in other areas. If I hire an artist I don’t care how well they can code, I care only about the art they make. If I hire a programmer I’m not asking how good they are in Photoshop.

Considering how darn long it takes to make a game this makes sense. One person doesn’t often have time to keep their skills up to date in every single area of expertise needed for a game and also design, build, test, polish, market, release and support a game. So it just makes more sense to specialise in an area and work with others who specialise in other areas. Cover more bases more effectively, and get more man hours of work done in less world time.

So while @Kiwasi 's advice might seem blunt, it’s well worth considering. If the art side of stuff is working for you then do you really want to force yourself to also pick up programming or do you want to find someone who’s good at programming and work with them? One approach takes time away from the thing you’re good and motivated at, and also means you’ve got less expertise in your specialty to offer a team. The other lets you hone a specialty and better fill a niche as a part of a team.

3 Likes

So to clarify, you need to figure out what you want to get out of game development as a pursuit. Do you want to make games? Do you want to learn lots of stuff? Do you want to make art / write software / design game systems / draw pictures / compose music? Is it about tinkering and generally having fun? All of those are perfectly fine answers.

The point is, don’t learn programming just because you think you have to. If it’s not what you want to do then that’s perfectly cool, there’s still plenty of other ways you can be involved in game development. If you do want to learn programming then sweet, here’s The Yellow Book (it’s free!).

3 Likes

Programming is something that you never truly “learn”. It is more a sliding scale of skill, there is always something more to learn. I have been programming professionally for 20 years this year, before that there was college, university and before that a number of years with various computers and books and I still find things quite often that I did not know before!

Then there is learning an engine and you can even go further and learn how to make engines… it never ends :slight_smile:

I would actually recommend not learning to code using a game engine… that could be controversial I know. BUT code is code, and if you learn the basics of C# first without worrying about making your dream game then you will be in a much better position to understand what the tutorial for the engine is trying to teach you.

If you don’t find the process of programming interesting for it’s own sake then it might be just a case of programming is not for you. There are plenty of other things that you can do to be involved in game development. For example I am pretty much useless at art / modelling and all that stuff. I can get by and make stuff work but not to a commercial standard. This is why games are made by teams of people with different skills.

5 Likes

Maybe Unity, as friendly as it is, is too much to chew on all at once for beginners. I never got into actual programming because it was too much for me, so I never even touched anything scripting related until the first friendly game engines started to become available, so the manuals were piss easy, taking you by the hand step by step. Unity is still much easier than learning hardcore programming books, yet because it’s still quite complex. has a lot more available right off the bat, and that can be confusing.

Unity is much much much better than any of the old game engines but at the same time it’s bigger and it may feel like too much. I don’t think a lot of people know Unity inside out, especially with new features coming in regularly. More like know inside out what’s necessary, a general idea on other things, and other features not even touched.

I reckon jumping into Unity and start doing games coming from zero knowledge must not be easy at all. I recommend not expect it to be easy, though never think it’s too difficult for you, or that you can’t do it. You’re in the right place, this is not Mensa or anything, if you give it time it’s guaranteed you’ll get the hang of it, but of course it takes time, it’s the same for everyone.

@DanHedges is spot on. This is exactly the reality. You can learn enough programming to “do things”. Tiny things at first. Then learn more programming to do somewhat bigger things or do things in a different area.

While ultimately programming is programming and I find any language easy to pick up… it is the proprietary stuff that causes the headaches and constant learning. New paradigms, new buzzwords come up continually in this industry and there are always new things to learn.

Even with just game dev you can will likely be exposed to a number of different technologies ranging from gameplay programming to AI to GUI to network to audio to graphics to storage & retrieval (perhaps relational db or the “new” object dbs or maybe something else). And at least some of these will change as time passes and someone somewhere thinks they have found a “better” way that becomes the new popular thing to do.

To be a great all round programmer you must love to learn and tackle different things continually. It never ends.

1 Like

That is what I did with hockey after 5 years. :frowning:

2 Likes

My soccer career went the same way. As did my novelist writing career. Who knows, game dev is still in the early days, it might not last either.

4 Likes

You could always try your hand at artwork next. It isn’t like programmer artwork doesn’t have some popularity after all. :stuck_out_tongue:

He says, at ninety-nine hundred posts.

;D

There’s a thought for you @Kiwasi . You could apply to Unity as a community manager. :stuck_out_tongue:

1 Like

Take a few programming courses.

My experience with community college was generally favorable but one instructor out of the three classes I took was terrible at teaching and I ended up learning more on my own and from the other students than I did from him.

2 Likes

You could give my tutorials a shot. I wrote them for fairly beginnerish people, so they could be useful to you and I suspect you’d be able to provide useful feedback to me.

1 Like