2D Tile-Mapping Engine

This application was made using XNA, and is coded in C#, HLSL, and custom script.  It is used to create interactive backgrounds using linear tiles.  I've created a demonstration of its current capabilities in the style of an older role playing game... similar to Legend of Zelda, Chrono Trigger and/or Earthbound.   Initially I created an application similar to this in C++ using DirecDraw 7, but that was awhile ago.

Demo Notes

This demo has a player that can run around and explore.  The player can talk to characters and enter other areas and houses.  Some of the maps are harder to find, but no harder than a game.  Use Arrow keys to run, Space to interact with characters, W or S to select a response to dialog questions, and you have to hit Escape twice to exit (I forgot to fix that).  You can also fly around as a different sprite if you press P, but you have to be careful because it's not player-proof and you will get lost off the map... If that happens just restart. Enjoy. 

To Download Demo
If you have XNA 3.1 Framework Redistributable installed Download Demo Executable,


If you don't have the XNA 3.1 Framework, or aren't sure, Download Demo Setup,  Execute the setup.exe file.  The install will most likely prompt a download of the required framework, and then will install the game.

Demo Features Include:
- Dynamic Lighting
- Flickering Effects
- Day/Night Cycle (sped up for demonstration's sake)
- Bloom Effects
- Particle Objects
- Character Action Sequencing (moving around, attacking, dying, etc...)
- Character Animations
- Character Particle Objects (could be used for spells, press z a few times for some basic examples)
- Evolving Character Dialog (press w and/or s for responding to a character's question)
- Initiated/Automated Dialog and Dialog Reactions (characters can talk to each other, and perform animations/actions based on these reactions)
- In-Game Map Editor (there is currently no documentation, thus it's not useful to anyone but me. Press M then T, for the gist)
- Background Music (mp3s)
- Menu/Window System (at the menu screen, press T for the menu to bleed/fade into the background)
- Tile Animations (flowers and mushrooms)
- Tile Group Animations (waterfalls and map alterations)
- 2D Sprite physics (press p to fly a ship around, and p to stop... note that it's not player proof, so you can fly off the map and lose your player)

It's also worth mentioning that the Particle Objects and Menu/Window System are applications of their own which I've combined with this demo.

Short Application Description

The tiles are both: locations on the map and source locations within a source bitmap.  Each tile can have multiple layers as well as multiple attributes per layer. In the images below, the player is behind a tree that is partially behind the house and the player is also colliding with the wall of the house.

Tile Attributes Include:
- Layer depth details
- Animation
- Animation group
- Collision
- Particle object
- Region switch
- Any logical combination. 

As you can see by the screenshot below, in the map editor these attributes are shown using colors.  For example the red tiles are collision.  The user can only see the attributes of the layer being edited.

Another feature of this application is the sprites.  The characters have the ability to react to specific dialog states or actions performed by other characters.  In the demo, if you talk to an older lady on the porch, another woman will arrive and they will have a "conversation" about a missing child.  Once the conversation end, the woman will walk all the way home.  It's a fairly flexible system.

My main goal was to create an application that would make it easy and fun to develop interesting 2D games.  When I started this project I only had a few tile and character images that were part of a High School project.  Having so little to work with (not that these images aren't amazing because they are) I wanted to make the program itself compliment any limitations with lights, particle objects, etc...

Maps like this house take me less than 15 minutes to create with the map editor.

Jason Myelin,
Jun 6, 2012, 3:22 PM
Jason Myelin,
Jun 6, 2012, 2:54 PM