Archive for the Games Research Category

AI and NPC’s

Posted in Games Research on March 3, 2008 by Dave

Programmers are faced with many core tasks when scripting intelligent life like behaviour. The core task include the synchronization of synthetic speech and gestures, the expression of emotion and personality by means of body movement and facial display, the coordination of the embodied conversational behavior of multiple characters possibly including the user and the design of artificial minds for synthetic characters.

The 3D topology analyzer is the software that analyses the shape of the terrain and the objects, it then tells the AI where it is and tells it not to walk into or through it. The must cover the following tasks:

Identify all location where the enemy could easily shoot or hide. Identify all location where one could shoot the VIP, It will then position bodyguards in order to cover these threats. It will also identify the routes that the enemy could take and then organise and opposing flank assault. Finally it must pick the right position to place the camera so it can see the necessary topology.

Game developers are working hard to cure the blindness of NPC’s, they have used alot software to make them seem smarter and more human. They have introduced a trajectory computation into the dynamic world. This allows the NPC’s to take into account any modifications in the landscape, for example if a bridge was destroyed it would try to find another route to get to the other side. They have also improved the way the NPC’s react to enemy movement, they will now attempt to flank the enemy.

Scripting language is a very high programming language that it is interpreted by another program at runtime rather than compiled by the computer’s processor. Alot of games have used scripted language, here is an example of a game that uses scripted language.

Star Wars: Jedi Knight is a game that used scripted language, the reason the developers used scripted language because the game would be aalot more user friendly then games that had been made before.

HEDMM

Posted in Games Research on February 11, 2008 by Dave

Havok – Havok is a very robust physic engine which allows alot of objects on screen at a time.

Euphoria – Euphoria means that the NPC’s have true biomechanical AI.

DMM (Digital Molecular Matter) – The way of simulating the substances of objects.

Here is a video of Star Wars: The Force Unleashed, the video shows how HEDMM will be used in the game.

http://www.gametrailers.com/player/29964.html

Artificial Intelligence

Posted in Games Research on February 11, 2008 by Dave

NPC stands for Non-playable character. NPC’s  are the characters in a game that are controlled by the AI. Here is a picture from the game Mafia, it shows a city populated with NPC’s. Here a screen-shot of the player in the enviroment with the NPC’s.

The ‘core tasks’  of NPC are to seem realistic in the environment. For example if the NPC was an alien it might react to a joke different to say the way a human would react to the joke. But in an action game they might be given the task of killing you and they would do that to the best of their abilities.

NPC’s require alot of data to perform their task properly. They need to identify hiding positions, analyse 3D topology (not walking into buildings), it needs to find away to flank an enemy if he is in cover and it needs to choose the correct position of the camera.

Another name for world navigation is called ‘path-finding’.

World navigation is broken down into 2 sub-divisions. The first division is called world navigation, the second is called local navigation. The only real difference between the 2 is the scope. World navigation handles the geography of the game whilst the local navigation handles rooms, characters and objects. 

I believe that the local navigation is more dynamic because it is having to deal with the characters and objects.

Flocking algorithms are the boundaries given to an NPC in a game that effect the way the NPC behaves. Basic flocking consists of three main rules.

Separation – Avoid crowding neighbours

Alignment – steer towards average heading of neighbours

Cohesion – steer towards average position of neighbours

Peter believes this because as time goes by our technology increases which means that the level of AI increases. He wants to make games that have people who think and have emotions. Also if the AI is good enough maybe we will begin to care about the NPCs.

Jess believes that balance is important because if a game is too realistic then fun will be removed. If a game is not fun anymore then the gamer will not want to play on it anymore. He also believes that variety and randomness are important aswell - variety in behaviors and some unpredictability within the believeable realm.

Chess can be considered “emergent game play” as it has a set of assigned rules that the computer must follow. But it can go about playing the game any way it wants as long as it stays within the rules.

Here is an example of an emergent game.

Star Wars Galaxies

And here is another example of an emergent game.

The Matrix Online

Animation Systems

Posted in Games Research on February 4, 2008 by Dave

The disadvantages of a mesh based character system is that it has alot of polygons and vertices to handle. Also that you have to position each point of the mesh for every frame instead of them moving all at once.

 The advantages of a skeletal mesh are that instead of moving all the points individually, you only have to move the skeleton. Considering there are only 50 bones, it is very easy to animate.

The first picture shows a character skeleton, this shows all the pivot points that character can bend and transform at. The second picture shows the skeleton inside the character mesh. The skeleton will combine with the mesh so that when the skeleton is moved the mesh will move aswell.

