by Mike Wiering, Wiering Software


    Tile Studio is a complete development utility for graphics of tile-based games. The application contains a bitmap editor for creating tiles and sprites and a map editor for designing level maps.

    Tile Studio can be used together with ANY programming language, since the output is completely programmable! You can program Tile Studio to output your maps, animation sequences, bitmaps, palettes, etc. in any format and include the output directly into your source code!

tile editor     map editor
Tile Studio - tile editor (left) and map editor (right).
Click to enlarge images.

Tutorial Video

    This video gives an introduction to Tile Studio and a demonstration how graphics can be exported and used with HaxeFlixel.


    December 25, 2017 - Tile Studio II first release!

    February 21, 2017 - Tile Studio source code now on Github!

      The source code has now been moved to Github, now under the MIT license.

    September 26, 2012 - Another update

      This is another quick update with some extra features and fixes:

      • There is now an opacity slider at the top, so you can set the opacity of most drawing tools (when drawing on a transparent area, the opacity is always 100%).
      • Added a simple kind of onion skinning: right-click on a different tile at the bottom to see it vaguely through the current tile.
      • Added Tile | Replace Color Under Cursor (Ctrl+R).
      • Added View | Used Color Patterns (Ctrl+P), shows the patterns you've used before, you can select (left mouse button) or remove (right mouse button).
      • Select next or previous clips in the map editor with Ctrl+Shift+Alt Left or Right.
      • Added RGB Color Conversion Scripts (tile editor, bottom right).
      • Quotes in .tsd files can now be "..." or '...' instead of only "...".
      • Added Tile | Use As Alpha Channel (Shift+A).
      • Added <Counter1>, <Counter2>, etc. (up to 99), automatically increment.
      • Added option !StartWithEmptyTile for if you want the first tile in your tileset to be blank (use at the top of your .tsd file).
      • Import Palette in the palette manager works correctly now. You can also set up a default palette by naming it DEFAULT.PAL (F8 to switch to palette).

      Download ts.zip (or just replace ts.exe).
      Tile Studio II is being planned now, if you have suggestions how to make the program better, please list them at Tile Studio Forum - Open Discussion.

    July 27, 2008 - Quick update

      This is a very early alpha version of 3.0, and it doesn't have many of the features that I planned for 3.0, but you still might find it useful.

      • You can now type lists of anything you like (Ctrl+F10), which you can then export using #list ... #end list. For example, you could make a list of sounds for your game: [Sounds], JUMP, COIN, FINISH (each on a separate line). Then you could export #list "Sounds" "\n" ",\n" "" and inside that you can use <Item> and <Index> (also <ItemValue> if your list items are integer numbers), for example: const SND_<Item> = "<Item>.WAV";. If you have multiple lists, you can also add the name of the list as a prefix, for example <SoundsItem>. You can even use the same list recursively, then add a number (0, 1, ...) at the end: <SoundsItem0>. You can also use lists (with 0 or 1 item) for conditional compilation or as global constants.
      • Also, you go through a text file line-by-line (#readtextfile ... #end readtextfile) or a binary file byte-by-byte (#readbinfile ... #end readbinfile) to export it in some way. For text, you can use <TextFileLine> (<TextFileLineValue> in case it is a number) and <LineNumber>. For binary files: <BinFileChar>, <BinFileByte> and <BinFilePos>.
      • You can now use IF a THEN b ELSE c in numeric expressions! The result is b if a is not zero, otherwise c (note that ELSE is always required). Further keywords are NOT, EQUALS, ABOVE, BELOW, AND and OR (only works for numbers though, not for strings). For example:
        const <MapIdentifier>: array[0..<MapHeight * MapHeight - 1>] of <IF (TileCount ABOVE 255) THEN 16 ELSE 8 : "UInt%d"> = ...
      • In edit mode, the coordinates of shapes you draw are now logged (at the bottom right). This is meant for drawing animations, where you want to make slight changes per frame. On a new frame, you can press SHOW to see where you drew each shape before.
      • Other changes include (limited) .PCX support, replace current tile sequence in map mode (Ctrl+Shift+F7), new #sequenceframe ... #end sequenceframe (same as #sequencedata, but goes through each frame duration+1 times).

      Download ts.zip (or just replace ts.exe), enjoy!

    December 1, 2006 - New BlitzMax example

      I just made a complete new example of scrolling layers in BlitzMax, which is far easier than the previous examples. It includes a new definition file BMXPNG.tsd: tilemap.zip.

    November 16, 2006 - Version 2.55

      This is another update with some fixed bugs and changes. Download the newest version from SourceForge or simply replace your ts.exe with the new version.

      • Fixed: Replace Colors (Edit menu), Replace All didn't work properly.
      • Added: Quick keys "0" - "9" for toolbox functions (pencil, paintbrush, ..., selection).
      • Fixed problem introduced in 2.53: conflict between bounds and sequences (certain bounds would change into sequence code 00).
      • Fixed: starting a new selection in the map doesn't change the bounds anymore.
      • Added: Sequences can now have bounds. When exporting data, #sequencedata .. #end sequencedata can now contains variable <Bounds> (the bounds of the tiles used to make the sequence).
      • Fixed: <MapCount> was still not working correctly.
      • Fixed: config file not loaded when starting from other directory.
      • Added: transparent color can be changed by editing the config file TS.TSC.
      • Added: Paste half size image (Edit | Scaled Paste), perhaps more to come.
      • Fixed bug introduced in 2.54: #bitmapfile used current directory instead of target directory.

    July 23, 2006 - Version 2.54

      This is an update with some fixed bugs and changes. Simply replace your ts.exe with this new version.

      • New: You can now export tiles as separate image files (use #tilebitmap .. #end tilebitmap within #tile .. #end tile).
      • #file now creates the target directory if it doesn't exist.
      • New: Replace colors works differently now: first you need a color pattern containing the colors you want to replace (or make one with Ctrl + Right mouse button), press Shift + Tab (split color pattern), make a new color pattern with colors you want to use and then press the Replace Colors button at the top.
      • Fixed: placing a mirrored tile in the map sometimes gave a range check error.
      • You can turn the back / mid / front layer off in the map editor (View | Show Map Layer...), this is reset automatically when you switch back to tile mode.
      • In the map editor, you can copy the current tile combination to the clipboard (and paste it as a new tile in the tile editor).
      • Fixed: <TilesetBitmapWidth> and <TilesetBitmapHeight> are updated directly when you use #tilebitmap.
      • New: You can set guidelines in the map grid (Map | Set Grid Guidelines...).

    Old news...


    Here is a quick tutorial to help you learn to work with Tile Studio. Most of it should be easy to understand for anybody. However, the part about writing your own Tile Studio Definition files is meant for people who have some programming experience.

    This tutorial is also included in the .ZIP file, so you can read it off-line.


    To run Tile Studio, you will need a PC with Windows (any version) with HiColor or TrueColor display (Tile Studio cannot be used with 256-color display). Tile Studio works best on a desktop of at least 1024x768. If you have only 800x600 (or less), be sure to maximize the window when you start (so you also see the Tile Set panel and the status line).

    Older versions are available on sourceforge.

    And here are some examples of .tsp project files: examples.zip (includes Worms.tsp, Charlie.tsp and Sint.tsp). You can find the actual games (written in Clean) at the Clean Game Library site (Games section).


    Here are some examples of how to use Tile Studio with different programming languages. The demo is very simple, it shows two layers scrolling at different speeds. There is one animated tile sequence (used for the water).

    Scroll demo for several programming langauges

    These examples contain a .TSP file (with the graphics and maps), a .TSD file (which specifies the output format for that particular programming language) and the source code for the project. Most examples also include a working executable.

    Note that the .TSD files here are only examples. Normally, you would write a separate .TSD file for each project. But you could start with one of these.

    If you have written a .TSD file for a specific language or library, which you'ld like to add to this list, please send it together with a working demo (source + executable).

    *   The Turbo Pascal example is different from the others, it demonstrates overlapping tiles and the use of palettes.


SourceForge Logo


Return to Wiering Software