• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

How long does it take to learn enough programming to make a game?

So a couple gaffers have made their own games. Did you already know how to program from other places, did you take classes in HS or College or did you just buy a book and go to town?

I've always wanted to try it myself, but I always make up time excuses. Maybe if I knew how much time it will take to learn it, I wouldn't be so scared of a time commitment. if any of this makes sense.

So, on the average, going from zero skills in programming, to enough to make a workable game (excluding the talent quotient). about how long is the average from knowing completely nothing to just enough to skirt by?
 
I started here:

41ED1jo96gL._SL500_SY300_.jpg
 
So a couple gaffers have made their own games. Did you already know how to program from other places, did you take classes in HS or College or did you just buy a book and go to town?

I've always wanted to try it myself, but I always make up time excuses. Maybe if I knew how much time it will take to learn it, I wouldn't be so scared of a time commitment. if any of this makes sense.

So, on the average, going from zero skills in programming, to enough to make a workable game (excluding the talent quotient). about how long is the average from knowing completely nothing to just enough to skirt by?

Depends on what type of game you're making... You could learn to make a visual novel in the course of a day (I did, from nothing to that was absolutely nothing ;)) to make a simple jumping platform game? A week or two if you're dedicated. To make the original Slender Man game? Months and have a talented friend who's good at 3D modeling.

To make it a career? Well... you never stop learning :)
 

Persona7

Banned
Depends on the person really.


Me for example, I spent a good amount of time learning but my brain is just not made for programming.

Find a language and just start learning using online resources.
 

senador

Banned
Depends on what type of game you're making... You could learn to make a visual novel in the course of a day (I did, from nothing to that was absolutely nothing ;)) to make a simple jumping platform game? A week or two if you're dedicated. To make the original Slender Man game? Months and have a talented friend who's good at 3D modeling.

To make it a career? Well... you never stop learning :)

A week or two with no programming knowledge? No way. Not at all. You could surely follow a guide to make one but that isn't really doing it. It's going to take years and passion and dedication.
 

Harlock

Member
Flash is in your way out, but still easy to mae a game with actinscript. But before that is good you learn about logic programming. If you go to actionscript or other leanguages, be aware that not every class will teach you about how to program game things, like collision, moviment etc.
 

PaineReign

Neo Member
Depends on what type of game you're making... You could learn to make a visual novel in the course of a day (I did, from nothing to that was absolutely nothing ;)) to make a simple jumping platform game? A week or two if you're dedicated. To make the original Slender Man game? Months and have a talented friend who's good at 3D modeling.

To make it a career? Well... you never stop learning :)

I would generally agree with this, though odds are for a platform game it would be more like a month to a few months to really learn what you actually need, probably longer than that to make the full game (programming levels, enemies, etc).

The jump from knowing "how to" program and "understanding why" you program takes a lot of time to really understand. It just depends how long it takes to wrap your head around the way your engine/language/OS/console/whatever operates.

If you wanted to easiest game type to start with, probably a side scrolling shooter. Basically make Gradius. Relatively simple to learn everything you need to know to program it, and not super hard to add extra cool features (leveling, upgrading guns, particles).

Basically I spent a summer forcing myself to learn XNA, about 3 years later I was finally able to make an hour long RPG for XBLIG, though that is working on and off on it and restarting numerous times.
 
How about starting by learning enough programming to write "Hello World" to the screen. Then learn just enough programming to ask somebody their name and reprint it. Then get their birthday and calculate their age and print that. Then maybe ask for several names and ages, maybe 5 or so, then after all 5 are entered, print each name and age back to the user and also print the average age. Then after that, let the user determine when he or she is done entering ages. It could be 2 or 202. Same thing, reprint them all at the end and show the average. How long does it take you to learn enough to do all of that? Did you struggle? Get frustrated? If you can make it that far without feeling frustrated, maybe you will have what it takes to go that extra mile to make something a million times more complicated.

Oh, and I have no idea. I've never made a game. But I also don't know, because I don't know your commitment level or aptitude for programming. Maybe it's just not in you? Nevermind the art, sound, etc.

As a trial run, after you've done all of the above, maybe you can make a console window version of Hangman.
 

DiscoJer

Member
It depends on the sort of game you want to make. 15 years ago I bought a number of programming books, "Teach Yourself ____ Game Programming in 21 Days"

