• Welcome to Overclockers Forums! Join us to reply in threads, receive reduced ads, and to customize your site experience!

Making a Game from Scratch

Overclockers is supported by our readers. When you click a link to make a purchase, we may earn a commission. Learn More.

kristian221

Member
Joined
Apr 16, 2011
I wanted to learn how to make a game from scratch. I suppose that would mean building my own little engine, even if it is just made to work for one game. I would like to use C++. Where would you recommend I start? Would I want to use something like OpenGL or DirectX, or is that not considered starting from scratch? I can't think of an engine off the top of my head that ever went lower than that level.

Also, just to clarify, this is just for educational purposes. I am a student game designer looking to learn the deeper levels of programming a game. I want to have more control over my personal projects and I think this would be fun to do.

Thanks for your time!

EDIT: Just to give an example of what I would want to start with in terms of complexity: Probably just a sprite that moves right, then slowly learn more and more until I can make something like pong.
 
Last edited:
I am a programmer by partial trade (it isn't my main job, but I do it nearly daily), I'm getting close to completing my Computer Science degree, and I live with a roommate that specifically went for the game design portion of our degree. This roommate has had me help him with is game project many times now and we've spent days simply discussing the details of the project.

Making a game is a huge task unless you want to turn out crap products, especially if you are working alone and haven't done this before. If you are absolutely serious about doing this, you need to start with the design of the game and work from there. You can't built an engine if you don't know what the requirements are, what type of game you are going for, etc. Completely write out your idea for the game in extreme detail. From there, you can build a requirements sheet for the engine and actually start on the game.

Having the requirements written out gives you an outline to follow. You wouldn't write a 15+ page paper without an outline, would you? I really hope not as it would be messy, barely glued together, and probably a pain to read.
 
I am a programmer by partial trade (it isn't my main job, but I do it nearly daily), I'm getting close to completing my Computer Science degree, and I live with a roommate that specifically went for the game design portion of our degree. This roommate has had me help him with is game project many times now and we've spent days simply discussing the details of the project.

Making a game is a huge task unless you want to turn out crap products, especially if you are working alone and haven't done this before. If you are absolutely serious about doing this, you need to start with the design of the game and work from there. You can't built an engine if you don't know what the requirements are, what type of game you are going for, etc. Completely write out your idea for the game in extreme detail. From there, you can build a requirements sheet for the engine and actually start on the game.

Having the requirements written out gives you an outline to follow. You wouldn't write a 15+ page paper without an outline, would you? I really hope not as it would be messy, barely glued together, and probably a pain to read.
Sorry, I updated my post just before you replied. I wanted to start off with just a sprite moving right, and then moving up to something like pong. This is just to dip into that side of things, to learn what goes into something like this. This is more for my personal interest than anything else.
 
Sorry, I updated my post just before you replied. I wanted to start off with just a sprite moving right, and then moving up to something like pong. This is just to dip into that side of things, to learn what goes into something like this. This is more for my personal interest than anything else.
That is a lot more reasonable and a great place to get started. My roommate uses Allegro for the graphics engine, but I don't touch that part of the project. Beyond that, I can't give any suggestions as it isn't my specialty.
 
I suck at programming, so C++ I don't know about.

However, I did make a Space Armada type shooting game in java. Code is a tad messy because it was a high school project but there is commenting to help.

I can post the game files and such if you'd like.
 
I took c++ and an introductory course to openGL waaay back in college and I can tell you that you need to just learn some c++ first. Once you understand the language somewhat try something more ambitious.

c++ is a very complex language and a very powerful one. After you grasp class creation and pointers (ack) you could try including the openGL framework and see what it takes to just create a shape and render it.
 
I would check out Unity or the new Unreal 4 engine, they apparently have great developer tools built in to help get you started and are very modular. I believe they also have a YouTube channel to give tips and tutorials.
 
How familiar with programming and design in general are you? How about C++ specifically? Depending on your background knowledge, jumping straight into OpenGL might be a bit bold. If you're serious about making a career out of this, then C++ is definitely the language you want to concentrate on. It won't be the easiest (by far) or quickest, but you'll learn much more along the way.

If your goal is just to get something presentable as quickly as possible (while still learning a little bit), Java might be a better fit.
 
Nope. I can take as long as I want. This is just for fun. I want to make it from scratch. I have worked with Unity, Unreal, and GameMaker. Done basic C++, C#, and Java.
 
Get ogre3d, it is written in c++ and it is open, so you can actually look at their source code.

and most of the systems need to be implemented anyway.

If you want to do everything from scratch, well be prepared to get a lot of headaches.
We did make a small graphics engine back in school, and it was no fun at all.

Getting to draw something on screen is one thing, making it work good on the other hand . . .

And you will need to learn shaders, and how the Directx/OpenGL pipeline works (and they differ from version to version), know linear algebra to some extent and have a good math background.

but when you get it to work, nothing compares.

so good luck!
 
Get ogre3d, it is written in c++ and it is open, so you can actually look at their source code.

and most of the systems need to be implemented anyway.

If you want to do everything from scratch, well be prepared to get a lot of headaches.
We did make a small graphics engine back in school, and it was no fun at all.

Getting to draw something on screen is one thing, making it work good on the other hand . . .

And you will need to learn shaders, and how the Directx/OpenGL pipeline works (and they differ from version to version), know linear algebra to some extent and have a good math background.

but when you get it to work, nothing compares.

so good luck!
Yeah, it doesn't seem my school really wants to touch on the subject, so I have to go out and learn it myself. I am thinking I will just start with OpenGL, seeing as it is free and open source.
 
i recommend you to get good at c++ first, get good at classes and feel comfortable with working with classes structs, ect, i recommend you learning a little of Qt , that really helps getting good at classes and inhareits ect,

after that you can use a premade engine, but if you want i guess you should start with openGL , i only made 2 games both 2d :D a breakout with Qt, and a shooting jumping robot with java but in 3d it gets really hard and complicated, you should work with a team to do that, its not that simple !

anyway first start with some 2d games too see how games work,
 
Since this is a learning exercise for your personal growth, I'd go with C++. You'll have better control over every aspect of your code, and won't have any dependencies (or the overhead) of the .NET framework (which pretty much means a dependency on Windows). Higher level languages like C# tend to spoonfeed you, and so much of the code you use is written for you as part of the .NET framework. C# is a great language for a lot of things, but learning game design probably isn't one of them.
 
If you want to build a game that is OS independent, you would go with c++ and OpenGL.

C# is Microsofts, .Net language.
 
Back