Can you just sit down and make a game?

I’ve only been programming for ~3 years now in various languages (Java for two years!) and I’ve been learning OpenGL for one year now. So, I’m still kind of a newbie when it comes to programming. I’ve always envied the developers who seem to be able to just sit down and code without worrying about the actual technicalities of it all. Some people just seem to know so much that they can pretty much make a game in a few days! Now, it won’t be a great game, but I’m still over here with not a single game finished. Probably because I’m lazy, but also because I just don’t think I know enough yet. So, how long did it take you to get to the point where you could sit down and make a good game in a week and not have to spend a quarter of the time researching about functions? And I don’t mean making a pong clone, I mean a full on game.

I recently stalked Notch’s profile on here, and it seems like he can just make amazing games forJava4k without seemingly running into major issues with his code. I really just wondered if and when other people have reached this point? I want to learn all the math and OpenGL and networking and different algorithms so I can just make games. I want to get to the point where staying focused on a project and creating new ideas is the hardest part. Is this possible? Or am I hoping for something that will never happen? Either way, coding is still absolutely amazing and it gave me a completely different perspective on life, and I owe a decent amount of that success to this forum! So thank you everyone! :slight_smile:

Wow… I had no idea that such coders that never run into problems existed!

Yep. I just sat down one day in class and ended up making a space invaders clone in ~2 hours. All of the time after that was just me screwing around with adding in powerups and other things. The base game and all of the systems were done in that short period of time though. Within 3 hours after those two hours of class I had multiple power-up attacks, a GUI, basic sound working and a few other things. It suprised me how fast I created the game, but it was really fun to make so quickly.

As long as you can easily work out how the game will work then it’s almost no problem whatsoever to program IMO.

~Coding in Java for about a year or so.

I guess my main issue is that I always try to learn new stuff right after I finished learning something else, so I’m always frustrated. For instance, I created a program that generates a heightmap using the diamond square algorithm, and then displays it. I reveled in my successes for about an hour, and then suddenly I had the urge to learn how to do face picking to make 3D games more interactive. Now I’ve spent the last week trying to figure it out, and I’ve come up with nothing. I think my problem is that I never just sit down and make a game that doesn’t require me to learn new concepts. I guess I’m more interested in the technology than the actual game :frowning:

@wessles I shouldn’t have said no problems, I meant very few. And when I say make a game, I mean like how Notch can just code for hours and not run into any issues that seem to take him more than 20 minutes to solve. His twitch account is my new favorite thing to watch while I code, he has some pretty amazing videos of him coding on there!

I’ve never gotten that… How do you watch someone code?!
Go! Go! Go! Go!
Dude, he is using a double for positioning?! Is he mad?!
I think he needs more precision for this task
You all are idiots. Don’t you know that doubles are easier to use with java API’s in general?!

Welcome to the club. :wink: Building the internal systems is always more fun then figuring out how to unify them into a “fun” game. I’m the same way with non-game projects as well; although, I do actually finish projects when they’re for work. “Widget” development always felt more satisfying than development of entire applications to me.

Don’t worry about not being Notch. LOL On top of being a highly intelligent individual, he’s had a lot more experience at this than you have. It’s only natural that he’s going to be more proficient. With practice you can get to that level as well, but it takes most people longer than 3 years. I’ve been coding for ~30 years and still stumble across problems that can take weeks to unravel sometimes. That’s half the fun of programming though. ;D Side note: Long before I ever heard the name Notch, I used to sit and marvel at the fact that Chris Sawyer wrote Roller Coaster Tycoon in ASM. It’s always good to have lofty goals.

@Wessles: You’d be surprised the amount of things you can learn by watching someone work through a problem. Even if it’s not a problem you think you’ll ever encounter, there’s just something about watching a fellow programmer overcome an obstacle that’s inherently satisfying (at least for me). 8)

