Professional Documents
Culture Documents
IBM - Game Development
IBM - Game Development
Best Practices in
Game Development
Grady Booch
IBM Fellow & Free Radical
http://www.booch.com/architecture/systems.jsp
3 © 2005 IBM Corporation
IBM Software Group | Rational Software
100,000,000
10,000,000
1,000,000
100,000
10,000
1,000
100
10
1886 1900 1910 1920 1930 1940 1950 1960 1970 1980 1990 2000 2010 Volume of
software
(number of
Source: Mercedes lines of
program code)
Gartner, April 2003, Embedded Software Development and Management – Automotive Industry
4 © 2005 IBM Corporation
IBM Software Group | Rational Software
http://www.booch.com/architecture/architecture.jsp?part=Gallery
6 © 2005 IBM Corporation
IBM Software Group | Rational Software
http://www.booch.com/architecture/architecture.jsp?part=Gallery
7 © 2005 IBM Corporation
IBM Software Group | Rational Software
http://www.booch.com/architecture/architecture.jsp?part=Gallery
8 © 2005 IBM Corporation
IBM Software Group | Rational Software
http://www.booch.com/architecture/architecture.jsp?part=Gallery
9 © 2005 IBM Corporation
IBM Software Group | Rational Software
http://www.booch.com/architecture/architecture.jsp?part=Gallery
10 © 2005 IBM Corporation
IBM Software Group | Rational Software
http://www.booch.com/architecture/architecture.jsp?part=Gallery
11 © 2005 IBM Corporation
IBM Software Group | Rational Software
http://www.booch.com/architecture/architecture.jsp?part=Gallery
12 © 2005 IBM Corporation
IBM Software Group | Rational Software
http://www.gehrytechnologies.com/
18 © 2005 IBM Corporation
IBM Software Group | Rational Software
Early Architecture
Progress
- Limited knowledge of theory
Contemporary Architecture
Progress
- Advances in materials
- Advances in analysis
Scale
- 5 times the span of the Pantheon
- 3 times the height of Cheops
Load
Kinds of loads
- Dead loads
- Live loads
- Dynamic loads
Compression Tension Avoiding failure
- Safety factors
- Redundancy
- Equilibrium
Load
Any time you depart from established practice, make ten times the
effort, ten times the investigation. Especially on a very large project.
- LeMessuier
Space plan
Services
Stuff
Structure
Skin
Site
Physical Systems
Simple documents
Colorful clients
Simple scripting
Rise of middleware
Rise of simple frameworks
Emergence of dynamic frameworks
Semantic web
Hyperlinks
Simple formatting
.Net
WebSphere
JBoss
Struts
– Codification of MVC pattern
Ajax
– HTML + DOM + XMLHTTPRequest
SOA
10000
100
12.0
10.0
A $ bill
6.0
4.0
2.0
0.0
2003 2004 2005 2006 2007 2008
Broadband penetration and game subscription on the rise North America EMEA Asia-Pacific
Action
Strategy
Role-playing
Sports
Vehicle
Construction & management
Adventure
Artificial life
Online
Process
Process (Film)
Development
Initial Script
No asset on screen is created entirely by one person
Character
Development
All assets are not only reviewed from a creative perspective, but also
Story Development
tested from a technical perspective
Story board
Shot Layout
Each frame of
animation is made
Character development
Editorial Animation up of multiple
Character Modeling elements
Test
Character Rigging
Lighting Each element goes
Texturing through the
process
Rendering
Direction
Master Layout
Test
Paint
Master Lighting
Film Transfer
Centralized
Storage
Animator’s Network
Storage: SAN
File system: GPFS
Accessed via SAMBAInfrastructure Gateways
backups,
Internet services,
RenderFarm Asset management,
Production Workflow automation,
Hardware: Intel Xeon blades Production Dashboard
Storage Servers running Linux + SAMBA +
NFS
A few fat nodes running Muster,
Content Creation / MentalRay LightWave, water + hair plugins
Editing WorkstationsO/S: some Linux, some Windows Linkage to other production
Render Manager: Muster
(Animators’ Workstations) facilities
Application/s: Mental Ray LightWave
Repository App: CVS
Bandwidth?
Forces In Software
http://www.booch.com/architecture/architecture.jsp?part=Limits-Forces
47 © 2005 IBM Corporation
IBM Software Group | Rational Software
Fundamentals
Crisp abstractions
Clear separation of concerns
Balanced distribution of responsibilities
Simplicity
http://www.ibm.com/developerworks/rational/library/oct05/kroll/index.html
48 © 2005 IBM Corporation
IBM Software Group | Rational Software
Software Patterns
Languages: Assembly -> Fortran/COBOL -> Simula -> C++ -> Java
Platforms: Naked HW -> BIOS -> OS -> Middleware -> Domain-specific
Processes: Waterfall -> Spiral -> Iterative -> Agile
Architecture: Procedural -> Object Oriented -> Service Oriented
Tools: Early tools -> CLE -> IDE -> XDE -> CDE
Enablement: Individual -> Workgroup -> Organization
Why Architecture?
In hyperproductive projects
– Process centers around growing an executable
architecture
– Well-structured systems are full of patterns
Why architecture?
– Risk-confrontive
– Simplicity
– Resilience
QuickTime™ and a
DV/DVCPRO - NTSC decompressor
are needed to see this picture.
Kruchten
57 © 2005 IBM Corporation
IBM Software Group | Rational Software
Architecture Defined
http://www.sei.edu/architecture/definitions.html
58 © 2005 IBM Corporation
IBM Software Group | Rational Software
Architecture Defined
IEEE 1471-2000
– Software architecture is the fundamental organization of a
system, embodied in its components, their relationships to
each other and the environment, and the principles governing
its design and evolution
Software architecture encompasses the set of significant
decisions about the organization of a software system
– Selection of the structural elements and their interfaces by
which a system is composed
– Behavior as specified in collaborations among those elements
– Composition of these structural and behavioral elements into
larger subsystems
– Architectural style that guides this organization
Booch, Kruchten, Reitman, Bittner, and Shaw
59 © 2005 IBM Corporation
IBM Software Group | Rational Software
http://www.booch.com/architecture/architecture.jsp?part=Metamodel
60 © 2005 IBM Corporation
IBM Software Group | Rational Software
http://www.booch.com/architecture/architecture.jsp?part=Metamodel
61 © 2005 IBM Corporation
IBM Software Group | Rational Software
http://www.booch.com/architecture/architecture.jsp?part=Metamodel
62 © 2005 IBM Corporation
IBM Software Group | Rational Software
Sources Of Architecture
Method Method
Cross-functional Mechanisms
Eclipse
www.eclipse.org
Eclipse was started about 2 yrs go - when IBM
made a $40M contribution to the main code base
– but is now an independent entity
The principal architects were John Wiegand,
Dave Thomson, John Duimovich all part of the
OTI team which jump-started Eclipse.
Eclipse Artifacts
Eclipse Architecture
SWT
Lessons Learned
http://www.booch.com/architecture
80 © 2005 IBM Corporation
IBM Software Group | Rational Software
Genres
Representative Systems
Software Archeology
http://www.computerhistory.org
87 © 2005 IBM Corporation
IBM Software Group | Rational Software
&
Two dimensions $
' %
!
() *
!
#
$
$ !"
$ %
!"
+ ,
# ( ,
! !
89 © 2005 IBM Corporation
IBM Software Group | Rational Software
+ .
- " - " , , ,
+ + + + + + + +
! " # $
% $ &
' % (
Development
Financial Markets
Tooling
Development
Defence
Tooling
Life Science
Development
Tooling
Player Interaction
Trader interaction,
Portfolio Management Development
Tooling
Troop co-ordination
Game State
Rationalization, Tele-medicine
Prediction, Modelling, Remote Ops
Physics, AI Etc. War games,
Battlefield C-n-C
Simulation
Game State In silica, etc.
Propagation and Stock Event Propagation,
Telemetry, Positioning,
Control Events Transactions, etc.
Actions, Events, etc. Health monitor
streams
Summary
Every interesting software-intensive system has an
architecture
The most successful software architectures are
intentional, manifest, and visible - and beautiful