Wednesday, March 18, 2015

IFComp 2015 Devblog #1: Trizbort

Here's an introductory post for my hopeful IFComp 2015 game. I'm going to be keeping details vague, but I hope to link back to them. Since the rules changed to allow discussion pre-comp, I thought I'd see how this goes.

The first thing I'll address is prototyping. It's something I'd never done. Jason Lautzenheiser's impressive work on Trizbort allows me to color regions in. This is a big help! Just being able to stare at something colorful and/or shift it around is a big thing.

First thing? Let's have a look at the map. It's here. You'll notice everything is redacted. I don't want to give too much away, but I do want to encourage using Trizbort. The PERL code is rather crude. Trizbort's XML is readable, so I just scrubbed the object and room names.

  if ($b =~ /<objects/) { $b =~ s/>[^<]*</>REDACTED</g; }
  if ($b =~ /name=/) { $b =~ s/name=\"[^\"]*\"/name=\"REDACTED\"/g; }

My own image has more rooms and, of course, actual names. Each room is special, and the name will mean something. I've had good feedback early on about them, but saying what they are is a spoiler. I have more to say, but first a detour to two post-comp projects I tackled before IFComp 15.

My first two color-map projects were with Shuffling Around (I had to add a room) and A Roiling Original. I thought both would be relative walkovers, just adding feelies for feelies' sake, maybe even a bit of therapy. Since Shuffling is stable, I didn't see much change after writing it, but it was nice to look at when I had a tough bug, or when I needed to account for all rooms in an area. Not that there are that many, but I've learned that any way to prevent mental fatigue is a good one, especially if it is fun to set up. The map is here. (potential spoilers.)

Mapping A Roiling Original, on the other hand, made a lot of things pretty clear. Namely, there were a few outlier rooms that I didn't quite feel comfortable with. I wanted all the names to be anagrams. I knew there were a few stragglers. I recognized them when I saw them. But it wasn't until I wrote up the map that the outliers started to bug me. Or I saw something that looked like a weak anagram, and I wanted to do better. The map is here. (more potential for spoilers, but more color.)

I've always tried to make it so I could say, okay, I can at least isolate the thing that needs the most help. I did so with puzzles, but it was laborious. But with the rooms, I was even able to focus on if a name was too long, or if I might be able to change a room description after clearing certain obstacles.

Plus it was neat just to have a colorful representation of my world. Perhaps this would've helped with Ugly Oafs. I wanted to write a Trizbort map that spoiled things a bit, but I never considered I could've resized the rooms, which would've made planning much easier. As it happened, I wound up with several physical maps that never really got anywhere. This past week I drew up maps that have helped. I just made the room sizes bigger, to hold more text. Ouch to it being that simple!

Now, to notes on the map itself. The color coding is handy, as it's just nice to look at, and it encourages me to do more than abstract or dry puzzling or description. I'd like the game to live up to the map. But the colors do mean something.
  • Green = main bit. This means I like the room names, and the people and items in them.
  • Yellow = introductory bit. (Side note: none of these 3 rooms existed a month ago. In fact, the 3 that did are now part of a different game.)
  • Red = rooms of death. I plan to make "dying" amusing. And, of course, undo-able.
  • Blue = a side area away from the main bit. There will be a warp command, and I think it makes sense.
  • Orange = rooms or ideas that should fit, but I'm not sure how. Strong candidates, as names to switch in for green rooms. Count them as understudies in case testers bash a room/character name or purpose.
  • Purple = rooms I have explicitly rejected, but they'll be nice for an epilogue. I think there's a lot of latitude, here, and it's the sort of thing that people who find the general idea funny will be glad to see more of. I'm going to have a sort of director's cut that briefly goes through ideas. It's already implemented (easier than actual puzzles) and has already been a good driver to push me to explain why I'm doing certain things, or even to get a puzzle to work. For instance, one of the rooms is specific to American culture, but it's a good example of an idea that isn't quite good enough, though can maybe spur others.
  • Grey = rooms almost certain not to make it. But the idea needs to go somewhere! My actual map is 7x7, and this may be too big. Perhaps the rooms can become scenery.
  • The upper right triangle means "dark" in trizbort. There are no rooms in the game that are dark. However, some need implementation, and the marked ones are the ones I want to work on most at the moment. So I have a flag for getting things done. That's not to say everything is complete. Just that the biggest gaps are in certain areas. For instance, a purple room without a footnote gets the "dark" flag. For a while, only wrong-named green rooms had a "dark" flag. The current one has my first real puzzle. So with a glance, I can remember I need to work on that, conceptually or code-wise.
So far, I've been able to stare at a lot and say "That looks good, but I'd like to do better." And since I started early, I think I can. Some of the good ideas have been shunted to my "next" project, already. I've even had moments where I'm glad I wrote that idea down.

Before, I'd relied on a text file. That is good for poring through, but it doesn't evoke enough. It feels like work going through it. Now, I have text files to peruse, but the map lets me see "where do I add something to my world today?"

To do next: scripts and stubs to make things easier.


  1. Great post and thanks for the kind words on Trizbort. BTW: I plan on creating a feature in Trizbort to allow you to do Redaction on room names on the maps.

    Looking forward to the rest of the series of articles as I always enjoy reading about others design processes.

    1. Thanks! Yeah, the redaction is not super high priority since it is a work around. But it would be nice to have. It was a good exercise for me & sometimes it's nice to be able to do a bit yourself.

      I definitely have more planned. Some will be technical and some will be subjective. I hope to write enough that there'll be one entry that seemed obvious to me but other people say "Wow! That's great!"

      One big key to Trizbort is that it makes planning something to look forward to rather than something I better do.