Creating a 2D game by yourself possible? How difficult?

Started by
22 comments, last by Domarius 16 years, 11 months ago
Hello. I was wondering how difficult it would be to create a 2D game for someone with "little" coding knowledge? By little I mean someone who is learning how to code by reading books and a few tutorials? And how much math is required? At the moment, I don't have any knowledge in coding. I plan on learning this summer by reading books. The game I would like to create is a beat-em up game. Someone else can code the score, points and mathimatical stuff. I would just like to focus on the core gameplay. Another question, how long would a game like Final Fight take to develop? (no sound and average visuals) just so I can get an idea. :) Thanks in advance.
Advertisement
Hey. You're clearly motivated and that's good. For a first game, I'd try using a GUI toolkit like Game Maker [ www.gamemaker.nl ] first. It introduces basic coding concepts, as well as resource handling.

Also,

2D Game: Easy. Especially with Game Maker or Multimedia Fusion.
2D Beat-em up: Difficult. I'd try an Asteroids clone first.
Final Fight: As with the previous one, try something simple first. If you try this first, it will take a _very_ long time and will probably feel "broken". On the other hand, you will learn from your mistakes, which is good.
Just by reading your post and you saying that you have none to little experience in programming, it will be pretty hard, or almost impossible, to make a game, even a 2D one.

Once you learn basics about programming, like data structures, algorithms, you should learn object oriented programming and some design patterns (although design patterns are not necessary but sometimes helpful) THEN you should start to learn game programming. A good way to learn programming is by making little applications that solve one thing or accomplish one task. You can think of these up by your self, like "how would I open a file, read the contents and sort it?" then expand on it. Another good way is to look for programming problem sets, like here http://acm.uva.es/problemset/ Many of these my be out of your range, but they are a good learning experience.

For game programming, there are A LOT of subjects that you would need to look into like graphic libraries, how to handle input, collisions (especially) and many, many more. Once you learn basics about programming, ONLY then you should learn game programming. I know this from experience, learning programming by making games is VERY difficult since you are learning two or more ideas/subjects at one time.

Once you learn all that, what I would do is sit down and design stuff out on paper (or whatever), such as what kind of things you need for you game and game objects. As for a game like Final Fight, there shouldn't be much math involved, the only ones that I see are collision detection and movement for "math" related to the game. My guess for a game like Final Fight to be developed now might take a few months with a small team (3 or 4 people). Someone needs to do art and testing like crazy and the others coding. The scoring and points system is straight forward, when you attack an enemy increase your points, and when you get hit, decrease you health.

This would be a difficult project for you to accomplish by the end of summer since there are many things to learn. I'm hope I'm not discouraging you in attempting the project, I am just giving you advice on what you SHOULD do first. Learn a solid foundation then attempt some projects, such as games.
Quote:Original post by davek20
Just by reading your post and you saying that you have none to little experience in programming, it will be pretty hard, or almost impossible, to make a game, even a 2D one.

Once you learn basics about programming, like data structures, algorithms, you should learn object oriented programming and some design patterns (although design patterns are not necessary but sometimes helpful) THEN you should start to learn game programming. ...


Well that was discouraging.
While such topics are Very Important for Advancement. Pong does not require any of it at all. I think I remember doing a VisualBasic Pong game once, with little to no knowledge, a Long Long time ago, in a galaxy far away...

This is not to say that VisualBasic is by any means a good starting language for game programming; but there are tutorials for it and it'll cover the graphics and keyboard input without much fuss, if you want results...
Well, what language are you going to be using? C++, Java, C#, Python, or what?

It is entirely possible...just very hard. If you stay motivated and want to learn then you can do it. Just keep programming on and you can do it. I have done it when I first started learning...though it sucked.


Chad

It's not that hard to create a "game". Motivation is the key factor. You can learn most stuff if you just want it enough. If I were you, I would start with a game that's not really coded as a typical game (to learn some basic programming first), but a game nevertheless, to keep you motivated. How do you feel about tic-tac-toe? I would go for that if I were you.
Development blog, The Omega Sector -- http://www.omegasector.org
Quote:Original post by Escobar4Life
At the moment, I don't have any knowledge in coding. I plan on learning this summer by reading books. The game I would like to create is a beat-em up game. Someone else can code the score, points and mathimatical stuff. I would just like to focus on the core gameplay.



The "core gameplay" is actually far more difficult and mathematical (especially in a beat-em-up) than simple scoring.

