Here is a pic of the Space Hulk tileset I was working on:
(I couldn't get the IMG tags to display it.)
This is a program I wrote a couple years ago.
The basic idea is: You create maps using image tiles that are defined in a tileset. A tileset is an XML file (a text file) that has links to a bunch of JPG or PNG image files. The map can then be exported to an image.
It was originally used for designing maps for Doom: The Boardgame. Then I made a half-hearted attempt to create a tileset for Space Hulk. Which I later pulled down, since it wasn't finished.
Others have used it to create tilesets/maps for the Descent boardgame and similar endeavors. The most notable of which is this:
These guys have cataloged all the hallways and rooms produced by the DwarvenForge company. They make sculpted terrain. The fans using the software have created map-like tilesets for all the parts. Plus photo-based tiles for most of the parts. Example:
The program has an OpenGL rendering mode. Something most modern video cards can handle.
It is a free program and I am open to suggestions from the community. I worked on several features with the DwarvenForge enthusiasts.
One thing I think it could do better is: Make it easier for people to add, remove or edit tileset entries. Right now, you have to edit the tileset file by hand. Which means there is a learning curve and a chance to mess things up. I have often contemplated creating a tileset editor.
First off...Welcome Aboard!
That program of your definitely has some potential.
Also, you can embed files directly in a post by clicking on 'Go Advanced' and clicking the 'Manage Attachments' button, that way you don't need to worry about the <IMG> tags.
My Finished Maps | My Challenge Maps | Ghoraja Juun, my largely stagnated campaign setting.
Unless otherwise stated by me in the post, all work is licensed under a Creative Commons Attribution-Noncommercial 3.0 United States License.
Ah, thanks. I'll keep that in mind for the next time.
Some of the ideas I have considered for the future:
- Create an API that allows multiple instances of Tilesystem to be synchronized over the internet. Allowing a map to serve as a game board for gaming.
- Add lighting with bump maps, height maps and specular properties. This is something I have already worked on. But I need to rethink the rendering logic so that it will work on lower end machines.
It would be cool to be able to move your guys around with torches in their hands. Illuminating the scene properly.
The big problem with such an idea is: Making Map tiles and objects and figures would require the artist to also create heightmaps for each. This is no easy task and may be more than most people can chew.
Thats a pretty damn cool program, and would be especially useful to anyone who has a good set of tiles already. The use of XML is nice too, with the help file giving me all I need to create my own sets.
To be honest this is probably better than some commercial mapping packages I have seen, especially for the none artist mapper who just wants to throw a map together quickly. The key of course would be having a good selection of quality tiles.
I may have to play with this
Nice opening contribution.
Thanks! I have been considering some of the features that the professional programs have. Like a vector region that is filled with a repeating pattern. Haven't made up my mind about it though.
For a demonstration of what I mean about lighting, here is a screenshot of the Space Hulk tileset back when I had lights, bump mapping and height mapping implemented:
That's really great looking. Is the program 'understanding' the difference between walls and floors for dynamic lighting, or is it something else?
DM of The Isles of The Sun
Interesting app (or apps plural I think) you have there. I write a similar one with text based tile defs and opengl front end. I should have gone xml too but I didn't think I needed the full potential of it - so far I haven't needed any more than some simple params but there are some things I could expand on with a more complicated definition. Will be interesting to see more of your app and how it progresses.
You should definitely check out maptool - a program that allows you to do very similar things with light and shade. It has different coloured light sources and vision blocking areas built in and allows areas to be revealed/hidden depending on what the lighting conditions are. I'll try to put together a screenshot later today when I'm not at work. The code is open source so it may be possible to look at that for some of the structure in this - know that the lighting calculations were one of the aspects the developer (trevor) spent a LOT of time on, so if you are tackling the same problem this might avoid the hassle of reinventing the wheel.
Currently it does not do 3D - as you say it's a bit of a headache for people to do height maps when creating their maps.
Every image (be it floor tile, wall tile, door, figure) includes addtional images.
- One image is the color image you normally imagine.
- Another image is the "height map". This is a greyscale image where each pixel describes a height. In this case, black equals a height of 0. While white equals a height of about 8 feet.
- Another image is the "bump map". This is an image where each pixel describes the angle of the surface at that point. X,YandZ data are encoded as R,Gand B values in the image. Technically, this image could be deduced from the height map. But I had it setup so the artist had to generate it manually.
- Yet another iamge is the "specular map". This is greyscale image where black (0) = a matt surface. Rough like cement. Not shiny. While white (255) = shiny surface. (like metal, or a polished wood, or water). So you could give each pixel a specular propery in the range from 0 to 255 to describe how shiny that pixel was.
Since a light exists at a particular X,Y,Z coordinate, the program could deduce the angle in which the light hits each pixel. Since you can determine the X,Y,Z coordinate for any given pixel. (X and Y = pixel coordinate while Z = height above ground). Once you know the light's location, the pixel's location and the angular facing of the pixel, you could determine how much light was hitting the surface of that pixel and adjust it's natural color up or down to indicate darkness or brightness. Specular calculations factor into it because matt and glossy surfaces use different equations to determine how bright they are.
When you hear people talk about "bump mapping" or "Dot 3 normal mapping" in video games, this is the tech they are talking about.
It all looks pretty cool in action, but it isn't simple for artists to deal with. Which is why the whole thing isn't part of the current version of Tilesystem. I suspect most people are happy being able to just use their image artwork as-is. Adding more complicated functionality will reduce the number of people who can/will contribute content.
If I go forward with the lighting stuff at some point, it would have to be an optional thing.