Apophis - Customizable Idea GeneratorBy Will Thibault | 01.20.15 00.33.23
- Extendable idea generator
- Simple to add additional "tables"
- Plain text editor with save functionality1
As you can see if you head over to the Apophis page, it comes pre-loaded with two random "tables" - a d12 and one that picks a random Magic: the Gathering color identity2, weighted toward results with fewer colors. My own copy contains several more tables, but I can't share it - they're modified versions of tables from Mythic GME, UNE, and BOLD. In my experience, most solo gamers are the sort to tinker anyways.
- Add any number of arrays with unique names.
- Add buttons, each with an onclick event that calls the
randGen()function. You can include one or more arguments, which should each be the name of an array. In this way you can tie multiple rolls to a single button-press.
That's really all there is to it; the program could probably be modified to allow full dice-math, but that wasn't a design goal for the release. If you want to extend its functionality for your own use, though, code on!
If that was all Greek to you, no worries! This is about as entry-level as a finished web app can be, and with the following tutorial you'll be making your own random tables in no time. Before you get started, you'll need a plain-text editor. You can use Notepad (or, if on Mac, whatever its equivalent is), but personally I recommend Notepad++.
First, you'll need to download Apophis from the link above, then extract the file. Go into the folder this creates and look for a file called
index.html. Open it using the plain-text editor of your choice.
If you're using Notepad++ or another program that displays the line number, scroll down until you hit line 49. You should see something that looks like this;
This is where you'll be adding arrays. Arrays are tables, essentially, just like in gaming books. An array should look like this;
The array can be as long or as short as you like, and can have any normal text you want beside
Entry 1 or whatever. Just remember the comma after each entry except the last one. Also, be sure to give your array a unique alphanumeric name in place of
arrayName! if the name isn't unique, the computer will run only one of them; if it's not alphanumeric, the program may not work. If you're not going to use them, you could also delete the
When you're finished with your arrays, you'll need to add buttons so you can actually roll on them. Scroll down until you see the following (it's line 216 in the base document, but that will change if you add or remove arrays).
Underneath that, you'll see some HTML code. That's the code for the d12 and Color Identity buttons. If you don't want to use those tables, you can delete them. Then add a button for each roll you want available, as follows;
arrayName with the array you want to use, and
Button Text with the text you want to see.
The program is built to allow multiple simultaneous table rolls, too. Instead of outputting one word, it outputs the rolls from each table separated by a space. In order to do this, simply include more arrays in the button code above, each separated by a comma. The example below uses three arrays, but you could use 2 or as many as you like. You probably don't need more than a few, though.
Once you've done all that, save the file and close it, then right-click the
index.html file, and choose open. You should see the Apophis interface, just like the one I have here online, except with whatever buttons you added to it!
What's In A Name?
Whenever I work on a coding project, I like to give it a cool-sounding name. It's part of the fun for me! Each time I do, though, I try to have it connected to what the program does in some subtle way. In its early prototype stages, I just called it "Generator," but that was a bit generic. Thanks to a link to this page on the Fate Core Google+ community, I learned the word "Apophenia," which is the tendency humans have to see a pattern even where there actually isn't one. It's why a smiley face looks like a face, why you can see animals in the shape of clouds, and it's the mechanism that allows idea generators to work. After toying around with the word a little bit, I remembered Apophis - the Greek name of the Egyptian deity Apep. As a snake-god, visual theming would be easy; and Apep was a god of chaos, which seemed appropriate for a web app all about getting random ideas. It occurs to me now that "Deus Ex Machina" or some variant on it may have worked, but I'm happy with Apophis.
Anyway, I hope you all enjoy the program! It was fun to code, and I know I'll be getting some milage out of it!
1 - From what I understand, the save functionality I used is a feature of HTML5, which is pretty new. It's possible if you have an older browser that it may not work. My preference is for Chrome, and on the current version it works just fine for me, but it could be different for you. [return]
2 - Whether you play Magic or not, the color wheel can be a useful characterization tool - the colors represent, thematically, different motivations and approaches to the world. It's a very fun subject, and the articles that I linked to above are very fun reads. Using the colors as a writing and roleplaying tool is an article unto itself, though. [return]