chapter 1 introduction to game development © 2008 cengage learning emea
Post on 20-Dec-2015
247 views
TRANSCRIPT
![Page 1: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/1.jpg)
CHAPTER 1CHAPTER 1
Introduction to Game Introduction to Game DevelopmentDevelopment
© 2008 Cengage Learning EMEA
![Page 2: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/2.jpg)
LEARNING OBJECTIVESLEARNING OBJECTIVES In this chapter you will learn about:
– The game development process– The history of game development– Elements of game programming– Operating system architecture– Game development techniques and methodologies– Sequential software development: the waterfall model– Iterative software development: the Rational Unified Process– Agile software development: Extreme Programming– The Unified Modeling Language (UML)– Class diagrams– Representing classes– Representing associations– Representing generalizations– Aggregation– Interfaces– Instance diagrams– Game development tools
![Page 3: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/3.jpg)
INTRODUCTION TO GAME INTRODUCTION TO GAME DEVELOPMENTDEVELOPMENT
Game development– A multifaceted discipline concerned with the
production of video games. Video game
– A game where the player interacts with some virtually represented environment via a particular controller or input device.
Game development process– Defined by combining some software
engineering methodology with a project management process.
![Page 4: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/4.jpg)
INTRODUCTION TO GAME INTRODUCTION TO GAME DEVELOPMENTDEVELOPMENT
Software engineering– Deals with the design, implementation and
maintenance of software. Project management
– Deals with the administration of resources so that some project can be completed within a predefined timeframe, budget and scope.
Any game development effort includes:– A pre-production phase, a mainstream
production phase, project milestones, testing, release to manufacturing, and patch-based maintenance.
![Page 5: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/5.jpg)
INTRODUCTION TO GAME INTRODUCTION TO GAME DEVELOPMENTDEVELOPMENT
![Page 6: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/6.jpg)
HistoryHistory
The first computer games ever:– OXO– Tennis for Two
Multi-User Dungeons PONG Breakout, Donkey Kong, Pac-Man and
Space Invaders
![Page 7: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/7.jpg)
HistoryHistory
The Atari 2600 Personal computer games and the Apple II IBM PCs and Wolfenstein 3D, Doom and
Quake The advent of 3D graphics cards DirectX and OpenGL
![Page 8: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/8.jpg)
Elements of Game Elements of Game ProgrammingProgramming
Game programming– Concerned with the software engineering
elements of computer, console and arcade games.
The programming team will often start by: – Defining and designing the various networking,
interface, AI, scripting and graphics components needed to fulfill the game’s requirements.
The team will also evaluate:– Whether all game design requirements are
programmatically fulfilled, determining the lacking components.
![Page 9: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/9.jpg)
Elements of Game Elements of Game ProgrammingProgramming
Difference between game programming and general application programming:– The real-time nature of games.
Computer programs were traditionally written using a flow-driven or procedural programming paradigm.
Modern-day programs generally make use of the event-driven programming model.
![Page 10: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/10.jpg)
Elements of Game Elements of Game ProgrammingProgramming
Games require a more independent execution approach.– Accomplished via the implementation of a game loop.
A standard game loop:1 Initialization and memory allocation.2 Input monitoring.3 Execution of artificial intelligence (AI) and physics
routines.4 Sound and music output.5 Execution of game logic.6 Rendering of the scene based on the input from the user
and other subsystems.7 Display synchronization.8 Shutdown of the game if the user wishes to terminate
the program.
![Page 11: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/11.jpg)
![Page 12: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/12.jpg)
Introduction to Operating Introduction to Operating System ArchitectureSystem Architecture
![Page 13: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/13.jpg)
Introduction to Operating Introduction to Operating System ArchitectureSystem Architecture
![Page 14: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/14.jpg)
Introduction to Operating Introduction to Operating System ArchitectureSystem Architecture
Cooperative multitasking– based on the principle that any executing task
must, at some point, release the CPU either voluntarily or after some system interrupt has been issued.
Pre-emptive multitasking– based on the use of a system interrupt
mechanism coupled with a scheduler ensuring that all active processes can gain access to the CPU at any given time, thus creating a more reliable operating environment where each and every process is guaranteed some CPU time.
![Page 15: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/15.jpg)
Introduction to Operating Introduction to Operating System ArchitectureSystem Architecture
MMemory Addressing– Virtual mode– Real mode
Object-orientated operating system design is based on the process of extending the kernel modularly, allowing programmers to customize the operating system without affecting the overall system reliability or functionality.
![Page 16: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/16.jpg)
GAME DEVELOPMENT TECHNIQUES GAME DEVELOPMENT TECHNIQUES AND METHODOLOGIESAND METHODOLOGIES
Sequential Software Development: The Waterfall Model
![Page 17: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/17.jpg)
GAME DEVELOPMENT TECHNIQUES GAME DEVELOPMENT TECHNIQUES AND METHODOLOGIESAND METHODOLOGIES
Iterative Software Development: The Rational Unified Process
![Page 18: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/18.jpg)
GAME DEVELOPMENT TECHNIQUES GAME DEVELOPMENT TECHNIQUES AND METHODOLOGIESAND METHODOLOGIES
Agile Software Development: Extreme Programming– Practices:
Continuous integration Evolutionary design Pair programming Refactoring Testing
– Values: Communication Simplicity Feedback Courage Respect
![Page 19: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/19.jpg)
THE UNIFIED MODELING THE UNIFIED MODELING LANGUAGE (UML)LANGUAGE (UML)
A graphical modeling language developed in the mid 1990s for the visual representation of object-orientated software.
Class Diagrams
![Page 20: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/20.jpg)
THE UNIFIED MODELING THE UNIFIED MODELING LANGUAGE (UML)LANGUAGE (UML)
Representing Associations
![Page 21: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/21.jpg)
THE UNIFIED MODELING THE UNIFIED MODELING LANGUAGE (UML)LANGUAGE (UML)
Representing Generalizations
![Page 22: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/22.jpg)
THE UNIFIED MODELING THE UNIFIED MODELING LANGUAGE (UML)LANGUAGE (UML)
Aggregation
![Page 23: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/23.jpg)
THE UNIFIED MODELING THE UNIFIED MODELING LANGUAGE (UML)LANGUAGE (UML)
Instance Diagrams
![Page 24: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/24.jpg)
GAME DEVELOPMENT GAME DEVELOPMENT TOOLSTOOLS
A screenshot of Quake 3’s level editor, Q3Radiant
![Page 25: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/25.jpg)
GAME DEVELOPMENT GAME DEVELOPMENT TOOLSTOOLS
A screenshot of Autodesk’s high-end 3D modeling package, Maya
![Page 26: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/26.jpg)
GAME DEVELOPMENT GAME DEVELOPMENT TOOLSTOOLS
A screenshot of Adobe Photoshop
![Page 27: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/27.jpg)
GAME DEVELOPMENT GAME DEVELOPMENT TOOLSTOOLS
NVIDIA’s PerfHUD
![Page 28: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/28.jpg)
GAME DEVELOPMENT GAME DEVELOPMENT TOOLSTOOLS
NVIDIA’s FX Composer IDE
![Page 29: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA](https://reader036.vdocuments.us/reader036/viewer/2022081419/56649d4d5503460f94a2b61f/html5/thumbnails/29.jpg)
GAME DEVELOPMENT GAME DEVELOPMENT TOOLSTOOLS
Basic Visual Studio 2005 interface