Seven Spindles… named a winner in One Page Dungeon 2012 contest

Seven Spindles and a McGuffin was named one of the 24 winners of the One Page Dungeon Contest 2012. I appreciate the honor, even more so than last year, because my entry this year wasn’t as good and the competition really kicked up a notch. Thank goodness they named more winners this time around!

At the time of this post, the main site for the contest seems to have fallen down, but there is a PDF containing all the winners on a different site. (And this guy reviewed them all, mentioning this entry as “bereft of flavor or charm”. Hoo-rah!) Once the site comes back up, though, check out all of the entries (over a hundred, I think). People really brought it this year.

In honor of this win, I’m releasing the source files for this dungeon (under the same CC licence as the PDF). This zip file contains one Adobe Illustrator file with the dungeon map and one InDesign file that links to the map and contains the text and other stuff. If you use these sources for something, drop me a link to the results in the comments.

LDraw language grammar for TextMate

Data files for LDraw software, such as Bricksmith, are really just text files with a specific syntax, and it can be useful to treat these files as text by opening them in a text editor and manipulating the source directly. This is particularly true if you are using LPub to build instructions for the model, as editing the text directly is the only way to add certain commands to the file.

My text editor of choice, TextMate, supports large numbers of language grammars to provide syntax coloring. It also allows you to add your own. I threw together this one to get a bit of coloring into .ldr files:

{
   scopeName = 'source.ldr';
   firstLineMatch = '^0 FILE .+\.ldr$';
   fileTypes = ( 'ldr' );
   patterns = (
      {
	name = 'comment.line.ldraw';
        match = '^0 [^!].*$\n?';
      },
      {
	name = 'constant.other.ldraw';
        match = '^0 !.*$\n?';
      },
   );
}

To install this, pick Bundles→Bundle Editor→Edit Languages… from the menu bar. Click the + at the bottom of the window that comes up to create a new item. Then cut and paste the grammar. This should make your LDraw files go from what is shown on the left, to what is on the right:
Application of TextMate grammar

Looking for instructions for building Mobile Frame Zero frames?

In honor of the successful completion of the MFØ kickstarter, I’m volunteering to produce (and publicly post) seven LDraw files of mobile frames, with companion PDFs of assembly instructions. If you have a frame you’d like to see get this treatment, post it to the thread built for the purpose on the Mobile Frame Hangar forum. First come, first served and some restrictions apply.

’inkadia

My entry into Game Chef 2012 is ’inkadia. It’s about creating a post-apocalyptic setting by destroying an idyllic work of art by the late Thomas Kinkade.

My four random ingredients were not much help to me (even after they stopped returning 503 errors):

In any case, the “Last Chance” theme is what really triggered the design of the game. It immediately said to me “make a game with materials that get destroyed as you use them”. This then clicked with a thought I had when Thomas Kinkade died about using his images for a game.

I seriously doubt anyone will ever actually play this game, including me; however, as mentioned in the rules, post your final images here if you do.

Update: ’inkadia squeaked in as a last minute runner-up.

Seven Spindles and a McGuffin

Seven Spindles and a McGuffin (pdf link) is my entry into the One Page Dungeon Contest 2012. Much like last year’s entry (which was one of the winners) this one is more about dungeon structure than compelling narrative. In fact, the “story” is so minimal in this one that the whole entry is really more of a sandbox than an adventure. I sort of like dungeons that way, personally, but mileage varies.

I had some some goals for the design of this dungeon (and some observations after building it):

  • Must use a vector-based map. (Why? Well, note that this map is infinitely scalable, but the whole PDF is under 300KB.)
  • Wanted a dungeon with a couple totally different vectors of entry.
  • Provide the flow control usually supplied by different levels of a dungeon, all using a single map. The center spindle effectively allows this to be a six level dungeon on half a page.
  • Take a regional approach, where the dungeon is described by section rather that detailing each room.
  • Put some rooms at angles to the grid, but showing the grid in their own frame of reference.
  • Subvert the idea of dungeon as node graph idea from last year’s entry. It may be possible to node graph this dungeon, but I’m not entirely sure how to do it, especially since the small spindles are placed at random each time the dungeon is run.
  • Minimize hallways (if you were digging your own underground complex, you don’t get much return out of the labor). Some sections do this better than others.
  • Because each of the spindles serves eight potential openings, it turns out to be critical that the spindles turn in 45° increments. If they turned in 90° increments, I’m pretty sure that you can get situations where randomly placing the spindles results in unreachable rooms. Turning at 45° increments avoids this, though you might get cases where some rooms can only be reached if you stay in the spindle when it rotates.
  • Use psychology against the delvers. For example, in a couple of places, there are short hallways with a normal door on one end and a secret door on the other. The normal door is in the “more secret” area, so the idea is that if the delvers are already in the secret area and go through the normal door, when they find the (obvious) secret door at the other end, their tendency will be to go through it (“it’s secret, it must be protecting something good”), which actually leads them out of the secret area. Not sure if it would shake out like that in play, but that’s the idea.
  • Loved the idea of the spindles periodically sealing and unsealing sections, so that air, water and such rush in or out when the spindle moves. Like, if you are in a room with water up to your ankles and, meanwhile, the tide has risen outside, then the spindle turns and the high tide rushes into the room you’re in. Probably should have done more with that notion, but it is a) tough to do in one page and b) hard to explain and use.
  • The overlapping technique used in the fissure section, where one room is on top of another with a ladder between them, could have been used more. I thought it might confuse people, even though it is a bit easier to illustrate with the rooms at angles to each other.

