SlideShare una empresa de Scribd logo
1 de 79
Descargar para leer sin conexión
Shibboleth Scripting
DOMAIN-SPECIFIC LANGUAGES FOR GAMES

MARTIN PICHLMAIR
IT UNIVERSITY COPENHAGEN / BROKEN RULES / COPENHAGEN GAME COLLECTIVE

SHIBBOLETH?
PLEASE RAISE YOUR HAND IF 

YOU CAN PROGRAM!
PLEASE RAISE YOUR HAND IF 

YOU CAN WRITE!
WHO HERE HAS EVER
WRITTEN A GRAMMAR?
AND WHO HAS 

INVENTED A LANGUAGE?
DOMAIN SPECIFIC LANGUAGES
Markup Languages
Modelling Languages
Programming Languages
DOMAIN SPECIFIC LANGUAGES
Human-readable
Computer-readable
Made for a specific domain, not general purpose
DOMAIN SPECIFIC LANGUAGES
Difference to “scripting language”:
a) Actually a DSL can be a scripting language. A scripting language
can be domain-specific after all, think GameMaker Language.
b) Whether a DSL is more suited for you than a generic scripting
language depends on many factors.
LET’S LOOK AT AN EXAMPLE
TRACERY
Tracery
Code
Text
SVG
HTML
Tracery
Browser
DSL
Code
Lexer Parser Result
Grammar Code
EPHEMERALD
Ephemerald download (free): https://martinpi.itch.io/ephemerald
Tracery
Code
Text
SVG
HTML
Ephemerald
Browser
GML
+ A nice interface with syntax highlighting and autocomplete
+ Deterministic random (seeds)
+ Probabilities
+ Shuffle bag instead of pure random for rule selection
+ Math functions
+ Regular Expressions
MY BOT ARMY
Cooking
Recipe
Ingredients Dish
HOUSEHOLD CONSTELLATIONS
LIVE DEMO TIME
NARRATIVE TOOLS
ink code
Dynamic
Dialogs
ink
Game
WHAT I WON’T TALK ABOUT
I will not talk about them, though one could argue that they are DSLs:
– Scratch, Logo and the likes

– Erlang, Prolog and friends

– TinyMUD, LPMud, DikuMUD, and other MUD code bases

