road to making a game?

Started by
22 comments, last by Tom Sloper 15 years, 11 months ago
well to put it bluntly I like almost every person on this forum wants to make a game( or another application). My main problem is I dont know what I would need to learn. I am currently learning c++ and nobody is going to stop me there but after the basics i dont know where to go. If i could get DirectX to work on my computer i would want to learn that too along with the needed win32 programming. I am no fool in thinking this will be easy and as it is I know it will take a long time but i would like to know which direction i should go. This is what i want to do if it helps. -learn c++ to a fine degree -make a 2D sidescrolling (megaman like)game that has -one player story line -dialogue -cartoon like graphics -multiple enemys -menus -boss fights -can be transitioned into a zelda like world when outside of a dungeon(the old zelda style no 3D) -decent run time speed -scrolling background in dungeon -(maybe once im good enough at C++ to be made into a handheld game for most likely the psp) -I have no illusions about the amount of time it will take to learn all this (maybe 2-3 years)but I would like someone to give me a list of things i need to learn and maybe some book recomendations. My path and ideas may change but knowing were i need to go for my current idea would help a whole lot. If you can help me please post and i thank you ahead of time oh and again i am sticking to C++ no matter how much easier python or C# is!!! edit: yes i know i have to start with small games. sorry if you guys found that fault. [Edited by - steveworks on May 6, 2008 2:33:52 PM]
---------------------------------------------------------------------------------------Exercise, eat right and be the best you can be!Translation: Play video games for finger streangth and eat lots of hot pockets to be at top programming efficiency.
Advertisement
Stick with C++ if you like it, but I would not suggest starting out with DirectX.
Allegro or SDL would probably be better choices, whereas I consider Allegro the "easier" of the two.

Your list looks good, but I would suggest adding a few things at the top (after learning C++). A tetris game, a space shooter, tic-tac-toe, a remake of an old game you've played and/or a tilebased games (simplifies collision detection). Also, make small "tests" and mini-games just to try new things out. And do not start huge projects in the beginning, make small and fun games.
Check out my devlog.
2-3 years is highly optimistic. The C++ favoritism is foolish (to say the least).

As for books:

C++ Standard Library by Josuttis
Design Patterns by Gamma et al.
oh i know that i would have to make games other that this one to practice. as they say start small.

oh and so what if im foolish this is who i am. ive been told that before and i have blown everyones expectations away in other things. so i am proud to be foolish. (who knows maybe someday i will learn something else.)
---------------------------------------------------------------------------------------Exercise, eat right and be the best you can be!Translation: Play video games for finger streangth and eat lots of hot pockets to be at top programming efficiency.
If you can blow away everyone's expectations taking the hard route, just think what you could accomplish without one hand tied behind your back...
If your interested, there's a free two-volume book in the 3rd link in my sig that teaches C++ fairly in-depth. The second volume also has thorough coverage of STL and a chapter that introduces design patterns. If you're still a beginner, the free book in the 2nd link might be easier to follow.

After you feel more comfortable with C++, probably the easiest thing to do would be to learn SDL and make a pong clone, then a tetris clone (which is harder), then a space shooter and only then a side-scroller. Making these simpler games first will give you a lot of practice and experience.

There are some nice SDL tutorials here. Unfortunately they teach some bad programming practices (considering that you're using C++ and not C), but they still contain a lot of useful information. Besides, if you spend enough time learning C++ you will be able to identify some of those bad practices and correct them.

BTW, why doesn't DirectX work on your computer?
i know i could probably find this out somewhere else but, what the heck is SDL?

just a basic description would be nice and thanks for the liks Gage64
---------------------------------------------------------------------------------------Exercise, eat right and be the best you can be!Translation: Play video games for finger streangth and eat lots of hot pockets to be at top programming efficiency.
It's foolish to sticking with just one language from another one. Why just C++ if I may ask?

What about Java, Python, Ruby, BASIC, C#?

Also I'd like to recommend an article to you. It's called "How do I make games: A path to Game Development" (http://www.gamedev.net/reference/design/features/makegames/)

However, I would also like to add that it's important to learn other languages especially if you'd like to consider game development as a career.

For instance, you may work in a company that only uses XNA as their primary development, which uses C# as the main language.

Or quite possibly,

you get hired as a programmer to make games on Nokia cell phones, which uses Java...

Limiting yourself to a language limits your creativity and work.

Don't limit yourself.

Also, start out small and work your way up.

I'm writing a continuing article on making games using SDL and the games I have non-game developers who have programming experience is Pong, Arkanoid, and Space Invaders since these games are reasonably small and build off of each other.

Once you're comfortable with what you have learned at these small steps branch out slowly and learn new programming techniques creating entities, scrolling backgrounds, maps, animation, etc...

It's like if you want to learn math, and you barely have algebra skills you don't jump into Calculus. NO, you'd be lost over your head you finish algebra, and then trigonometry and slowly progress to Calculus.

Game development is a continuous learning progression depending on how much patience and desire you have for the field.

Good Luck!
If you google the term "SDL", the first result will be the official site. The front page should answer your question.

Also, I recommend that you think about what Telastyn has said. C# is much easier to learn than C++. Using it in combination with XNA (an API that's similar to DirectX but offers more functionality and is easier to use) will make you much more productive. I have no doubt that you can accomplish a lot with C++ and DirectX, but with C# and XNA you'll accomplish much more, much faster.

Think about it.
i am sorry if i mislead you. I meant that currently i have no way of using C# and xna. It was my orriginal plan to learn C# and Xna but my computer is so old it dont work. i want to learn one language for now and even if it is one of the most difficult to learn it can be done. I learn things a little odd as i have been told. When i do math i learn the basics and move up just like you are suggesting, but i also may learn things that are way above my levle. same thing goes with my piano. I dont learn easy things I tackle the hard things and come out better because of it. it may not make sence but it does to me. I did not mean to say that I wont learn other languages I just want to start with this one. I hear that c# should be very easy to learn if i know C++ anyway so i guess if i ever get a new computer I'll learn it and how to use Xna. Again i mean no offence to anyone.

my reasons.
I already know basic to some degree and I just hate the restrictions.
c# my computer stinks so i say no more
Java just doesnt interest me
python i dont know anything about and i never even heard of ruby!!!
---------------------------------------------------------------------------------------Exercise, eat right and be the best you can be!Translation: Play video games for finger streangth and eat lots of hot pockets to be at top programming efficiency.

This topic is closed to new replies.

Advertisement