Steps to Creating a Game

Started by
13 comments, last by Game_Coder2009 14 years ago
I was wondering what the steps are to making a game. I know programming and artwork is required, but what I'm mainly asking is how you put together your programming and art and everything together. If you're making a 3d game how do you put it in your game and how do you program that character? I've heard of game engines but after looking it up I still am not sure what it is so can you guys explain how that goes into the process. If there are multiple ways can you guys explain some or tell me how you guys did it your own way.
Advertisement
Click here, scroll down to "Pie Bells". Its radically primitive and the code is only 1200 lines. Click "Download" to get the jar file to run it (needs Java) so you know what you're looking at, and click "Source" to see the guts!

All the files in the "src" folder are the guts.

The .java files are programming code and the .png files are the visuals.

Its an application just like a text editor. We first decided on the specs - that is, what it would do exactly. We thought about game rules, and how entities on the "set" interact with each other, and how we wanted to make the animations. For example we decided that the computer would see each entity as a simple square, and that's how it'd tell when one ran into another. We also decided that its OK if all animation frames are the same size, and that we can put all the frames next to each other in PNG files.

From there I made a tool that let Nigel (artist) preview animations before I integrate them into the program. This helped him make sure frames were lined up correctly and see what he was doing while the software wasn't done.

Meanwhile, I would write the program, and to test it while artwork wasn't ready, I made "programmer art". For example, the flying hams were originally white squares with the word "HAM" drawn in.

To get the computer code to run like a program, I'd feed it to a type of application called a "compiler" that turns it into an "executable". That parts a little weird with Java but I don't need to go into that.

That took about maybe 20-30 hours combined work. (Didn't really count.)

It was the first game I successfully made with another person.

I'm working without a kit or anything, but I've been doing application programming for a while.

[Edited by - JoeCooper on April 11, 2010 7:18:04 PM]
If you're new to game programming or programming all together, you should check out Game Maker . While I haven't used it, I'm sure it'll give you a good place to start.
From my experience, this is how I would say it. However, keep in mind that this is a very broad question as your asking how to put a game together:

Engine: This is the actual "functioning" part of the game. It tells the keyboard/mouse how to move the player, how to keep track of objects on a map and so forth.

Graphics, Sound, Other Media: This is like the gas for the engine in a car. It gives the engine something to do.

To put it all together, you have data files the engine can read which tell the engine what media to use and where. These data files can also store information about different things like how much health a certain object has, or how fast it can move.
I assume that by this point you've completed the planning stage.

Nothing is worse than trying to make a game with no set plan beforehand.

Quote:Original post by Slateboard
Nothing is worse than trying to make a game with no set plan beforehand.


If you're a beginner, this is actually a good idea because you will learn lots of valuable lessons about project management and the like. Possibly not so good if you actually want to get a game completed in a reasonable amount of time though.

I trust exceptions about as far as I can throw them.
Quote:Original post by bluehailex
From my experience, this is how I would say it. However, keep in mind that this is a very broad question as your asking how to put a game together:

Engine: This is the actual "functioning" part of the game. It tells the keyboard/mouse how to move the player, how to keep track of objects on a map and so forth.

Graphics, Sound, Other Media: This is like the gas for the engine in a car. It gives the engine something to do.

To put it all together, you have data files the engine can read which tell the engine what media to use and where. These data files can also store information about different things like how much health a certain object has, or how fast it can move.


I'm still not entirely sure what an engine is, I mean is just the coding of the game or something entirely different?

And I'm not new to programming as I have been programming for a couple of months now and just trying to get all the steps down to creating a game.

Also I was wondering if you create levels and such in Unity then how would you be able to program those levels and incorporate it in your game?
The engine is the application. The executable.

You can write your own app according to specs, or you can use an off-the-shelf engine like Unreal. When you use such an engine, you define its behaviour in scripts, which the app loads at runtime, just like a web browser loading &#106avascript.<br><br><!--QUOTE--><BLOCKQUOTE><span class="smallfont">Quote:</span><table border=0 cellpadding=4 cellspacing=0 width="95%"><tr><td class=quote><!--/QUOTE--><!--STARTQUOTE-->Also I was wondering if you create levels and such in Unity then how would you be able to program those levels and incorporate it in your game?<!--QUOTE--></td></tr></table></BLOCKQUOTE><!--/QUOTE--><!--ENDQUOTE--><br><br>Do a very small project start to finish and a lot more will just make sense.<br><br>Levels are just data files. You have data structures in a program right? You write code that reads files into those data structures. If you made those levels with a tool like Unity, you'll need to find out how those files are formatted.
Quote:Original post by JoeCooper
The engine is the application. The executable.

You can write your own app according to specs, or you can use an off-the-shelf engine like Unreal. When you use such an engine, you define its behaviour in scripts, which the app loads at runtime, just like a web browser loading &#106avascript.<br><br><!--QUOTE--><BLOCKQUOTE><span class="smallfont">Quote:</span><table border=0 cellpadding=4 cellspacing=0 width="95%"><tr><td class=quote><!--/QUOTE--><!--STARTQUOTE-->Also I was wondering if you create levels and such in Unity then how would you be able to program those levels and incorporate it in your game?<!--QUOTE--></td></tr></table></BLOCKQUOTE><!--/QUOTE--><!--ENDQUOTE--><br><br>Do a very small project start to finish and a lot more will just make sense.<br><br>Levels are just data files. You have data structures in a program right? You write code that reads files into those data structures. If you made those levels with a tool like Unity, you'll need to find out how those files are formatted.<!--QUOTE--></td></tr></table></BLOCKQUOTE><!--/QUOTE--><!--ENDQUOTE--><br><br>So if I made a level from unity then in my coding if the game I would type something like level.open("unitylevel")? Am I getting the general idea of it?
The short answer is yes.

If you're using Unity, you'll have to look up the details.

If you're writing your own app, you'll need to write that loadLevel method.

With some work, in my project, I've wound up with a "governing" script that I can write like this:

showCutscene("data/page.bmp","data/pagemetrics.txt");result = launchSet("data/bigfoot1.ts");


And that second line sets into motion a whole chain of events that loads the level, the character, enters the game loop and finally returns when the session is over with a value indicating if the player beat the level or exited through a certain door or ended with a certain result or died.

And if you look at the launchSet code, its just a little closer to the metal, and if you look at the functions they call, they're closer to the metal, and if you do down deeper you get to file loaders that read images from zip files... etc.

This is not the only way to do it. I don't have a lot of experience. But its working for me.

This topic is closed to new replies.

Advertisement