The Dvorak Engine
The Dvorak Engine is a MUSH object that supports the storage and play of Dvorak games, which is running on DvorakMUSH.
Engine usage
To start a new game of creative Dvorak, use the cleardeck command to clear the Engine of any cards that might be there, and newcard to begin creating cards.
If you want to play a deck from the archives, click the "Generate MUSHcode" link on that deck's page to get a list of generated loadcard commands (topped with a cleardeck and ending with an @emit to alert nearby players to the deck being loaded) - this should be copied-and-pasted into your telnet client to create the deck in the Engine. (If your telnet client interprets the entire text as a single line and rejects it, you'll need to cut and paste it line-by-line.)
There are no particular guidelines for usage - if you've made any cards with it, though, it's worth taking a log of the deck (logcards) and saving it to a text file, before you disconnect - someone else might use the Dvorak Engine in your absence, and your cards would be lost. If you're halfway through an actual game when you leave, use savedeck with a suitably unique save-name, and the game and cards can be retrieved and resumed at a later date. (You can use savedeck as temporary storage for a deck, but there's no guarantee that someone won't deletedeck to tidy up, while you're gone.)
listdecks will give you a list of all saved games currently stored in the Engine - although the names of some of these might tally with decks in the archive, they're not necessarily up-to-date copies, so feed in fresh MUSHcode if in doubt.
Commands
Key
When you use the commands below...
- Everyone sees what you've done, and the results it had.
- Everyone sees that you've done what you've done, but only you see the actual results of it.
- Only you see what you've done, and its results.
Basic Gameplay
- Draw a card from the draw pile.
- Play a specific card from your hand - if it's an Action, it goes to the discard pile; if it's a Thing, it is put into play under your control.
- Discard a specific card from your hand, to the discard pile.
- Destroy a specific card in play, moving it to the discard pile.
Viewing the Game
- Read the full text of a specific card. You can read any card that exists, even if it's in another Player's hand or the draw pile, or hasn't been approved yet. (You just won't be told where it is.)
- List the cards you have in your hand.
- List the cards a specific opponent has in their hand.
- List the cards currently in play, and who controls them.
- Count the cards in a specific Player's hand.
- Count the cards in the draw pile.
- List the contents of the discard pile.
- List the contents of the draw pile.
- List any cards which have been created but not yet approved.
- List all cards that have been approved (i.e. all the cards in the game), but this doesn't reveal their locations.
- List all repealed cards.
Advanced Gameplay
- Draw a card from the draw pile and show it to all Players.
- Discard a random card to the discard pile.
- Take a specific card, no matter where it is, and put it into a specific Player's hand.
- Take a specific card, no matter where it is, and put it into play under a specific Player's control.
- Shuffle the discard pile into the draw pile.
- Shuffle a specific card, no matter where it is, into the draw pile.
- Set the 'status' of a card to any text you like - a card's status is displayed in 'viewplay' and 'readcard', and can be used to keep track of tokens on the card, its position in play, or some arbitrary, adjustable status ('Undead', 'Wounded', 'Tapped', etc).
- "status <num>=" will blank that card's status, and cards automatically lose their status when they're destroyed.
- The same as playing a Thing from your hand, except that it's played "onto" another Thing, its status automatically adjusted to reflect that.
- Sets the game notes (printed as part of viewplay) to whatever text you like - useful for keeping score in games that require it. setnotes by itself will clear the notes.
Card Creation and Amendment
- Create a new card with a name (eg. "Revenge of Godzilla"), a type ("A" for Action, "T" for Thing), and optionally some card text (eg. "Destroy three Things.").
- For example:- newcard Revenge of Godzilla/A/Destroy three Things.
- A newly-created card is assigned a number and presented to all players for their approval.
- Approve a card which a player has created. When a card is approved, it is shuffled into the draw pile.
- Remove a card from the game.
- Edit an existing card, using similar syntax to creating a new one. This takes effect immediately, but before-and-after versions are displayed to all Players to allow them to check the edit.
- A quick way to adjust a card's name, leaving its type and text intact.
Loading, Saving, Resetting
- List all games that have been previously saved in the Engine.
- Save the current game (including all card positions) under the given name, for future reloading.
- Delete an old saved game.
- Shuffle all the cards in the game back into the draw pile, for a new game with that deck.
- Blank all cards in the current deck, preparing the Engine for a completely new game.
- Log full details of all cards, including unapproved and repealed ones - you can then paste these into a text file for personal reference, or for manually reformatting for wiki submission.
Limitations
Due to the way the Engine has been built, there are a few mechanics and styles of play it doesn't support:-
- Multi-deck/CCG Dvorak. The current version of the Engine has been written to run with one shared deck only.
- Face-down cards. The current version doesn't support face-down cards, although if anyone wants to add functionality for this, it shouldn't be too much work. (A temporary workaround among trusted players would be to just declare you were playing a card face down, creating and playing a blank 'face down' card if you liked, but keeping the actual card in your hand until it became needed.)
- Draw-pile order manipulation. The order of the draw pile is not stored or configurable, so cards like "rearrange the order of the top three cards of the draw pile" won't work on the Dvorak Engine. (You can work around it by keeping the cards in your hand, and handing them out whenever anyone draws a card.)
- 164 card limit. The Dvorak Engine will crash if it tries to shuffle a deck with more than 164 cards in it - please do not load or create any decks that exceed this limit. (If you want to play with the Infinite Dvorak Deck, just give it a subset of the whole deck.)
Troubleshooting
If you're getting a "Huh? (Type "help" for help.)" message when you enter standard Dvorak Engine commands, then you're either standing in the wrong room, or the Engine has crashed. Type "look" to make sure that you're in the room with the Dvorak Engine - if you are, then you can tell the MUSH admin that it's crashed, and we'll get it fired back up when we can.
Source code
The MUSH source for the Dvorak Engine is available, if anyone wants to create better or spinoff versions of it.
See Also
- Dvorax, an enhanced engine found in DvorakMUSH by using "@tel #46".