A couple weeks ago we had our first meeting for the Perl Adventure Series. Despite a terrible ice storm we still had 3 new people turn out in addition to our regular cast of characters. I hope we see them (and more) back.

During the meetup we set up our Dist::Zilla config file, and a new GitHub repository for the adventure series. And we got started designing the mission data structure.

We had a great time discussing all the implications of this design. There was a heated argument about including code snippets inside the config file in order to keep the game engine generic. However, I’m going to argue to the group that we should be putting these code snippets out into individual modules (or perhaps roles) and then just name those plugins in the config file. I hate the idea of code in a config file. It makes my skin crawl.

Beyond the code in config debate, we figured out that we were going to use YAML as the storage structure for mission files. Not for live mission data, but just as the initialization data. I think the YAML is hard to read given the big blocks of text we need to include in it, but YAML is a lot lighter than XML, and not as strict as JSON, so the group decided it was best.

We figured out our data structures for rooms, items, and other initialization data. We still have to figure out the data structures for the actions the player is allowed to take on any given item as well as in a room. I’m sure the robot that the player can control in the Space Mission will add a whole new mix of variables into the mix.

If this sounds like a fun exercise, and you live within driving distance of Madison, WI, then I encourage you to join us at our next meetup on February 14th (assuming your significant other will allow you to leave the house).

[From my blog.]