Zorkmid - human-designed maps automapping for IF (v3)

Hi Guys.

I’ve created an application that interfaces with Parchment and Quixe and provides a way to display human-designed maps of an interactive fiction game, the idea is to have nice and clear maps (ie: not ones that were auto-generated by a computer) as well as maps with unique designs for different kinds of games and game genres.

The application keeps track of the locations you’ve visited and only exposes those locations in the map in addition to highlighting your current location, and it also supports multiple maps per game, making it easier to create smaller maps for certain areas of the game and avoiding clutter.

Some more features of the system include the ability to add per-room illustrations (think Magnetic Scrolls), a compass which allows the player to navigate by clicking around and also by pressing ctrl+arrow keys, and pre-defined action buttons (“look”, “inventory”) as well as buttons the player can add for quick access.

I’d be happy if you guys can have a look and let me know what you think, this kind of project is very dependent on user participation so I’m hoping people will find it interesting.

Here’s the website and there’s a big orange button leading to a demo:
zorkmid.co.nr

Thanks

EDIT:

Version 2 adds:

Draggable maps
Hotkey navigation (ctrl+arrow key to move around the game)

Version 3 adds:

Support for Glulx: zorkmid.byethost12.com/play/?sto … enture.ulx
Press Tab to complete word

Hadean Lands would look gorgeous with this. :slight_smile:

Heck, every game would look gorgeous with this. Seriously impressive, and I like the “map as you go along” idea instead of displaying the whole map.

An author could actively make use of this system for releasing his own game with his own automap and his own illustrations, right?

And, here’s my inevitable question - is it possible to wrap it up in a zip file so as to provide offline play (using a browser, sure, but off-line) with all the map and illustration features?

Wow, that looks really cool! Will try it soon! :slight_smile:

Hey, would would this work if there are several rooms with the same name? Like, “Hallway”, or a maze?

I have the same question - is this a specific interpreter/app that can be bundled with a game? Can I give someone a zip with everything including a blorb or an index.html that lets it operate correctly?

Re: locations with the same name: the way it seems to work is that you have different maps (“house” “basement”) that correspond to different folders, and when the player is in “Cellar” the picture “cellar.png” is added to the map and glows. So if you have two locations that are named “Cellar” on the same map that’s not going to work (because you can’t have 2 files of the same name in the same folder). This means that, in theory, for mazes the map won’t change if the rooms all have the same name (say, if they are all of the type “twisty little passages all alike”). No automatic mapping of mazes then.

But I guess, maybe, if they are in different maps (say “My basement” and “My neighbour’s basement”) it works? Although how do you tell them apart? How do you specify when the map changes? I’m guessing this is done automatically by your tool? Is the algorithm “when the location changes, look for a room with that name in the current folder, if you can’t find it go look in all the other folders, and load the map corresponding to the first one you find”? If two locations have the same name and are in different maps, how do you ensure you load the proper one?

Judging by the code I think it’d be totally possible, but right now there’s no obvious place to do this. Maybe there could be a script, or maybe just a manual, to do this, eventually?

Roylaza, a few questions: are you releasing this and/or the source code so we can play around/help you with development? Under which licence would you be releasing this? Is your idea that people send you maps and you put the games on your website, or do you plan to open this to authors too? (Say, if I wanted to participate in IFComp 2016 and make my entry an html file that contains Parchment and Zorkmid, in order to display things much like in your sample game, would you allow me to use this if I give you the proper credit, and would you make it easy for any author to do this? Are you willing / planning on adding new features and make it easy for authors to tweak how things look, as well?)

Sorry for the deluge of questions, but I’m pretty excited about this tool and would like to know more about it and maybe play around with it. I think this could be a pretty great tool to make ‘enhanced’ Inform games :smiley: Overall I’m pretty impressed by the amount of functionality that is added pretty much automatically. Congratulations, it looks awesome and as an author I hope I will be able to use it and play around with it for my games :smiley: Let us know!

Why are you using Gnusto rather than zvm?

Hi Everyone.

Thanks a lot for all the comments!, I’m glad to see people like the idea.

Regarding offline play:

The short answer is - YES!
The longer, more technical answer is: Yes with a little modification, currently the only server-side component of Zorkmid is a php script that provides Zorkmid with the list of files and folders in the game folder (ie: maps), but I can, and will, easily make an option in the Zorkmid interface that will just output a pre-generated map list file for you to stick in the root folder of your game and it will pick up on the existence of this file and use it instead of trying to send out a request to the php script.

Regarding same name locations:

So, if the same name locations are in the same map, for example a forest where the player gets lost in, then only one location will be highlighted until you exit the forest, this can be represented thematically on the map as a large area so the player understands that he\she is in an area spanning several rooms.