– Code Red, TIS-100 and other in-game languages
Why? I only have 45 minutes …
THE DIKUMUD FAMILY TREE
GAME CREATION TOOLS
Ludii (Maastricht University, 2019)
https://www.ludii.games
Fighter Maker
OUTBACK/Kuusou Kagaku 1998
RPG Maker
ASCII/Enterbrain 1992
Ren’Py
Tom "PyTom" Rothamel 2004
HISTORICAL EXAMPLES
Game Adaptation Language and Sierra Creative Interpreter
ZIL, Inform and Inform 6 all compile to “Z-Machine code”, Infocom
SCUMM, Lucasfilm Games
Adventure Game Studio has a domain-specific scripting language
INFORM 6
SCUMM
LUA DOESN’T COUNT :P
PUZZLESCRIPT
Graphics
Map Symbols
Collisions
Gameplay
Levels
[ > Player | Crate ] -> [ > Player | > Crate ] [ < Player | Crate ] -> [ < Player | < Crate ]
PuzzleScript
code
Levels
Graphics &
Sound
Rules
PuzzleScript
code
Levels
Graphics &
Sound
Rules
Game
Engine
DESCRIBING VIDEO GAMES
VGDL
BasicGame
SpriteSet
moving > physicstype=GravityPhysics
avatar > PlatformerAvatar img=newset/man1 jump_strength=5
wall > Immutable img=oryx/wall1
goal > Immovable img=newset/flag1
ladder > Ladder img=newset/ladder2
TerminationSet
SpriteCounter stype=goal win=True scoreChange=100
SpriteCounter stype=avatar win=False scoreChange=-100
InteractionSet
avatar EOS > killSprite
goal avatar > killSprite
moving wall > wallStop
avatar ladder > onLadder
LevelMapping
G > goal
★ > goal
w > wall
A > avatar
H > ladder
VGDL FEATURES
• Spawning, cloning and elimination of
objects, as well as transformation from one
type into another.
• Self-propelled movements of objects, taking
consistent or random actions, or erratically
changing direction.
• Non-deterministic chasing and fleeing
behaviors.
• Projectile objects, spawned at the location of
arbitrary objects, on fixed or random
schedules, based on user actions, or
triggered by collision effects.
• Stickiness, i.e., one object pulling another
one.
• Bouncing and wrap-around behavior, from
other objects or the edge of the screen.
• Teleportation of objects, to fixed or random
end- locations.
• Continuous physics effects like inertia,
friction and gravity.
• Stochastic effects like slipping in the current
direction, or wind gusts.
VGDL code Levels
(Graphics)
Rules
VGDL
Mads Johansen
@pyjamads
Unity
VGDL code Levels
(Graphics)
Rules
BRAIN TRAINING
ML-AGENTS
VGDL code Levels
(Graphics)
Rules
Agents
Unity
VGDL code
Levels
Scene
Graph
Gameplay
Sprites
GAMES BY ANGELINA
DECKART
Deckart
code
Rules
Card Texts
Deckart
Code
Coco/R
Deckart
Runtime
Card Game
Deckart
Language
Swift
Code
Schnapsen
(Anonymous genius, <1715)
Ascension
(Stone Blade Entertainment, 2011)
THE FINAL FORM
Deckart
code
Coco/R
Deckart
Runtime
Card Game
Deckart
Language
Swift
C#
Deckart
Runtime
Card Game
Deckart
code
Rules
Tracery
Code
Card Texts
Ephemerald
Deckart
Card
Layouts
The Design Space of
All Kinds of
Potential
Card Games
Generate
Generate
Generate
Generate
SO YOU WANT TO WRITE
YOUR OWN DSL?
DSL
Code
Lexer
Parser
Generator
Grammar Code
ResultParser
Lexer Parser Parser Combinators
C#* Garden Points Lexer
Hime
Grammatica
GPPG
Sprache
Superpower
Parseq
Swift
OysterKIT
Coco/R
FootlessParser
SwiftParsec
C/C++ lex yacc/bison pcomb
Java ANTLR jparsec
*Here is a good article: https://tomassetti.me/parsing-in-csharp
Grammar Outline
(word processor)
Grammar in EBNF
(text editor)
Lexing & Parsing
(command line)
Grammar Outline
(word processor)
Grammar in EBNF
(text editor)
Lexing & Parsing
(command line)
Experimental Code in DSL
(text editor)
Grammar Outline
(word processor)
Grammar in EBNF
(text editor)
Lexing & Parsing
(command line)
Experimental Code in your DSL
(text editor)
Native Code
(IDE of choice)
THANKS TO
Everyone who was involved in any of the projects I’ve talked about
today. Especially @pyjamads for UnityVGDL implementation.
Special thanks to @zarawesome, @alphachar, @aeonofdiscord,
@pyjamads, @mtrc, @EigenLenk, @PetriPurho, and others for
feedback on Twitter.
QUESTIONS?
Martin Pichlmair
@martinpi

mpic@itu.dk
Get Ephemerald here (free): https://martinpi.itch.io/ephemerald

Más contenido relacionado

Similar a Shibboleth Scripting – Domain Specific Languages in Games

Funky game engines
Funky game enginesFunky game engines
Funky game engines
eduriez
 
PRESENTATION ON Game Engine
PRESENTATION ON Game EnginePRESENTATION ON Game Engine
PRESENTATION ON Game Engine
Diksha Bhargava
 
Ideaworks Game Studio Profile
Ideaworks Game Studio ProfileIdeaworks Game Studio Profile
Ideaworks Game Studio Profile
robhendry
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Johan Andersson
 

Similar a Shibboleth Scripting – Domain Specific Languages in Games (20)

Funky game engines
Funky game enginesFunky game engines
Funky game engines
 
An Introduction To Game development
An Introduction To Game developmentAn Introduction To Game development
An Introduction To Game development
 
Introduction to Mobile Game Programming with Cocos2d-JS
Introduction to Mobile Game Programming with Cocos2d-JSIntroduction to Mobile Game Programming with Cocos2d-JS
Introduction to Mobile Game Programming with Cocos2d-JS
 
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
 
