Profile picture
Andrew Plotkin @zarfeblong
, 19 tweets, 3 min read Read on Twitter
Declarative modeling for game systems, Chris Martens (@chrisamaphone )
@chrisamaphone Principles of Expressive Machines go.ncsu.edu/poem
Trying to invent “twine” for system driven games. What is twiny about it? Genre-agnostic. Easy to pick up and start using. Easy to teach. Good for back and forth between designers and developers; making prototypes.
What are system-driven games? Examples: Mini Metro. Battle of Polytopia (mini-civ game). Baba is You. Games with consistent rules and emergent consequences. Games where the game experience is learning the model.
Systems games require a lot of code support for procedural, AI elements. Want to make a tool to make these accessible, non-magical.
Using declarative modeling to make this tractable. Describe the game state with a bunch of propositions. (Player location on a grid, etc.)
As the game is played, the state changes, so the proposition list changes. (Things move, right?)
So you can ask the proposition list questions. Yes/no questions are easy. Also variable unification (for what X is there no wall at that X.)
Now we want to represent the game mechanics. A mechanic changes state. You have to describe th conditions in which it applies, and the effect it has.
Examples: unlocking a door with a key, by describing everything in terms of “foo is at location X,Y”
Chris’s project for all this stuff is Ceptre, a language which lets you test a game model. It can either show you lists of possible moves and let you pick one, or walk randomly around (making random choices).
This lets you prototype game rules without getting into the asset making, UI developing parts. Lets you do fuzz testing, balance testing, maybe level generation or evaluation of generated levels.
Another example: virtual gardening. Model: sun, seed, soil => sun, sprout, soil => sun, flower, soil.
Add a weather state model, and let it affect soil state. (Rain turns dust into soil.)
Now we can look at feedback loops and balance — how likely particular outcome states are.
Story generation modeling for Shakespearean (ish) stories. Love, jealousy, knives, murder. Player can intervene or let the generator run itself.
Chris is looking for people to test the system and give feedback. Particularly non-coders! People without a developer background! Contact @chrisamaphone
@chrisamaphone See also microceptre.glitch.me (web interface)
Also kodugamelab.com , puzzlescript
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Andrew Plotkin
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member and get exclusive features!

Premium member ($30.00/year)

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!