Can you just sit down and make a game?

Think of it like this: For a person just starting to learn the English language, that anyone could sit down and in a few minutes create a long post, barely making mistakes, would seem as amazing as what you’re mentioning.

In the end, programming is a skill, and as you practice, you learn techniques that become second nature. So these “amazing” programmers are not so good because they are some kind of geniuses, but because they’ve practised so much that much of the process just comes to mind effortlessly.

Another example: Ask someone who has always driven an automatic car to give you its thoughts on manual gear shifting.

As for where you’ll be in 10 years? Hopefully, still learning. You never really stop learning, which is kind of awesome. There’s always some new trick or technique to try! Some new technology to integrate! New tools to play with! :slight_smile:

There is the culprit.
You just can’t know everything and - here comes the good part - you don’t have to.
I have no clue about OpenGL and have no intention to learn it unless I have to and still is my developed game driven by OpenGL.

Decide what you want. If you want to make games, take a ready-to-use matured higher level library/engine and go.
It is daily business to use other people’s libraries in professional development.

For beginners, no home brewed game engine monsters please, no multiplayer games, no RPG, no fancy threading, no entity-component-stuff. Grab some good books to learn the basics about programming (OOP, architecture, structuring, clean code, patterns, etc.)
Don’t waste your time hanging out in internet forums too long…

Keep going and accept that it takes years (means working in full time) to become a (good) programmer. Always stay open to new and different ideas, never get dogmatic about technologies, approaches, etc., learn to live with 2nd best solutions.

:wink:

The only game I’ve finished was a chess game, which I wrote in my lunch hours at work. It took about twenty lunch hours, and it all seemed to go like a dream. Not typical for me, sadly.

Oh, I know Java pretty well, that’s not a problem. Its the things like all the algorithms that I don’t know yet! It frustrates me when I ask a question and ten minutes later someone answers with some long spiel of numbers and equations and I’m just like… Well how do you know that? I guess my lack of experience is probably my biggest problem, I just haven’t made games for long enough to know the stuff I need to know. But it’ll get better! I’ve been figuring out more and more, and I’m starting to notice I can answer more technical questions, and it just feels so nice.

Its just I know all the concepts behind most of the code I want to implement, its just sometimes I have a hard time turning ideas into real results or code.

nope, cus when i do … nothing but spaghetti code comes out. if the project is big enough i have to plan it out and then code it, then take a break, see how i can make it better, then go back and refactor most of the code hahaha . This especially when working with new things ive never touched before.

Couldn’t agree more. Although I would replace “2nd best solutions” with “solutions that work”, no grading is needed. The only thing that novices tend to do wrong there is to want to have or create the BEST solution, which doesn’t exist.

Well, I started a challenge for myself where I’m going to make a few games in the next couple of weeks ranging from really easy to intermediately hard. And I’ve got to say, I used a lot of the advice from this thread and it worked out well. First off, I didn’t try to future proof anything. In lots of my other projects I try to code for all the possibilities in the future because I don’t like refactoring code, but I decided to not do that this time, and I made a game in just an hour and a half. Second, I went with the second best solutions. For a lot of my math and algorithms I coded them in a way that looked visually appealing and so they are good enough, but I didn’t over complicate things.

I have to say, its really nice not having to spend hours on a single algorithm because I’m trying to perfect it. As long as it works and its sufficient for you, then don’t worry about it! Thanks guys!

Also, this is my 1000th post!! Awww yeah!! :wink:

For me when I produce a game I usually have multiple days of thought , mainly during dull subjects or ones im finished in before anyone else has started (Computer science). I think about possible features and sketch them down some of these never make it into the game others are fundamental. The only time I have sat down and directly produced a game was when I did ludum dare. Without planning the game turns into a mess of incomplete features and bugs.

I find I make more progress if I don’t plan. When I plan I get oversophisticated, while when I just code I am much more pragmatic. As long as I work in small chunks and refactor continuously, it works quite well for me.

I find that if I code for a while and run into a problem, I can just take a (not even kidding) 30 second break and do something not related to programming and I’ll realize what I need to do.

hmm i have been wanting to make a post regarding the subject on hand. I suppose for me this is an opportunity to explain my view.

I have recently graduated from college with a Degree in Computing with games development, throughout my course i was thought to use Java as the main language and was familiarised with design patterns and principles. Ever since then when ever i feel like making a game i get caught in a web of thoughts that usually paralyse me from programming. I am one of these people who spend more time thinking than actually using the time to do something productive and when this year started i said i was going to design a game, but it had to be in Java and it was to not include any libraries or API’s outside of the standard Java API

