SlideShare a Scribd company logo
Copyright© 2014
SysML Design of Simulation Game
David Hetherington
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 1
Copyright© 2014
Introduction
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 2
David Hetherington
Odyssey of Homer Career
‐ Digital PBX
‐ Multimedia Audio
‐ Systems Management
‐ Software Internationalization
‐ Blade Servers
‐ Automotive Radar Chipset
Current: Bring Modeling to 
Petroleum Industry
Copyright© 2014
Initial Inspiration
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 3
• Experienced operator 
had unloaded truck daily 
for 15 years – no 
problems.
• Broke leg in a sporting 
accident.
• Younger replacement 
was well trained…
• And was spotted by 
another employee with a 
walkie‐talkie..
• But misjudged the slope 
backing down the ramp.
• No serious injuries, but 
some damage to the 
forklift. 
• Incident investigation 
revealed a slight slope to 
the truck bed that the 
older operator had 
simply assimilated into 
his routine.
Could we 
model this 
somehow?
Copyright© 2014
The OSHA Standard
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 4
https://www.osha.gov/pls/oshaweb/owadisp.show_document?p_table=STANDARDS&p_id=9829
Copyright© 2014
Reformatting the Standard
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 5
Copy and paste 
from website to 
Excel. Looks nice, 
but format not 
ready for SysML
tool input.
Fortunately, a few simple 
VBA can dramatically 
reduce the pain of 
reformatting the data. 
Use 80/20 rule. Code 
20% of VBA that yields 
80% of benefit. Do rest 
by hand.
Copyright© 2014
Create a New SysML Model
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 6
Here we are using MagicDraw by NoMagic to create 
the model. Sparx Enterprise Architect will work well as 
well. Papyrus will be problematic because it has no 
ability to import requirements from a spreadsheet. That 
means that in any realistic project, the task of inputting 
(usually hundreds or even thousands of) requirements 
into a Papyrus model would be onerous. 
Most source requirements documents that you will 
encounter are not written by professional systems 
engineers. As such, the individual requirements contain 
too many different concepts. The requirement below is 
a good example. As such, in our new SysML model we 
will create packages for “Source” and “Clarified” 
requirements.
Copyright© 2014
Narrow Down Requirements
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 7
First we narrow down the 
requirements to those that are 
relevant to a training game, ie: the 
truck operations. 
Next we notice that the relevant 
requirements are in four sections…
From which we make package names…
And Load 
them into 
the model
Copyright© 2014
Load Source Requirements into the Model
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 8
Now we massage the requirements a little more…
And load them into the model
Copyright© 2014
Create Clarified Requirements
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 9
Create clarified requirements. For 
example, text that contains two unrelated 
subjects should be broken into two 
separate requirements.
Copyright© 2014
Create Derive Relationships
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 10
Create Derive Requirements Relationships
Copyright© 2014
Allocate Requirements to Use Cases
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 11
(The anchored note is a really handy method for adding the text 
to a use case. Unfortunately, it is a vendor extension rather than a 
part of SysML)
Copyright© 2014
Model Structure of the Game
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 12
We design a basic game structure:
1. Welcome Screen
2. Some number of Game Levels
3. Closing Screen
After starting the game, the player 
can select a level. If the player “wins” 
the level, play proceeds to the next 
level. If not, the player moves to the 
Closing Screen. The Closing Screen 
gives the player his score and also 
gives him the option of playing the 
game again (or exiting).
Copyright© 2014
Allocate Use Cases to Game Level Instances
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 13
Now we can allocate the use cases to specific 
Game Level instances. We can also make those 
specific Game Level instances “satisfy” the 
clarified requirements.
Copyright© 2014
Model State Machine for Avoid Edge Level
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 14
Now we have a 
behavior design 
for the level 
that we can 
design to and 
explore for 
potential code 
generation.
Copyright© 2014
Blender ‐ Overview
• Open source
• Amazing 3D rendering
• “Toy Story” quality 
animation
• Built‐In game engine
• Challenging to learn, but 
very functional, and lots 
of help available on 
Youtube
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 15
Copyright© 2014
Blender – Model the Forklift
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 16
Find a brochure of a real forklift on the internet 
and use it as a background image in Blender to 
create a Bézier curve outline of the forklift cab. 
After that extrude the outline to create the 
initial body shell.
Copyright© 2014
Blender – Model the Forklift
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 17
Cut some horizontal holes, slice off 
pieces, add some surfaces
Add textures 
and lettering
And add a few 
more things…
Copyright© 2014
Avoid Edge Game Level – Create Platform
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 18
1. Create a platform 20m by 20m and 1m high.
2. Create a ramp up onto the platform 3m wide and 3m long.
3. Create 1m wide safety areas all around the platform that are planes 
positioned 2cm above the platform.
4. Add the forklift to the scene
• Lighting is a headache...
• Fonts/Text do not behave well. Convert “Asatte Lift” to a mesh.
• Linked objects are a headache for the physics engine. For the moment, I have 
joined the forklift components into a single mesh.
Copyright© 2014
Add Basic Motion
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 19
Add keyboard controls to create basic motion of 
forklift. Very powerful. Note that we only need to 
push the forklift around. The physics engine will 
figure out the rest.
Copyright© 2014
Detect Entry into Ramp – 1 of 2
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 20
1. Assign the Forklift 
object a property 
“ForkLift”
2. Assign the Ramp a 
sensor that notices 
a collision with 
“ForkLift”
3. Make that sensor 
send a broadcast 
message 
“StatusEnterRamp”
Copyright© 2014
Detect Entry into Ramp – 2 of 2
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 21
The Status Text 
overlay (a 
separate blend 
file) receives the 
message and runs 
a script.
Now we have the 
basic mechanics to 
implement the rest 
of the game and 
also connect the 
physics simulation 
to the Python 
scripting.
Copyright© 2014
Prototype of “Avoid Edge” Level Ready
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 22
Copyright© 2014
Code Generation Issues
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 23
Issue Work Around
Not much 
Python Code
Convert More Logic 
Bricks to Python
Tools SysML Tools 
don’t 
Generate 
Python
Work from 
XMI file
Use XSLT 
(Saxon)
Use Microsoft 
Excel Visual 
Basic
Final Game 
does not 
Quite Match 
Model
Update the 
Model Open Source 
Code 
Generators
Copyright© 2014
Why Bother With Code Generation?
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 24
PowerPoint Compiler
Draw Some 
Pretty Charts
p
Feed to 
PowerPoint 
Compiler
Ship 
Finished 
Product
Crack Open 
a Beer
More Realistic View
Model in 
SysML
Prototype by Prototype by 
Hand Using 
Model
Learn a 
*LOT*
Update 
Model to 
Match Reality
Custom 
Design Code 
Generator 
Generate & 
Hand‐Complete 
Production Code
Verification 
and Validation
Ship a Version 
of Product
This vision is very appealing 
to marketing guys and non‐
technical executives….
Code generation becomes 
the path to replication of 
patterns and best 
practices across a large 
number of levels of a 
complex game.
Copyright© 2014
What Worked? What Didn’t Work?
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 25
Not so Great Great!
Requirements 
Traceability
SysML Model 
of Behavior
Reliability of 
Game
Code 
Generation
SysML Model 
of Game 
Structure
Copyright© 2014
Future Exploration
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 26
Port to 
Commercial 
Game Engine Use SysML
Parametrics to 
Model Physics
Full 
Implementation 
of Code 
Generator
Add Human 
Actors
Model Forklift 
Controls More 
Accurately
How to Test 
Fact 
Knowledge?
How to Model 
Forklift and 
Working Area 
Inspections?
Copyright© 2014
Recommended Reading
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 27
Not for beginners, but 
very good working 
examples that you can 
studyBlender Foundations: The 
Essential Guide to Learning 
Blender 2.6 
Roland Hess
Good starting point 
for Blender basics 
before tackling game 
programming.
Game Development with Blender
Dalai Felinto, Mike Pan 
SysML Distilled: A Brief Guide 
to the Systems Modeling 
Language
Lenny Delligatti
UML and SysML together 
make a huge subject. This text 
does a nice job of presenting 
SysML concisely without 
getting lost in a forest of 
discussions of layers of 
metamodel abstraction.
Copyright© 2014
Questions/Comments/Suggestions…
V1.0 ‐ 9 April 2014 SysML Design of Simulation Game 28
Send me an e‐mail:  
david.hetherington@asattepress.com
My website:  
http://asattepress.com

