Wednesday, February 24, 2016

I'm working on an Android App that will act as a Game Master Emulator. So far, i have the following features:


I'm working on an Android App that will act as a Game Master Emulator. So far, i have the following features:
-Ask a question: yes or no questions answered with "Yes, and...", "Yes", "Yes, but...", etc.
-Roll dice: roll any of the 7 standard d&d dice (d4, d6, d8, d10, d12, d20, d100). It asks you how many times to roll the selected dice. The D100 only gives you increments of 10.
-Get a random number: asks for a maximum number, and then gives you a random number.

I want to also add an npc generator and a plot twist generator. Just not sure how to do these while remaining genre-neutral. Any ideas? Also, any ideas on other features to add?

Thanks!

10 comments:

  1. For genre-neutral NPCs, you could have a table of adjectives and a table of very vague "archetypes" or professions. The player can roll on each table independently or roll both for a complete NPC. (Eg. a generous healer, a paranoid trader, a cowardly warrior, etc.)

    ReplyDelete
  2. I wonder if you could skip a click or two and just have as set of icons/buttons?  [Question Mark, seven die shapes, and dX for roll any sided]

    ReplyDelete
  3. If you want an example of genre-neutral twists, take a look at Fiasco.
    For a Game Master Emulator, check Mythic's Fate Table, the GME, and the Covetous Poet's Guide to Solo Roleplaying.

    ReplyDelete
  4. The setup tables from Instant Game: http://www.nerdprideradio.com/?page_id=82

    Support for other special dice rolls would also be nice. Though I'm not sure how much of that you could do without writing a full expression parser.

    ReplyDelete
  5. I don't use an android phone, but if you allow people to paste or copy text tables into your app and save them (or even link across to other documents), you'd be able to save yourself the trouble of producing random tables of any genre.

    If I was in your shoes (and I'm not :D ), I'd focus on a recursive randomizing text parser compatible with the syntax of tablesmith or inspiration pad pro (I think there's android version of the latter) table files, though the two can be made largely compatible with regex pattern replacement. There are yahoo groups that have random tables galore for those products, they may be willing to let you include their content in your app.  The engine of a text parser isn't too bad; the one that I use is in javascript and the text parsing (and dice rolling syntax parser) is maybe only 200 lines of code or so. Most of those tables fit pretty nicely in an array; any array text item could have a signifier (e.g., enclosed in square or curly brackets) to indicate that a random element is desired within a sub-table.

    Honestly that parser might already be written and open-source, there's a lot of java code out there.

    Pretty much all of the logic within the mythic GM emulator can be fit within the logic of nested subtables with a menu selection for chaos factor yes/no queries and/or the detail questions.

    There's also a flash app called gmemulator.swf app floating around that actually has a pretty nice set of features.

    ReplyDelete
  6. to give an example of the parser, let's say this is the text content of a table: 

    ---------
    |menu
    1@Do^Do a thing: [randomthing1] and exit
    1@NPCName^the npc name is [randomthing2]

    |randomthing
    3@might as well [jump]
    1@get down

    |jump
    jump up
    jump around
    jump

    |randomthing2
    alice
    bob
    ---------

    it has two menu choices, labeled "Do" and "NPCNAme".  the "Do" menu choice might produce a sentence like this:

    Do a thing: might as well jump around and exit

    and the NPCName menu choice will produce a sentence like this:

    the npc name is bob

    For every menu choice, you could have code that dynamically generates a button in the interface, for example. you could probably ask for text input, and feed the input directly through a dice notation parser, e.g. 2d6+1 for 2 six siders and add one, 2F+1 for 2 fudge die and add one and return the result as text.  Also, I forgot to mention random-generator.com which has an army of tables, which might be the easiest way to see what I'm talking about.

    anyway, that's my $.02 for what it's worth -- good luck on your app!

    ReplyDelete
  7. Oh, thank you, Mike! I thought I'd never find that swf file ever again! :)

    ReplyDelete