Same named locations across several maps are fine, what will happen is that all of the locations sharing this same name across all map tabs will be highlighted, but the current map shown will not be changed, so worst case scenario the player will need to manually click on a map tab if in fact the same named location he stumbled into is in a different map then the one their on - this is not yet implemented though and will be done in v2.

Regarding modifying the code and looks:

Yes, it will definitely be fine by me to have authors modify the code and looks and publish the resulting package, I’ll even help out if time permits, and I assume with time and demand there will be new features allowing for easy modifications without messing about with code and CSS, I would, however, be happy if games using Zorkmid are also made available on the Zorkmid website so that it becomes a hub for people wanting to play IF with the features that Zorkmid provides.

Regarding Gnusto

Nice catch, the reason is simple, zvm when loading a game (navigating to the saved URL) does not display the top bar anymore (I’m not sure if this is intended or a bug), and the top bar is what Zorkmid parses in order to understand where the player is, Gnusto does not have this issue.

Awesome! :smiley:

Well you should’ve thought to report that as a bug, even if it was intended (which would be crazy!) all that would happen would be for me to explain so. :wink:

Gnusto is ancient and buggy. The only reason it’s still part of Parchment is for version 3, and I’m considering extending zvm to cover version 3 so that gnusto can be removed for good.

Guess you are right, I didn’t realize Gnusto is older, is github.com/sussman/zvm/issues the correct place to report this issue?

No, here please: github.com/curiousdannii/parchment/issues :slight_smile:

Done :slight_smile:
github.com/curiousdannii/parchment/issues/21

Cool! I like the idea.

For my taste the flashing of the current room is a little bit distracting – I’d rather have it flash once and then fade out, a little the way that Undum stat and text changes draw the attention. And for a game with a very large map, would it be possible to expand the area assigned to mapping?

Thanks :slight_smile:

I think eventually I’ll have several preset effects for the author to choose from including static highlights that won’t flash, but as I want the player to always be able to glance at the map and locate themselves easily in it, I think the effect should not disappear.

As for the map area, currently the maps are being scaled to fit the map area, but I’ll add an option for the author to opt for no scaling and the ability for the user to drag the map around inside the map area making it possible to have any size maps, and of course there is the option to segment the map into smaller areas.

Update on offline play: Zorkmid (starting from v2) now searches for a map file in the game folder before turning to the server for one, and I’ve successfully made an offline play test using a very lightweight (225KB) local webserver called Mongoose (it turns out Parchment does several AJAX requests which requires a webserver)

Yeah, I would be fine with some kind of “you are here” marker or slight highlight. It’s just the flashing specifically that distracts me from the body text.

It’s great to see something like Zorkmid being developed. If anyone wants to repurpose the maps on my walkthroughs for use via Zorkmid, that’s okay with me.

After playing the sample game, these are the issues that I wondered about:

  • Few games are going to have maps that conveniently fit into the map window without scrolling.
  • Room locations with identical names could be a problem.
  • Room locations with characters (like colons) that filenames don’t like could be a problem.
  • The room flashing is slightly annoying; personally I’d prefer a “you are here” icon of some kind.
  • Does Zorkmid handle gracefully the case when a room doesn’t have a map location?
  • If a game has more than one map, can they be of different sizes?
  • What issues would there be for adding Zorkmid maps to a legacy game?
  • Suppose there’s two or more map sets created for a game; can the player choose whose map(s) to use?

Awesome stuff.

Out of curiosity - how does Zorkmid know when the room’s been changed? Is it like in Trizbort’s and IFMapper’s automapper, where it looks for the proper formatting and makes a few guesses? What would happen if a room name were not in the expected format (maybe it’s all in sentence case, or maybe it’s not in bold like Moonmist - hey, THERE’s a game that would benefit from Zorkmid!)?

If it is looking at room names, am I correct in assuming it will easily deal with non-standard directions, like aft/fore/port/starbboard and widdershins? Or crazier stuff? And it will be able to deal with teleportation (xyzzy) without choking, right?

Hi Guys.

There will be an option to define that the map will be draggable, and if it makes sense in the game, segmenting the map into smaller ones might work better

Please see my reply to this on page 1

Not really, we’ll just cut the “bad characters” out of the filename (same as Zorkmid does with spaces)

Sure, it relies on a list of files and looks for the correct file in the list before trying to load the image, so there will be no broken images because of missing files, it will simply not show any room as active

Sure, the maps are completely independent of one another

There are no issues, as long as the game can open up and play in Parchment, Zorkmid can work with it.

Interesting, and yes, this can be added as an option when the need arises.

Much much simpler :slight_smile:, Zorkmid just parses the top bar where the location name is displayed.

Sure, you are correct, it doesn’t matter to Zorkmid what method you used to reach a room, it only cares that the room has changed.

What about games that don’t display room names in the status bar?

At first I thought it tapped into the VM and checked the player’s location there, which would work eliminate guesswork but would of course require some extra work to set up.