Monthly Archives: February 2011

Game Engine Design  Component Based Entities

Component based entities are becoming increasingly popular. They are a design pattern that can greatly improve the maintainability and flexibility of your game code. This tutorial will describe what component based entities are and how to design them. A Java implementation is provided which can easily be translated to other languages.

Read more »

Game Engine Design  A Simple Game

Now that we have created a game loop, window, and input manager, we can create a very simple game. This will be a short tutorial, but will demonstrate the use of the components we have created. We will begin by creating the main class AsteroidsInfinity. It will extend Game, the window manager we created earlier.

Read more »

Game Engine Design  SVN

I have set up a SVN repository at Sourceforge.net. If you have an SVN client installed (such as TortoiseSVN), you can check out a copy of the current game engine code. The repository location is https://entropyengine.svn.sourceforge.net/svnroot/entropyengine/trunk/entropyengine. I will also be packaging various releases to go along with the tutorials, so if you dont want to use SVN you can simply download a .zip file. A word of warning, the game engine is still in early development and may not be the most stable. If you have any comments or questions, let me know.
-Eric

Game Engine Design  Game Window

Now it is time to create a window for our game. In this tutorial, we will extend the game loop class from earlier. The goal is to create a simple window for drawing. This tutorial is mostly Java specific. If you are using a different language or API, you will need to handle window creation differently, though you may still want to extend the game loop in a similar way.

Read more »

Game Engine Design  Input

This tutorial will develop a system to handle game input. We will go over the features we want in our input system, and some concerns regarding input will be addressed. We will then implement an input system for the game engine. Unfortunately, user input is generally platform and API dependent. The implementation provided here is Java AWT specific, but the information provided on the first page is intended to be as general as possible.

Read more »

Game Engine Design  The Game Loop

This tutorial will cover one of the most basic components of a game, the game loop. The game loop is what actual drives your game. It manages the calls to your logic and drawing functions. While doing this, it performs the vital role of maintaining a consistent game speed (also called a logic rate). Creating a game loop is not always an easy thing. Many newer programmers get stuck on this. This tutorial will explain what a game loop is, how to create one, and what are some common pitfalls.

Read more »

Game Engine Design  Logging

The first part of the game engine I will cover is the logger. It may not be the most interesting, but most of the other components will need access to the log so it needs to be finished first. Logging is very important in all but the simplest of games. During development, it provides feedback about the current state of the program. Later, once the game is released, it is your only source of feedback on the game. This information is invaluable when debugging.

Read more »

Computer Science  Data Structures

There are many different data structures. It is important to understand the advantages and disadvantages of each, so that you know which data structure is most appropriate for any given situation. This tutorial will briefly describe several common data structures, when they should be used, and lists their pros and cons. Additionally, there are several tables at the end listing the computational complexity of various operations on the data structures.

Read more »

Game Engine Design  The Game

Designing the Game

The first step in creating a game engine is designing it. To do that we must decide on what the engine will do. This may seem simple, but it is the most common place for new game engine programmers to make a critical mistake, unfortunately dooming their entire project. That mistake is being to general. Game engines that try to do everything rarely get finished, and an unfinished engine often doesn’t do anything at all. We are going to try and avoid that pitfall by being much for specific in our design. Read more »

Game Engine Design  An Introduction

I often see request on message boards, from newer programmers, asking how to design a game engine. The usual response is “game engines are very complex systems and you should be making games rather than engines”. That response is correct. If your goal is to create a game, create a game. Creating a game engine will not save you time creating a game. In fact, it will probably cost you time.

If you shouldnt make game engines, why am I writing these tutorials? Read more »

Performance Optimization WordPress Plugins by W3 EDGE