Jump to content
Sign in to follow this  
Tsukihime

Map Creator

Recommended Posts

Map Creator

-Tsukihime

 

This script provides various map creation and editing functionality. It addresses limitations in the editor such as a minimum width of 17, minimum height of 13, and maximum width and height of 500.

 

This script currently provides three functions:

 

Map creation – create a map with custom dimensions

Map resize – resize an existing map to custom dimensions

Map combine – combine multiple maps to form a single, large map

 

mapCreatorCreate1.jpg

 

Download

 

Script: http://db.tt/N4ZgW2q0

Add-on script: here

 

I take no responsibility for corrupted data or lost projects, time, and effort.

 

Usage

 

Creating new maps

 

At the top of your script, there is an array of new map info.

Just make an entry for each new map.

 

The map ID is automatically generated based on the largest map ID in your project, so for example if you had two maps numbered 1 and 5, then the newest map will start at 6 (instead of filling in the 2)

 

Resizing existing maps

 

I've provided a hash called "Resize_Maps".

The keys are the ID's of the maps that you want to resize, and the values are an array of [width, height]

 

Combining maps

 

You are able to combine multiple maps into one large map. This is a possible solution to overcoming the 250000 tile limit. The editor will still crash if you try to tile it, but you can add events to the map without any issues.

 

The input to this is a matrix (double array), where each array represents a row, and each element of the arrays represent a column.

For example, if you have 4 maps A1 A2 A3 A4 and you want to combine them into one big rectangular shape like

 

A1 A2
A3 A4

You would write [ [A1, A2], [A3, A4] ] as the matrix.

 

It does not need to be a square matrix; you can specify however many elements you want in whatever order.

 

When you have filled in the data, start the game and let it run.

A message box will pop when when it's finished.

 

CLOSE your project without saving it, and re-open it to load the new changes.

 

 

 

 

  • Back-up your files before you use it in case something happens. While I back-up your map info and your existing maps, I don't backup anything else.
  • Never resize the map using the editor if you are above or below the editor limitations
  • Do not scale down a map unless you really need to. It truncates anything that is outside of the specified dimensions
  • Do not have more than 250000 tiles on your map otherwise the editor will crash when you try to edit the tiles. You can still place events though
Notes

 

The add-on script prevents the map from automatically looping itself if the map is too small. This allows you to create maps that are smaller than 17x13 and have it display properly

 

Here's a 4x1 map

 

BBmrQ.jpg

Edited by Tsukihime

Share this post


Link to post
Share on other sites

Was hoping to throw in a dungeon generator algorithm but couldn't figure out how to do it. So for now it's just the bare-bones map creator lol

 

I dont get it

 

So this script create new maps and... ?

 

Yes, that's it. There isn't much to get.

Edited by Tsukihime

Share this post


Link to post
Share on other sites

Tsukihime... So my suspicion was correct? :)

 

I think I've already shared with you my random dungeon generator (which wouldn't work for this particular case), butI have a generator for random world maps, though only in VX right now: http://dl.dropbox.com/u/1460424/RandomWorlds.zip

 

Feel free to look at it an play with it, if you like. I haven't (yet) had any use to convert it to Ace, though.

Share this post


Link to post
Share on other sites

Tsukihime... So my suspicion was correct? :)

 

Obvious I should test my claims before making them :(

 

I think I've already shared with you my random dungeon generator (which wouldn't work for this particular case), butI have a generator for random world maps, though only in VX right now: http://dl.dropbox.com/u/1460424/RandomWorlds.zip

 

For the most part, I think it is a matter of understanding how a map creation algorithm would actually work. When I look at 2k3, I see several options that change how the algorithm runs, resulting in different types of maps (open-room, winding passages, etc.)

 

At some point I'll have to read about it cause I can't think of anything at all.

Share this post


Link to post
Share on other sites

For the most part, I think it is a matter of understanding how a map creation algorithm would actually work. When I look at 2k3, I see several options that change how the algorithm runs, resulting in different types of maps (open-room, winding passages, etc.)

 

At some point I'll have to read about it cause I can't think of anything at all.

 

Hit me up by PM or e-mail and we should chat further. There are a lot of well-researched algorithms, as well as many not-so-well researched ones that also work well :)

Share this post


Link to post
Share on other sites

I'm having an issue that renders this script entirely useless. If I make anything higher than 500x500 and I try to draw on the map then the editor crashes. I tried using both the pencil and fill tools. I haven't tried the others, but this is really frustrating. For what I am trying to make I do need an excessively large map. Here is the error that pops up when it crashes.

 

Critical Error C0000005 at address 00535B3C

Share this post


Link to post
Share on other sites

Tsukihime... So my suspicion was correct? :)

 

