I7/Glulx: Other approaches to mapping

(This post is a follow-up of sorts to my earlier post, and includes more about graphics, maps, and I7 Glulx. It’s cross-posted to the rec.arts.int-fiction newsgroup.)

Automapping is one way to do IF maps; it’s a good way to quickly provide an image of the game world to players, without too much investment of the author’s time (and it’s especially effective if your world is randomly generated). Glimmr (GLulx IMaging and Multimedia Resources), the system of I7 extensions that I’m working on, was originally designed to enable a different approach to creating IF maps. Actually, it was designed to enable a range of approaches to maps, as well as to other kinds of graphical content, including user interfaces, composited scenes, card games, or what have you–but I want to concentrate on maps here.

Basically, Glimmr allows complex compositions to be built up from individual images, with lots of scope for variation. Basically, you define your Glimmr elements, define some basics about how they should display, and–if you like–rules for showing, hiding, resizing, or otherwise manipulating them. All this makes it relatively easy to produce two types of maps:

(1) Maps that reveal themselves to the player by drawing new elements to the screen as the player discovers new rooms (“additive maps”):

dl.dropbox.com/u/947038/Castle%2 … tes.gblorb

(2) Maps that reveal themselves through the progressive removal of elements that obscure a full map of the world (“subtractive maps”).

dl.dropbox.com/u/947038/Robner%2 … NKS.gblorb

These examples, by the way, were made with Graphical Window Sprites, a less powerful ancestor of Glimmr. In working with Graphical Window Sprites and early iterations of Glimmr, I found that I could put maps like these together quite quickly, especially their dynamic behavior. But there were two difficulties that I thought would get in the way of others using these tools. First, it’s time-consuming to generate the images themselves (using Photoshop or Gimp or whatever); more on this later. Second, there is no program in which measuring and properly placing images isn’t a real pain in the ass. In Photoshop, for example, you generally have to zoom in, figure out where the upper left corner (the coordinate origin) of an image is located, write those numbers down, and then transfer them to your definition of the Glimmr element. That is annoying.

I thought about how to make this more accessible and realized that the Glulx machine was the ideal place to build these compositions, since the Glulx machine was the place where they would be displayed. And so, I made an I7 graphics editor that lets you build compositions in a graphics window. When the composition is finished, you press a button and the Glimmr source code to recreate it is written to your hard disk. In case that sounds weird, here’s a screenshot of it running in Zoom:

(A portion of the source code output is also included at the bottom of this post.) I intend to release this editor in two ways. Primarily, it will be an extension; an author writes a list of figure names into a source file, includes the editor extension, and the editor gamefile is generated with the author’s images in the library window on the right side of the screen, available to be used to generate a composition.

However, I also want to release a compiled gamefile version that goes a little bit of the way toward also helping authors create an additive map (see above), but who don’t necessarily want to generate all of their own graphics. For this version, I’d like to include a bunch of elements that could be used for making maps: images that can be used for rooms, hallways, stairs, etc.

This brings me (finally) to my reasons for writing this post:

I’m looking for some help putting together a list of desired images. What kinds of things would you want to see in a set of images designed for making maps? I don’t want to overwhelm users (or myself!), so maybe 20 to 30 images is all I’m looking to provide. A few things to keep in mind:

  • These wouldn’t be tiles; there’s no need for them to fit to an arbitrary grid. They can vary in size and shape.
  • Ideally, this set will be usable for many different types of games. What graphic style seems most appropriate?
  • Glimmr can scale images arbitrarily, so the aspect ratio of images can change (not usually advisable from an aesthetic standpoint, but…)
  • You can use Glimmr (and the editor) to draw arbitrary rectangles, boxes, and stroked rectangles, without having to create separate images. Glimmr can also draw a line in a single color between any two points, and paint text to the screen in two different ways. These latter operations are slower, however, and should not be overused (see the screenshot). So, users (authors) are not limited just to images. (Obviously, the ability to draw arbitrary rectangles makes subtractive maps like the Robner House demo linked above incredibly easy to do.)

Any thoughts? If you’re not someone who would design your own graphics, what kind of prefab graphics would you want to use?

If you’re interested in testing/playing around with this mapset/editor combination once the tiles are made, please send me an email, or reply here. I would like to test both the image-set and the editor itself before releasing Glimmr, and this seems like a good way to do both.

Thanks, and apologies for the long post!


-----Source from the editor------

[code][The editor can also generate source code using tables to define elements. This is more concise and elegant, but doesn’t survive internet postings well.]

Chapter - Sprites

The graphlink status of a sprite is g-inactive. The associated canvas of a sprite is graphics-window canvas.

Cell_1 is a sprite. The image-ID is Figure of Cell. The origin is {241, 203}. The display-layer is 1.

Player_1 is a sprite. The image-ID is Figure of Player. The origin is {272, 232}. The scaling factor is 0.8500. The display-layer is 1.

Dungeon_title_1 is a sprite. The image-ID is Figure of Dungeon Title. The origin is {21, 20}. The display-layer is 1.

Central_hall_1 is a sprite. The image-ID is Figure of Central Hall. The origin is {240, 289}. The display-layer is 1.

Eastern_hall_1 is a sprite. The image-ID is Figure of Eastern Hall. The origin is {341, 290}. The display-layer is 1.

Eastern_hall_2 is a sprite. The image-ID is Figure of Eastern Hall. The origin is {567, 290}. The display-layer is 1.

Chapter - Line primitives

The graphlink status of a line primitive is g-inactive. The associated canvas of a line primitive is graphics-window canvas.

Line_primitive_2 is a line primitive. The origin is {257, 450}. The endpoint is {604, 407}. The line-weight is 1. The tint is g-white. The display-layer is 1.

Chapter - Bitmap-rendered strings

The graphlink status of a bitmap-rendered string is g-inactive. The associated canvas of a bitmap-rendered string is graphics-window canvas.

The_long_hallway_1 is a bitmap-rendered string. The origin is {567, 266}. The text-string is “The Long Hallway…”. The associated font is Glimmr C&C. The_long_hallway_1 is center-aligned. The tint is g-white. The background tint is g-placenullcol. The display-layer is 1.

Chapter - Image-rendered strings

The graphlink status of an image-rendered string is g-inactive. The associated canvas of an image-rendered string is graphics-window canvas.

Cell_2 is an image-rendered string. The origin is {299, 208}. The text-string is “Cell”. The associated font is Glimmr Lucida. Cell_2 is left-aligned. The background tint is g-white. The scaling factor is 0.3500. The display-layer is 1.


Erik, my mind has just been blown. :astonished:

Regarding a stock image set and prefab graphics: there are so many available map graphics out there in the world (ranging from game art and tilesets to those made for mapping specifically, for example autorealm.sourceforge.net/symbols.php), that I think it might be just easier to create a very small set yourself (wall, corners, outside floor, inside floor, door, doorway) and then make it easy for authors to plug in their own assets.

And I definitely want to try this out. :slight_smile:


Thanks for the links! I had no idea that so much of that stuff was out there, particularly the kinds of things seen at rpgmapshare.com/ and being generated with Dundjinni. It’s good to know that there are a lot of options out there for prefab assets, and makes me feel better about limiting what I provide. I would include the original PNG files in any distribution, so folks could easily mix and match my prefab stuff with other things, including their own work.

Given George’s mention of those links, I’d like to widen the request–are there any other high-quality resources for mapping art that I should mention in the documentation for the editor?