Jump to content

Recommended Posts

What's new section:

Snowman_Sky is game using MapIt engine.  MapIt will evolve here for a little bit.

Download: [ http://songersoft.com/programming/Snowman_Sky.zip ]

Video demonstrating new sprite_sheet class and weather effect.

Working on the Class section of the Character Sheet.

Which is what makes multiclassing possible.


Changing the value of Class will load the stored value for XP.  Lvl will be updated to the XP tier.

Hit points are then rolled for each level of all learned classes.  Hit dice are specific to each class and a Constitution modifier is added to each roll of hit die.


Edited by Xandy
Link to post
Share on other sites

MapIt Overview:

Avoid posts that aren't about MapIt development.  If you want to tell me good job or something try to use the Like buttons.  If you have a question about MapIt I'd love to hear it.  Criticism is okay with me too.

Feel free to PM me about MapIt.

Merging all these topics to this topic:



MapIt [From Examples - Tile World from Image]

MapIt (Dungeons and Dragons Edition) [From Chat - D&D Edition vote]

DragonWarrior3_Remake  [older version engine than MapIt]






  • End goal is to have a tile engine with sprites that is both a game and a world editor.
  • Automate replacing tiles in world, or colors in tiles.
  • Save / load worlds and tile images.
  • Use lists of tiles for automations.
  • Choose transparent color.
  • MapIt is a tool to reverse map images into world file and tile images.
  1. Supported image files: bmp, jpeg, gif, your mum, png, tiff, tga
  2. E-Programming-Repo-mapit-Choose-Image-to
  3. When the Start and End areas are all zero; the entire image is parsed into tiles.
  4. Here is an image of the resulting world file 000.txt:
  5. Spoiler
    1. dw1-overworld-file.png
  6. Tile images are saved too: Tiles.zip.
  7. Spoiler

    0.bmp   0.png
    1.bmp   1.png
    2.bmp   2.png
    3.bmp   3.png
    4.bmp   4.png
    5.bmp   5.png
    6.bmp   6.png
    7.bmp   7.png
    8.bmp   8.png
    9.bmp   9.png
    10.bmp 10.png
    11.bmp 11.png
    12.bmp 12.png
    13.bmp 13.png
    14.bmp 14.png
    15.bmp 15.png
    16.bmp 16.png
    17.bmp 17.png
    18.bmp 18.png
    19.bmp 19.png
    20.bmp 20.png
    21.bmp 21.png
    22.bmp 22.png
    23.bmp 23.png
    24.bmp 24.png
    25.bmp 25.png


This is posted in collaborations b/c I want help.  I want help bad enough that I could be willing to pay people for their time.  There are plenty of jobs available, the best way to start is to get to know the project.  There are at least 2 ways to do that, as a user and as a developer.  I wouldn't be paying much and I'd have to see your work as valuable.  I suppose a sliding scale.  I'm not unreasonable and I like lots of silly things.

Edited by Xandy
Link to post
Share on other sites


  • World Menu:
  • -> New:
  1. Set World Size and Tiles
  2. Load and Scan Image to World (Image of dialog in Overview above)
  • -> File:
  1. Save (World)
  2. Load (World)
  3. Save World to Image (Draws the entire World as tiles to image)
  • Clear (World layer range and area section.)
  • Tile Frame (X and Y subsection of tile.) 
  1. Currently whole World can be specifically set to a range of frame.  Single tile and area specification coming soon.


  • Tile Menu:
  • -> Edit
  1. Edit Image (Tile)
  • 1. Selected Tile is loaded into the editor
  • 2. Press SPACEBAR to drop colored pixels under mouse
  1. Replace from Disk (Discards selected tile and loads _FileOpenDialog($FILTER_IMAGE) )
  2. Resize (Scales selected Tile images)
  3. Replace Color (In selected Tiles.  See link for Blood Shores)


  1. Save (Tiles)
  2. Load (Tiles)
  3. Clear (Tiles)
  4. Tile Groups (Assign Tile group properties and Tiles of groups.  Such as what tiles, are what strength walls.)
  5. Properties (of all Tiles)


  • Background Menu:
  1. Change scrolling image.
  • Scrolls on X and Y axis.  Used for animated water effect.
  • Any image can be used.
  1. 2. Show.  (Toggles display of scrolling background image.)


  • Area Menu:
  1. Define Areas.
  2. Save Areas.


  • NPC Menu:
  1. Create NPC
  2. Save NPCs


  • Sprite Menu:
  1. Setup Spritesheet


  • Window Menu:
  • -> Size
  1. Screen Size (Set the size of the main window)
  2. Tile Palette Size (Set the width and height of Tile Palette, measured in Tiles.)


  1. Ruler


  • -> Show
  1. Cursor (Toggles display of the cursor position sub-window.)
  2. Tile Palette (Toggles display of Tile Palette sub-window.)
  3. Info (Toggle the Info sub-window display at bottom of screen.)
  4. Board (Toggles Board Info sub-window, this window starts hidden)


  • Help Menu:
  1. Settings (Relic it probably still works.)
  2. Hotkeys (Dialog() takes a list of keys that can be applied to actions.)
  3. Create Player (Temporary dialog to set data for player characters.)
  4. About (Put your mouse over the avatar, but don't click it.  That's what gets him off.)

- Move tiles to different world layer:

  1. IE: There are tools in MapIt to add layers after a image is scanned (scanned image always starts single layer).
  2. Tools to automate search for tile in layer: replace, move, etc.
  3. Auto search all trees, move from layer: 0 to layer: 1, next replace all trees on layer: 0 change to grass.
  4. Now trees are in the foreground of grass.  We have just added a tile layer to a single layer world.
Edited by Xandy
Link to post
Share on other sites

Team positions:

  • Advisor.  "Sometimes I waist days adding a hamburger sprite sheet generator."  Advisor can guide the direction of story and scripts to help maximize the use of development time.  Sometimes I just need someone who is interested in this sort of thing to provide me with feedback.
  • General programmer.
  • Save / Load data file management.  Getting this organized.  To actually have a plan to follow instead of my haphazard .txt files, hardcoded data, and sometimes .ini files.  Tell me the file management you decide and I'll code to the assigned rules.  Now both our jobs are easier.  Win win.  We'll have to get you on salary.  I also save to multiple locations, the job isn't complete cake.  I might want you to convert old systems and write new, so that I don't have to.
  • Math guy or gal.  Always liked math?  Like flexible shitty jobs?  Then this is you.
  • Critical analyzer.  Tell me why it should be better.
  • Unity.  (Unity skills are transferable to this project by rendering in a 3D environment to 2D.)
  • Sound effects (Can't be paid for until further development)
  • If you have an interest in this sort of thing, want to learn, or just want to get in real close before the kill.  I'll find a job for you.
Edited by Xandy
Link to post
Share on other sites


  1. Removed sprite_offset_y from individual NPC blits and applied it to  surfNPC_Front, surfNPC_Back offset instead.  (This fixes the clipping issue at top of world)
  2. surfNPC_Back of world (board) and surfNPC_Front.  People now fall if location aWorld[0][x][y][tile] = 0.  When falling NPC is drawn to surfNPC_Back.
  3. NPC drawing was off after moving like 1/2 a screen.  surfNPC_Front was sized to aBoard[0].  Problem was drect was altered in the SDL_Blit.  Not sure that is expected SDL action, or bug in SDL AutoIt port.  Solved by creating a new drect for each case.


Edited by Xandy
Link to post
Share on other sites
  • 2 weeks later...

Added a fun feature: NPCs fall from the world if NPC_Position aWorld[0][x][y][tile] = 0.  The first layer of tile in world, if it is empty under NPC, NPC status is falling.

A blank first layer tile is also treated as a wall by the default NPC_Movement_Type.  So NPCs probably won't step off the world, but you can delete the tile under them.  Just saying.


Edited by Xandy
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Professor_Bernd
      PSPad4AutoIt3 v2.0.0 beta (2021-04-16)
      All parts are freeware.

      PSPad4AutoIt3 consists of the Editor PSPad and the Improvement Kit, and can be used as an portable editor IDE for AutoIt3.

      The author of the PSPad Editor is Jan Fiala.
      I (Professor Bernd) am only the author of the Improvement Kit.

      Contact us:
      This is the first fully portable version of PSPad4AutoIt3.

      There are a lot of changes and new features, e.g.

      - a separate AutoIt3 menu in the PSPad main menu,
      - the shortcuts are SciTE-like,
      - Tidy for Au3,
      - in CallTipViewer a recognition for writing "(",
      - a dialog for registering file extensions with Pau3,
      - a nice about dialog in "90s style",
      - the CodeExplorer can now be displayed together with the FavTools on the right side,
      ( so the panel on the left side can be completely hidden )
      - and much more ...
      See here for details
      All in all a lot has been done and it is worth to have a look   Praise, criticism, ideas, tips and hints on bugs are welcome. Have fun with the new features!
      Thank you very much,
      Professor Bernd.
      Special thanks for the friendly support goes to:
      Jan Fiala (Author of PSPad)
      Jos van der Zande (Author of AutoIt3Wrapper, Tidy, ...)
      alpines (suggestions, ideas, testing, design for syntax colors, develop routines)
      argumentum (feedback, suggestions, ideas)
      AspirinJunkie (RegExp pattern, ideas and code snippets)
      Bitnugger (suggestions, ideas and code snippets)
      BugFix (suggestions, ideas and code snippets)
      Gun-Food (for making it possible to publish the project here)
      LarsJ (VBScript<->AutoIt communication, …)
      Musashi (suggestions and ideas)
      Credits for many other contributors can be found in the Pau3 About dialog.
      PSPad4AutoIt3 v2.1.0 beta - Update (2021-05-02) 
      See here for details v2.1.0 beta - Update
      Download in the german forum PSPad4AutoIt3 (Editor IDE), end of post #1   
    • By Fenzik
      Hello All!
      i suggest to set default encoding in Scite4 for Autoit 3 to UTF 8 with Bom encoding, format recommended also in Autoit Help.
      In last editor version, when i open new script, for example Czech characters (č, ř, ž) aren't correct.
      So when i change Encoding to UTF 8 with Bom from Default Code page property state, everithing seems to be OK.
      Thank you and sorry for potentialy duplicated content.
    • By Xandy
      Special thanks: AdmiralAlkex, Melba23, MrCrearoR, Dragon Warrior 3, SDL
      MapIt is a tile world editor.  MapIt was built around the concept of reversing Dragon Warrior map images.  MapIt can take image input and produce a tile and world array.  
      Changing and replacing tile / world data is easy.  B/c tile world editor.

      CTRL+R in image above to signal replace tile action and I use "G" to Get the tile under mouse.
      A full list of hotkeys can be assigned in the: Help Menu\Hotkeys
      MapParser is a C++ project that scans images for unique tiles. 
      MapIt can be downloaded without MapParser. MapParser can be toggled off in the Scan_Image dialog. Without MapParser, MapIt will use the Scan_Tiles() function written in AutoIt ; which is 100 * slower Idk. If MapParser.exe will not run for you:      Installing Visual C++ Redistributable for Visual Studio 2015 should fix it: https://www.microsoft.com/en-us/download/details.aspx?id=48145   
      You can start with example world and tiles.
      Example world was made following these steps:
      Started with a tile map image of DragonWarrior3 town of: Reeve From MapIt World Menu \ New \ Scan_Image dialog, I set the area to exclude the key legend to the far right of image. After scanning the map image to world and tile array.  I removed a few of the map artifacts.  More work could be done on this world; removing unwanted tiles, but it is fine for now. I saved my world to disk.  This creates folder: Worldname: Containing folder of Tiles and a Worldname.txt. Using The Gimp, I edited some tiles to have a transparent color: Stairs, Trees, Desk Tables, Chest-of-drawers, Chairs, Signs, Doors, Beds. I changed the world layers to 2: World Menu \ Properties. F9 Finds all selected tile on current layer and changes to a new selected tile on new layer. I used F9 to change all Trees on layer: 0 to Trees on layer: 1. Then I used F9 to change all Trees on layer: 0 to Grass on layer: 0  
      In this video you can see how I used the Tile Menu \ Replace From Disk option to remap tile images to my custom tiles.  Conveniently my tiles already have a transparent pixel.
      See video for how that was done:
      To use the example world:
      First unzip the world save file: http://songersoft.com/programming/mapit/worlds/Reeve_Swapped.zip From the World Menu: choose \Load Navigate to the Reeve_Swapped.txt located in the extracted zip. Or you can scan any image.
      The map images I used are here: http://www.realmofdarkness.net/dq/games/nes/dw3/maps/world
      For download, videos, and example of created world file data; please visit the MapIt webpage: http://songersoft.com/programming/mapit/mapit_about.phtml
    • By Xandy
      I am currently developing NPCs they cannot yet be added.  Items only exist in database.  Enemies only in sprite.
      This project has been on the shelf a couple years.  I decided to learn DLLStruct at the beginning of this project.  I'm not sure if using them was a good idea or not.  I'm open to converting them to pure array and Enum.
      Developing multiplayer system UDP clients / server.  I'm looking for some advice on how to setup the packets.
      I was thinking the best way was to convert packets to Hex and convert back at the destination.  That's probably the way I have it setup.  Anyhow they all talk to each other, clients and server.  Where the avatars appear on screens doesn't work.
      My Enums are used for data members of arrays.  I exclude the 'g' even though they are all Global.  I put the array names they describe in the Enum: ePlayer_x.  In some cases I abbreviate the array name; aWorld_info probably has: aWorld_info[eWi_layers]
      Most gaming things are done better with a nice engine: GameMaker, Unity, Unreal.
      My buddy made a time machine in BASIC.  I know you can make a better time machine in other languages, but there is something to be said for doing it in BASIC.
      Many things are ugly with this, just broken, or extraneous blocks of code I threw together for some one-off task.
      I put this here to see if it generates interest.  I'm happy to change this thing around.  I do many things in favor of speed, but I know some of it's crap.
      Package contains a Server and a Map Editor.  The Map Editor is meant to be able to add and edit:
      World Files, worlds have 2 layers. 
      0.txt background 1.txt forground. The files are formatted with a header: width, height, and the largest tile number.  The largest tile number is used to pad the world files.  So that the world files could be edited by hand.
      WorldN Tile X_Y.txt (a subset cord of tile to specify frame):  World Tile X_Y is stored in a separate file per layer so that the world layer files remain pretty.
      World Directory Structure: Example: World_1_Overworld.
      In folder above we can notice only layer 1 has a Tile_X_Y file.  This is because atm only trees use the system and trees are foreground.
      Areas: areas are to subdivide worlds in effort to section the worlds and divide lists for: hotspots, NPCs, Items, and area properties such as: Out-of-Bounds: Destination and Repeat Tile, enemy encounters, etc..
      Areas have: Global Enum $eArea_x, $eArea_y, $eArea_w, $eArea_h, _                        ; Area World Bound Rect         $eArea_ob_tile, $eArea_ob_world, $eArea_ob_x, $eArea_ob_y, _     ; Out of Bounds Repeat Tile and World Destination if Out of Bounds         $eArea_hotspots, $eArea_items, $eArea_NPCs ; Total Hotspots per Area, Items and People Hotspots: hotspots are locations on the board that relocate the player
      Global Enum $eHotspot_x, $eHotspot_y, _; the spot in world that moves player $eHotspot_dest_world, $eHotspot_dest_x, $eHotspot_dest_y; the destination world and position Board: A rectangle of world tiles is pre-drawn on aBoard[layer_max] centered on player, you can change the size to consume less RAM but requires drawing world to board more often.
      Animated Background: Before anything is drawn a moving BG image is drawn.  Creating beautiful water AI.  So if no tiles are drawn from world, BG water animation is shown.
      Map Editor should be able to test all of the systems of the game: Player, Worlds, Areas, Hotspots, NPCs, Items, Shops, Battles, Netplay, etc..
      (Not all systems exist yet)

      Download site: http://songersoft.com/programming/dw3_remake/dw3_remake_about.phtml
      It's going to say that the files might be malicious.  Probably b/c of the DLLs and I hosted an unmoderated forum from the site years ago were people posted malicious links.  Let me know if it's malicious!
      PS: I tried posting the source but I keep getting errors.  I think the source might be too large to post. 6308 lines.  Idk.
    • By AnonymousX
      So I just got a new computer, and instantly went and installed Autoit onto it. I selected run script as default action when clicking on an au3 file, however every time I do this it opens the script in the editor. I can from there run the script no problem.
      I've tried reinstalling and checking the settings by hitting "Ctrl+1" and have confirmed it is set to run, but yet it just continues to open in the editor.
      Any ideas why this is happening or how to solve?
      New system is windows 10, old was windows 7
  • Create New...