   Map File Format
  I've read this article http://www.gamedev.net/reference/articles/article739.asp and a few others, but I want something a little different out of my maps.  I have a side scroller and I want to embed triggers into the map file as well as units, tile properties, etc.  Right now I have something very basic:TILEDEFS1 SOLID2 TRANSPARENTH HEROENDTILEDEFSTILESET SpriteSet.pngHEROSET HeroSprite.pngBEGINMAP111111110000011000001000H0011111111ENDMAPI'm fine with completely scratching this for something more complex, but I was hoping I could get a little guidance on what to scrap it in favor of.  My initial thought was to have special tiles linked to Lua scripts.  I could have a list at the end of the MAP section that simply tells my game (via coordinates) to flag certain tiles as special and save information about the associated script:...begining stuff...BEGINMAP111111110000011000001000H0011111111ENDMAPTRIGGERS1,4 ONLOAD AddFlyingMonster.lua1,5 ONLOAD AddFlyingMonster.lua3,0 ONCOLLIDE LoadMap2.lua3,2 ONCOLLIDE SurpriseAction.luaENDTRIGGERSIs this going to scale well?  Is this underly/overly complicated? Thanks everyone.   
  It looks okay to me. As your project scales up you might want to create a world editor. If you follow the same pattern you will quickly run out characters to use and have to move to two or more characters per square, which is a great deal less intuative (in a text editor). A simple world editor will fix that.You will probally want to layer your entities, to at least units,items and terrain. This is how I would start it off.struct tile{    int tileType;   bool isPathable;};struct widget{    int widgetID;    tile currentTile;};struct unit : public widget{};struct item : public widget{};struct tileChunk{    int id;//'tile'    int nomTilesX, nomTilesY;    tile** tileArr;};struct unitChunk{    int id;//'unit'    int nomUnits;    Unit* unitArr;};struct itemChunk{    int id;//'item'    int nomItems;    Item* itemArr;};struct map{int id;//'mymp'char mapName[64];int version;tileChunk tiles;unitChunk units;itemChunk items;//more chunks...};