<<  Expressing the future The Game Development Process  >>
Macromedia Flash (2 of 2)
Macromedia Flash (2 of 2)
Macromedia Flash (2 of 2)
Macromedia Flash (2 of 2)
Finite State Machines (1 of 2)
Finite State Machines (1 of 2)
The Game Development Process

: Claypool. , . , The Game Development Process.ppt zip- 111 .

The Game Development Process

The Game Development Process.ppt
1The Game Development Process. Game 32shot arrow should get experience points,
Programming. but it is may be NULL Thats the bug, but
2Outline. Teams and Processes Select why is it NULL? Based on Chapter 3.5,
Languages Debugging Misc (as time allows) Introduction to Game Development.
AI Multiplayer. 33Step 3: Pinpoint Error. Propose a
3Introduction. Used to be programmers hypothesis and prove or disprove Ex:
created games But many great programmers suppose arrow pointer corrupted during
not great game makers With budget shift, flight. Add code to print out values of
emphasis has shifted Game content creators arrow in air. But equals same value that
are artist and designers Programmers can crashes. Wrong. Ex: suppose unit deleted
be thought of as providing services for before experience point. Print out values
content But fate of entire game rests in of all in camp before fire and all
their hands. Based on Chapter 3.1, deleted. Yep, thats it. Or,
Introduction to Game Development. divide-and-conquer method (note, can use
4Programming Areas Game Code. in conjunction with hypo-test above, too)
Everything directly related to game itself Sherlock Holmes when you have eliminated
How camera behaves, score is kept, AI for the impossible, whatever remains, however
bots, etc. Often in scripting language improbably, must be the truth Setting
(rest is in C++, more on languages next) breakpoints, look at all values, until
Produce faster iterations Allow technical discover bug The divide part means break
designers/artists to change behaviors More it into smaller sections Ex: if crash, put
appropriate language for domain (ex: AI breakpoint ? way. Is it before or after?
probably not easiest in C++). Based on Repeat Look for anomalies, NULL or NAN
Chapter 3.1, Introduction to Game values. Based on Chapter 3.5, Introduction
Development. to Game Development.
5Programming Areas Game Engine. 34Step 4: Repair the Problem. Propose
Support code that is not game specific solution. Exact solution depends upon
More than just drawing pretty 3d graphics stage of problem. Ex: late in code cannot
(that is actually the graphics engine, change data structures. Too many other
part of the game engine) Isolate game code parts use. Worry about ripple effects.
from hardware ex: controller, graphics, Ideally, want original coder to fix. At
sound Allows designers to concentrate on least, talk with original coder for
game Common functionality needed across insights. Consider other similar cases,
game Serialization, network communication, even if not yet reported Ex: other
pathfinding, collision detection. Based on projectiles may cause same problem as
Chapter 3.1, Introduction to Game arrows did. Based on Chapter 3.5,
Development. Introduction to Game Development.
6Programming Areas Tools. Most 35Step 5: Test Solution. Obvious, but
involve content creation Level editors, can be overlooked if programmer is sure
particle effect editors, sound editors they have fix (but programmer can be
Some to automate repetitive tasks (ex: wrong!) So, test that fix repairs bug Best
convert content to game format) These by independent tester Test if other bugs
usually have no GUI Sometimes written as introduced (beware ripple effect). Based
plug-ins for off-the-shelf tools Ex: on Chapter 3.5, Introduction to Game
extensions to Maya or 3dStudio or Development.
Photoshop If no such extension available, 36Debugging Tips (1 of 3). Question your
build from scratch. Based on Chapter 3.1, assumptions dont even assume simple
Introduction to Game Development. stuff works, or mature products Ex:
7Programming Team Organization. libraries can have bugs Minimize
Programmers often specialize Graphics, interactions systems can interfere, make
networking, AI May be generalists, know slower so isolate the bug to avoid
something about everything Often critical complications Minimize randomness ex,
for glue to hold specialists together can be caused by random seed or player
Make great lead programmers More than 3 or input. Fix input (script player) so
4, need some organization Often lead reproducible. Based on Chapter 3.5,
programmer, much time devoted to Introduction to Game Development.
management More than 10 programmers, 37Debugging Tips (2 of 3). Break complex
several leads (graphics lead, AI lead, calculations into steps may be equation
etc.). Based on Chapter 3.1, Introduction that is fault or cast badly Check
to Game Development. boundary conditions classic off by one
8Software Methodologies. Code and Fix for loops, etc. Disrupt parallel
Waterfall Iterative Agile (Take cs3733, computations race conditions if happen
Software Engineering). at same time (cs3013) Use debugger
9Methodologies Code and Fix. Really, breakpoints, memory watches, stack Check
lack of a methodology And all too common code recently changed if bug appears,
Little or no planning, diving straight may be in latest code (not even yours!).
into implementation Reactive, no proactive Based on Chapter 3.5, Introduction to Game
End with bugs. If bugs faster than can Development.
fix, death spiral and may be cancelled 38Debugging Tips (3 of 3). Take a break
Even those that make it, must have crunch too close, cant see it. Remove to
time viewed after as badge of honor, but provide fresh prospective Explain bug to
results in burnout. Based on Chapter 3.1, someone else helps retrace steps, and
Introduction to Game Development. others provide alternate hypotheses Debug
10Methodologies - Waterfall. Plan ahead with partner provides new techniques Get
Proceed through various planning steps outside help tech support for consoles,
before implementation requirements libraries, Based on Chapter 3.5,
analysis, design, implementation, testing Introduction to Game Development.
(validation), integration, and maintenance 39Tough Debugging Scenarios and Patterns
The waterfall loops back as fixes required (1 of 2). Bug in Release but not in Debug
Can be brittle to changing functionality, Often in initialized code Or in optimized
unexpected problems in implementation code Turn on optimizations one-by-one Bug
Going back to beginning. Based on Chapter in Hardware but not in Dev Kit Usually dev
3.1, Introduction to Game Development. kit has extra memory (for tracing, etc.).
11Methodologies - Iterative. Develop for Suggest memory problem (pointers), stack
a period of time (1-2 months), get working overflow, not checking memory allocation
game, add features Periods can coincide Bug Disappears when Changing Something
with publisher milestones Allows for some Innocuous Likely timing problem (race
planning Time period can have design condition) or memory problem Even if looks
before implementation Allows for some like gone, probably just moved. So keep
flexibility Can adjust (to new technical looking. Based on Chapter 3.5,
challenges or producer demands). Based on Introduction to Game Development.
Chapter 3.1, Introduction to Game 40Tough Debugging Scenarios and Patterns
Development. (2 of 2). Truly Intermittent Problems
12Methodologies - Agile. Admit things Maybe best you can do is grab all data
will change, avoid looking too far in the values (and stack, etc) and look at (Send
future Value simplicity and the ability to Error Report) Unexplainable Behavior Ex:
change Can scale, add new features, adjust values change without touching. Usually
Relatively new for game development Big memory problem. Could be from supporting
challenge is hard to convince publishers. system. Retry, rebuild, reboot,
Based on Chapter 3.1, Introduction to Game re-install. Bug in Someone Elses Code No
Development. it is not. Be persistent with own code
13Common Practices Version Control. first. Its not in hardware. (Ok, very,
Database containing files and past history very rarely, but expect it not to be)
of them Central location for all code Download latest firmware, drivers If
Allows team to work on related files really is, best bet is to help isolate to
without overwriting each others work speed them in fixing it. Based on Chapter
History preserved to track down errors 3.5, Introduction to Game Development.
Branching and merging for platform 41Debugging Prevention (1 of 2).
specific parts. Based on Chapter 3.1, Understand underlying system Knowing
Introduction to Game Development. language not enough Must understand
14Common Practices Quality (1 of 2). underlying system At least one level down
Code reviews walk through code by other Engine for scripters OS for engine Maybe
programmer(s) Formal or informal Two eyes two layers down (hardware, assembly) Add
are better than one Value is programmer infrastructure, tools to assist Make
aware others read Asserts Force program to general Alter game variables on fly (speed
crash to help debugging Ex: Check up) Visual diagnostics (maybe on avatars)
condition is true at top of code, say Log data (events, units, code, time
pointer not NULL before following Removed stamps) Record and playback capability.
during release. Based on Chapter 3.1, Based on Chapter 3.5, Introduction to Game
Introduction to Game Development. Development.
15Common Practices Quality (2 of 2). 42Debugging Prevention (2 of 2). Set
Unit tests Low level test of part of game compiler on highest level warnings Dont
(Ex: see if physics computations correct) ignore warnings Compile with multiple
Tough to wait until very end and see if compilers See if platform specific Write
bug Often automated, computer runs through own memory manager (for console games,
combinations Verify before assembling especially, since tools worse) Use asserts
Acceptance tests Verify high-level Always initialize when declared Indent
functionality working correctly (Ex: see code, use comments Use consistent style,
if levels load correctly) Note, above are variable names Avoid identical code
programming tests (ie- code, technical). harder to fix if bug Avoid hard-coded
Still turned over to testers that track (magic numbers) makes brittle Verify
bugs, do gameplay testing. Bug database coverage (test all code) when testing.
Document and track bugs Can be from Based on Chapter 3.5, Introduction to Game
programmers, publishers, customers Development.
Classify by severity Keeps bugs from 43Outline. Teams and Processes (done)
falling through cracks Helps see how game Select Languages (done) Debugging (done)
is progressing. Based on Chapter 3.1, Misc (as time allows) AI (next)
Introduction to Game Development. Multiplayer.
16Outline. Teams and Processes (done) 44Introduction to AI. Opponents that are
Select Languages (next) Debugging Misc (as challenging, or allies that are helpful
time allows) AI Multiplayer. Unit that is credited with acting on own
17C++ (1 of 3). Mid-late 1990s, C was Human-level intelligence too hard But
language of choice Since then, C++ under narrow circumstances can do pretty
language of choice for games First well (ex: chess and Deep Blue) Artificial
commercial release in 1985 (AT&T) List Intelligence (around in CS for some time).
pros (+) and cons (-) (Take cs2102 OO Based on Chapter 5.3, Introduction to Game
Design Concepts or cs4233 OOAD) + C Development.
Heritage Learning curve easier Compilers 45AI for CS different than AI for Games.
wicked fast + Performance Used to be most Must be smart, but purposely flawed Loose
important, but less so (but still for core in a fun, challenging way No unintended
parts) Maps closely to hardware (can weaknesses No golden path to defeat Must
guess what assembly instructions will not look dumb Must perform in real time
be) Can not use features to avoid cost, if (CPU) Configurable by designers Not hard
want (ie- virtual function have extra step coded by programmer Amount and type of
but dont have to use) Memory management AI for game can vary RTS needs global
controlled by user. Based on Chapter 3.2, strategy, FPS needs modeling of individual
Introduction to Game Development. units at footstep level RTS most
18C++ (2 of 3). + High-level Classes demanding: 3 full-time AI programmers
(objects), polymorphism, templates, Puzzle, street fighting: 1 part-time AI
exceptions Especially important as programmer. Based on Chapter 5.3,
code-bases enlarge Strongly-typed (helps Introduction to Game Development.
reduce errors) ex: declare before use, and 46AI for Games Mini Outline.
const + Libraries C++ middleware readily Introduction (done) Agents (next) Finite
available OpenGL, DirectX, Standard State Machines Common AI Techniques
Template Library (containers, like Promising AI Techniques.
vectors, and algorithms, like sort). 47Game Agents (1 of 2). Most AI focuses
Based on Chapter 3.2, Introduction to Game around game agent think of agent as NPC,
Development. enemy, ally or neutral Loops through:
19C++ (3 of 3). - Too Low-level Still sense-think-act cycle Acting is event
force programmer to deal with low-level specific, so talk about sense+think
issues ex: memory management, pointers - Sensing Gather current world state:
Too complicated Years of expertise barriers, opponents, objects Needs
required to master (other languages seek limitations : avoid cheating by looking
to overcome, like Java and C#) - Lacking at game data Typically, same constraints
features No built-in way to look at object as player (vision, hearing range) Often
instances No built-in way to serialize done simply by distance direction (not
Forces programmer to build such computed as per actual vision) Model
functionality (or learn custom or 3rd communication (data to other agents) and
party library) - Slow iteration Brittle, reaction times (can build in delay). Based
hard to try new things Code change can on Chapter 5.3, Introduction to Game
take a looong time as can compile. Based Development.
on Chapter 3.2, Introduction to Game 48Game Agents (2 of 2). Thinking
Development. Evaluate information and make decision As
20C++ (Summary). When to use? Any code simple or elaborate as required Two ways:
where performance is crucial Used to be Precoded expert knowledge, typically
all, now game engine such as graphics and hand-crafted if-then rules + randomness to
AI Game-specific code often not C++ Legacy make unpredictable Search algorithm for
code base, expertise When also use best (optimal) solution. Based on Chapter
middle-ware libraries in C++ When not to 5.3, Introduction to Game Development.
use? Tool building (GUIs tough) 49Game Agents Thinking (1 of 3).
High-level game tasks (technical Expert Knowledge finite state machines,
designers). Based on Chapter 3.2, decision trees, (FSM most popular,
Introduction to Game Development. details next) Appealing since simple,
21Java (1 of 3). Java popular, but only natural, embodies common sense Ex: if you
recently so for games Invented in 1990 by see enemy weaker than you, attack. If you
Sun Microsystems + Concepts from C++ see enemy stronger, then go get help Often
(objects, classes) Powerful abstractions + quite adequate for many AI tasks Trouble
Cleaner language Memory management is, often does not scale Complex
built-in Templates not as messy Object situations have many factors Add more
functions, such as virtualization + Code rules, becomes brittle. Based on Chapter
portability (JVM) (Hey, draw picture) + 5.3, Introduction to Game Development.
Libraries with full-functionality 50Game Agents Thinking (2 of 3).
built-in. Based on Chapter 3.2, Search Look ahead and see what move to do
Introduction to Game Development. next Ex: piece on game board, pathfinding
22Java (2 of 3). - Performance (ch 5.4) Machine learning Evaluate past
Interpreted, garbage collection, security actions, use for future Techniques show
So take 4x to 10x hit + Can overcome with promise, but typically too slow Need to
JIT compiler, Java Native Interface (not learn and remember. Based on Chapter 5.3,
interpreted) - Platforms JVM, yeah, but Introduction to Game Development.
not all games (most PC games not, nor 51Game Agents Thinking (3 of 3).
consoles) + Strong for browser-games, Making agents stupid Many cases, easy to
mobile. Based on Chapter 3.2, Introduction make agents dominate Ex: bot always gets
to Game Development. head-shot Dumb down by giving human
23Java (3 of 3). Used in: conditions, longer reaction times, make
Downloadable/Casual games PopCap games unnecessarily vulnerable Agent cheating
Mummy Maze, Seven Seas, Diamond Mine Yahoo Ideally, dont have unfair advantage (such
online games (WorldWinner) Poker, as more attributes or more knowledge) But
Blackjack PC Star Wars Galaxies uses Java sometimes might to make a challenge
(and simplified Java for scripting Remember, thats the goal, AI lose in
language) You Dont Know Jack and Who challenging way Best to let player know.
Wants to be a Millionaire all Java. Based Based on Chapter 5.3, Introduction to Game
on Chapter 3.2, Introduction to Game Development.
Development. 52AI for Games Mini Outline.
24Scripting Languages (1 of 3). Not Introduction (done) Agents (done) Finite
compiled, rather specify (script) sequence State Machines (next) Common AI Techniques
of actions Most games rely upon some Promising AI Techniques.
Trigger a few events, control cinematic 53Finite State Machines (1 of 2).
Others games may use it lots more Control Abstract model of computation Formally:
game logic and behavior (Game Maker has Set of states A starting state An input
GML) + Ease of development Low-level vocabulary A transition function that maps
things taken care of Fewer errors by inputs and the current state to a next
programmer - But script errors tougher, state. Based on Chapter 5.3, Introduction
often debuggers worse Less technical to Game Development.
programming required Still, most scripting 54Finite State Machines (2 of 2). Most
done by programmers Iteration time faster common game AI software pattern Natural
(dont need to re-compile all code) Can be correspondence between states and
customized for game (ex: just AI tasks). behaviors Easy to diagram Easy to program
Based on Chapter 3.2, Introduction to Game Easy to debug Completely general to any
Development. problem Problems Explosion of states Often
25Scripting Languages (2 of 3). + Code created with ad hoc structure. Based on
as an asset Ex: consider Peon in C++, with Chapter 5.3, Introduction to Game
behavior in C++, maybe art as an asset. Development.
Script would allow for behavior to be an 55Finite-State Machine: Approaches.
asset also Can be easily modified, even by Three approaches Hardcoded (switch
end-user in mod - Performance Parsed and statement) Scripted Hybrid Approach. Based
executed on the fly Hit could be 10x or on Chapter 5.3, Introduction to Game
more over C++ Less efficient use of Development.
instructions, memory management -Tool 56Finite-State Machine: Hardcoded FSM.
support Not as many debuggers, IDEs Errors void RunLogic( int * state ) { switch(
harder to catch - Interface with rest of state ) { case 0: //Wander Wander(); if(
game Core in C++, must export interface SeeEnemy() ) { *state = 1; } break; case
Can be limiting way interact (Hey, draw 1: //Attack Attack(); if( LowOnHealth() )
picture). Based on Chapter 3.2, { *state = 2; } if( NoEnemy() ) { *state =
Introduction to Game Development. 0; } break; case 2: //Flee Flee(); if(
26Scripting Languages (3 of 3). Python NoEnemy() ) { *state = 0; } break; } }.
Interpreted, OO, many libraries, many Based on Chapter 5.3, Introduction to Game
tools Quite large (bad when memory Development.
constrained) Ex: Blade of Darkness, Earth 57Finite-State Machine: Problems with
and Beyond, Eve Online, Civilization 4 switch FSM. 1. Code is ad hoc Language
(Table 3.2.1 full list) Lua (pronounced: doesnt enforce structure 2. Transitions
Loo-ah) Not OO, but small (memory). Embed result from polling Inefficient
in other programs. Doesnt scale well. Ex: event-driven sometimes better 3. Cant
Grim Fandango, Baldurs Gate, Far Cry determine 1st time state is entered 4.
(Table 3.2.2 full list) Others: Ruby, Cant be edited or specified by game
Perl, JavaScript Custom: GML, QuakeC, designers or players. Based on Chapter
UnrealScript Implementing own tough, often 5.3, Introduction to Game Development.
performs poorly so careful! Based on 58Finite-State Machine: Scripted with
Chapter 3.2, Introduction to Game alternative language. AgentFSM { State(
Development. STATE_Wander ) OnUpdate Execute( Wander )
27Macromedia Flash (1 of 2). More of a if( SeeEnemy ) SetState( STATE_Attack )
platform and IDE (ala Game Maker) than a OnEvent( AttackedByEnemy ) SetState(
language (still, has ActionScript) Flash Attack ) State( STATE_Attack ) OnEnter
refers authoring environment, the player, Execute( PrepareWeapon ) OnUpdate Execute(
or the application files Released 1997, Attack ) if( LowOnHealth ) SetState(
popular with Browser bundles by 2000 STATE_Flee ) if( NoEnemy ) SetState(
Advantages Wide audience (nearly all STATE_Wander ) OnExit Execute( StoreWeapon
platforms have Flash player) Easy ) State( STATE_Flee ) OnUpdate Execute(
deployment (embed in Web page) Rapid Flee ) if( NoEnemy ) SetState(
development (small learning curve, for STATE_Wander ) }. Based on Chapter 5.3,
both artists and programmers) Introduction to Game Development.
Disadvantages 3D games Performance 59Finite-State Machine: Scripting
(interpreted, etc.). Based on Chapter 3.3, Advantages. 1. Structure enforced 2.
Introduction to Game Development. Events can be handed as well as polling 3.
28Macromedia Flash (2 of 2). Timeline OnEnter and OnExit concept exists 4. Can
Based Frames and Frame rate (like be authored by game designers Easier
animations) Programmers indicate when learning curve than straight C/C++.
(time) event occurs (can occur across many 60Finite-State Machine: Scripting
frames) Vector Engine Lines, vertices, Disadvantages. Not trivial to implement
circles Can be scaled to any size, still Several months of development Custom
looks crisp Scripting ActionScript similar compiler With good compile-time error
to JavaScript Classes (as of Flash v2.0) feedback Bytecode interpreter With good
Backend connectivity (load other Movies, debugging hooks and support Scripting
URLs). Based on Chapter 3.3, Introduction languages often disliked by users Can
to Game Development. never approach polish and robustness of
29Outline. Teams and Processes (done) commercial compilers/debuggers. Based on
Select Languages (done) Debugging (next) Chapter 5.3, Introduction to Game
Misc (as time allows) AI Multiplayer. Development.
30Debugging Introduction. New Integrated 61Finite-State Machine: Hybrid Approach.
Development Environments (IDEs) have Use a class and C-style macros to
debugging tools Trace code, print values, approximate a scripting language Allows
profile But debugging frustrating FSM to be written completely in C++
Beginners not know how to proceed Even leveraging existing compiler/debugger
advanced can get stuck Dont know how Capture important features/extensions
long takes to find Variance can be high OnEnter, OnExit Timers Handle events
Mini-outline 5-step debugging process Consistent regulated structure Ability to
Debugging tips Touch scenarios and log history Modular, flexible, stack-based
patterns Prevention. Based on Chapter 3.5, Multiple FSMs, Concurrent FSMs Cant be
Introduction to Game Development. edited by designers or players. Based on
31Step 1: Reproduce the Problem Chapter 5.3, Introduction to Game
Consistently. Find case where always Development.
occurs Sometimes game crashes after kill 62Finite-State Machine: Extensions. Many
boss doesnt help much Identify steps to possible extensions to basic FSM OnEnter,
get to bug Ex: start single player, OnExit Timers Global state, substates
skirmish map 44, find enemy camp, use Stack-Based (states or entire FSMs)
projectile weapon Produces systematic Multiple concurrent FSMs Messaging. Based
way to reproduce. Based on Chapter 3.5, on Chapter 5.3, Introduction to Game
Introduction to Game Development. Development.
32Step 2: Collect Clues. Collect clues 63AI for Games Mini Outline.
as to bug But beware that some clues are Introduction (done) Agents (done) Finite
false Ex: if bug follows explosion may State Machines (done) Common AI Techniques
think they are related, but may be from (next) Promising AI Techniques.
something else Ex: if crash using 64Common Game AI Techniques. Whirlwind
projectile, what about that code that tour of common techniques (See book
makes it possible to crash? Dont spend chapters). Based on Chapter 5.3,
too long, get in and observe Ex: see Introduction to Game Development.
reference pointer from arrow to unit that
The Game Development Process.ppt