PRESENTATION ON Game Engine
PRESENTATION ON Game EnginePRESENTATION ON Game Engine
PRESENTATION ON Game Engine
 
Inter University Game Jam 2012
Inter University Game Jam 2012  Inter University Game Jam 2012
Inter University Game Jam 2012
 
Casual Engines 2009
Casual Engines 2009Casual Engines 2009
Casual Engines 2009
 
Building Multi-platform Video Games for the Cloud
Building Multi-platform Video Games for the CloudBuilding Multi-platform Video Games for the Cloud
Building Multi-platform Video Games for the Cloud
 
Ghajini - The Game Development
Ghajini - The Game DevelopmentGhajini - The Game Development
Ghajini - The Game Development
 
Hacking for salone: drone races
Hacking for salone: drone racesHacking for salone: drone races
Hacking for salone: drone races
 
Lecture 1 Introduction to VR Programming
Lecture 1 Introduction to VR ProgrammingLecture 1 Introduction to VR Programming
Lecture 1 Introduction to VR Programming
 
Simple Single Instruction Multiple Data (SIMD) with the Intel® Implicit SPMD ...
Simple Single Instruction Multiple Data (SIMD) with the Intel® Implicit SPMD ...Simple Single Instruction Multiple Data (SIMD) with the Intel® Implicit SPMD ...
Simple Single Instruction Multiple Data (SIMD) with the Intel® Implicit SPMD ...
 
RESUME_2016
RESUME_2016RESUME_2016
RESUME_2016
 
Ideaworks Game Studio Profile
Ideaworks Game Studio ProfileIdeaworks Game Studio Profile
Ideaworks Game Studio Profile
 
Presentation 1 22nd August 2008
Presentation 1   22nd August 2008Presentation 1   22nd August 2008
Presentation 1 22nd August 2008
 
XNAPresentation
XNAPresentationXNAPresentation
XNAPresentation
 
LISA ASIA Forum - Localizing Interactive Media & Game
LISA ASIA Forum - Localizing Interactive Media & GameLISA ASIA Forum - Localizing Interactive Media & Game
LISA ASIA Forum - Localizing Interactive Media & Game
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
 
Introduction to Game-Making Tools
Introduction to Game-Making ToolsIntroduction to Game-Making Tools
Introduction to Game-Making Tools
 
GDC 2015 でのハイエンドグラフィックス
GDC 2015 でのハイエンドグラフィックスGDC 2015 でのハイエンドグラフィックス
GDC 2015 でのハイエンドグラフィックス
 

Más de Martin Pichlmair

Designing Game Feel
Designing Game FeelDesigning Game Feel
Designing Game Feel
Martin Pichlmair
 

Más de Martin Pichlmair (9)

Creative Challenges in Artificial Intelligence
 Creative Challenges in Artificial Intelligence Creative Challenges in Artificial Intelligence
Creative Challenges in Artificial Intelligence
 
Intro to Procedural Context Generation for Text
Intro to Procedural Context Generation for TextIntro to Procedural Context Generation for Text
Intro to Procedural Context Generation for Text
 
Experimental Writing with AI
Experimental Writing with AIExperimental Writing with AI
Experimental Writing with AI
 
Designing Game Feel
Designing Game FeelDesigning Game Feel
Designing Game Feel
 
Procedural Content Generation for Divination and Inspiration
Procedural Content Generation for Divination and InspirationProcedural Content Generation for Divination and Inspiration
Procedural Content Generation for Divination and Inspiration
 
Apocalypse Kitsch
Apocalypse KitschApocalypse Kitsch
Apocalypse Kitsch
 
Playing With Reality
Playing With RealityPlaying With Reality
Playing With Reality
 
FAZE.TWO It's All Fluxus Until Someone Cries
FAZE.TWO It's All Fluxus Until Someone CriesFAZE.TWO It's All Fluxus Until Someone Cries
FAZE.TWO It's All Fluxus Until Someone Cries
 
Paper prototyping
Paper prototypingPaper prototyping
Paper prototyping
 

Último

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Último (20)

VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 

Shibboleth Scripting – Domain Specific Languages in Games