* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
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!