GAME DEVELOPMENT
Download
Report
Transcript GAME DEVELOPMENT
AN OVERVIEW OF GAME
DEVELOPMENT
By
Nmoye Ifeanyi Lawrence
GAME DEVELOPMENT COURSE
OUTLINE
Game Development – the basics
Introduction to Game Engines and Game
Design
Game Development – the basics
• Game Development is the process of making a
game.
• It begins with an idea and then the development.
• A Design document should be made before
development commences.
• The Design document contains all the
information about the game including story line,
game play, weapons, level design, graphical
user interface (GUI) animation type, special
effects, sound effects, cut scene drama and so
on.
Game Development – the basics
Basic Skills Required for Game Development
• Adequate Knowledge of at least one
programming language especially c/c++.
• Proficiency in Mathematics and Physics.
• Good Skills in the Usage of a 2D image Editing
Software such as PhotoShop.
Game Development – the basics
Basic Skills Required for Game Programming
• Good Skills in the Usage of a 3D modeling
software such as Maya and 3D Studio Max.
• Good Animation Skills.
• Good Skills in the Usage of a Sound Editing
Software such as Fruity Loops Studio
Introduction to Game Engines
and Game Design
•
•
•
•
•
•
•
•
•
Game Engines are programs used for the
development of games. The Game Engine is made up of
the following parts:The Graphics Engine
Game Mathematics and Physics.
Game Input
Animation Engine
The Sound Engine
Game Networking
Artificial Intelligence
Scene Management Data Structures
Memory Management
Introduction to Game Engines
and Game Design
•
•
•
•
•
•
•
•
When developing a game, you have a choice to either use an
already made game engine or develop the game engine from
scratch. If you choose to use an already made game engine, then,
you can either download free ones or use commercial ones after
paying a license fee.
The Common free ones are as follows:Irrlicht engine
Crystal Space
Ogre3d
Allegro
The Commercial ones are as follows:Unreal Engine
Cipher Game Engine - $100 license fee
C4 Game Engine
Infinity Engine
GRAPHICS ENGINE
The Knowledge of a graphics API is required when
making a game engine. The two most popular graphics
libraries are OpenGL and DirectX (Direct3D). What does
a graphics library help us to do? With a graphics library,
we can render points, lines, triangles and other polygons
in 3D space from any point of view with any color, with or
without perspective projection. Every 3D polygon
rendering boils down to rendering triangles. Even
Polygons are resolved into triangles before rendering in
hardware. These graphics API uses the hardware to
render these triangles doing all the necessary
perspective transformations.
GRAPHICS ENGINE
While 2D games use a sequence of
pictures to represent animated characters
and environment, 3D games is quite
different using a group of triangles to form
a 3D model and rendering from any point
of view by applying some matrix
transformation and then drawing the
resultant 2D triangle obtained from the 3D
transformation and render it as pixels on
the screen.
GRAPHICS ENGINE
GAME NETWORKING
Networking Protocols
When networking a game, you have to
choose between using connection
oriented Transmission Control Protocol
(TCP) or connectionless User Datagram
Protocol (UDP) depending on the game
speed.
GAME NETWORKING
• TCP
• TCP is connection oriented and sends data
reliably and in the right order to the destination
address.
• Advantages
• Reliable.
• Large Buffer Size.
• Disadvantages
• Not as fast as UDP in most cases.
GAME NETWORKING
• UDP
• UDP is connectionless and sends data to the
destination address. The data transferred may
or may not arrive at the destination address and
in the right order. Hence it is an unreliable
protocol.
• Advantages
• Fast.
• Disadvantages
• Not Reliable.
• Maximum Buffer Size of 4096 bytes.
GAME NETWORKING
If you are working with slow paced games
like Ludo, Chess etc where the response from
players takes a reasonable amount of time, you
should be better off with TCP, although, you can
also use reliable UDP. On the other hand, when
working with fast paced games like first person
shooters and car races where the game states
are always changing, you would have to use
UDP for the purpose of faster transmission.
TCP BETTER
UDP BETTER
GAME NETWORKING
Network Architecture
There are two common network
architecture used in games.
They are:• Peer to Peer Architecture
• Client-Server Architecture
GAME NETWORKING
• Peer to Peer Architecture
In this Architecture, all the computers in the network
are connected to one another. Each player on each
computer sends messages of his or her current game
state to other computers. The problem with this
architecture is that it is not scalable. In other words, as
the number of players connected to the network
increases, the bandwidth is quickly consumed and as
such a limited number of players can play on this
architecture. Also, client players can easily cheat as they
are in control of their characters by using some third
party software that will send fake information to other
computers.
GAME NETWORKING
• Client-Server Architecture
Here, all the computers in the network are connected to a
central computer called the server. Each player is a client and
connects to the server to join the game. The players send input
states to the server. All player actions are simulated in the server
and duplicated in the client computers. In other words, all the clients
send inputs to the server and the server send all the player states to
all clients, thereby saving bandwidth. Thus, this architecture is
scalable and prevents client side cheating. The problem of latency
comes into play here because it takes time for a player’s input to get
to the server and time for the server to simulate the player’s new
game state and send it back to the player. This is eliminated
however by various techniques most notably client side prediction.
ARTIFICIAL INTELLIGENCE
• Locomotion
• Steering
• Decision Making
ARTIFICIAL INTELLIGENCE
Locomotion
This involves physical motion:- how to walk
- how to run
- how to jump
- how to climb
ARTIFICIAL INTELLIGENCE
Steering
This deals with how an AI agent moves from
one point to another. They include:- Terminator AI
- Pattern based AI
- Potential Functions
- Path Planning
ARTIFICIAL INTELLIGENCE
Decision Making
- Finite State Machine
- Rule-Based AI
- Neural Networks
- Genetic Algorithm
GAME MATHEMATICS AND
PHYSICS
• A solid mathematical foundation is
required for a 3D game programmer.
• Physics deals with collision detection and
response in the game.
• Also, knowledge of Newtonian physics is
required for proper collision response.
GAME INPUT
Game are meant to be interactive and
as such input devices are an essential
component of computer games.
GAME SOUND
• Sound is an essential component of a
game.
• Higher satisfaction is gained from playing
a game with sound incorporated in it than
one with no sound.
Common Sound Libraries include:• FMOD sound library
• Irrklang sound engine.
ANIMATION
• 2D animation involves drawing a
sequence of pictures in the right order.
SCENE MANAGEMENT DATA
STRUCTURES
•
•
•
•
•
•
3D games environments can get really complex and have thousands
of triangles to render and the frame rate of the game quickly comes down.
In such a situation, you do not render all the triangles at once but render
only the ones that the player can see. The process of determining the
triangles that can be seen by the player is known as CULLING. Certain
Spatial Data Structures are used to organize the triangle meshes in the 3d
environment to speed up culling as trying to test if each triangle is visible
before rendering would worsen the frame rate as the case may be. These
data structures are also used for collision detection, artificial intelligence and
other parts of a game that needs optimization for speed. The most popular
ones are as follows:- Bounding Volume Hierarchy (BVH)
- Uniform Spatial Subdivision
- Octrees
- Quad trees
- K-d trees
- Binary Space Partitioning (BSP) trees
SCENE MANAGEMENT DATA
STRUCTURES
• View Frustum Culling
This is used to test if an object is in the
field of view of the player’s camera before
rendering it in order not to render
unnecessary geometry.
CONCLUSION
• I think with this, you should know the
basics of what game development entails.
• Goodluck!