DSL to English and back for game rule set?

Hello all, I recognize this isn't directly a Haskell-related question, but as I'd like to solve this problem in Haskell & figured it's applicable. Let me know if there's a better place to ask. I am interested in creating a DSL (or set of types) for describing rules for a computer game. I'd like the language to be able to be written out to readable and clear English. I'd also like to be able to recreate the representation by reading the English back in. The idea is that the DSL will be unambiguous in either English or its internal representation. My thinking is that this will avoid inconsistencies between the game rules and the text describing those rules to the players. I want the ruleset to be able to describe type of heroes and monsters, their abilities, the effects of their attacks, how they use resources, etc. I realize this may not be an efficient way to go about writing a game, but it seems like an interesting project. Some of my concerns are at what level the DSL should be written to allow for extensions for new heroes, monsters, etc. without having to just add very specific extensions every time a new hero or item is created. Does anyone have thoughts on how to proceed on this, previous work, and/or ways to investigate it? Thanks, Matthew

You should definitely look at Grammatical Framework
http://www.grammaticalframework.org/
* Matthew O'Connor
Hello all,
I recognize this isn't directly a Haskell-related question, but as I'd like to solve this problem in Haskell & figured it's applicable. Let me know if there's a better place to ask.
I am interested in creating a DSL (or set of types) for describing rules for a computer game. I'd like the language to be able to be written out to readable and clear English. I'd also like to be able to recreate the representation by reading the English back in. The idea is that the DSL will be unambiguous in either English or its internal representation. My thinking is that this will avoid inconsistencies between the game rules and the text describing those rules to the players.
I want the ruleset to be able to describe type of heroes and monsters, their abilities, the effects of their attacks, how they use resources, etc.
I realize this may not be an efficient way to go about writing a game, but it seems like an interesting project. Some of my concerns are at what level the DSL should be written to allow for extensions for new heroes, monsters, etc. without having to just add very specific extensions every time a new hero or item is created.
Does anyone have thoughts on how to proceed on this, previous work, and/or ways to investigate it?
Thanks, Matthew
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

In case you haven't seen it already, you might be interested in Inform (http://inform7.com/), which is a DSL for interactive fiction (aka "text adventures") using natural language. Cheers, Adam On 19/05/13 21:27, Matthew O'Connor wrote:
Hello all,
I recognize this isn't directly a Haskell-related question, but as I'd like to solve this problem in Haskell & figured it's applicable. Let me know if there's a better place to ask.
I am interested in creating a DSL (or set of types) for describing rules for a computer game. I'd like the language to be able to be written out to readable and clear English. I'd also like to be able to recreate the representation by reading the English back in. The idea is that the DSL will be unambiguous in either English or its internal representation. My thinking is that this will avoid inconsistencies between the game rules and the text describing those rules to the players.
I want the ruleset to be able to describe type of heroes and monsters, their abilities, the effects of their attacks, how they use resources, etc.
I realize this may not be an efficient way to go about writing a game, but it seems like an interesting project. Some of my concerns are at what level the DSL should be written to allow for extensions for new heroes, monsters, etc. without having to just add very specific extensions every time a new hero or item is created.
Does anyone have thoughts on how to proceed on this, previous work, and/or ways to investigate it?
Thanks, Matthew
-- The University of Strathclyde is a charitable body, registered in Scotland, with registration number SC015263.

This sounds like something you might use Grammatical Framework for,
http://www.grammaticalframework.org/doc/tutorial/gf-tutorial.html
- jeremy
On Sun, May 19, 2013 at 3:27 PM, Matthew O'Connor
Hello all,
I recognize this isn't directly a Haskell-related question, but as I'd like to solve this problem in Haskell & figured it's applicable. Let me know if there's a better place to ask.
I am interested in creating a DSL (or set of types) for describing rules for a computer game. I'd like the language to be able to be written out to readable and clear English. I'd also like to be able to recreate the representation by reading the English back in. The idea is that the DSL will be unambiguous in either English or its internal representation. My thinking is that this will avoid inconsistencies between the game rules and the text describing those rules to the players.
I want the ruleset to be able to describe type of heroes and monsters, their abilities, the effects of their attacks, how they use resources, etc.
I realize this may not be an efficient way to go about writing a game, but it seems like an interesting project. Some of my concerns are at what level the DSL should be written to allow for extensions for new heroes, monsters, etc. without having to just add very specific extensions every time a new hero or item is created.
Does anyone have thoughts on how to proceed on this, previous work, and/or ways to investigate it?
Thanks, Matthew
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
participants (4)
-
Adam Gundry
-
Jeremy Shaw
-
Matthew O'Connor
-
Roman Cheplyaka