You'll need a pretty solid understanding of geometry (particularly Cartesian geometry) to do a 2D game, and a bit of problem-solving and analytical thinking skills. As the others have said, though, these things are completely possible to pick up as you go, provided you're motivated enough.

Making a beat-em-up is a great end goal, but you might find it useful to have some intermediate steps along the way. Doing simpler things like tic-tac-toe, a PacMan/Tetris/Asteroids/etc. clone, and so on will help you learn the things you need, but with a major bonus: you can focus on learning just a couple of things at a time, rather than having to try and figure everything out all at once.

Plus, doing more projects means more experience, and experience is hands-down the best way to learn programming. You'll inevitably make some mistakes on the way to creating your fighter game, which you can use to your advantage to help make the game that much better.


Going from having no programming experience, I'd say you're looking at about a year or so of learning to be able to do a good fighting game, assuming a moderate amount of time spent each week, and assuming you stick with it. Having some intermediate projects along the way will also help you keep a sense of continual progress, which can be important for staying motivated.


Best of luck [smile]

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

This is sort of what I'm doing right now... so these are my personal experiences...

I find that the difficulty of the technical stuffs is next to nil. My issue is the time that it takes to build what I want. That's the challenge. Nothing is too overwhelming in itself, but once all pieces are accumlated together it's one big freakin' task.

I've been tinkering away in my spare time, about 10 hours a week, plunking away at for the past 3 years... in java. I plunked for about 5 years in C++ before that and 2 years in pascal before that. I expected it would take a couple of thousands of hours to assemble something pretty... and fun... and technically correct to my standards.

Now, I've back tracked alot through this, and tried out many algorithms and data structures... see what works for me and what doesn't. I've also bit off quite a bit more then I can chew... which I understood going into it. All is not lost. I've learned mucho information that directly applies to my job... so it was partly training too.

Another thing that happened here is that I tried my own hand at pixel art... for the graphics... and I have a new found respect for my game creating companion(I'm a coder by nature)... This is at least 500 of them there 2200 or so hours I've dedicated to it so far...
My approach to programming has always been learning by doing. I started in an awful language called QuickBasic; however, it had a very flat learning curve, so I could building games with it immediatly. Without that kind of quick visual feedback, I probably wouldn't have given programming a chance at all.

Which is why I want to recommend an even simpler, but incredibly easy language and IDE called Scratch.

You will get something on the screen immediatly, and there are many helpful examples in the package.

It will teach you the very basic concepts, which are applicable to all imperative languages, and you'll even get a bit of concurrency training for free.

Once it starts to feel limiting, you'll be ready to move on to non-toy languages.
Thanks for the information guys/gals. It was really helpful. Sorry for the late reply. I forgot about it.

I only have 2 programming books at the moment. One of them is straight up C (?) and the other book is for game programming. I'm not sure which one is C# and C++. I'm pretty sure the game programming book is on C#.

Anyways, when I was reading the C++ book I made the traditional 'Hello World' application. It was easy because you pretty much copied what was written in the book. But I did learn what each code meant and I even understoon the characters in a coding format. But I stopped reading late last year.

So I'm going to read the books again to learn how to program. Like you guys said, I will start by making small applications. And maybe small, simple games. I guess I was thinking too far.

But yeah, my goal is to create a 2D beat-em up by myself or with a tiny group. I was actually thinking of doing all the coding and having another person work on the art and another person with the sounds/music. I would love to do the art though.

The reason why I would like to code the game myself is because I don't think another person will do a good job. By that I mean making the gameplay exactly the way I want it. lol. Yeah, I know, I'm thinking way ahead. But I'm extremely motivated for this project. But the math thing still has me worried. I read mixed opinions about it and I'm terrible in math.

By the way, I'm taking 'game development' classes in college that focus on art. My 3D Graphics & Animation 1 class ends next week. But I'm going to take that class again next semester. Other classes I will take next semester will be story board(ing?) too.

But I want to make 2D games first. As for 3D games, I'll only do the 3d stuff. lol. I don't wont be making 3D games because I plan on working in a studio once I'm finished with college. =)

Anyways, one last question, if I start reading one of the books I have and I dedicate a few hours of my free time to it, how long do you think it will take to create a simple game like pac-man, pong, etc.? Assuming I spend about 8 hours a week studying the language starting today? Again, I know it varies from person to person but I just want to get an idea. I would like to impress a certain someone with a simple game while I'm at it. :)

Thanks in advance. I love this forum!

This topic is closed to new replies.

Advertisement