untitled121.jpg

“To ‘weight’ each vertex individually” is the process of snapping the mesh to the skeleton. If the ‘weight’ is decreased then the mesh does not snap to the skeleton properly and the mesh looks deformed.

untitled1.jpg

Here is a picture of a ‘Hierarchical’ skeletal system.

A ‘Hierarchical’ skeletal system works in a very unique way. Instead of all the parts being moved individually, they are connect. This means that if a parent bone is move for example a knee bone, then all corresponding child bones will move aswell like the foot bones.

If I were to animate a character I would use Inverse Kinematics because the movement would be controlled by the hand as that is the body part which is going to pick up the object. Also because the hand is in control the body will follow the hand in a proper fashion like a real body would.

The LOD (Level of Detail) system is the system that works out how many polygons need to be on screen at one time, for example if a building is in the background then it won’t need to be as detailed then if it was in the foreground. The LOD system is very important because it takes some of the strain away from your PC by reduceing the polygon count on objects that don’t need a high level of detail.

Mocap stands for Motion Capture, Mocap is the process of capturing the way a human would react and move in the real world and then transferring it into the game world. When mocapping, actor are dressed in suits that have small white balls placed all over them. Specials cameras that can only see these balls transfer the movements in real time into a computer. Eventually these movements will be use in a game. Here is 2 examples of games that use mocap.

The first game is Rainbow Six: Vegas. Here is an image of actors doing motion capture.

 

Here is a video of motion capture being performed for Rainbow Six: Vegas.

http://www.gametrailers.com/player/11692.html

Here is a list of level editing tools.

Sandbox Editor – Crysis

UnrealEd – Unreal

Lunar Magic Level Editor – Super Mario World

Light Mapping

Posted in Games Research on January 28, 2008 by Dave

A lightmap is a light data structure that is used in 3D games engines which contains the brightness of all the surfaces in the enviroment. Quake was the first game to use light mapping for speed rendering so that the floors did not look distorted.

Lighting

Posted in Games Research on January 21, 2008 by Dave

API stands for Application Programming Interface, API is a source code interface which is used by operating systems or libraries to supports request for services to be made of it by computer programs. To simplify that an API is a piece of software that sits between the programmer and a program. The program comes already set up with functions but it needs some more code to be entered to perform those functions. To get the functions to work the programmer types the code into the API which places it into the programme which then performs the task. Here are some examples of API’s, OpenGL, DirectX, Google Maps API, Youtube API and MediaWiki API.

 Here is an example of some API coding.

OpenGL offers 3 forms of lighting. The first is per polygon lighting the second is per vertex lighting and the third is per pixel lighting. In vertex lighting you determine how many polygons are touching one of the vertex’s, them take the mean of all the polygons orientations which we call the normal and assign the normal to the vertex.

The advantage of vertex lighting is that the hardware will help complete the task faster by using hardware transform and lighting (T&L). The disadvantages of this is that shadowing will not be produced on the model. For example, both arms on the model will be lit the same way, even if the light is on the right side of the model, the left arm will be lit the same and no body shadow will be cast.

Shaders are a graphic resource that are used to render graphical objects in a 3D world. The shader is actually a part of the renderer, which is used to calculate the colour of an object.

Gouraud is a method of shading that is used to differ the effects of light and colour on a 3D object. Gouraud is used to smooth lighting across low-polygon object without the heavy computational requirements used by calculating the light for each pixel.

Phond shading is a layered version of shading. It begins with an ambient, it then adds a diffuse and specular. This reveals the fully lit 3D model.

I would use the phong method as it is an easier method in my opinion.

Here is an example of some shading.

Anti-Aliasing

Posted in Games Research on January 14, 2008 by Dave

Anti-Aliasing is where the 3D card takes a look at what has been rendered and blurs the edges of the polygons to get rid of jagged pixel edges.

There are 2 ways for the 3D card to generate anti-aliasing images. The first approach is at the individual polygon level, which requires you to render the polygon from back to front of the view, so that each polygon can blend with what’s behind it. The second approach is where you scale the whole frame to a much larger resolution than it will be displayed at, then when you scale the image down the sharp edges tend to be blended away in the scaling.

 The good thing about the first approach is that it is very high quality, the bad thing about this method is that of you render out of order you will end up with some sort of strange effects. The good thing about the second second approach is that it is alot easier to use but you need alot of memory bandwidth and a large memory footprint.

The History of Video Games

Posted in Games Research on December 2, 2007 by Dave

Origins

