How to Make a Game Engine
Choose your Language., Find a course., Practice., Think of a Game Idea., Formalize your Idea., Recruit Help., Research., Draw Something., Make Perspective., Move Around., Add Textures (Images)., Add Audio., Add Lighting., Add Collision Detection...
Step-by-Step Guide
-
Step 1: Choose your Language.
There are a variety of languages from which programs are made.
The language you choose doesn't matter too much, but the most important thing is that you start somewhere.
There are many programming languages to choose from, but most go with C or Java and they are also the most useful in Game Development.
Once you learn one language, it's much easier to learn another. -
Step 2: Find a course.
The most effective way (in my opinion) to learn programming/computer science is to take a class! Whether this is a class at your school, or outside of school shouldn't matter.
No matter who you are, you can find a programming class that suits you.
MIT OpenCourseWare (http://ocw.mit.edu/) has a variety of free classes.
If you look around on Google, you'll find a number of other sites that also have free lectures and classes available.
You could also have a friend teach you a language, sharing is caring. , You don't want your first game to be you big, important game.
You want a chance to screw up and not care too much about your project.
Try to make a simple game.
If you learned Java, check out the Swing package.
Don't worry too much about this project(s), they should only take up a few weeks of your time.
Learn from your mistakes. , Try to challenge yourself.
That way if you don't achieve all you set out to, you'll still (probably) have a pretty good game left over.
Think for a while, don't feel pressured to do this in one sitting.
Sit on your idea for a while so you know it is good. , Technical communications is important in any kind of engineering, including software engineering.
You don't want to tell someone that you're making an apple and they go and make you audio for a pear.
Write up a "Game Design Document".
These are used in professional game development, but more importantly, they easily communicate your idea(s) to others.
There are many free templates available online. , You don't have to go at this alone.
It's also more fun and exciting in a group.
You can't make a custom game engine and manage the project without help.
Ask your Friends first before going to strangers or advertising for help, you'd be surprised who would love to get into the game industry. , Look into what you're going to do before you do it.
Even when you make an engine from scratch, there are still a number of tools that you could make your engine out of.
Look into "OpenGL" if you learned C and "JOGL" if you learned Java.
Maybe buy a textbook on OpenGL, "Redbook" is the most famous one, but it is online for free. , Render a primitive or 2D object to get started.
Make a 2D triangle, or a cube.
Look into "Display Lists" so you can draw many primitive objects. , There aren't many games where you can't change where you're looking.
Make the perspective of your game (First person perspective, top-down, etc.) , One step at a time! Except not actually because stepping is actually kind of complicated.
Either move everything around the camera or move the camera view port, but they are the same to the processor.
Be able to move in all angles, not just along the axis. , That default color will get old after a while, and not many games are used with only solid colors.
Splice them into your display list(s). , This makes your game much more interesting and realistic.
Perhaps footsteps for when you walk. , This also adds to the realism.
Learn the different kinds of lighting.
Use a sphere instead of a cube to make sure the lighting is working.
You could put a primitive object where the light should be coming from to debug.
Just make sure the light can get out of the box/sphere you put it into. , The biggest thing people notice when you show them an incomplete game engine is the lack of proper collision detection.
Make it impossible to walk through the cube.
Make it possible to move (in other directions) when you are colliding with the cube. , Most games have falling things somewhere.
Make a floor, and jump around on it. , Don't forget to market it.
You may want to enlist a marketer (friend) to help you.
Assume your game is going to be a hit so that way you can work towards that.
Have Fun! , Don't be coy, tell other developers that you made a game engine.
You don't have to be the only one to develop with your engine.
When you let other people use it, you have the right to some of their royalties, but also you get constructive feedback and perhaps improvements to your engine.
Game Engines are valuable and impressive.
Did you notice how much those other engines are charging indie developers? (You could be that engine!) Use your engine to get wannabe game developers into the industry! , Start your journey into the booming game industry! Now you can laugh at your friends who said "Unity was easier". -
Step 3: Practice.
-
Step 4: Think of a Game Idea.
-
Step 5: Formalize your Idea.
-
Step 6: Recruit Help.
-
Step 7: Research.
-
Step 8: Draw Something.
-
Step 9: Make Perspective.
-
Step 10: Move Around.
-
Step 11: Add Textures (Images).
-
Step 12: Add Audio.
-
Step 13: Add Lighting.
-
Step 14: Add Collision Detection.
-
Step 15: Add Gravity.
-
Step 16: Finish Your Game.
-
Step 17: Manage Other Games.
-
Step 18: Good Luck!
Detailed Guide
There are a variety of languages from which programs are made.
The language you choose doesn't matter too much, but the most important thing is that you start somewhere.
There are many programming languages to choose from, but most go with C or Java and they are also the most useful in Game Development.
Once you learn one language, it's much easier to learn another.
The most effective way (in my opinion) to learn programming/computer science is to take a class! Whether this is a class at your school, or outside of school shouldn't matter.
No matter who you are, you can find a programming class that suits you.
MIT OpenCourseWare (http://ocw.mit.edu/) has a variety of free classes.
If you look around on Google, you'll find a number of other sites that also have free lectures and classes available.
You could also have a friend teach you a language, sharing is caring. , You don't want your first game to be you big, important game.
You want a chance to screw up and not care too much about your project.
Try to make a simple game.
If you learned Java, check out the Swing package.
Don't worry too much about this project(s), they should only take up a few weeks of your time.
Learn from your mistakes. , Try to challenge yourself.
That way if you don't achieve all you set out to, you'll still (probably) have a pretty good game left over.
Think for a while, don't feel pressured to do this in one sitting.
Sit on your idea for a while so you know it is good. , Technical communications is important in any kind of engineering, including software engineering.
You don't want to tell someone that you're making an apple and they go and make you audio for a pear.
Write up a "Game Design Document".
These are used in professional game development, but more importantly, they easily communicate your idea(s) to others.
There are many free templates available online. , You don't have to go at this alone.
It's also more fun and exciting in a group.
You can't make a custom game engine and manage the project without help.
Ask your Friends first before going to strangers or advertising for help, you'd be surprised who would love to get into the game industry. , Look into what you're going to do before you do it.
Even when you make an engine from scratch, there are still a number of tools that you could make your engine out of.
Look into "OpenGL" if you learned C and "JOGL" if you learned Java.
Maybe buy a textbook on OpenGL, "Redbook" is the most famous one, but it is online for free. , Render a primitive or 2D object to get started.
Make a 2D triangle, or a cube.
Look into "Display Lists" so you can draw many primitive objects. , There aren't many games where you can't change where you're looking.
Make the perspective of your game (First person perspective, top-down, etc.) , One step at a time! Except not actually because stepping is actually kind of complicated.
Either move everything around the camera or move the camera view port, but they are the same to the processor.
Be able to move in all angles, not just along the axis. , That default color will get old after a while, and not many games are used with only solid colors.
Splice them into your display list(s). , This makes your game much more interesting and realistic.
Perhaps footsteps for when you walk. , This also adds to the realism.
Learn the different kinds of lighting.
Use a sphere instead of a cube to make sure the lighting is working.
You could put a primitive object where the light should be coming from to debug.
Just make sure the light can get out of the box/sphere you put it into. , The biggest thing people notice when you show them an incomplete game engine is the lack of proper collision detection.
Make it impossible to walk through the cube.
Make it possible to move (in other directions) when you are colliding with the cube. , Most games have falling things somewhere.
Make a floor, and jump around on it. , Don't forget to market it.
You may want to enlist a marketer (friend) to help you.
Assume your game is going to be a hit so that way you can work towards that.
Have Fun! , Don't be coy, tell other developers that you made a game engine.
You don't have to be the only one to develop with your engine.
When you let other people use it, you have the right to some of their royalties, but also you get constructive feedback and perhaps improvements to your engine.
Game Engines are valuable and impressive.
Did you notice how much those other engines are charging indie developers? (You could be that engine!) Use your engine to get wannabe game developers into the industry! , Start your journey into the booming game industry! Now you can laugh at your friends who said "Unity was easier".
About the Author
Jean Cooper
Enthusiastic about teaching practical skills techniques through clear, step-by-step guides.
Rate This Guide
How helpful was this guide? Click to rate: