Today's project is somewhat of a two-fer (or it could be called a two x three-fer too, but that would be confusing).
Today we're highlighting a tile editing environment (think "map/level editor") and a tile rendering engine too. That's the two. The "three" is that it provides the demo and engine for Windows, XBox360 and Windows Phone 7...
Tile IDE (tIDE) and xTile are an integrated solution for building tile-based games for Windows, Xbox 360 and Windows Phone 7 using Microsoft XNA 3.1 and 4.0 technology. This software is licensed under the Microsoft Public License (Ms-PL) open source agreement.
tIDE Tile Map Editor
tIDE is a fully-featured, .NET-based tile editor that allows level designers to easily create content for tile-based games. tIDE supports a custom XML-based map format, a custom binary format (tbin), Tiled TMX, Mappy FMP and Flixel. Additional formats may be included via the .NET-based plugin system within tIDE.
- Intuitive user interface
- Support for multiple tile layers to facilitate the design of games featuring parallax scrolling
- Automatic tile transitioning (autotiles)
- Animated tiles
- Full-featured drawing toolbox to facilitate level design
- Layer ordering and visibility
- Support for an extensive range of display sizes to facilitate alignment when designing multi-layer maps
- Support for arbitrary tile sizes and multiple tile sheets
- Brushes to facilitate reuse of common composite elements
- Multiple file formats (currently tIDE, tBIN, Tiled TMX, Mappy FMP and Flixel formats)
- Full undo/redo capabilities
- Support for custom properties at every level of the map structure
- Full-screen editing mode
- Zooming capabilities
- Map structure navigation and manipulation via the Map Explorer panel
- Intuitive tile picker
- Auto-scrolling capabilities
- Dockable editor components
- Tile sheet auto-update feature to streamline content creation pipeline
- Painless tile sheet rearrangement
- Tile guides and layer viewing options
- Statistics on dimensions and tile usage
- Extensive potential for customisation via a plugin management system
- Built-in help system
xTile Tile Rendering Engine
xTile is a multi-platform tile rendering engine component for XNA-based games.
An easy 14-step tutorial to get you started using the xTile rendering engine is available
- Available for PC, Xbox 360, Windows Phone 7 and Zune*
- Parallax layer support
- Tile animation
- Custom property support at map, layer, tile sheet and tile level
- XNA Content Pipeline Support for tIDE map files
- Automatic validation and asset building of tile sheet image source dependencies in content pipeline
- Customisable XNA content processor
- Map loading interface for multiple file formats
- Native XML-based file format
- Integration with tIDE
- Abstract display device to facilitate platform extensibility
And of course, this is the Coding4Fun blog, so I wouldn't mention it (well at least I try not too) unless there was some kind of code to look at. In this case you get the entire code base! Yep, you get the code for the Map Editor, Engine, Demo and all the supported platforms.
So what does this Solution look like?
Here's the tIDE Project;
And the Engine
Set the Startup Project to one of the demo's or to tIDE and off you go. The PC demo and tIDE compiled and run for me the first time.
There are XNA/WP7 setup dependencies so you'll need everything installed first. Where would you find information about these? Well, this project also has a nice documentation set too!
Want some help getting started with the Engine? That's covered too...
This is a short tutorial explaining how to get started with the xTile tiling engine using XNA Game Studio 4.0. By the end of this tutorial you should have a working XNA 4.0 game application for Windows featuring a parallax scrolling animated map.
If you're thinking about creating a side scroller game and would like to focus on your game and not the map editing or rendering engine, wonder what kind of code it would take to create a map editor, or you just like playing around with maps/levels, tIDE and xTile might be just what you're looking for...