Obviously you're not going to learn how to make something like Halo in them. But they explain the very basics. Sprites and moving them around, hit detection, scrolling backgrounds, etc.

The problem is, once you know how to do the basics, is dedicating yourself to actually finishing the game. That's really the hard part. 15 years ago, after buying all those books, I created the frameworks of a lot of different games. But I never actually competed any of them.
 

Nert

Member
I'm tinkering around with Code Academy and I am looking forward to reading some responses from people. I don't have any real ambitions with this at the moment other than (hopefully) rounding out my skill set.
 

NeoUltima

Member
I made a Breakout clone and some other shitty games (QBasic) in a high school programming class. Was pretty easy, never even did anything in my free time/homework. Just learned all the functions and shit during class and put them together to make shit. Of course I am sure 'real' programming is much, much, much harder. (then again almost everyone else in the class had no clue what they were doing, so who knows)
 

L Thammy

Member
I was thinking of posting a thread, but since my question is related I'll ask here. Are there any tutorials or resources for quickly learning game programming that don't start from the absolute basics of programming?

I've studied introductory Visual Basic and Java. I've played a little with C++ and it seems that a lot of what I've learned of Java applies, so I think I could work with that too. I don't need to know what an object is, nor a loop, a variable, or a method.

But I don't know anything about receiving player input, displaying graphics, making sound. There's probably best practices around the design of the game loop that I don't know either.

So, where should I look next?
 

Fireblend

Banned
Depends on the kind of game, and how much you're learning/how dedicated you are.

I'm currently a teacher at a local university's CS introductory courses (first 6 months) and my student's first project was a simple game (a Mastermind on Python). Some students picked up the tools right away, and for some it took some more time, however I'm pretty sure they have a clear idea of how to use the knowledge they got from that project to make their own games and increase the complexity of their projects.
 
Going from zero knowledge to getting something off the ground in a month or two will involve tons of trial and error, learning from very bad design mistakes and you'll end up making something simple (say, tetris) that you'll want to redesign immediately after finishing it. You usually learn the most at that point and can go on to making bigger and better games from there.
 

Slavik81

Member
Do you want to learn how to program, or do you want to make a game? If you actually want to finish something, you should probably use something like game maker.
 

jabuseika

Member
Assuming no previous knowledge of progamming at all, and you want to program something that is all yours.

If you're good at Math, 2-3 months you could have something going.

Not great at math, but you Like problem solving/puzzles, in 4-5 months you could get something playable if you focus.

Non of the above? I would take classes at a community college, maybe 2-3 classes in you'll acquire the necessary tools to program a game that is all yours.


Of course you don't have to program something your self, there are a variety of things out there that can help you make a game without knowing much programming at all.

Edit:
I'm not saying Math is important to start, and I don't want to discourage you. Math helps because it makes it easier to understand these abstract concepts if you already have a framework of logic that is similar to code logic.
 
RPG Maker is a great place to work on design without needing to code.


The advanced tools in LittleBigPlanet 2/Vita are also very powerful and you can make quite unique things if you take the time to learn them. I made a fully functioning 5 level tower defense game in LBP2 (that got less than 100 plays... wooo!).
 
I would generally agree with this, though odds are for a platform game it would be more like a month to a few months to really learn what you actually need, probably longer than that to make the full game (programming levels, enemies, etc).

The jump from knowing "how to" program and "understanding why" you program takes a lot of time to really understand. It just depends how long it takes to wrap your head around the way your engine/language/OS/console/whatever operates.

If you wanted to easiest game type to start with, probably a side scrolling shooter. Basically make Gradius. Relatively simple to learn everything you need to know to program it, and not super hard to add extra cool features (leveling, upgrading guns, particles).

Basically I spent a summer forcing myself to learn XNA, about 3 years later I was finally able to make an hour long RPG for XBLIG, though that is working on and off on it and restarting numerous times.

I didn't mean make an awesome amazing super game, but those are generally good time frames to "jump into" making something. Obviously making a complete game would take a lot more time after that.

It may also be how I tended to learn a language. I probably jumped in earlier than I should, but it also made learning a lot more meaningful to me.

For example, I start working on a game, and I can't figure out why something isn't working the way I should. Instead of sitting back and hitting the books, I'd take what I had and where I thought the trouble would be and post it on the various programming forums out there. Almost all of them are quite friendly and can point you in the direction and explain why it works that way.