Well, I have no idea why you were talking about doubles, but I do prefer floats for all my positions. And I like watching others code because I find it very cool to see a game go from nothing to something while my game goes from nothing to hopefully something also. Its just calming I guess to me!

Perhaps it’s just a function of experience? I feel the same way most of the time. I set out to make a game, but spend more time working out particular concepts and how to do certain things. As a result, my games rarely see completion. I guess those more expereinced programmers don’t need to do that, so can actually focus on belting out a game? …Wish I could do that… Patience, patience…

Oh I realize that 3 years isnt enough time at all, its just right now I really am wondering what I’ll be like in ten years in terms of coding, you know? I guess I look up to Notch because he seems to be very intelligent and he’s a cool uber nerd. (and he made Minecraft, which got me into coding. But never mind that!) Honestly, having his job would be amazing, but more than anything I want his knowledge. I want to know lots so that I can be that person on a forum that can spiel out long paragraphs of techy words, and be correct about it all. And then I also want to be able to work out solutions to all the problems I encounter in my code without resorting to Google, which I frequently do still. Sure, I’m spending less and less time doing it, but I’d estimate that 10 - 15% of my time is spent googling and looking through code to answer a seemingly trivial question, like face picking or collision detection or why the hell my server is opening thousands of sockets for the second client that connects but not the first or third. That one really pissed me off!

And yeah, I would much rather create a program that teaches me something cool like pixel perfect lighting or scissoring a viewport in OpenGL or loading models etc… Its just more appealing to me than making a game, so I never have the chance to have that feeling of success when you finish a game.

(Background: I’ve been programming games for a little short of 2 years)

Every now and then I code something somewhat complex with absolutely no trouble whatsoever (Not even a stray NullPointerException).
However, such incidents are rare.

I believe that after a while, your debugging skills and program design ability will be good enough to avoid most bugs and quickly clean up the others.

Of course, you will still hit some that can’t be squashed so easily, but that’s programming for you.

A good thing is to practice visualising larger systems in your head in order to help your brain notice interactions between various components of your program. The larger and more complex the systems, the better.

I think your last suggestion is very helpful, and its what I use almost everyday when coding! Just code a little, stop and run it. See if there are any errors in the last 20 lines of code, if not, move on and do it all again.

Now, you don’t need to do this for all the code all the time, but its handy for high risk cases!

About making no mistakes, I could see myself in another year being like you! I just need to stick to it and keep having fun :slight_smile: And work out how freaking block face picking works :confused:

I have been coding for about 2-3 years now exclusively in java. I rarely make games as I focus on the eye candy more then anything else. I thought I was horrid when it came to making games until I took a game programing class this semester. It really did not teach me anything (all about physics) but I got a chance to make a game and call it school. The Cube project I posted in my random projects took 3 days. Taking out the head ache of doing deferred rendering in GL11, Blitz took about a week maybe. I never knew I could produce stuff that fast.

Also remember that you have no idea how much time Notch or others put into games. If you stalk him more on here and read his posts, you will find that he talks about issue that he ran into. Also, he had been a game dev for a while before he started all the stuff here if I remember correctly. It is all about experience. What do you call coding for X years? Only doing your day job if you have one? Every now and then opening up an IDE? Spending every given moment coding? Guess what I am saying is don’t put yourself down.

Here. After you read this post (and if you have the time) write a pong game. Then, add some of your own flare to it and post it here. Next, write a break out game and then a top down shooter. Nothing fancy, just a few levels. With a clear goal in mind, you would not believe how quickly you can write something. Problems show up when you don’t quite know what you want.

Notch said something like this:
“The best tip for making games is just to make games”
Notch didn’t get to this level of game development by studying stuff. He made a lot of games. The reason he seems to know so much, is because he made a lot of games, and he has fixed the issues with code long ago.

Some amount of thinking and planning is always involved. With some years of game development expierence on your back you’ll be able to solve many “problems” just by drawing from your experience with former, similar problems.