I think last year’s entry was stronger, but when I went to the well this time, this is what came out.

Mobile Frame Zero: Rapid Attack kickstarted

For its tenth anniversary, Mechaton, a game of giant fighty robots made of LEGO, is getting a revision and a new title. Today the Kickstarter for the new version started. Please help fund it.

Also, if you have a lot of cash, seriously consider one of the high level awards. Soren Roberts is an extremely talented LEGO designer and the rewards for his original work are rare offers.

Thanks in large part to prior posts here about Mechaton and LDraw, I’ve been asked to render the assembly instructions for the mechs in this product. Hopefully I can post some LDraw models when the product is published.

Kickstarter analysis

DivNull Productions backs a lot of Kickstarter projects. Curious about return on investment and so on, I ran the numbers on all projects DivNull backed with a “funding complete” date prior to January 1, 2012. Thus, all projects in the data set have had at least two months to deliver goals (most have had much longer). I wanted to see how much DivNull spent, what types of projects were funded, how much money went unclaimed (i.e. projects which failed to reach their funding goal) and how many projects actually delivered. Over this period, DivNull offered funding to 113 projects, 42 of which failed to reach their funding goal. This is all summarized in the following chart.

Kickstarter results through 2011

The first take away from this graph is that the number of projects not yet delivering is higher than I would have guessed. At present, 34 of the projects DivNull funded have not delivered. The monetary value obscures this a little, as around $1500 of the total can be attributed to just four of these projects. This does, however, represent just under 48% of the funded projects, which looks grim; however, the vast majority of these projects seem to be still working towards delivery.

Another surprise is that almost half of the cash offered up didn’t get used. After funding this many projects, you get a bit of a feel for which will succeed and which won’t. Initially, DivNull was fairly promiscuous about funding, taking a “give them a chance” approach, particularly when it came to role-playing games. That trailed off slightly as time went on.

As someone who gets irritated by lots of useless project updates, I tracked how many updates were made by each project. On a whim, I created a graph of the number of updates vs. the percentage of the target funds raised by the project:

Number of updates vs. Percentage of target funds

I’m not sure this reveals much of anything, except perhaps that there is no clear correlation between number of updates and funding success. And, perhaps, that overly successful projects clearly don’t update more often than other projects. I made an attempt for a while to categorize the type of comments made and count them, but ran out of interest so my dataset is incomplete. The categories may be of interest, though, especially in that they can be divided into two groups based on category: comments I care about and comments I don’t care about. All comments fell into one of these categories:

  1. “Spread the word”: requests for backers to shill for the project.
  2. “Project is progressing”: essentially a progress report without offering any new content.
  3. “Nothing is happening”: a non-progress report, usually to reassure backers that the project is still alive, even though it’s not being worked on.
  4. “Success/thanks”: Nearly every project has at least one “we did it” post.
  5. “Explaining delay or problem”: Details about why you’re not getting your swag on time.
  6. “Pitch changes/clarifications”: Adding new tiers, bonus goals provided in the event of overfunding, etc.
  7. “Pitch of related Kickstarter”: If you liked this project, you might like…
  8. “Art/content preview”: Preview text or artwork, all by itself. Sometimes art is included with other sorts of updates.
  9. “Reference to external content”: Links to a forum or blog supporting the project. Sometimes links to freebie stuff supporting the product, such as character sheets.
  10. “Incremental version”: Download to beta drafts, etc.
  11. “Request for information”: Project needs to give them information.
  12. “Release details”: Links to PDFs, details of product shipping, etc.

This list is sorted in order of least important to me to most important to me. Generally, I really only must see the last two.

DropUnlock, DropNuke and Lion