Since I'm working on a practical example, I remember it FAR FAR better than if I had spent the couple extra weeks on the books and using their examples. A lesson learned in the fray is one you keep forever :)
 
I started making my first game in OpenGL and C at the start of my second year at university. The first year was unspecific and got us up to speed with C and Java so you probably could get to the same point faster in your own time.
 

cameron

Member
I was thinking of posting a thread, but since my question is related I'll ask here. Are there any tutorials or resources for quickly learning game programming that don't start from the absolute basics of programming?

I've studied introductory Visual Basic and Java. I've played a little with C++ and it seems that a lot of what I've learned of Java applies, so I think I could work with that too. I don't need to know what an object is, nor a loop, a variable, or a method.

But I don't know anything about receiving player input, displaying graphics, making sound. There's probably best practices around the design of the game loop that I don't know either.

So, where should I look next?

If you already have a solid foundation in programming logic, data structures, and OOP, you may be interested in Riemers online tutorials. Another great resource is Frank D. Luna's books on 3D game programming. Also, the DirectX SDK has several examples you can tear apart.

Before all that, a 3D Math Primer may be worth reading if you're rusty.
 
This article has some pretty good tips for beginning game programming:
http://www.gamedev.net/page/resources/_/technical/game-programming/your-first-step-to-game-development-starts-here-r2976

I especially like his suggestion for what game(s) to start with:
Finally after gathering our tools: language and game dev library or game maker software, we are ready to answer the most important question of all. "What game should I make?" For this question, the answer has to be approachable, doable, and for the most part understood. This is why the game that should be made should be 2D. Everyone understands 2D games. 2D games can be fancy but at its core they are basic with very few "moving parts".

Believe it or not, the previous question has a definitive answer. And that answer is Pong. Now you may wonder, "why?". Well, Pong is one of the simplest games known. The graphics are simple and the mechanics are simple. There's no guesswork on how Pong should work. Therefore it's the best candidate for the first game to be made. Each new game that is presented in this article is meant to show something new and/or build upon what the last game taught you. The skills that are learned from each game become cumulative and not specific to just one game. So each game is a step up in terms of difficulty, but nothing a little brainpower and some brute force can't solve.
Now I'll list some well-known games that will definitely help your game development skills and allow you to have actual complete games under your belt. I'll quickly point out some things that will be learned for each game. These games are:

  • Pong = Simple: input, physics, collision detection, sound; scoring
  • Worm = Placement of random powerups, handling of screen boundaries, worm data structure
  • Breakout = Lessons of pong, powerups, maps (brick arrangements)
  • Missile Command = targeting; simple enemy ai, movement, and sound
  • Space Invaders = simple movement for player and enemy, very similar to breakout with the exception that the enemy constantly moves downward, simple sound
  • Asteroids = asteroids (enemies) and player can move in all directions, asteroids appear and move randomly, simple sound
  • Tetris = block design, clearing the lines, scoring, simple animation
  • Pac Man = simple animation, input, collision detection, maps (level design), ai
  • Ikari Warriors = top down view, enemy ai, powerups, scoring, collision detection, maps (level design), input, sound, boss ai
  • Super Mario Bros = lessons of Ikari Warriors (except with side-view instead of top-down view), acceleration, jumping, platforms
 

MoGamesXNA

Unconfirmed Member
This guy knows what he's talking about. Especially on the restarting trap you could run into as a first time.

That article is spot on.

To the OP, I'd recommend starting with Unity and learning some basic Java or C# scripting/ basic programming initially. Be prepared to sacrifice some 'social' time and sleep. Stock up on coffee too.

I started here:

41ED1jo96gL._SL500_SY300_.jpg

Hahah /brofist. Assembly language...for kids? Damn. I started with Commodore Basic. Respect.
 

Om3ga

Member
So a couple gaffers have made their own games. Did you already know how to program from other places, did you take classes in HS or College or did you just buy a book and go to town?

I've always wanted to try it myself, but I always make up time excuses. Maybe if I knew how much time it will take to learn it, I wouldn't be so scared of a time commitment. if any of this makes sense.

