Simulation Engines TDA571|DIT030 Software Engineering
Tommaso Piazza
1
Simulation Engines TDA571|DIT030 Software Engineering Tommaso - - PowerPoint PPT Presentation
Simulation Engines TDA571|DIT030 Software Engineering Tommaso Piazza 1 Administrative Stuff Any new arrivals? Have you booked your first supervision? Today is the last day! Do you know in which group you are in? Did you get a
Tommaso Piazza
1
IDC | Interaction Design Collegium
Today is the last day!
group?
2
IDC | Interaction Design Collegium
By the way... simEngines-g#-YouName-Extension
≠
simEngines-gV-... or -YourName-Multimedia
Rename your documents no need to re-share
3
IDC | Interaction Design Collegium
software engineering in game development
apply them
4
IDC | Interaction Design Collegium
game idea to coding
skill and experience of the developers
from this?
5
IDC | Interaction Design Collegium
implementation and maintenance of software. There are various models of the software lifecycle, and many methodologies for the different phases
computer programs
“methodologies”
6
IDC | Interaction Design Collegium
be learned. Why do we need software engineering?
large software systems in a systematic, deterministic and robust way.
7
IDC | Interaction Design Collegium
Elite 2 by himself in the early 80s
development team consists of
and software engineering
methodological
8
IDC | Interaction Design Collegium
attract hackers
more laid back than other engineering industries
kind of “black art”
9
IDC | Interaction Design Collegium
10
IDC | Interaction Design Collegium
game project will not disrupt the creative process
scale games development
wizardry
mentioned hacker minus the bad parts
11
IDC | Interaction Design Collegium
someone is not in time for meetings, how often you have meetings, how to resolve disputes etc.
source code structure etc.
12
IDC | Interaction Design Collegium
Game development aspects according to Gold
intended user
artistic content
software applications
considerable technical challenges in complexity reduction for the programmer
13
IDC | Interaction Design Collegium
phases
functional and non-functional requirements, specify the use-cases. Artifacts: Pre-study document, requirement analysis
concepts and their associations and define the functionality of the system as a set of system operations with contracts. Artifacts: Conceptual model, system sequence diagrams...
Tip: a functional requirement defines a function of a software system or its component
14
IDC | Interaction Design Collegium
classes for all system operations, employ design patterns, build class architecture. Artifacts: Interaction diagrams, class diagrams, component diagram
the contracts, unit test each component. Artifacts: Source code, source documentation
Artifacts: Test protocols
15
(don’t)
use
IDC | Interaction Design Collegium
16
IDC | Interaction Design Collegium
structure in a software system or component
system (use cases), the users who interact with the system (actors), and the association between the users and the functionality.
Involved classes are shown as well as their method invocations.
17
IDC | Interaction Design Collegium
18
IDC | Interaction Design Collegium
an ATM-machine
19
IDC | Interaction Design Collegium
execution of the module and the relations of each class
20
IDC | Interaction Design Collegium
diagram shows the dynamic execution of a number of collaborating classes, including their lifecycles
primarily based on components (packages) and their dependencies and associations
based on conventional state diagrams.
21
IDC | Interaction Design Collegium
achieve a result, such as a use case.
time vertically, and models messages over time.
22
IDC | Interaction Design Collegium
the dependencies between various software components such as the dependency between executable files and source files.
23
IDC | Interaction Design Collegium
user's account in a Bug Tracker system
24
IDC | Interaction Design Collegium
(www.rational.com)
teams
25
IDC | Interaction Design Collegium
default.aspx
26
IDC | Interaction Design Collegium
27
IDC | Interaction Design Collegium
http://www.dilbert.com
Break!
28
IDC | Interaction Design Collegium
What should I present as a software engineers?
development
document your should have shared with me
29
IDC | Interaction Design Collegium
Game engines as Software Frameworks
Al 1995)
towards an end-user
provide useful, general-purpose functionality
design for a specific class of software
30
IDC | Interaction Design Collegium
make up a reusable design for a specific class of software
abstract classes from the framework
collaboration, and thread of control
design decisions common to the application domain
user's code
31
IDC | Interaction Design Collegium
Framework development complexity
32
IDC | Interaction Design Collegium
each other
badly defined responsibilities
33
IDC | Interaction Design Collegium
high cohesion
unnecessary associations. Make use of design patterns such as Singleton, Bridge and Mediator.
34
IDC | Interaction Design Collegium
existing code
names to algorithms
35
IDC | Interaction Design Collegium
actually needed
using only select parts of it whenever possible
Then the functional dependency A → C is a transitive dependency.
36
IDC | Interaction Design Collegium
Which one should your code resemble to?
37
IDC | Interaction Design Collegium
dependencies
38
IDC | Interaction Design Collegium
responsibilities and most other objects only holding data. A common symptom of this is that you have a single class that seems to do everything in your code.
isolate the effect of changes.
39
IDC | Interaction Design Collegium
the software engineer
reusability
sadly, in the software engineering industry tools are often rewritten from scratch at the beginning of each project
40
IDC | Interaction Design Collegium
engine
paradigm
minimum of integration
41
IDC | Interaction Design Collegium
engine
we're not actually going to use. If it's not suitable for one of our games, we're not going to put it in because it can't be torture-tested.” - Mark Rein,
Epic Games
42
IDC | Interaction Design Collegium
43
IDC | Interaction Design Collegium
components
structure (unlike genre-directed engines such as the Quake or Unreal engines)
44
IDC | Interaction Design Collegium
easy access to the PS2 (sometimes referred to as “Sony's DirectX”)
integrated technology suite for graphics, physics, AI and audio
world editor, database management and a game build pipeline for additional support constructing a game
45
IDC | Interaction Design Collegium
used RenderWare
games
GameCube, Wii, Xbox, Xbox360, PlayStation 2, Playstation 3, and PlayStation Portable
46
IDC | Interaction Design Collegium
this lecture
47
IDC | Interaction Design Collegium
48
IDC | Interaction Design Collegium
concept)
system optimized for media content)
49
IDC | Interaction Design Collegium
50
IDC | Interaction Design Collegium
51
IDC | Interaction Design Collegium
develop
engines in particular have a nasty habit to become monolithic
responsibility and dependency management
responsibilities and controlled dependencies is easy to reuse
52
IDC | Interaction Design Collegium
week? Today is the last day!
53