Obvious I should test my claims before making them :(

 

I think I've already shared with you my random dungeon generator (which wouldn't work for this particular case), butI have a generator for random world maps, though only in VX right now: http://dl.dropbox.co...andomWorlds.zip

 

For the most part, I think it is a matter of understanding how a map creation algorithm would actually work. When I look at 2k3, I see several options that change how the algorithm runs, resulting in different types of maps (open-room, winding passages, etc.)

 

At some point I'll have to read about it cause I can't think of anything at all.

 

It's interesting stuff (if you're into pure CS anyway). Related to pathfinding.

 

I don't know what algorithm Ace uses for events when set to "approach", but it sucks...

It's not bad enough that it doesn't work though, and I would think that is hard-coded in the engine, so not much you can do about it. I take that back, there is a way you could do it, but I doubt it would be worth the work.

 

The algorithm their dungeon generator uses is extremely simple as well. You'll notice it if you play around with the widths of the map. There will be "magic" spots where suddenly the number of rooms across increases. You'll never have a map that will generate three big rooms across one time, and "reroll" to get four smaller rooms across the next. I'll bet it's pretty much Diablo II's tileset dungeon generator, but without the pretty picture part.

Share this post


Link to post
Share on other sites

The editor does not support maps with more than 250000 tiles.

Based on some tests, I would conclude that when it tries to access the map data table, it's failing for some reason. The table object does not have an issue if you want to have 5000 x 5000 entries, so it has something to do with the map itself.

 

If you add an event on a 5000x5000 map, it will work fine. This is because adding an event does not actually access the table.

 

I have not found a way to get around this, and so I have explicitly hardcoded a check to make sure that your map does not exceed this limit.

 

You can have extremely long maps (50x5000, for example), which should be pretty big for anything reasonable, but consider 250000 tiles an editor limitation.

Edited by Tsukihime

Share this post


Link to post
Share on other sites

I have added a new feature called "Combine maps"

 

This allows you to take a bunch of maps you have and combine them into a very large map.

However, I haven't written any code to copy events over. This is because event ID's are important and if you change an event's ID you need to make sure everything that refers to that event is changed accordingly. And it is not clear just how many references there may be.

 

So for now you can create a massive map out of existing maps, and it works fine.

 

Fortunately, the editor does not have an issue with placing events on extremely large maps (eg: more than 250000 tiles), so that is an option if you would like huge maps.

 

Of course, huge maps are just if you really need them. The reason why I chose to combine several smaller maps into a big one is because if you don't like the huge map and decide to change your mind, you still (should) have your smaller maps available.

 

Instructions for map combining is in the script's description.

You can provide a "padding" if you wish to separate the maps from one another.

 

Basically, given maps A1, A2, A3, A4, and you want to arrange them as

 

A1 A2
A3 A4

 

You would specify the following 2D matrix

 

[
 [A1, A2],
 [A3, A4]
]

 

It does not need to be a square matrix you can have arbitrary n by m dimensions. The script will handle all adjusting for you.

Edited by Tsukihime

Share this post


Link to post
Share on other sites

So I have it installed and have a map by 2000x2000 but everytime I go to draw on it I get the same error as stated above, has anyone figured this issue out or does this script allow you to make big maps and not edit them at all?

Share this post


Link to post
Share on other sites

I was wondering if there is a way to get all up in RMVXA's business and kind of hack it to accept the over 250,000 tile limit? Or a script to overcome the fact. If there was a way to change a file and get it to accept it as being ok. Because hypothetically you could have a map with 50x5000 tiles which would still equal 250,000 limit in the terms of RMVXA, or as it sees it meeting its acceptable limits?

Share this post


Link to post
Share on other sites

I'm sure you can have a 50x5000 map.

You just can't have more than 250000 tiles. When I stated that restriction it was based on tests on maps of various sizes (like 10x10000 or whatever).

Edited by Tsukihime

Share this post


Link to post
Share on other sites

Hey Tsuki, I was kinda wondering... is there any particular restriction in place for what tiles can go on what layer? I know layer 0 and 1 are interchangeable at least, maybe 2 too. I was half wondering if a neat feature for this would be to nab layers from different maps so you could do layering tricks.

Edited by KilloZapit

Share this post


Link to post
Share on other sites

I have not tested that, but I would like to imagine there is no such restriction.

In the binary data, each element in the table stores the ID of the tile that should be drawn at that position, on the particular layer.

 

My assumption is that the editor has hardcoded the layer information, which you can generate yourself with scripts.

 

At that point, you should use an external map editor (eg: Tiled) and write a converter to import maps to RM format.

Edited by Tsukihime

Share this post


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
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
Top ArrowTop Arrow Highlighted