So, on the average, going from zero skills in programming, to enough to make a workable game (excluding the talent quotient). about how long is the average from knowing completely nothing to just enough to skirt by?
What kind of game do you want to make? How good are you in math? (not 1+1=2 math, but algebra, formula's equations etc.). Are you good at problem solving? How great is your memory?

Depend on what you could define as a, "game", you could go from not knowing anything to writing a code for a game in a few hours.
 

TheExodu5

Banned
All you need is very basic c# or Java knowledge if you plan on using an engine like Unity. A few weeks of toying around with tutorials and sample projects should give you a good overview if you give it enough effort. If you want to design a game and engine from scratch, then you're looking at a lot more effort and skill required. Also, 3D is a bitch if you're not good at math.

This article has some pretty good tips for beginning game programming:
http://www.gamedev.net/page/resources/_/technical/game-programming/your-first-step-to-game-development-starts-here-r2976

I especially like his suggestion for what game(s) to start with:

Very good idea there. Try making pong in the language of your choice. If you want, submit your code for review here and some of us can take a look at it and critique it if you'd like. That will give you a lot of experience.
 

L Thammy

Member
If you already have a solid foundation in programming logic, data structures, and OOP, you may be interested in Riemers online tutorials. Another great resource is Frank D. Luna's books on 3D game programming. Also, the DirectX SDK has several examples you can tear apart.

Before all that, a 3D Math Primer may be worth reading if you're rusty.

Thanks. Do you know if the C++ and C# tutorials cover the same area? As in, should I both or stick to one?
 

ULTROS!

People seem to like me because I am polite and I am rarely late. I like to eat ice cream and I really enjoy a nice pair of slacks.
Try out making simple applications first on C, C++.

If you can handle it, try out games. AFAIK, game programming is one of the (or probably the) hardest forms of programming.
 
Right now i study Game Engineering in germany. We started with Java and Unity and now we make a engine with C++. Start with the same basics. Unity is a good free engine you could start with. Make a few programms with Java via Netbeans or Eclipse. Then you could try to make your own game engine. You should learn via Internet or Books to get the most out of it.

Edit:C#,C and C++ are the best game making languages. Stick to them.

And we had our first game on the first day. The quality was meh but it made fun.
 

cameron

Member
Thanks. Do you know if the C++ and C# tutorials cover the same area? As in, should I both or stick to one?


XNA is C#, while Riemer's DirectX tutorials cover the same material, more or less, in C++ and C#. Either is fine. I wouldn't recommend doing both. You'll reach a point where you'll want to do more or learn more, and that's when you'll want to bounce to books with advanced topics. These tend to be in C++, though.

The gamedev.net community is also another great resource whenever you get stuck/lost. Especially when you're learning on your own.
 

nullset2

Junior Member
If you want to learn programming only to make a game, you're not going to learn to program and it's not going to work out for you because you will lose interest if you take that approach, as anybody experienced in computer programming will tell you. An actual programming course will never take into account gaming. There's no "how to be Miyamoto 101" in any student program in the world (hell, Miyamoto was a fucking illustrator before he got designing games and never a programmer, that should give a clue perhaps).

If you want to make a game in the actual technological landscape learn game design first. Get a free game engine and tinker with it, and learn a SHITLOAD of math, trig, calculus, physics and algorithms. Learn how to produce and edit media, images, video and sound, and be familiar with it. Read more interesting stories and expand your vocabulary, listen to better music and look at tons of visually interesting stuff and meet interesting characters in life. Play lots of board games. There's way lots more to making games than programming, and in the great scheme of things whatever actual programming you may need for your game will be not very complex, and you no longer need to go "deep down the rabbit hole" to get stuff running on computers (again, considering the current technological landscape).

If anything, if you're still interested in programming but not as your main interest but as a part of other pursuits, do please familiarize yourself with how modern programming languages generally work: C/C++ is the golden standard, java is more for enterprise purposes, can get really verbose and weird code-wise and the jvm can be a bitch but it's good enough, in places it's almost like "C++ for people who don't know better and fear memory manipulation". python is pretty, simple C, amazing to begin with but you'll hit limits if you want to do very complex things, lua is another good option, similar to python and lightweight (and interestingly, it's used for source engine stuff). If you're into developing stuff for the web, get into html(5) and css, javascript-node.js-jquery... and maybe database stuff... There's a governing paradigm in ALL the programming stuff I just mentioned, learn that. Study data structures, as well, this can't be stressed enough.

In any way, though, PLEASE don't fall into the trap of believing that you'll be making games in no time because you're a programmer, or that you'll become a game stud after you take a java 101 course, because it will never happen that way. Programming is only rather like cement for the bricks in the house of making a game.
 

Hypron

Member
This article has some pretty good tips for beginning game programming:
http://www.gamedev.net/page/resources/_/technical/game-programming/your-first-step-to-game-development-starts-here-r2976

I especially like his suggestion for what game(s) to start with:

I'm really tempted to try that. I'm studying engineering so I've done a bit of programming (C, Python, MATLAB and a bit of OoP in C++), but I've never really worked on anything more than what my courses required me to do... Re-creating Pong might be quite a cool experience. I don't know anything about graphics though (I've only learnt how to make command window programs...) so I'll have to read up on that.
 

