28
AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

Embed Size (px)

Citation preview

Page 1: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

AN OVERVIEW OF GAME DEVELOPMENT

By

Nmoye Ifeanyi Lawrence

Page 2: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

GAME DEVELOPMENT COURSE OUTLINE

Game Development – the basicsIntroduction to Game Engines and Game

Design

Page 3: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

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.

Page 4: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

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.

Page 5: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

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

Page 6: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

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

Page 7: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

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

Page 8: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

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.

Page 9: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

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.

Page 10: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

GRAPHICS ENGINE

Page 11: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

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.

Page 12: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

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.

Page 13: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

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.

Page 14: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

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

Page 15: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

GAME NETWORKING

Network Architecture

There are two common network architecture used in games.

They are:-

• Peer to Peer Architecture

• Client-Server Architecture

Page 16: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

GAME NETWORKING

• Peer to Peer ArchitectureIn 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.

Page 17: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

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.

Page 18: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

ARTIFICIAL INTELLIGENCE

• Locomotion

• Steering

• Decision Making

Page 19: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

ARTIFICIAL INTELLIGENCE

Locomotion

This involves physical motion:-

- how to walk

- how to run

- how to jump

- how to climb

Page 20: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

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

Page 21: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

ARTIFICIAL INTELLIGENCE

Decision Making

- Finite State Machine

- Rule-Based AI

- Neural Networks

- Genetic Algorithm

Page 22: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

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.

Page 23: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

GAME INPUT

Game are meant to be interactive and as such input devices are an essential component of computer games.

Page 24: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

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.

Page 25: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

ANIMATION

• 2D animation involves drawing a sequence of pictures in the right order.

Page 26: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

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

Page 27: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

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.

Page 28: AN OVERVIEW OF GAME DEVELOPMENT By Nmoye Ifeanyi Lawrence

CONCLUSION

• I think with this, you should know the basics of what game development entails.

• Goodluck!