SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 30 day free trial to unlock unlimited reading.
Shibboleth Scripting – Domain Specific Languages in Games
7.
DOMAIN SPECIFIC LANGUAGES
Markup Languages
Modelling Languages
Programming Languages
8.
DOMAIN SPECIFIC LANGUAGES
Human-readable
Computer-readable
Made for a specific domain, not general purpose
9.
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.
16.
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
23.
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 …
28.
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
40.
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.
63.
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)
64.
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.
65.
QUESTIONS?
Martin Pichlmair
@martinpi
mpic@itu.dk
Get Ephemerald here (free): https://martinpi.itch.io/ephemerald
0 likes
Be the first to like this
Views
Total views
290
On SlideShare
0
From Embeds
0
Number of Embeds
1
You have now unlocked unlimited access to 20M+ documents!
Unlimited Reading
Learn faster and smarter from top experts
Unlimited Downloading
Download to take your learnings offline and on the go
You also get free access to Scribd!
Instant access to millions of ebooks, audiobooks, magazines, podcasts and more.
Read and listen offline with any device.
Free access to premium services like Tuneln, Mubi and more.