kamakazi5

Member
I've started learning programming recently with no prior knowledge. I'm using Unity and the programming it isn't what worries me anymore, it's the art and animation. I'm not naturally very artistic so maybe that's why but it takes way longer for me to make some that looks nice than to program it do something.
 
I'm trying to go for a sports game, like bowling. Something with a known ruleset.

My math is rusty (haven't done any since College Statistics/Financing) I got A's in those courses back in the day (so it's been about 4 years now since I started).

I don't have a ton of free time, but I could make some for this.
 
Too keep it simple, it's not an overnight endeavor and can take a really long time. Not everyone can be a good programmer, especially those more artistically focused.
 
Ive made a few Skyrim mods with Blender and it has been difficult for me.
I'd imagine doing any of this stuff on some kind of pro level, would take years to learn.
 

sneas78

Banned
Bump. It’s been years since this topic started. We have so much more to work with as far as not needing to code to make games. I’m curious if op made it or gave up? Maybe it wasn’t something he liked after all? With Dreams in ps4, buildbox for pc,Mac, fusion, Gdevelop, game salad etc. has anyone in this thread made any games for the playstores .. android and iOS? Or pc etc. I would be interested to know. Even nintendo switch has FUZE4 SWITCH. Which you can make games on. I wanted for years to make something an idea I had, but it was always to damn complicated.. but now I have the time to learn.. I’m expecting to fail again, but I know I won’t live with myself if I don’t at least try, try and try again.
 

Kazza

Member
Bump. It’s been years since this topic started. We have so much more to work with as far as not needing to code to make games. I’m curious if op made it or gave up? Maybe it wasn’t something he liked after all? With Dreams in ps4, buildbox for pc,Mac, fusion, Gdevelop, game salad etc. has anyone in this thread made any games for the playstores .. android and iOS? Or pc etc. I would be interested to know. Even nintendo switch has FUZE4 SWITCH. Which you can make games on. I wanted for years to make something an idea I had, but it was always to damn complicated.. but now I have the time to learn.. I’m expecting to fail again, but I know I won’t live with myself if I don’t at least try, try and try again.

Just the other day I came across this old topic:



For me, making a game on an older system sounds more interesting. Like the OP says in that thread, something like the Dreamcast is still old enough to still require some "coding to the metal", but the hardware limitations are quite as exacting as working with an even older system, such as the Megadrive. While it would be easier to just work to modern specs, I personally would enjoy the challenge of working with older hardware (plus is holds some sentimental value for me too). If I was really up to a challenge, I would try to design a Megadrive/Mega CD/32X game using resources from all three, but I fear that would be a challenge too far for me.

I think making a game as a side project would be very fulfilling, as it involves lots of left/right brain cooperation (left: programming logic etc, right: graphics, sound etc). I'm going to be learning Python anyway for non-gaming purposes, so hopefully that will give me a good foundation in programming skills for when I do decide to make my Dreamcast game (even if the language used will obviously be different).

Good luck. I think we should all be trying to learn at least one new skill during this virus crisis.
 
Here's an article I found with a lot of good advice and resources:
https://www.codementor.io/@npostolo...tting-started-with-game-development-hbjxwk1xw

If you haven't programmed before, it's best to start with a popular simple language that can give you immediate feedback and one that has a huge online community for support like JS or Python. You want your code/test iterations to be as frictionless as possible so you're maximizing your learning time and minimizing fiddling with tools.

These languages are also heavily used in the software industry conveniently, giving you some really useful in-demand skills people will gladly pay you for.

Be prepared to hit a wall at some point though as you turn your focus to more tedious aspects like asset management, etc. This is where you likely want to look into apps like RPG Maker or Unity or whatever.
 
Last edited:
Top Bottom