I’ve got 15 years of professional coding experience, and from the programming point I surely can site down and produce fairly well code without too much planning in advance. But besides the coding, you also need skills in game design, and this is my problem - I can make demos and engines, but no games.

But I guess if you gave some education with actual game design, and experience as well, you can also sit down and design games right away.

I can make a Breakout game in ten minutes! Go GAME MAKER!!!

The first game I made was in high school using a ti-83 calculator. I didn’t actually intend to make a game per say. It was more akin to putting a tool set together. As I built my tools for this cave game replica, I just made each part of what I needed and glued it together. The game was rough, but you could play it. I guess the advice would be to give your tools purpose. Then a game will evolve from it. Always think about what tools you need to make your objects work.

Getting to a point where creating is harder than technical is the real hell of programming, but it is also the most rewarding. We are spoiled today because we can find the answer to almost any problem by just searching Google. When you have to solve these problems without support it really forces you to use your skill set creatively. I have to do this all the time as an artist. Sometimes you have to wing it in order to get a better result. It is something from art that I applied to programming, but it is highly discouraged among programmers.

Can you hit a zen moment of focus and ideas. Yeah! It is possible for anyone to do this. First you want to have a goal and use your tools to reach it. Then, when you can’t, make or upgrade your old tools until you can. After a while, if your goal is interesting enough, you will get to that point. Just don’t burn out by overdoing it. Work, and when you feel tired take breaks. Writing a game can be a great way to expand your tool set and make a good interactive experience to boot!

I’ve been coding in Java now for ~5 months. I started making games about 3 months ago in Java2D but I had very little knowledge of concepts like inheritance, collections and generics.

The problem I keep facing is wanting more and more knowledge. I envy the people on this forum that have a lot of programming experience. I feel that without deep understanding of how to use something/how it works, I need to learn it, which can be a seemingly long process. I also feel that if something isn’t perfect, I have to improve and redo it. The hardest part I find is that of searching for information that is understandable to someone who has little understanding of how something works. Articles and books, on for example OpenGL, are mostly written without an or with a hard to understand explanation of the terms used. It’s a challenge to actually understand the meaning of the text.

Anyway, to get to the point, learning takes time, effort and dedication. You need to learn one thing to learn another which you need to learn to learn another thing. It’s like a vast circle where you need to find a tiny gap to break into. I’m at the point of starting to learn OpenGL now, but the topic is so broad that I’m finding it hard to find a starting point. Anyway, I guess some day we’ll both come to a point where we decide the moment is right to complete a project. Good luck on your journey.

This is a personality trait which is very good for a number of professions, but in game development usually a “good enough” approach is better - a solution must be good enough to achieve the required result, but spending more time is futile.

Very seldom game code becomes reused, so unless you work on a library, or a game engine (instead of a concrete game), such striving for perfection will not help you.

Speaking of which: GameMaker Studio (standard edition) is currently free in case you know of someone who may be interested in a gentle intro to making games. Sorry for the OT. :wink:

Thanks, you too!

I have to tell you, OpenGL gets far easier to learn and use after you know the basics. I think what screwed me up at first were all the different buffer objects, and the fact that its a state based machine. I just didn’t understand that for a while! But now, after a year, I don’t know everything about OpenGL by a long shot, but its very easy to go look a function up on the docs and just implement it. It gets easier very soon as long as you dedicate time to it every day!

I think I will start off just making small games for a while and slowly make them harder and harder to create. To be honest, I think its hard to finish games for me because I only really use OpenGL for my rendering, and setting up the framework for the game usually takes a few days, and by that time I get bored. But, I’ve been working on a utility library that will sort of take all that away and just let me set up a game’s rendering framework very easily. Its coming along well, and I’ve already used it in my last few projects, even with my YouTube series I started.

I guess I’m just wondering what it will be like in 10 years. Right now its all about learning, and I want to learn as much as I can, but I think in 10 years it’ll be more about making and doing. I’m very excited for my honors computer science class next semester in school because its all about application of code and making programs, which I think will do me good!