I have yet to begin to be honest, every time i have sat down and wondered where to begin i actually find myself coming to this site for inspiration and have even copied and pasted Eli Delventhal’s game loop as a start, but then i encounter issues first of all trying to understand why this recommended loop is better and how i can move stuff on screen without the graphics glitch you get when you don’t clean up after a move, where do i go from here, what about making the code more robust so it adheres to design priniciples, at this point then i find myself stuck in my little web of confusion and get no where. So to answer the question posed by the thread starter, no i can’t. I wish i could but i find myself trying to juggle between creating the most robust game ever and spending hours trying to understand why this works and why that doesn’t.

I don’t dat feeling bro. If you’re just starting out and you want to make a small game, I think you shouldn’t really care about performance. Just code stuff the way you can’t. Now what I will say I’m not saying, because I think I’m better, but since I made few games already I think I can talk about it. If you think I’m wrong, I have nothing against it.

Since you’re saying you graduated from college, that doesn’t mean you can just make a game. You really need to put a lot of effort to make something. Even if you know “principles” and “techniques” from college, I doubt you can just make a game out of them. When I was making my first game, it took huge amount of time for a very shit game. It wasn’t even a game. You couldn’t do anything in it. But I just kept doing stuff and I can just feel that I’m getting better. Problems that were once hard and confusing are so simple I don’t even need to think about them. However, now other problems are rising, but on the whole new level. My suggestion would be not to get caught up in that “web of thoughts” and just do something.

Here is my favorite quote about game development (Probably the only one I know ! :D)
(Something along those lines) “If you want to make games, just make games” - Notch

If you need some kind of inspiration, check out Notch coding stuff for ludum dare… When I lose the will do something I just take a look at the and bam… I don’t even notice how myself, but there I’m working again! :smiley:

Well i certainly agree, if there is anything i learned from college it is that they wont teach you how to make games, they will only give you some of the insight needed to get you on that road.

i have been aware of ludums dare for a while now, never believe i could produce something good enough for it though, especially in that timeframe.

I actually don’t struggle so much with ideas yet, I just struggle with algorithms.

For instance, today I tried to implement simple AABB collision into my game, and because I’ve never actually done it by myself, I couldn’t figure it out, which is frustrating because so many people can do it in their sleep. It’s also frustrating when something you’ve done before that’s easy suddenly doesn’t work, or code shared between different classes doesn’t work the same between them. I have a player class and a zombie class, and with the player I move ~6 pixels every time a movement key is pressed, but for some reason zombies at the same movement speed, they actually move around four times as fast, which is infuriating considering they both use the same basic positioning code.

I guess the only reason I’m comftorable with low level OpenGL is because I’ve used it for long enough that its trivial to implement most stuff now. I just have to make collision detection and other things like that trivial, and then I’ll do alright!

I’m doing LD in a few weeks, so I need to prepare fast and learn some things before I compete so I don’t just rage quit, but I’m very optimistic! I’ve decided I’m going to sit down and make very small programs that deal with the issues I’m facing. For instance, I’ll make a program that helps me learn about collisions, one for GLSL stuff and one for some mid level AI. I think that’s the best way I can think of to learn!

Also, I recommend learning about your graphics API of choice by making a utility library like I did with OpenGL. I learned a lot and I use it to quickly set up new programs and load textures and log files etc… Its a good way to learn and then you can use it to make games!

Best advice about computer science I got from my university was from a professor that said, “We are not here to teach you a language but to teach you computer science and how to learn new technologies.”

I didn’t mean to produce anything. Download the source code, it really should help you a lot.
http://www.ludumdare.com/compo/ludum-dare-22/?action=preview&uid=398

I feel older than most of you now. Haha. Everyone has a few months to a year or two of experience, and here I’ve been programming for 7-8 years.

If I’m just using the Java API, I can program anything. Like anything. Maybe not in the most efficient way (I didn’t know until just a few months ago that HashMap had an entrySet() method), but if it’s a large project, it’d probably be a couple weeks before I found the need to open a browser and look something up.

If I’m using Slick2D, I can pretty much do the same. It’s when I get into LWJGL that I need to start looking up some classes and methods. It’s all about how much experience you have in what you are working with.

i have actually downloaded minicraft source code ages ago actually and when i look at it i usually start thrawling through it and get frustrated at not being able to do something similar, its rather pathetic tbh.

Well, in your defense looking through source code is always pretty confusing unless you’re staring at it for hours every day and working with it. Plus, variable names aren’t un-obfuscated after you decompile the source, so you have to guess what does what. I still don’t understand most of it! (A lot of it!)