AI Agents:
Artificial intelligence is used throughout most games,
for example, In the witcher the characters will react to the weather. When it
is sunny outside, they will go out and talk to eachother, but when it goes
rainy they will all go inside or atleast find a little bit of shelter to hide
under away from the rain. In The Elder Scrolls; Skyrim Each character will have
a little schedule for what they do each day. For example, shopkeepers: early in
the morning you will find them walking around in the village but when it is mid
day they will be in the shop, shop keeping and then at night they will be
sleeping, and repeat. Non playable characters in games that are controlled by
artificial intelligence have fast reactions, in FPS games an NPC's aiming would
be beyond the normal human skill. In video games, a bot is a type of weak AI
expert system software which for each instance of the program controls a player
in death match, team death match and/or cooperative human player, most often in
the first match shooters. Bots can help a gamer learn the gameplay environment
and the game rules as well as help them practice shooting accuracy and gaming
skills before going online to compete with other players. Elements of
artificial intelligence used in computer games have come a long way. In the
beginning, the developed systems were based on sets of rules written directly
in the code of the game or on the behaviour scripts interpreted by the code,
with the whole thing based most commonly on the appropriate selection of
importance of the random factor in the process of choosing the appropriate
behaviour. That time witnessed the birth of such memorable games as the
immortal River-Raid, Donkey-Kong, Boulder-Dash, and many other objects of
fascination for users of eight-bit machines, back in the 1970s. One of the most
popular games of the 1990s was WarCraft – a game developed by the Blizzard
studio. It was the first game to employ path-finding algorithms at such a grand
scale, for hundreds of units in the game engaged in massive battles. SimCity,
created by the company Maxis, was the first game to prove the feasibility of
using A-Life technologies in the field of computer games. Another milestone
turned out to be the game Black&White, created in 2001 by Lionhead Studios,
in which technologies of computer-controlled characters' learning were used for
the first time. http://www.youtube.com/watch?v=zHRlCSUe0Q0
AI Behaviors:
Bodily behaviors are high priority things like resting,
sleeping, eating, pooping etc. These are chosen randomly, which also selects an
action at large proportion of the time. When the bodily behaviors fail, the
root selector falls back to the active behaviors. These are walking around and
running, things like that. when the active behaviours fail, The next fallbacks
are positive. This involves sitting, lying standing and Idle. This is
another probability sector, but this one fails because there are no more
fallbacks to rely on after this. Most behaviour-based systems are also
reactive, which means they use relatively little internal variable state to
model the environment. For instance, there is no programming in the robot of
what a chair looks like, or what kind of surface the robot is moving on - all
the information is gleaned from the input of the robot's sensors. The robot
uses that information to react to the changes in its environment.
World Navigation:
Game world navigation is when you try to move from one
place in a game world to another when the obvious way is not possible. Besides
the presence of these environments, this also requires that Movement in
possible and that it is possible to get lost or take unnecessarily long routes.
World navigation is most common in games with large worlds. Mini-maps can make
Game World Navigation easier by not only indicating where players are and what
direction they are moving, but also where the goal location is (the Mini-maps
in both the Elder Scrolls and Fallout series are example of this) but this is a
risky design strategy since it can become too easy. Splitting game worlds up
into levels where the use can complete puzzles makes game navigation easier for
players. An example of a game with world navigation would be the text based
game Zork, which made navigation difficult by having non-symmetric routes
between locations, moving north from one place to another did not mean that one
returned by going south, rather one might have to west instead.Artificial
neural networks and fuzzy logic are two techniques used to improve the
performance of electronic systems. Fuzzy logic can be used in many different
ways, it can be used to control bots of NPC’s, and you can also use it for
assessing threats posed by other players. You can use fuzzy logic to classify
both player and non player characters.
Animation Systems;
Path-based:
A path based animation uses frames and a fixed
background to create the illusion of movement. It more or less does what it
says on the tin, It is an animation that follows a path, each path is random
and it looks as if it is moving and could look real while moving. The main
aspect of a path based animation is that the object travels along a set path,
which is then calculated how long it takes the object to travel from one point
to another and how many frames are need to get there. The path that the object
is moving along should usually stay the same, but sometimes it could be
reshaped or rezized. The objects that are going along a path should really stay
simple to make it easier to animate and quicker to complete. Usually the path
based animation in modern games are used on NPC's to move them around from A to
B. They will be given a set path that it can move along, sometimes it will move
along it in a random order. Sometimes it gets annoying and looks funny because
you could be blocking a character mid-path and they could glitch away from
where they were or dissapear - I think it looks weird so I try to avoid characters
walking at all costs when playing games, for example Skyrim. although the game
was extremely buggy when it first came out.
Kinematics:
Forward kinematics refers to the use of the kinematic
equations of a robot to compute the position of the end-effector from specified
values for the joint parameters. There are two main spaces of
Kinematics, Forward Kinematics and Inverse Kinematics. It is the motion of
bodies without taking into consideration of the force or movement that is
caused. Forward Kinematics is a mapping from joint space Q to Cartesian space
W: F(Q) = W. Forward Kinematics problem isn't complexity deriving the
equations. Hence, there is always a forward kinematics solution of a
manipulator. singularities and nonlinearities that make the problem more
difficult to solve. A manipulator is composed of several links which are fixed
to eachother revolute or prismatic joints from the base frame to the end
effector. Inverse kinematics is a much more difficult problem than forward
kinematics. The solution of the inverse kinematics problem is computationally
expansive and generally takes a very long time in the real time control of
manipulators.The inverse kinematics problem of the serial manipulators has been
studied for many decades. It is needed in the control of manipulators.Solving
the inverse kinematics is computationally expansive and generally takes a very
long time in the real time control of manipulators.
Particle Systems:
Particle systems in games are what creates Smoke, Fire,
Rain, Explosions, splashes and so on. It is just like in Unity. You import
particle systems and you can make fire, waterfalls etc. Particles are created
using sprite sheets which are a frame by frame image that plays over and over
which makes it look like that image is animated. For example, it is like a
flipbook and each grid box has to be the same in order for the sprite sheet to
work properly. Within 3D games particles are controlled by what is referred to
as an emitter, which acts as the birthplace for particles (where hey spawn),
with in engines, any shapes can be used to emit particles such as a cube. Particles
will have a birth rate and a death rate which will determine how long that
particular particle will live on screen for before it’s completely gone or
re-birthed.
Middleware:
In its most general sense, middleware is computer
software that provides services to software applications beyond those available
from the operating system. Middleware can be described as "software
glue". Thus middleware is not obviously part of an operating system, not a
database management system, and neither is it part of one software application.
Middleware makes it easier for software developers to perform communication and
input/output, so they can focus on the specific purpose of their application.
Game engine software such as Gamebrvo and Renderware are sometimes described as
middleware because they provide many services to simplify game development.
Graphic Rendering;
Anti-Aliasing:
Anti-aliasing is when the jagged edges in a game appear
to be smooth and everything ends up looking a lot nicer and a lot more detailed.
In games using this option lowers the performance and lowers the frame rate.
Examples of anti-aliasing – this is on the PlayStation 3 and shows that it has
more powerful hardware as it is able to use the anti-aliasing option in the
game. But this may bring the frame rate lower than that of the Xbox version
without the anti-aliasing.
Shadowing:
In games shadowing creates shadows to add to the
‘realism’ of the game. In a game if a light source is on some part of the
characters body a shadow will appear in the opposite direction (much like in
real life). Just behind the character. The higher the shadow quality in a game
the slower the game will run as the game has to render the shadow and the level
of detail it has and it has to calculate where the shadow will be in real time
as the character is moving.
Detail:
In games level of detail refers to how detailed or how
complex something in the game world is. When something is really detailed in a
game the game will naturally perform lower that is why graphical rendering is
applied. This makes it so the object is not fully detailed when the player is
far away from it, but as they get closer the object renders additional detail
until the player is close enough to see all of the detail in the object. In
console games it is much harder to get a high level of detail as the hardware
is severely outdated in comparison to the technology to PC games.
Some games have some ridiculous amount of detail, for example Halo 3, every
single bullet fired from an assault rifle has the main character's name carved
into the back of it, as if he brought all the bullets from home.
Ray Tracing:
Ray tracing is a way of generating an image through
tracing the path of light through pixels in an image plane and simulating its
effects with encounters with virtual objects. This technique is capable of
creating very high realism. The technique is capable of producing a very high
degree of visual realism, usually higher than that of typical scanline
rendering methods, but at a greater computational cost.
Radiosity:
Radiosity is a method which tries to simulate the way which
directly illuminated areas act when indirect light sources illuminate other
surfaces; this produces more realistic shading and seems to catch the ambience
better of an indoor scene. Ambience is a particular environment or
surrounding influence. The inclusion of radiosity calculations in the rendering
process often lends an added element of realism to the finished scene, because
of the way it mimics real-world phenomena. Consider a simple room scene.
Depth Testing:
Depth-testing
is a process used by the game engine to tell what objects are visible to the
player and which are not because they’re behind other objects. Games today
render a lot more at once and as a result Depth-testing has had to become more
advanced. An example of this would be how when you compare Silent Hill for the
Playstation to the Playstation 3. You can see the difference to how much is
behind what.
Pixel
Shaders:
A Pixel Shader is a GPU (Graphic
Processing Unit) component that can be programmed to operate on a per pixel
basis and take care of stuff like lighting and bump mapping. A Vertex Shader is
also GPU component and is also programmed using a specific assembly-like
language, like pixel shaders, but are oriented to the scene geometry and can do
things like adding cartoony silhouette edges to objects, etc.
Fogging:
Fog in games is much like fog in real
life. It hides an object the further away it is from someone. But unlike in
real life, fog in games has a purpose. In games fog hides objects the further
it is from the player character. This is to lessen the stress on the processor
so it doesn’t have to render as much information as it would if there was no
fogging and you could see all of the objects at the same time.Some PC games
have a view distance slider. This is to help people with not as up to date
hardware optimise the game so their computer can play it. The higher the view
distance in a game the further you can see in the game world.
Culling Methods:
Back face culling: because meshes are hollow not solid
objects , the backside of some polygons will never face the camera, this
typically means there are no reason to draw the faces, this causes the effect
in video games where if the camera is inside the mesh, it usually disappears. Contribution
culling: often, objects are so far away that they do not contribute to the
final image that much. These objects are thrown away if the screen projection
is too small. Occlusion culling: objects that are completely behind
other opaque objects may be culled. This is a very popular mechanism to speed
up the rendering of large scenes that have medium to high depth complexity.
Detail Culling: When geometry is so far away that it’s not visible
then there is no need to draw it at all so it can safely be culled. A more
advanced scheme of detail culling that decreases the amount of details with the
distance is LOD (level of detail). Portal Culling: A technique that divides the scene into cells with portals between.
When rendering, the camera will be in one of the rooms and that room will be
rendered normally. But for each portal that is visible in the room a view
frustum is set up for the size of the portal and then the room behind it is
rendered. This will work recursively. The result will be that a lot of geometry
can be culled by view frustum culling when rendering the other rooms. A very
useful technique for indoor scenes. View frustum Culling: The faces that are outside the
view frustum cannot be visible on the screen (we don’t bother about reflections
now) so they can be culled. This check is done by checking if the geometries
bounding volume is outside the view frustum volume or not. So the check will
not be done on every face, as that would cost too much. Sometimes, the view
frustum culling can cost more than what is gain (for example when doing
instancing). One way to speed up view frustum culling is to use a suitable
spatial structure for the scene (octree, BSP or so).
Lighting:Lighting is something a game engine has a few different types of in order to provide light to a scene in a video game, examples of these lights are: Point light, spot light, directional light and ambient light. Lights in video games are incredibly important as they let the player see what’s going on, they can also be used for way points and markers to stand out or to create mood (normally put to use in horror games like Amnesia: The Dark Descent). The examples are Amnesia with its lighting to set mood and Left 4 Dead with its lighting to direct the player through the world. Setting the right atmosphere and mood is important in any type of game. From Myst-like puzzles to real time strategy to first person shooters, lighting plays a huge role in how players interact with a game’s world are impacted by it. Mysterious and horror games meant to keep players on the edge of their seats usually have darker environments, punctuated by brighter areas and objects to ensure you notice them. Other genres tend to use more balanced lighting systems, and games that are praised for their appearance masterfully paint their worlds onto our screens, the environments telling stories of their own. Lambert: There are a few standard ways to calculate how light illuminates a surface, and while there are numerous variations within each method, we’ll look at the most common configurations. The first of these is a very simple model known as Lambert lighting, named after Johann Lambert who described the idea behind it in 1760. Objects lit in this way are called Lambertian and emit light evenly across all viewing angles. This means that different points on an object will look the same no matter what angle they are viewed from. Phong: Another common lighting model is called Phong illumination, named after Bui Tuong Phong who first published the method in 1973. Phong lighting is used for surfaces that have specular highlights, which are the direct reflection of the light off of the object. These reflections can range from dull, such as plastics or a polished wood, to sharp and bright as on the body of a car. This type of lighting is made up of two components: diffuse light like we get with Lambertian surfaces and also the light’s reflection. To find this second part we must determine what angle we are viewing a point on the object’s surface and compare it to the angle at which the light is hitting the same point.
Systems;
Physics:
A physics engine is a piece of software that provides approximate
relations to the laws of physics that govern reality. Game developers use these
engines in their games, to create a realistic form of gameplay. However they
can also make the physics in their games as unrealistic as they want. This
often depends on the environment that the developers are creating. For example,
a game set in a different universe may have different forms of gravity. At this
point in the games industry physics have advanced in their precision and
reliability. But there are still limitations on these factors dues to faults in
calculations during gameplay. These faults can cause very amusing, yet very
frustrating anomalies in games. For example, objects that have set
routes can run into rounding errors and may travel to a different point in the
game. It’s often that these glitches occur with free moving game objects.
But objects like chains and wheels with actively bearing surfaces whilst under
large amounts of pressure can cause these free moving objects to react in many
different ways such as exploding, imploding or simple collapsing. These
effects can be prevented; however it takes an extensive amount of CPU to
process these calculations.
Effects:
Subsurface scattering is a rendering technique used to approximate the common tendency
for light to penetrate and scatter beneath the surface of translucent or
semi-translucent non-metallic objects. The effect can be seen as an extension
on the principles of translucency and is appropriate for realistically
simulating a wide range of materials including wax, marble, liquids (like
milk), plant leaves, fruit, snow, and most importantly, human skin. Subsurface
scattering (SSS) is included in a few game engines and some examples that have
subsurface scattering are; Unreal Engine 3, CryEngine 3 and Confetti RawK. The
last two engines have used Screen-Space Subsurface Scattering. SSS is a
mechanism of the light transport that makes the light travel inside objects.
However for translucent objects, which affected by SSS a lot enters the surface
and then scatters inside of the object. The light is blurred which gives a soft
look to the object. When a photon hits a surface, it has a chance to
reflect, absorb, or penetrate the surface. If it reflects, it gets sent back
off the surface as either a specular highlight along the reflection direction
or a diffuse reflection that scatters in random directions. These two
characteristics represent reflectance for local illumination models: Where the
final color at any point, need only consider that point with no influence from
other points.
Caustics:
Caustics is an addition your rendering that calculates
photons of light staring at a light source which can be reflected,
refracted, bounced of mirrors, or concentrated by a lens. In computer graphics,
most modern rendering systems support
caustics. Some of them even support volumetric caustics. This is accomplished
by ray tracing the possible
paths of the light beam through the glass, accounting for the refraction and
reflection. Photon mapping is one
implementation of this. The focus of most computer graphics systems is
aesthetics rather than physical accuracy. Some computer graphic systems work by
"forward ray tracing" wherein photons are modelled as coming from a
light source and bouncing around the environment according to rules. Caustics
are formed in the regions where sufficient photons strike a surface causing it
to be brighter than the average area in the scene.
Networking:
Networking is a collection of computers and other
hardware interconnected by communication channels that allow sharing of resources
and information. Through networking you can send information through one device
to one process in a remote device. Then the two devices are said to be in
network. A network is a part of a game engine which connects multiple engines
together and enables online capabilities such as multiplayer games and project
sharing. Most game engines create multiplayer uses different from single player
as this requires much more technical coding and testing. On Steam, when one
user is in the same game that you are, it enables you to join each other’s
games through the steam client. You can also join through the game but it gets
a little bit harder. To join in game you have to have the IP of the other
persons game (or server that they are on) and copy that into the multiplayer
option in-game and join that way. Playing on multiplayer allows you to join
teams, fight with each other and talks to each other. This makes the game more
fun because it is with your friends and not just the computer. Sometimes you
have to have another program that links computers to one another to trick it
into thinking that all the computers linked to your program are all in the same
house, this also allows you to join servers with friends or host your own so
other people can join in and play with you on the game
Sound is very important within a game engine this is
because it can be used in different ways. It can be used just for effect or it
can also be used to get a message across. The sound can determine what is
happening in a game and also the music will give us an idea of what is about to
happen or what is happening in a game. Game engines include sound because it
can be essential for games. Without sound games wouldn’t be as good and the
user wouldn’t really enjoy playing the game. If we didn’t have sound especially
for games likes this it would be pretty bad because you wouldn’t be able to hear
all the effects such as explosions and guns. An example would be in sonic or
flappy bird, they both make annoying noises when you collect the rings or pass
through the pipes. As annoying as it is, it makes the user more eager to play
the game because it is a good sound. It can be distracting at times but the
more you get used to the noise the better you will get at the game. Or the
better you will think you are. The games also play music when something bad is
happening or something good. For example in killing floor the music turns to
heavy metal when there is a wave of zombies, but when the wave is over the
music is a bit more calmer. This helps the player realise that there is a wave
without really listening to what the trader has to say in-game. Also, in final
fantasy the music changes to the fight tune when you are near a monster, this
alerts the user and makes them pay more attention (if they weren’t already) to
the game and it gets them motivated to kill the enemies because of the drastic
change in music. This also happens in Pokémon, when walking through long grass
the music changes to a more upbeat tune and the graphic on the screen changes
to get the user more alert to what is about to happen.