Truth Seeking through Game Making
Friday, February 25, 2005
  Damn Small Linux - is COOL!
I just downloaded a linux distribution that is only 50MB in size. It is called Damn Small Linux, is based on the Debian distro and can be downloaded from http://www.damnsmalllinux.org. It is designed to be used from a CD, USB pen drive, zip drive or even embedded into any other devices or OS (including MS Windows). It is really cool. Even though it is a barebone system, you can extend upon the system pretty easily with an internet connection.

I find it really cool. I suggest to people who want to try linux (and you should) to try it. It will not affect data on your hard disk. You can also download the embedded version which will allow you to run the whole system as a window in WinXP - now that is kinda cool.

However if you really want to get a taste of Linux, go get Fedora Core distribution. I am going to stick with this since my old laptop is a low-end machine and will really benefit from it. Guess I am going to set up some servers on it. And since I am developing a MUD now - I can use my old laptop as a test server instead of having it run on my main laptop's Cygwin environment. This is quite convinient.

Join the open-source movement now!
 
Monday, February 14, 2005
  Knowledge need for games development: Collision detection and A.I.

Collision Detection

The collision detection system is needed to prevent players from walking through walls and other game entities. It is also used to detect when a game object (i.e. a gun bullet) hits another (i.e. terrorist). Collision detection is closely linked to the graphics and physics engines.

Mathematics Knowledge
Linear Algebra: Vectors, matrices

Programming Knowledge

As with most of game programming, strong algorithm design and logic skills needed here.

Artificial Intelligence

Artificial intelligence attempts to give life to computer-controlled entities. By defining behavior and motivation of each of these entities, they will react accordingly to player’s actions. AI is an important and largely untapped area of game programming.


Mathematics Knowledge
Probability: Many A.I. models are probabilistic
Discrete Mathematics: Set theory, combinatorics, game theory

Programming Knowledge
Among all areas of game programming, the importance of logic is most apparent in A.I.

Other Knowledge
An understanding of existing A.I. models will help you design he A.I. for
your next hit game.
 
  Knowledge need for games development: Physics Engine

Since most 3D games are modeled as another world, you need a physics engine to define the physical rules of the game.

Mathematics Knowledge
Mathematics is the language of physics, so you need to be competent in it to write the physics component of the game engine.

Calculus: Differentiation, integration, differential equations, approximations, numerical methods
Linear Algebra: Vectors, matrices

Programming Knowledge
To program a physics engine, one requires strong logic and algorithm design skills.

Other Knowledge
Of course since your objective is to model the universe, knowledge of classical Newton physics is absolutely essential. Other branches of physics like electricity & magnetism are not needed. Unless one attempts to create an engine with atomic-level precision (yet to be done) quantum mechanics can also be ignored.

 
  Knowledge need for games development: Graphics Engine
The graphics engine is a major component of the game engine. It deals with everything you see on screen. The graphic engine handles 3D rendering (displaying the output), camera control, lighting & shadow, animation and special effects. It is usually the component that contributes the most to game review verdict – whether it will succeed or fail in the market. A good graphics engine cannot guarantee success but a bad one most certainly won’t.

Mathematics Knowledge
Graphics is one of the most mathematical intensive parts in the game engine, especially when dealing with 3D. This is because screen pixels which the engine manipulates are mathematical identities by nature.

Linear Algebra: Vectors, Matrices, Quaternion
Calculus: Optimization for some algorithms

Programming Knowledge
Programming 3D graphics engine is mainly about designing the right algorithm. There are many 3D graphics algorithms that are published online and in books.

Other Knowledge
In addition to solid programming ability and competence in mathematics, understanding of hardware and assembly language can be very useful.
 
Sunday, February 13, 2005
  What is needed to make games: A focus on knowledge (Part 1)

A modern day video game is a sophisticated piece of software with massive amount of data. The seemingly simple interface and game rules is a façade of its actual complexity in terms of software substance. This is even truer of the process for its creation. To develop modern electronic games one has to be prepared mentally. One’s mind must be equipped with the right attitude, knowledge, and skills. In this series of blog entries, I will attempt to touch on the knowledge required to make games.

Video games are made of code (programming) and contents (art, music, etc). Both require different sets of skills.

Code

The code components of a game collectively make the game engine. The game engine comprises of many components or sub-systems, each having distinct functionalities. To implement each of these subsystems require knowledge from different field of studies. I will try to go into as much details as possible in this section.

Note: Some game engines are designed to be reused. Usually these reusable game engines have their game-specific and non-specific components isolated.

Starting with the next post i will attempt to divide the game engine subsystems and discuss knowledge related to each one.

 
John Tan is an entrepreneur, programmer, games developer, game designer. He lives in Cyberjaya, Malaysia and operates a startup game company, Hatchlings Games. His current interest is on Web 2.0 Gaming.

ARCHIVES
January 2005 / February 2005 / April 2005 / May 2005 / June 2005 / October 2005 / November 2005 / December 2005 / January 2006 / February 2006 / May 2006 / June 2006 / September 2006 / November 2006 /


Powered by Blogger