Machine design in game engines

Introduction
Machine design is an essential subset of Mechanical engineering. It has many applications in various fields, including aircraft design, gaming design, automobile design, design of boiler parts, design of machine elements, gears, chassis, simulation engines etc. The birth of any machine starts with a visual development of its shape, size, surface and texture, scale and other specifications. This design is done either on paper or using a Computer Aided Drafting (CAD) or 3D modelling software like AutoCAD, ProEngineer etc.
Game design
Overview
The design of games is based on the development of an idea. The idea is developed into a concept and based on the required genre, modified and rendered. Game designers require models of various elements within the scene which forms part of a series or frames. In present day games, especially the ones involving futuristic weapons and vehicles machine design comes into view. the designer has to decide precise dimensions and views of multiple objects in a scene to avoid haphazard errors. It is the job of the designer to ensure that the object is projected properly by making adjustments to lighting, depth, surfaces and textures, bevel, embossing, shadows and reflection.
The elements implemented are decided on the basis of expected graphics and video acceleration to meet console specifications of majority of users. This involves deciding frame rate, reducing lag and minimal errors.
In a gaming engine the designer may use languages localised to the engine or they may edit the code of the engine itself to produce user defined operations.
Once the machine modelling is done, the game designer (or a team of designers) design the gameplay. This involves setting the storyline , rules, and structure of the game. Once this is done, the game is tested to eradicate every possible source of error.

Design process
When creating the game, a documented design is etched by the designers before moving ahead with the game development. The document specifies the entire game design and assists the game developers and engineers during the production process.
Game designers perform multiple roles while creating the game. Different designers design concepts, others model the various elements in the engine, work on the AI of the system, cutscenes, environment, and yet some others program the engine to create desired output and user-machine interaction via biometric devices.
Mechanics of game elements
It is important for a game designer to ensure proper visualisations of the game. For this, the object, the environment and their interaction must be visually appealing to the gamer. The lighting, shadows, animations, smoke, particles, fluids, etc. make the game elements look realistic. These are called mechanics of the game elements.
Introduction to AI Agents
Scientists and institutions have worked hard on the study of artificial intelligence for games and computer programs that involve human interactions. A good artificial intelligence agent of a game is an important factor in determining the level of fun and playability of the game; in general it determines the game’s rating.
Development of these AI agents is difficult, since one has to determine its competitiveness on a large scale to find out the acceptability of the game to the masses. Also, it is a time consuming task since AI requires a lot of skill and logical thinking. Most games do not contain true ‘intellect’; they contain a specified set of commands to simulate artificial knowledge.
Description
The objective of an AI agent is how much progress can be made through a particular game according to how the user defines it to be. For example, it may involve the maximum score while not getting killed in a battle-related game. This is measured by a variable, score. There may also be multiple objectives, such as side missions.
In a game physics engine, the coordinates of created objects have excellent resolution. So discretisation is necessary for object coordinates given to the agent in order to determine interactions within the game. The most successful agents for games are those which reproduce the game physics and/or perform tasks as per the requirement of that game. The approaches used to create these agents are domain specific and utilise external information.
Multiple online and reinforcement learning techniques such as online SVMs, MDPs, decision trees and genetic programming are available. These help in choosing the appropriate approach. Decision making in situations where outcomes are partly random and partly under control of the controller is assisted using MDPs, which provide a framework for the same. Genetic programming is inspired by biological evolution. It uses algorithm based methodology to perform user defined tasks.
A genetic programming learning agent has been developed for simple games. This agent has been developed for the game Mario, and has shown successful results on testing. Their MDP agent only has a coarse observation about enemies, so if it detects an enemy in the distance, but is not sure about relative position, it will continue moving forward and try to remove the enemy.
The ideal behaviour would be to move toward the enemy and jump over them when near. But the GP agent only controls whether Mario jumps or not. Its general behaviour is to evade enemies at all times. Though it appears that the GP agent works well, the evolved logic is difficult to decipher. This is a common problem with solutions obtained by genetic programming. This agent is set to be presented at the Mario AI Competition 2009.
See Also
List of game engines
 
< Prev   Next >