DropNuke and DropUnlock were created solely to solve an odd hiccup in the early days of OS X, a problem that was fixed years ago. Since discontinuing DropNuke, however, I’ve received a handful of mails, replies and messages from people who used DropNuke beyond its original purpose. These have increased since Lion was released because, as PowerPC applications, neither DropNuke nor DropUnlock run under Lion.

Upgrading these applications, however, is not just a matter of recompiling them as Intel apps, because DropNuke and DropUnlock were not created in a traditional way. Creation of these applications took less than an hour, most of which was spent designing the icons. The actual “coding” took less time than it took to write this post. This rapid development time isn’t because I’m a fast coder; it’s because the apps are the output of Wilfredo Sánchez’s utility DropScript. What this application did is take Unix shell scripts (as well as Perl, Python, etc.) and wrap a Mac application around them that, when a file was dropped on the application, would execute the script passing the file as a parameter. Here is the complete code for DropNuke (which has been downloadable from the link at the top of this post since the apps were created):

#!/bin/sh
# EXTENSIONS : "*"
# OSTYPES    : "****"

for file; do
  location=$(dirname "$file")
  cd "${location}"
  chflags -R nouchg "${file}"
  rm -Rf "${file}"
done

The DropUnlock code is even simpler, eliminating the last rm call. Looking at the script now, I’m not even sure the first two lines in the loop even need to be there. In any case, you can see there isn’t much to these scripts. The real work is done by DropScript.

Alas, DropScript is a PowerPC application that produces PowerPC applications. Someone hell-bent on building Lion-compatible versions of DropNuke and DropUnlock would need to do the following:

  1. Download the source of the scripts.
  2. Do one of the following:
    1. Wait for Wilfredo Sánchez to update DropScript to support Intel applications.
    2. Download the source code to DropScript and get it working on Intel machines yourself. This might be a simple matter of just getting it to compile and rebuilding it, but I suspect not. It is likely that creating Intel apps from code is quite different than creating PowerPC apps was, back in the day.
  3. Run the resulting Intel-enabled version of DropScript and use it to build DropNuke and DropUnlock.
  4. Optionally, extract the icons from the original apps and apply them to the newly created versions.

Since I consider DropNuke too dangerous to release in the wild again (no more email about stray alias resolution accidentally deleting several terabytes of server data, thank you), and DropUnlock no longer really serves a purpose, I won’t be doing any of the above. All this code is available to you though. If you get it working, please drop me a line.

FUDGE d12 for Dicenomicon

Since Dicenomicon, my preferred dice roller for iOS allows for the creation and (cumbersome) sharing of custom dice definitions, I threw together a definition for a d12 that can be used for FATE games. Odds are the same as standard FUDGE dice (equal chances of “+”, “−” or ” “). They look like this:

Fate d12

You can grab the file here (might need to right click on the link and “Save URL as…”): Fate d12 definition for Dicenomicon.

How to use this file is not explained that well in the app and not that obvious. And way harder than it should be. I’d love to say “go to the obvious screen in Dicenomicon and type in this URL to download it”, but I can’t, because that inexplicably isn’t an option. There are supposed to be several ways to get the file there, but most of them don’t work (the “import from documents” route fails with a “stream had too few bytes” error).

  1. Download the definition file.
  2. On your iOS device, launch Dicenomoicon and hit the info button in the top right.
  3. Tap “Sharing”.
  4. Tap “Web-based Editor”.
  5. You are about to turn your device into a web server, briefly. Make up a username and password and tap “Start Server”.
  6. At the bottom of the screen, your device will display a URL to use. Open a browser on your computer (assuming it is on the same network as the iOS device) and go to that URL. When asked for a username and password, enter the one you just made up.
  7. In the page that comes up, click “Upload File”.
  8. Choose the dice definition you downloaded. Select “Numeric Die” in the “Kind of Upload” popup. Click “Submit”.
  9. Back in Dicenomicon, stop the server and go back to the main settings screen.
  10. Tap “Customize”.
  11. Tap “Custom Dice”. You should see the new “Fa12: Fate d12” in the list.
  12. So back to the customize screen. Tap “Dice Bar”.
  13. Tap “Edit”.
  14. Scroll to the bottom on the list and tap “Add Die…”.
  15. A “d6” will be added to the end of the list. In spite of being in Edit mode, you can’t edit this new die and this point. Tap “Done” instead, even though you are not.
  16. Now tap the new “d6” at the end of the list.
  17. In the screen that comes up, you will see a “d6” in a circle. Double-tap it.
  18. In the dialog that comes up, choose “Custom Numeric Die”.
  19. In the selector that comes up, choose “Fa12: Fate d12”.
  20. Click Done. Go all the way back to the main screen.
  21. At the end of your dice bar, you should see “Fa12”, which you can now use like any other die.