CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA.

29
CHAPTER 1 CHAPTER 1 Introduction to Game Introduction to Game Development Development © 2008 Cengage Learning EM
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    245
  • download

    4

Transcript of CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA.

Page 1: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA.

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.

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.

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.

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.

INTRODUCTION TO GAME INTRODUCTION TO GAME DEVELOPMENTDEVELOPMENT

Page 6: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA.

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.

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.

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.

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.

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.
Page 12: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA.

Introduction to Operating Introduction to Operating System ArchitectureSystem Architecture

Page 13: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA.

Introduction to Operating Introduction to Operating System ArchitectureSystem Architecture

Page 14: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA.

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.

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.

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.

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.

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.

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.

THE UNIFIED MODELING THE UNIFIED MODELING LANGUAGE (UML)LANGUAGE (UML)

Representing Associations

Page 21: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA.

THE UNIFIED MODELING THE UNIFIED MODELING LANGUAGE (UML)LANGUAGE (UML)

Representing Generalizations

Page 22: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA.

THE UNIFIED MODELING THE UNIFIED MODELING LANGUAGE (UML)LANGUAGE (UML)

Aggregation

Page 23: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA.

THE UNIFIED MODELING THE UNIFIED MODELING LANGUAGE (UML)LANGUAGE (UML)

Instance Diagrams

Page 24: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA.

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.

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.

GAME DEVELOPMENT GAME DEVELOPMENT TOOLSTOOLS

A screenshot of Adobe Photoshop

Page 27: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA.

GAME DEVELOPMENT GAME DEVELOPMENT TOOLSTOOLS

NVIDIA’s PerfHUD

Page 28: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA.

GAME DEVELOPMENT GAME DEVELOPMENT TOOLSTOOLS

NVIDIA’s FX Composer IDE

Page 29: CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA.

GAME DEVELOPMENT GAME DEVELOPMENT TOOLSTOOLS

Basic Visual Studio 2005 interface