The Game Development Process

The Game Development Process

the woman - Chickens mind- . A good wife makes a good husband. ; = . . A womans tongue wags like a lambs tail. Un homme- . A man - . As great a pity to see a woman cry as a goose go barefoot.

The green movement - National offices Green Peace are opened in 43 countries of the world as the independent units working over achievement of the purposes of the national projects. Several active workers managed to steal up on a raft to a platform and to chain themselves to it. Management of each such branch in which head there is a chief executive, carries out national board.

The animals - STARFISH. LION. GIRAFFE. FISH. EMU. SCORPIO. The animals which live in the desert. The animals which live in the OCEAN. The animals which live in the rainforest and tropics. BOBCAT. SNAKE. FLAMINGO. KANGAROO. ZEBRA. SEAL. The ANIMALS of our planet. REINDEER. KOALA. The animals which live in Australia.

The english-speaking countries - USA. Scotland. Great Britain. Australia. The English-speaking countries. Disneyland.

Sommerferien - Wir Blume pflancen. Sommerferien. Wir fahren auf Dampfschiff. Wir spiel mit dem Freund. Wir pflucken Beere. Wir waren in Gebirge. Wir alte Schloss besuchen. Der Sommer wir sorgen fur Haustiere: Kuhe, Hund. Das Fischen ist Hobbi. Langere Reise mit Ubernachtunger in einem Zelt jch findet besjnders toll.

Olympic games 2012 - Sports facilities. London became the first city to have received three Olympics. Olympic Torch Relay Olympic Games. Summer Olympic Games 2012. Medal standings. Oscar on the Olympic Games in 2012. Oscar Pistorius is a man who never gives up. Olympic games in london. Talismans of Games Wenlock and Mandeville.


900igr.net > > > The Game Development Process