More Related Content

PDF
Manufacturing summit with links
PPTX
Modeling Requirements with SysML
PDF
SysML as a Common Integration Platform for Co-Simulations – Example of a Cybe...
PDF
Introduction to SysML af Finn Overgaard Hansen, AU
PDF
Data integration ppt-bhawani nandan prasad - iim calcutta
PPTX
Database , 4 Data Integration
PPSX
Modeling Requirements Narrated2
PDF
Social network analysis
Manufacturing summit with links
Modeling Requirements with SysML
SysML as a Common Integration Platform for Co-Simulations – Example of a Cybe...
Introduction to SysML af Finn Overgaard Hansen, AU
Data integration ppt-bhawani nandan prasad - iim calcutta
Database , 4 Data Integration
Modeling Requirements Narrated2
Social network analysis

Recently uploaded (20)

PPTX
UNIT 4 Total Quality Management .pptx
PDF
Unit I ESSENTIAL OF DIGITAL MARKETING.pdf
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPTX
web development for engineering and engineering
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PPTX
OOP with Java - Java Introduction (Basics)
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PDF
composite construction of structures.pdf
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PPTX
Sustainable Sites - Green Building Construction
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
DOCX
573137875-Attendance-Management-System-original
PPT
Project quality management in manufacturing
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPT
introduction to datamining and warehousing
PPTX
Lecture Notes Electrical Wiring System Components
PPT
Introduction, IoT Design Methodology, Case Study on IoT System for Weather Mo...
UNIT 4 Total Quality Management .pptx
Unit I ESSENTIAL OF DIGITAL MARKETING.pdf
Embodied AI: Ushering in the Next Era of Intelligent Systems
web development for engineering and engineering
Automation-in-Manufacturing-Chapter-Introduction.pdf
OOP with Java - Java Introduction (Basics)
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
composite construction of structures.pdf
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
Sustainable Sites - Green Building Construction
Model Code of Practice - Construction Work - 21102022 .pdf
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
573137875-Attendance-Management-System-original
Project quality management in manufacturing
Foundation to blockchain - A guide to Blockchain Tech
CYBER-CRIMES AND SECURITY A guide to understanding
introduction to datamining and warehousing
Lecture Notes Electrical Wiring System Components
Introduction, IoT Design Methodology, Case Study on IoT System for Weather Mo...
Ad
Ad

SysML Design of Simulation Game