The first known concept for a video game was a device called the Cathode-Ray Tube Amusement Devicewhich was created in the US by Thomas T. Goldsmith Jr. and Estle Ray Mann in 1948. The device would use vacuum tubes to simulate a missile being fired at a target and the player would use knobs to adjust the speed and ark of the missile.

Regarded to be the first true video game that wasn’t a representation of pen-and-paper or board game was created in 1958 on an oscilloscope by the American physicist William Higinbotham. The game was called Tennis for Two, it simulated a game of tennis using the oscilloscope. The player used an analogue computer to control the game and it consisted of mostly resisters, capacitors and relays but when the ball was in play transistor switches were used.

Culling Methods

Posted in Games Research on November 26, 2007 by Dave

Three hundred thousand triangles pose a problem because it creates alot of work for the CPU and the graphics card. To tackle this problem programmers created culling, a process in which the engine removes all invisible and non-essential polygons.

The difference between marketing and real world polygon rates is that the marketing polygon rate is the rate that the card can theoretically reach and the real world rate is what the card can actually achieve.

The lowest rendering unit that can be achieved is a primitive, which for most hardware is a three-point polygon (triangle).

The advantages of using a higher-order surface like patches is that it can create a higher polygon rate and has been the basis of new and experimental technologies. The disadvantages of using it are that it is not standard over all graphics cards and that it is somewhat of an expensive to buy a card that does support higher-order surfaces like patches.

There are two main types of occlusion culling. The first type is called PVS (Potentially Visible Sets), this method divides the scene into regions and pre-computes the visibility of them. These visibility sets are then indexed at run-time to obtain high quality visuals sets quickly. The second type is called portal rendering. This method entails dividing the scene into cells/sectors (rooms) and portals (doors), and computes which sectors are visible by clipping them against portals.

These are the five stages of the Basic Graphic Pipeline.

Stage 1: The Game determines what objects, models, textures and animations that will be in the game world. It also determines the positioning of the camera.

Stage 2: The game passes this information to the renderer. In the case of the models, the renderer will look at the size of the model and where the camera is located, and then it will determine if it is onscreen or off.

Stage 3: Then the world visualization system determines where in the world the camera is located, and what sections polygons are visible from the camera viewpoint. This can be done in numerous ways, from a brute force method of splitting the world up into sections, to the more elegant BSP (Binary Space Partitioned) worlds.

 Stage 4: Then the renderer transforms all the polygons that pass through according to their world mathematics and it’s local mathematics, it then examines the polygone to determines if it is back-faced or not. Those that are back-faced are thrown away. Those that are not back-faced are lit.

Stage 5: The renderer then looks at what textures the polygon uses and it ensures that the graphics card/API is using that texture at it’s rendering base. At this point polygons are fed off to the rendering API and then onto the card.

Z buffering makes the rendering of textures less important but it does not make polygons that have transparency in them less important. They have to be rendered after all the non translucent polygons are done, so what’s behind them can be shown correctly in the scene.

Here are two examples of API’s. The first is DirectX for Microsoft Windows and the second is OpenGL which is a cross platform graphics API.

Hardware-accelerated transform & lighting is a program that is used to render polygons and what ever you are trying to drawat the correct angle and position in the world relative to where the camera is positioned.

The benefit of patches are that instead of listing masses of polygon positions in the gaming world, it uses a mathematical expression instead. This makes it alot easier to build and deform a mesh of polygons by changing the equation.

Retesselation is when a low polygon mesh is converted to make a higher polygon mesh. This makes the mesh alot smoother and better looking. 

Level Design

Posted in Games Research on November 19, 2007 by Dave

To be a successful games designer the quality that I would value most is a tremendous experience in traditional art or architecture because if it doesn’t look nice no one will want to play it.

A digital architect is a person who creates spaces and buildings in a virtual world; they are usually employed by either games companies or architectural firms. They would build levels for a game company or build 3D representations of a future building for an architectural firm.

With Moore’s Law in place the processor speed of the games engine doubles every eighteen months which means that the quality of the builds that are created will increased tremendously.

Level designers are often referred to as chefs because instead of just throwing stuff into the pot they have to judge what will work and what will not to make a successful game that is going to sell.

 Peer criticism can be a good thing because it can help a game become better. This can be done by telling a designer about areas that can be worked on and areas that can be removed if necessary, though sometimes it can be bad if it is not constructive or helpful.

To make a good level it is best to plan everything out on paper first and then use some improvisation during level design to make it a little bit better.

Frame rate is important because it will depict if a game runs smoothly. Frame rate can be sacrificed for more detailed levels. Sometimes when the games pace slows down the frame rate can be lowered to increase the detail in a particular part.