- 139
- Posts
- 8
- Years
- United States
- Seen Nov 15, 2023
Do you hate the tedious process of mapping? Looking for a starting point for a new Pokemon region that you can tweak to your preferences, or maybe just want some maps to use for other purposes?
Introducing "Cartographer" Alpha version 1.3 (updated 9/20/2023)!
This tool will generate the overworld for an entire Pokemon region, and export it into files that can be used in RMXP with just a few hoops to jump through. This is the first update to the tool since early 2022, as I've been busy with other things in life, but still hope to continue slowly adding features.
Generated maps include:
-Fully textured towns & routes.
-Premade interiors for pokemon centers, marts, gyms, and the pokemon lab
-map_connections.txt data for seamlessly connected region
-encounters.txt data with level-scaled, biome-based Pokemon placement chosen. You can configure what pokemon can be placed in each biome using the "biomes.txt" file in the CartographerConfiguration folder.
-map_metadata.txt designating the dimensions of each area, and basic info such as whether it's outdoor, if the area name should display when entering, and weather
-town_map.txt data paired with a generated world map .png file
-Region contains 8 gyms (building exterior only), and a suggested progression order which matches the pokemon encounter's level scaling
-Optional creation of Events for left and right facing stairs
-Item balls and their corresponding events containing random items. (The placement for these is still totally random, both location and the type of item. Plan to add some weighting to this eventually.)
-trainers.txt data and trainer events of various trainer classes with appropriate pokemon (optional)
INSTRUCTIONS FOR HOW TO USE THIS PROGRAM ARE INCLUDED IN THE README.TXT FILE WITHIN THE DOWNLOAD
Please also note that, as several people have discovered, the 'rvpacker' gem needed to import generated maps into RPGMaker's .rxdata files does not work on Ruby versions 3.2 and higher. Recommend to try with Ruby version 3.1.4.
Below is the changelog for 1.3, which is primarily meant to support Pokemon Essentials v20 and v21, though there are a few small new things.
1.3
General Changes
⦁ Support for v20.x* and v21.x of Pokemon Essentials (v19 and prior are not directly supported, though maps may still work with some fiddling)
⦁ Added map "tag" system which assigns certain attributes that influence the features & appearance of areas beyond just the base biome. For example urban, rural, etc. This is a backend feature which will be expanded in the future.
⦁ Utilized more of existing tileset to increase diversity a bit, mainly in cities.
⦁ Added caves
⦁ Small adjustments to generation parameters
⦁ Metadata additions
Version Support
⦁ Revised code for reading various PBS files that have changed format. I did not retain support for older formats for the most part, since Cartographer is meant to be used on a new project anyways.
⦁ Renamed generated PBS data files to match new conventions:
- metadata > map_metadata
- connections > map_connections
- townmap > town_map
⦁ Changed various BGM names to match new where required (i.e. intro music)
⦁ Revised trainertypesconfig.txt to use trainer_types names instead of IDs, since they are no longer present in the trainer_types.txt PBS file
⦁ Modified trainers.txt output to the newer format
⦁ Changed worldmap.png (generated town map image) to be placed in Graphics/UI/Town Map. [* this is where it should go in v21.x. If you are using v20.x, jut move it to Graphics/Pictures]
Map Generation
⦁ Simple caves have been added, currently only have 1 floor and 1 entrance. Includes appropriate metadata & encounters. These have a chance to spawn in Desert and Mountain biomes currently.
⦁ Simplified elevation changes. Previously these generated in 4x4 tile squares, but I felt it looked ugly in most situations and made pathing/placement more complicated. For now these have been reduced to straight lines near area borders, but I will be adding more cliffs etc in different ways in the future.
⦁ "CAVE" added in biome.txt for cave pokemon spawns
⦁ Added "ShowArea = true" to metadata for outdoor maps.
⦁ Added default music to overworld maps.
⦁ Small fenced gardens and tree groves can now spawn in cities/towns.
⦁ Cities can now have one of two fence types running along their borders.
⦁ Towns/cities can now be urban, suburban, or rural which affects the types of paths and buildings as well as the number of buildings which can potentially spawn
⦁ Slightly constrained building placement in large cities to make them a little less sprawling
⦁ Hoppable ledges added to towns & routes.
⦁ Added weather metadata to some areas depending upon biome
⦁ Rainy areas or Jungles can sometimes have puddles on the ground
⦁ Added interior map & base events for Pokemon Lab in the starting town, including the default professor oak events and starter selection.
Texture Updates
⦁ Texture improvements to the custom poofy 2x3 trees used in Forest biomes (thanks to Jester for the adjustments!)
⦁ Added two more existing path types from the tileset to the generator - these can appear in 'urban' cities.
⦁ Additional roof colors (yellow, blue, red, green) can generate for houses.
Bug Fixes
⦁ Added a popup message which should display if Cartogropher does not have permissions needed to create the log file
⦁ Fixed an issue where an error could occur if the log file tried to generate prior to the CartographerOutput folder existing.
⦁ Fixed an issue in which the map selection cursor was included in the region map's image output
⦁ Fixed an issue introduced in 1.2.7 in which using the same world seed multiple times resulted in the same region layout, but different placement of buildings/trees/paths/etc. Reusing the same seed with the same settings will once again produce the exact same result.
⦁ Fixed an issue in which generated Gyms exit doors were still linked to the tutorial map instead of their corresponding generated city map
⦁ Ensured generated YAML files are using UTF-8 encoding so rvpacker can properly pack unicode characters (such as é in Pokémon)
Screenshots:
New hoppable ridges:
Flower gardens and fences:
New path types:
Puddles:
Caves:
Previous Versions
Version 1.2.7 changelog:
General Changes
⦁ Some building interiors are now generated along with the corresponding warp events
⦁ Updated a few things to work with Essentials v19
⦁ UI additions and misc. small fixes/improvements
Map Generation
⦁ Grass paths are now used in some towns & routes instead of sand paths
⦁ Update to pathing code to better account for the path's width when avoiding houses & obstacles
⦁ Added code to handle different types of paths meeting at map boundaries (they will stop before meeting if the textures don't match)
⦁ Added door-less variants of Celadon City buildings
⦁ Pokemon Centers now have interiors complete with Nurse Joy, PC, and Town Map events.
⦁ PokeMarts now have interiors along with mart salesman & mystery gift NPC (after the flag is enabled). PokeMarts also no longer spawn in the starting town.
⦁ Gyms have interiors, along with a randomized gym leader. The interiors are static and are all identical currently.
⦁ Reduced stairs to only place where paths generate. This does mean you might occasionally see a section of the map that is inaccessible and needs a stair to be manually added in RPGMaker. Although inconvenient, I think overall it is less annoying than removing the excessive amount that there were previously.
UI Improvements
⦁ Added "Area Info" panel which shows a small preview of the selected map section along with some basic information.
⦁ The Region Map can now be clicked on to select an area to preview in Area Info. You can also scroll through the map using the arrow keys when the region map is selected.
⦁ Since there's now a built-in preview feature, the "Preview PNG" button has been renamed to "Create Images", and now has the option to create either 1 large image of the whole region (as before) OR the new option to instead create a separate image for each map area, ignoring the out-of-bounds portions.
⦁ Partially enabled editing on the Biomes tab (you still can't add rows here at the moment, but you can still edit the biomes.txt file as before)
Bug Fixes
⦁ Fixed a crash which could occur if there were no trainertypes.txt entries matching one or more entries in trainertypesconfig.txt
⦁ Items can no longer spawn inside or behind building entrances
⦁ Changed naming convention for Trainer sprites from "trchar<id>" to "trainer_<trainer type>" to match Essentials v19. This does mean this version of Cartographer will not select sprites properly for older Essentials versions, although you can still select the sprites manually on the generated trainer events.
⦁ Updated format of encounters.txt data to match the new v19 versions. (Unfortunately this does mean the encounter data would not be backward compatible with v18 and earlier without manual adjustment)
⦁ Fixed an issue where the filepath for the tileset included backslashes instead of forward slashes, causing it to be unable to load on some operating systems
⦁ Hotfix: Fixed an issue where having no gym leaders defined in trainertypes.txt or trainertypesconfig.txt caused an error when attempting to generate gym leader events
--------------------------
Version 1.2.6 changelog:
General Changes
⦁ New biomes have been added and biome placement now takes the hidden "rainfall" value into account as well as "temperature".
⦁ Rewrote path generation (again). The paths (mostly) look more natural and (mostly) navigate ridges & other obstacles better.
⦁ Revised how textures are loaded from the tileset - this is a backend change which doesn't modify any of the output, but should make it easier and faster for me to add additional textures going forward.
⦁ Replaced all references of com.sun.javafx.geom.Rectangle with java.awt.Rectangle. This should prevent an error encountered by some people using non-Oracle JDKs or other Java versions lacking this class.
Map Generation
⦁ All paths are now placed with an updated algorithm, which should overall be an improvement.
⦁ New building tiles from Celadon City are now used for large cities
⦁ Many buildings are now generated in neat rows, especially in larger cities, which gives a more structured and slightly less chaotic layout.
⦁ Houses can now have the door on the left or the right side.
⦁ Removed excess shrubs from Forest and Tundra biomes, they will now only fill gaps between trees if along the map's borders.
⦁ Routes now have a small chance to spawn a single house
⦁ Slightly increased the frequency of Mountain biomes
⦁ Added new Forest biome with different trees (original Forest biome is now called Pine Forest)
⦁ Added new Dry Plains biome with dry grass, dirt, and new yellow 1x2 trees
Texturing Improvements
⦁ North-facing ridges will now use the thinner ridge textures rather than the rock-colored ones in most situations, so that the underlying texture (snow, grass, paths, etc) will show through.
⦁ Transitions between maps with different floor tiles are now smoother, with a rounded transition from one to the other.
⦁ Additional snow & dirt textures are now used along map boundaries with different biomes (new snow -> grass textures have also been added)
⦁ Made the Gyms 1 tile wider to better match how they normally look
⦁ New custom 2x2 Tree textures for Forest biomes (based on the large Viridian Forest trees)
⦁ New yellow trees & dry grass textures for Dry Plains biome
⦁ Flower patches can now intermingle with tall grass instead of overwriting the tall grass between the flowers
Bug Fixes
⦁ With the new pathing code, it should no longer be possible for buildings to sometimes spawn such that their entrance is blocked off
⦁ Fixed an issue in which coastal deserts & mountains would have beach textures on the tops of the surrounding rock ledges
Screenshots:
New city buildings & layout/pathing changes (I plan to add more buildings later, this is something of a stop-gap)
An example of an updated town as well as a new type of forest biome (I made those trees myself using the big Viridian trees as a starting point).
You can also see the redone north-facing ridge textures.
The 2nd new "Dry Plains" biome! You can also see the better biome borders.
Version 1.2.5 changelog:
General Changes
⦁ Rewrote PNG preview generation using "PNGJ" libraries. This allows the large image to be written one line at a time and greatly reduces memory use. This should eliminate "out of memory" errors while generating PNGs as well as the need to use command-line memory arguments for most people.
⦁ More textures are now pulled directly from the tileset for the PNG preview and will display correctly (e.g. buildings, trees). Only a few more such as the water rocks need updating.
Map Generation
⦁ Improved map borders - instead of generating maps and then attempting to add the border tiles to hide the black out-of-bounds areas from view, the borders are now included within maps by default. This should eliminate any remaining visible black areas during gameplay
⦁ Due to the increased border thickness, individual map dimensions are slightly increased on average
⦁ Openings between connecting maps can now be wider than the 2-tile gap where the path lies. This helps make the world seem more seamless, but unfortunately also makes the transitions between the different biome ground tiles much more obvious (e.g. a straight line across the map where snow/desert starts). This will be tidied up in the future.
Here you can see how the connections to this town are no longer constrained to only be as wide as the paths exiting the town:
And here's an example of the downside, the floor tiles are more jarring on the transitions because they are no longer always covered by trees/rocks. This will be made nicer in the future, but for now you'll have to tidy it up the old fashioned way:
⦁ Flower patches can now spawn in routes & towns which have grass-based biomes
Here's a nice little route with some flowers, you can also see the new grass placement method (mentioned later in the update notes)
⦁ Disabled spawning of binary space partitioning-style routes as they were broken somewhat by the adjusted map borders, and were kind of too repetitive anyway.
⦁ Cellular automata function for placing obstacles (trees, cliffs, etc) has been adjusted to leave fewer isolated trees/rocks/etc - they now stick together more for a more natural feel.
⦁ Tall grass/deep sand placement has been completely rewritten to be less scattered and more "clumpy", leaving larger open spaces while keeping about the same total amount of grass
Here's a snowy route that demonstrates how the grass is a little less scattered than it used to be, as well as the trees:
Texturing Improvements
⦁ 1-tile wide trees will only have the "tip" of the tree on layer 3 if there isn't another tree in the tile north of it, instead of having every tree-tip be on layer 3.
⦁ 1-tile wide trees now use the correct textures for the middle of the tree if there isn't another tree north of it (previously, it was using the center texture of the tree showing another tree behind it, even when there was not another tree behind it)
⦁ Moved water textures & wild grass textures to layer 1 and water rock textures to layer 2. This also fixes an issue where the ponds were invisible in-game due to how the reflections work.
UI Improvements
⦁ The PNG preview status message will now display a % complete as it is generating the image
No more guessing if your .png is ever going to finish generating!
Bug Fixes
⦁ Fixed a bug which could occur if a trainer tried to spawn in a lv100 area with a lv100+ pokemon (this won't happen in practice unless the region size is very large)
⦁ Fixed an issue in which ponds could sometimes spawn on coastal maps with the beach overlaying the pond's textures
⦁ Ponds are no longer invisible when you are actually playing on the maps in RMXP
Version 1.2.4 changelog:
General Changes
⦁ Revised biome assignment to be temperature/rainfall/elevation based. Similar biomes will share borders while dissimilar ones will be farther apart. This will be more apparent once the biome variety has increased.
Map Generation
⦁ Biome assignment has been changed. Previously, it was randomly chosen for each route from the 5 available biomes (Mountain, Forest, Plains, Jungle, Desert). Now, a temperature gradient is used behind the scenes for each area of the map, so similar biomes will be near each other, and biomes that don't make much sense to share a border will usually not be (i.e., deserts won't spawn near tundra). There is also a "rainfall" value, but this is not used yet since there are not that many biomes. Currently, biome assignment in order of temperature from lowest to highest is Tundra, Forest, Plains, Jungle, Desert. Mountain biomes will now spawn where the elevation is above a certain threshold, regardless of temperature.
Sample region with the new biome distribution - notice how there tend to be clusters of the same biomes instead of spread out everywhere:
⦁ Tundra biome has been added (finally)
Example:
⦁ Towns can now be assigned biomes, instead of always having the same ground/border textures.
Here's some samples of the new town "skins":
Mountain
Tundra
Desert
Textures
⦁ New path textures added for the Desert towns
⦁ New path textures, snow, snowy trees, wild grass w/snow, and snowy shrubs added for Tundra biome
⦁ Some textures are now pulled directly from the OutsideCartographer.png when creating the region PNG preview, making it a bit more accurate and easier for me to add textures to the generation going forward. Eventually all textures except perhaps autotiles will be pulled directly from the tileset image.
Bug Fixes
⦁ Fixed an issue where SHEDINJA's evolution method would prevent the program from launching if it didn't have a number as the 3rd parameter
Version 1.2.3 changelog:
General Changes
⦁ Added "Show Borders" option, which will show the route boundaries on the Town Map preview, to give a better visualization of the region
Show Borders
⦁ Added new adjustable parameter "Loop Chance" which can be set to 0, 20, 40, 60, 80, or 100. It represents the chance that extra routes will generate to connect to already linked towns, usually creating "loops" in the route structure. In general, a value of 0 will result in a "minimal spanning tree"-like map, while the higher values will have more extra routes and fewer "dead end" towns. There is some randomness involved here, so sometimes you may not see a big difference between some Loop Chance values for the same seed.
The same seed with different "loop chance" values:
Map Generation
⦁ Route placement code has been completely overhauled. As a result, several things have changed which I believe are for the better:
i. Routes with a width of 2 will no longer generate
ii. Routes which occupy a single 1x1 area on the Town Map are less frequent, and will never be directly next to another 1x1 route
iii. Extremely long routes will now be segmented into several smaller routes
iv. Routes will no longer run parallel to each other with only a few border tiles in between. (i.e. for the most part, there will not be any more "blobs" of routes in the generated regions) There are still some instances where routes may touch over a span of greater than 1 tile, but they will also be connected to each other in such instances.
v. Due to all the above, region layouts will in general look much nicer and more "sensible", even with large numbers of cities placed
Example of a "blobby" map you might get in previous versions, vs a map which looks nicer in 1.2.3 even with 20+ cities
Bug Fixes
⦁ Fixed an infrequent issue introduced in 1.2.2 in which pond generation for some world seeds would get stuck, leaving the program unresponsive
⦁ If Java does not have enough heap memory allocated to generate the large overworld PNG file, it will now display a message to the user instead of simply hanging the program.
UI Updates
⦁ Swapped position of Seed textbox and City # selector
⦁ Added "Loop Chance" parameter & "Show Borders" checkbox
Full view of UI updates
Version 1.2.2 changelog:
General Changes
⦁ Now produces an "Intro" map (Map001.yaml) which has the initial warp set to the randomized starting town, but is otherwise identical to the default Essentials intro it replaces.
⦁ Can now optionally produce a .PNG image of the entire overworld using a new button. This will make a very large image, and as such takes several seconds to generate. It will be placed in the CartographerOutput folder. (there will be some texture differences in the .png versus what is exported to RMXP, due to the internal textures not being fully decoupled from my old engine yet. But it should still serve as a mostly accurate preview)
⦁ New technical biome "POND_SURF" for pokemon encountered while surfing on the new freshwater ponds (see Map Generation).
Map Generation
⦁ Slight change to stair placement to reduce the amount of exceptionally wide stairs. There are still some, but less than before.
⦁ Freshwater ponds of varying sizes and shapes can now spawn on maps. Each area can get 0-3 ponds currently, though this will likely be fine tuned later. Ponds will not spawn on routes or towns which have accessible ocean water, since they will get OCEAN_SURF pokemon encounters instead.
Bug Fixes
⦁ Deep sand in Desert biomes will no longer spawn on tiles directly bordering the ocean, which was causing jarring differences in the beach textures
⦁ Fixed an issue where unrecognized Evolution Methods in pokemon.txt prevented the program from launching
UI Updates
⦁ Tooltip text now wraps instead of stretching way out on one line
⦁ New sextant icon to replace Pokeball icon on the app & taskbar
⦁ New "Preview .PNG" button
Version 1.2.1 changelog:
General Changes
⦁ Errors and other information is now logged to CartographerOutput/log.txt
⦁ Added the ability to generate random trainers, with possible pokemon configurable for each trainer type. Cartographer now reads trainertypes.txt in the PBS folder, and requires additional setup in CartographerConfig/trainertypesconfig.txt as well as one file per trainer type containing the pokemon roster information within the CartographerConfig/trainertypes folder (there are samples for the default Essentials trainer types provided). The rosters are formatted the same way as biomes.txt.
Bug Fixes
⦁ Fixed an issue where alternate XP growth rate names "MediumSlow" and "MediumFast" were not recognized properly in pokemon.txt
⦁ Fixed an issue where selecting "Open With - Java(TM) Platform SE Binary" instead of double clicking the .jar would cause the program to incorrectly look for required files in C:\Windows\System32 instead of the local project folder
⦁ Since types.txt, abilities.txt, and moves.txt are not really needed for any generation (although they may be in the future), they will no longer prevent the program from launching if they are not present or empty.
⦁ Pokemon.txt is still required in order to generate encounters.txt data or trainers, but will also not prevent the map generation from working if it is missing. Instead, encounter and trainer data will simply be disabled.
⦁ Cartographer is now more tolerant of non-vanilla data, although there may still be some issues to identify.
Version 1.2 changelog:
General Changes
⦁ Wild pokemon that can spawn in each biome are now configurable externally via the new biomes.txt file in the CartographerConfig folder. (instructions on how to edit the file are included at the top)
⦁ Available pokemon for use in biomes.txt is driven by the pokemon.txt essentials file in your project, so custom pokemon are allowed.
⦁ Cartographer now outputs townmap.txt data for the exported region map. To facilitate this, the map size was reduced slightly to 480x320, and default city count lowered from 18 to 16.
⦁ Basic metadata is now produced for metadata.txt, including the map size and the proper "outdoor" flag set to enable day/night filters.
Map Generation Improvements
⦁ Added "Mountain" biome, consisting of rocky borders & grass floor tiles
⦁ Added technical biome "OCEAN_SURF" for configuring pokemon which spawn while surfing, instead of hard-coded spawns from the previous version.
⦁ Surfing pokemon spawns under the "Water" tag in encounters.txt will now only be generated if there are water tiles in that area.
UI Improvements / QoL
⦁ There is a new tab in Cartographer which allows you to view the biome data that is read from biomes.txt, as well as see a list of the pokemon.txt species which were imported from pokemon.txt. This is currently view-only, and edits must still be done in the respecitive .txt files.
⦁ 3 new buttons have been added to perform tasks for rvpacker without needing to use the command line manually. *You should now place Cartographer and all included files inside your RMXP project folder for this to work*
⦁ "Install RVPacker" - this runs the gem installation for rvpacker and the scanf dependency. You still need to install Ruby manually prior to this.
⦁ "Pack Project" - Runs the rvpacker "pack" command on the project where Cartographer resides. This takes any YAML files in the YAML folder and packs them back into RMXP files in the Data folder.
⦁ "Unpack Project" - Runs the rvpacker "unpack" command on the project where Cartographer resides. This takes any eligable RMXP files in the Data folder and unpacks them into YAML files in the YAML folder.
⦁ PBS_OUT folder has been renamed to CartographerOutput for clarity. Mapinfos.yaml output will now go here by default to avoid automatically overwriting any Mapinfos.yaml that may already exist in the YAML folder.
Bug Fixes
⦁ Fixed an issue where exported maps could not have their names or music edited within RMXP
⦁ When the generator is unable to fit the specified number of cities onto the landmass, instead of failing it will now place the maximum number that it could fit and inform the user.
Version 1.1 screenshots:
Updated interface:
New textures:
Stairs
Desert sand
Side stairs, "smarter" paths, and randomized base grass texture
De-jankified deserts:
Redone beaches using autotile:
Updated paths & extended map borders:
Original Alpha 1.0 screenshots:
Cartographer's interface (extremely simple)
Town example
Plains
Forest (coastal)
Jungle
Desert (in my engine I had sand like Hoenn route 111, but just did grass for this tileset)
Map connections
Discord Server
As always, I am still open to feedback and suggestions - in fact, I've made Discord server in order to better facilitate answering questions, helping with issues or just sharing generated maps.
It's not a very fancy server by any means, but I've put up an FAQ there as well as a space for suggestions or reporting issues.
Link: https://discord.gg/JRBHWQCmSb
My eventual goal with this project would be to export a "complete" game in this manner, including interiors, trainers, and basic events. Originally, I started this project as my own engine, the idea of which being that you would just start a new game and have an entirely ready-to-play region generated, but switched gears into just exporting the output to RPGMaker XP where a much better engine already exists.
I do not require credit be given for use of this tool (although you can give it if you want :D). If you do make a game out of it, I would love for you to share, either here or on Discord - I'm very interested to see what people come up with!
There are a few known issues to be aware of:
⦁ Generator may use 1-2 GB RAM, which these days shouldn't present an issue for most.
⦁ Texturing does have a couple small errors that might need manual adjustment, though it's overall pretty good. In particular ponds and puddles need the layer 2 outline added on top, so the player's reflection isn't visible on the corners where there is technically grass.
⦁ You will probably need to add a few extra stairs manually to ensure all map areas can be reached. I'm working on a way to hopefully improve this in the future.
⦁ Stair events will place the player on top of an item ball if it rests on the ending position of the stair. This is more of a placement issue, as the item placement has not yet been refined.
⦁ Swimming trainers can currently also spawn in ponds. I probably will remove this in the future unless it makes sense for the specific area.
⦁ Occasionally, cliffs can generate 2 tiles high which can't be pathed through correctly by the algorithm, which can result in a map being blocked off along one of it's connecting sides. You'll see an error mentioning this in log.txt if any of your region maps has this happen, though it isn't too common.
I'm sure there are probably other issues I've yet to discover, so if you find a bug or issue please let me know.
Here are some things I'm tentatively thinking about for the future versions - it's unlikely I will implement all of them, and may add things that aren't even on the list depending on what I feel like working on. But, let me know if you have any opinions!
⦁ More options for the region's landmass generation (e.g. more of a peninsula or land-locked region instead of an island/islands)
⦁ Configuration of which items can appear based on the area's level, e.g. lower level areas would have Pokeballs/Potions, while higher level ones may have Hyper Potions/Ultra Balls/etc.
⦁ Generally better item placement
⦁ More biomes
⦁ Further enhance city generation with different landmarks and features, etc
⦁ Add more building styles & types
⦁ Improve caves with more textures, varying types, multi-level caves, and tunnels connecting 2 areas.
⦁ Add other types of side areas such as forests
⦁ More building interiors
⦁ Add more features to route generation (more urban-looking routes, berry trees, etc)
⦁ Add some more decorative textures to the generation
⦁ Add fishing spawns for encounters.txt
⦁ Add more gens of pokemon species to the default biomes.txt and trainer pools (it's mostly gen 1 at the moment)
I know a lot of people want support for multiple tilesets, e.g. generation IV, etc. However this isn't really high on my priority list since if you want to you can just edit tiles on the existing tileset, replacing them with your own textures (as long as they are in the same location as the texture(s) they replace and generally tile with one another in the same way). The generator assigns tiles based on their position in the tileset image, so it will still function with modified tilesets if you set it up just right.
Which things would you like to see? Let me know what you think!
Download link:
https://www.dropbox.com/sh/ipyif1iloqx5laf/AAAc8CNvGdPMni0U-ivDQ9Hca?dl=0
Introducing "Cartographer" Alpha version 1.3 (updated 9/20/2023)!
This tool will generate the overworld for an entire Pokemon region, and export it into files that can be used in RMXP with just a few hoops to jump through. This is the first update to the tool since early 2022, as I've been busy with other things in life, but still hope to continue slowly adding features.
Generated maps include:
-Fully textured towns & routes.
-Premade interiors for pokemon centers, marts, gyms, and the pokemon lab
-map_connections.txt data for seamlessly connected region
-encounters.txt data with level-scaled, biome-based Pokemon placement chosen. You can configure what pokemon can be placed in each biome using the "biomes.txt" file in the CartographerConfiguration folder.
-map_metadata.txt designating the dimensions of each area, and basic info such as whether it's outdoor, if the area name should display when entering, and weather
-town_map.txt data paired with a generated world map .png file
-Region contains 8 gyms (building exterior only), and a suggested progression order which matches the pokemon encounter's level scaling
-Optional creation of Events for left and right facing stairs
-Item balls and their corresponding events containing random items. (The placement for these is still totally random, both location and the type of item. Plan to add some weighting to this eventually.)
-trainers.txt data and trainer events of various trainer classes with appropriate pokemon (optional)
INSTRUCTIONS FOR HOW TO USE THIS PROGRAM ARE INCLUDED IN THE README.TXT FILE WITHIN THE DOWNLOAD
Please also note that, as several people have discovered, the 'rvpacker' gem needed to import generated maps into RPGMaker's .rxdata files does not work on Ruby versions 3.2 and higher. Recommend to try with Ruby version 3.1.4.
Below is the changelog for 1.3, which is primarily meant to support Pokemon Essentials v20 and v21, though there are a few small new things.
1.3
General Changes
⦁ Support for v20.x* and v21.x of Pokemon Essentials (v19 and prior are not directly supported, though maps may still work with some fiddling)
⦁ Added map "tag" system which assigns certain attributes that influence the features & appearance of areas beyond just the base biome. For example urban, rural, etc. This is a backend feature which will be expanded in the future.
⦁ Utilized more of existing tileset to increase diversity a bit, mainly in cities.
⦁ Added caves
⦁ Small adjustments to generation parameters
⦁ Metadata additions
Version Support
⦁ Revised code for reading various PBS files that have changed format. I did not retain support for older formats for the most part, since Cartographer is meant to be used on a new project anyways.
⦁ Renamed generated PBS data files to match new conventions:
- metadata > map_metadata
- connections > map_connections
- townmap > town_map
⦁ Changed various BGM names to match new where required (i.e. intro music)
⦁ Revised trainertypesconfig.txt to use trainer_types names instead of IDs, since they are no longer present in the trainer_types.txt PBS file
⦁ Modified trainers.txt output to the newer format
⦁ Changed worldmap.png (generated town map image) to be placed in Graphics/UI/Town Map. [* this is where it should go in v21.x. If you are using v20.x, jut move it to Graphics/Pictures]
Map Generation
⦁ Simple caves have been added, currently only have 1 floor and 1 entrance. Includes appropriate metadata & encounters. These have a chance to spawn in Desert and Mountain biomes currently.
⦁ Simplified elevation changes. Previously these generated in 4x4 tile squares, but I felt it looked ugly in most situations and made pathing/placement more complicated. For now these have been reduced to straight lines near area borders, but I will be adding more cliffs etc in different ways in the future.
⦁ "CAVE" added in biome.txt for cave pokemon spawns
⦁ Added "ShowArea = true" to metadata for outdoor maps.
⦁ Added default music to overworld maps.
⦁ Small fenced gardens and tree groves can now spawn in cities/towns.
⦁ Cities can now have one of two fence types running along their borders.
⦁ Towns/cities can now be urban, suburban, or rural which affects the types of paths and buildings as well as the number of buildings which can potentially spawn
⦁ Slightly constrained building placement in large cities to make them a little less sprawling
⦁ Hoppable ledges added to towns & routes.
⦁ Added weather metadata to some areas depending upon biome
⦁ Rainy areas or Jungles can sometimes have puddles on the ground
⦁ Added interior map & base events for Pokemon Lab in the starting town, including the default professor oak events and starter selection.
Texture Updates
⦁ Texture improvements to the custom poofy 2x3 trees used in Forest biomes (thanks to Jester for the adjustments!)
⦁ Added two more existing path types from the tileset to the generator - these can appear in 'urban' cities.
⦁ Additional roof colors (yellow, blue, red, green) can generate for houses.
Bug Fixes
⦁ Added a popup message which should display if Cartogropher does not have permissions needed to create the log file
⦁ Fixed an issue where an error could occur if the log file tried to generate prior to the CartographerOutput folder existing.
⦁ Fixed an issue in which the map selection cursor was included in the region map's image output
⦁ Fixed an issue introduced in 1.2.7 in which using the same world seed multiple times resulted in the same region layout, but different placement of buildings/trees/paths/etc. Reusing the same seed with the same settings will once again produce the exact same result.
⦁ Fixed an issue in which generated Gyms exit doors were still linked to the tutorial map instead of their corresponding generated city map
⦁ Ensured generated YAML files are using UTF-8 encoding so rvpacker can properly pack unicode characters (such as é in Pokémon)
Screenshots:
Spoiler:
New hoppable ridges:
Flower gardens and fences:
New path types:
Puddles:
Caves:
Previous Versions
Spoiler:
Version 1.2.7 changelog:
Spoiler:
General Changes
⦁ Some building interiors are now generated along with the corresponding warp events
⦁ Updated a few things to work with Essentials v19
⦁ UI additions and misc. small fixes/improvements
Map Generation
⦁ Grass paths are now used in some towns & routes instead of sand paths
⦁ Update to pathing code to better account for the path's width when avoiding houses & obstacles
⦁ Added code to handle different types of paths meeting at map boundaries (they will stop before meeting if the textures don't match)
⦁ Added door-less variants of Celadon City buildings
⦁ Pokemon Centers now have interiors complete with Nurse Joy, PC, and Town Map events.
⦁ PokeMarts now have interiors along with mart salesman & mystery gift NPC (after the flag is enabled). PokeMarts also no longer spawn in the starting town.
⦁ Gyms have interiors, along with a randomized gym leader. The interiors are static and are all identical currently.
⦁ Reduced stairs to only place where paths generate. This does mean you might occasionally see a section of the map that is inaccessible and needs a stair to be manually added in RPGMaker. Although inconvenient, I think overall it is less annoying than removing the excessive amount that there were previously.
UI Improvements
⦁ Added "Area Info" panel which shows a small preview of the selected map section along with some basic information.
⦁ The Region Map can now be clicked on to select an area to preview in Area Info. You can also scroll through the map using the arrow keys when the region map is selected.
⦁ Since there's now a built-in preview feature, the "Preview PNG" button has been renamed to "Create Images", and now has the option to create either 1 large image of the whole region (as before) OR the new option to instead create a separate image for each map area, ignoring the out-of-bounds portions.
⦁ Partially enabled editing on the Biomes tab (you still can't add rows here at the moment, but you can still edit the biomes.txt file as before)
Bug Fixes
⦁ Fixed a crash which could occur if there were no trainertypes.txt entries matching one or more entries in trainertypesconfig.txt
⦁ Items can no longer spawn inside or behind building entrances
⦁ Changed naming convention for Trainer sprites from "trchar<id>" to "trainer_<trainer type>" to match Essentials v19. This does mean this version of Cartographer will not select sprites properly for older Essentials versions, although you can still select the sprites manually on the generated trainer events.
⦁ Updated format of encounters.txt data to match the new v19 versions. (Unfortunately this does mean the encounter data would not be backward compatible with v18 and earlier without manual adjustment)
⦁ Fixed an issue where the filepath for the tileset included backslashes instead of forward slashes, causing it to be unable to load on some operating systems
⦁ Hotfix: Fixed an issue where having no gym leaders defined in trainertypes.txt or trainertypesconfig.txt caused an error when attempting to generate gym leader events
--------------------------
Version 1.2.6 changelog:
Spoiler:
General Changes
⦁ New biomes have been added and biome placement now takes the hidden "rainfall" value into account as well as "temperature".
⦁ Rewrote path generation (again). The paths (mostly) look more natural and (mostly) navigate ridges & other obstacles better.
⦁ Revised how textures are loaded from the tileset - this is a backend change which doesn't modify any of the output, but should make it easier and faster for me to add additional textures going forward.
⦁ Replaced all references of com.sun.javafx.geom.Rectangle with java.awt.Rectangle. This should prevent an error encountered by some people using non-Oracle JDKs or other Java versions lacking this class.
Map Generation
⦁ All paths are now placed with an updated algorithm, which should overall be an improvement.
⦁ New building tiles from Celadon City are now used for large cities
⦁ Many buildings are now generated in neat rows, especially in larger cities, which gives a more structured and slightly less chaotic layout.
⦁ Houses can now have the door on the left or the right side.
⦁ Removed excess shrubs from Forest and Tundra biomes, they will now only fill gaps between trees if along the map's borders.
⦁ Routes now have a small chance to spawn a single house
⦁ Slightly increased the frequency of Mountain biomes
⦁ Added new Forest biome with different trees (original Forest biome is now called Pine Forest)
⦁ Added new Dry Plains biome with dry grass, dirt, and new yellow 1x2 trees
Texturing Improvements
⦁ North-facing ridges will now use the thinner ridge textures rather than the rock-colored ones in most situations, so that the underlying texture (snow, grass, paths, etc) will show through.
⦁ Transitions between maps with different floor tiles are now smoother, with a rounded transition from one to the other.
⦁ Additional snow & dirt textures are now used along map boundaries with different biomes (new snow -> grass textures have also been added)
⦁ Made the Gyms 1 tile wider to better match how they normally look
⦁ New custom 2x2 Tree textures for Forest biomes (based on the large Viridian Forest trees)
⦁ New yellow trees & dry grass textures for Dry Plains biome
⦁ Flower patches can now intermingle with tall grass instead of overwriting the tall grass between the flowers
Bug Fixes
⦁ With the new pathing code, it should no longer be possible for buildings to sometimes spawn such that their entrance is blocked off
⦁ Fixed an issue in which coastal deserts & mountains would have beach textures on the tops of the surrounding rock ledges
Screenshots:
Spoiler:
New city buildings & layout/pathing changes (I plan to add more buildings later, this is something of a stop-gap)
An example of an updated town as well as a new type of forest biome (I made those trees myself using the big Viridian trees as a starting point).
You can also see the redone north-facing ridge textures.
The 2nd new "Dry Plains" biome! You can also see the better biome borders.
Version 1.2.5 changelog:
Spoiler:
General Changes
⦁ Rewrote PNG preview generation using "PNGJ" libraries. This allows the large image to be written one line at a time and greatly reduces memory use. This should eliminate "out of memory" errors while generating PNGs as well as the need to use command-line memory arguments for most people.
⦁ More textures are now pulled directly from the tileset for the PNG preview and will display correctly (e.g. buildings, trees). Only a few more such as the water rocks need updating.
Map Generation
⦁ Improved map borders - instead of generating maps and then attempting to add the border tiles to hide the black out-of-bounds areas from view, the borders are now included within maps by default. This should eliminate any remaining visible black areas during gameplay
⦁ Due to the increased border thickness, individual map dimensions are slightly increased on average
⦁ Openings between connecting maps can now be wider than the 2-tile gap where the path lies. This helps make the world seem more seamless, but unfortunately also makes the transitions between the different biome ground tiles much more obvious (e.g. a straight line across the map where snow/desert starts). This will be tidied up in the future.
Spoiler:
Here you can see how the connections to this town are no longer constrained to only be as wide as the paths exiting the town:
Spoiler:
And here's an example of the downside, the floor tiles are more jarring on the transitions because they are no longer always covered by trees/rocks. This will be made nicer in the future, but for now you'll have to tidy it up the old fashioned way:
⦁ Flower patches can now spawn in routes & towns which have grass-based biomes
Spoiler:
Here's a nice little route with some flowers, you can also see the new grass placement method (mentioned later in the update notes)
⦁ Disabled spawning of binary space partitioning-style routes as they were broken somewhat by the adjusted map borders, and were kind of too repetitive anyway.
⦁ Cellular automata function for placing obstacles (trees, cliffs, etc) has been adjusted to leave fewer isolated trees/rocks/etc - they now stick together more for a more natural feel.
⦁ Tall grass/deep sand placement has been completely rewritten to be less scattered and more "clumpy", leaving larger open spaces while keeping about the same total amount of grass
Spoiler:
Here's a snowy route that demonstrates how the grass is a little less scattered than it used to be, as well as the trees:
Texturing Improvements
⦁ 1-tile wide trees will only have the "tip" of the tree on layer 3 if there isn't another tree in the tile north of it, instead of having every tree-tip be on layer 3.
⦁ 1-tile wide trees now use the correct textures for the middle of the tree if there isn't another tree north of it (previously, it was using the center texture of the tree showing another tree behind it, even when there was not another tree behind it)
⦁ Moved water textures & wild grass textures to layer 1 and water rock textures to layer 2. This also fixes an issue where the ponds were invisible in-game due to how the reflections work.
UI Improvements
⦁ The PNG preview status message will now display a % complete as it is generating the image
Spoiler:
No more guessing if your .png is ever going to finish generating!
Bug Fixes
⦁ Fixed a bug which could occur if a trainer tried to spawn in a lv100 area with a lv100+ pokemon (this won't happen in practice unless the region size is very large)
⦁ Fixed an issue in which ponds could sometimes spawn on coastal maps with the beach overlaying the pond's textures
⦁ Ponds are no longer invisible when you are actually playing on the maps in RMXP
Version 1.2.4 changelog:
Spoiler:
General Changes
⦁ Revised biome assignment to be temperature/rainfall/elevation based. Similar biomes will share borders while dissimilar ones will be farther apart. This will be more apparent once the biome variety has increased.
Map Generation
⦁ Biome assignment has been changed. Previously, it was randomly chosen for each route from the 5 available biomes (Mountain, Forest, Plains, Jungle, Desert). Now, a temperature gradient is used behind the scenes for each area of the map, so similar biomes will be near each other, and biomes that don't make much sense to share a border will usually not be (i.e., deserts won't spawn near tundra). There is also a "rainfall" value, but this is not used yet since there are not that many biomes. Currently, biome assignment in order of temperature from lowest to highest is Tundra, Forest, Plains, Jungle, Desert. Mountain biomes will now spawn where the elevation is above a certain threshold, regardless of temperature.
Spoiler:
Sample region with the new biome distribution - notice how there tend to be clusters of the same biomes instead of spread out everywhere:
⦁ Tundra biome has been added (finally)
Spoiler:
Example:
⦁ Towns can now be assigned biomes, instead of always having the same ground/border textures.
Here's some samples of the new town "skins":
Spoiler:
Mountain
Spoiler:
Tundra
Spoiler:
Desert
Textures
⦁ New path textures added for the Desert towns
⦁ New path textures, snow, snowy trees, wild grass w/snow, and snowy shrubs added for Tundra biome
⦁ Some textures are now pulled directly from the OutsideCartographer.png when creating the region PNG preview, making it a bit more accurate and easier for me to add textures to the generation going forward. Eventually all textures except perhaps autotiles will be pulled directly from the tileset image.
Bug Fixes
⦁ Fixed an issue where SHEDINJA's evolution method would prevent the program from launching if it didn't have a number as the 3rd parameter
Version 1.2.3 changelog:
Spoiler:
General Changes
⦁ Added "Show Borders" option, which will show the route boundaries on the Town Map preview, to give a better visualization of the region
Spoiler:
Show Borders
⦁ Added new adjustable parameter "Loop Chance" which can be set to 0, 20, 40, 60, 80, or 100. It represents the chance that extra routes will generate to connect to already linked towns, usually creating "loops" in the route structure. In general, a value of 0 will result in a "minimal spanning tree"-like map, while the higher values will have more extra routes and fewer "dead end" towns. There is some randomness involved here, so sometimes you may not see a big difference between some Loop Chance values for the same seed.
Spoiler:
The same seed with different "loop chance" values:
Map Generation
⦁ Route placement code has been completely overhauled. As a result, several things have changed which I believe are for the better:
i. Routes with a width of 2 will no longer generate
ii. Routes which occupy a single 1x1 area on the Town Map are less frequent, and will never be directly next to another 1x1 route
iii. Extremely long routes will now be segmented into several smaller routes
iv. Routes will no longer run parallel to each other with only a few border tiles in between. (i.e. for the most part, there will not be any more "blobs" of routes in the generated regions) There are still some instances where routes may touch over a span of greater than 1 tile, but they will also be connected to each other in such instances.
v. Due to all the above, region layouts will in general look much nicer and more "sensible", even with large numbers of cities placed
Spoiler:
Example of a "blobby" map you might get in previous versions, vs a map which looks nicer in 1.2.3 even with 20+ cities
Bug Fixes
⦁ Fixed an infrequent issue introduced in 1.2.2 in which pond generation for some world seeds would get stuck, leaving the program unresponsive
⦁ If Java does not have enough heap memory allocated to generate the large overworld PNG file, it will now display a message to the user instead of simply hanging the program.
UI Updates
⦁ Swapped position of Seed textbox and City # selector
⦁ Added "Loop Chance" parameter & "Show Borders" checkbox
Spoiler:
Full view of UI updates
Version 1.2.2 changelog:
Spoiler:
General Changes
⦁ Now produces an "Intro" map (Map001.yaml) which has the initial warp set to the randomized starting town, but is otherwise identical to the default Essentials intro it replaces.
⦁ Can now optionally produce a .PNG image of the entire overworld using a new button. This will make a very large image, and as such takes several seconds to generate. It will be placed in the CartographerOutput folder. (there will be some texture differences in the .png versus what is exported to RMXP, due to the internal textures not being fully decoupled from my old engine yet. But it should still serve as a mostly accurate preview)
Spoiler:
⦁ New technical biome "POND_SURF" for pokemon encountered while surfing on the new freshwater ponds (see Map Generation).
Map Generation
⦁ Slight change to stair placement to reduce the amount of exceptionally wide stairs. There are still some, but less than before.
⦁ Freshwater ponds of varying sizes and shapes can now spawn on maps. Each area can get 0-3 ponds currently, though this will likely be fine tuned later. Ponds will not spawn on routes or towns which have accessible ocean water, since they will get OCEAN_SURF pokemon encounters instead.
Spoiler:
Bug Fixes
⦁ Deep sand in Desert biomes will no longer spawn on tiles directly bordering the ocean, which was causing jarring differences in the beach textures
⦁ Fixed an issue where unrecognized Evolution Methods in pokemon.txt prevented the program from launching
UI Updates
⦁ Tooltip text now wraps instead of stretching way out on one line
⦁ New sextant icon to replace Pokeball icon on the app & taskbar
⦁ New "Preview .PNG" button
Spoiler:
Version 1.2.1 changelog:
Spoiler:
General Changes
⦁ Errors and other information is now logged to CartographerOutput/log.txt
⦁ Added the ability to generate random trainers, with possible pokemon configurable for each trainer type. Cartographer now reads trainertypes.txt in the PBS folder, and requires additional setup in CartographerConfig/trainertypesconfig.txt as well as one file per trainer type containing the pokemon roster information within the CartographerConfig/trainertypes folder (there are samples for the default Essentials trainer types provided). The rosters are formatted the same way as biomes.txt.
Bug Fixes
⦁ Fixed an issue where alternate XP growth rate names "MediumSlow" and "MediumFast" were not recognized properly in pokemon.txt
⦁ Fixed an issue where selecting "Open With - Java(TM) Platform SE Binary" instead of double clicking the .jar would cause the program to incorrectly look for required files in C:\Windows\System32 instead of the local project folder
⦁ Since types.txt, abilities.txt, and moves.txt are not really needed for any generation (although they may be in the future), they will no longer prevent the program from launching if they are not present or empty.
⦁ Pokemon.txt is still required in order to generate encounters.txt data or trainers, but will also not prevent the map generation from working if it is missing. Instead, encounter and trainer data will simply be disabled.
⦁ Cartographer is now more tolerant of non-vanilla data, although there may still be some issues to identify.
Version 1.2 changelog:
Spoiler:
General Changes
⦁ Wild pokemon that can spawn in each biome are now configurable externally via the new biomes.txt file in the CartographerConfig folder. (instructions on how to edit the file are included at the top)
⦁ Available pokemon for use in biomes.txt is driven by the pokemon.txt essentials file in your project, so custom pokemon are allowed.
⦁ Cartographer now outputs townmap.txt data for the exported region map. To facilitate this, the map size was reduced slightly to 480x320, and default city count lowered from 18 to 16.
Spoiler:
⦁ Basic metadata is now produced for metadata.txt, including the map size and the proper "outdoor" flag set to enable day/night filters.
Map Generation Improvements
⦁ Added "Mountain" biome, consisting of rocky borders & grass floor tiles
Spoiler:
⦁ Added technical biome "OCEAN_SURF" for configuring pokemon which spawn while surfing, instead of hard-coded spawns from the previous version.
⦁ Surfing pokemon spawns under the "Water" tag in encounters.txt will now only be generated if there are water tiles in that area.
UI Improvements / QoL
⦁ There is a new tab in Cartographer which allows you to view the biome data that is read from biomes.txt, as well as see a list of the pokemon.txt species which were imported from pokemon.txt. This is currently view-only, and edits must still be done in the respecitive .txt files.
Spoiler:
⦁ 3 new buttons have been added to perform tasks for rvpacker without needing to use the command line manually. *You should now place Cartographer and all included files inside your RMXP project folder for this to work*
Spoiler:
⦁ "Install RVPacker" - this runs the gem installation for rvpacker and the scanf dependency. You still need to install Ruby manually prior to this.
⦁ "Pack Project" - Runs the rvpacker "pack" command on the project where Cartographer resides. This takes any YAML files in the YAML folder and packs them back into RMXP files in the Data folder.
⦁ "Unpack Project" - Runs the rvpacker "unpack" command on the project where Cartographer resides. This takes any eligable RMXP files in the Data folder and unpacks them into YAML files in the YAML folder.
⦁ PBS_OUT folder has been renamed to CartographerOutput for clarity. Mapinfos.yaml output will now go here by default to avoid automatically overwriting any Mapinfos.yaml that may already exist in the YAML folder.
Bug Fixes
⦁ Fixed an issue where exported maps could not have their names or music edited within RMXP
⦁ When the generator is unable to fit the specified number of cities onto the landmass, instead of failing it will now place the maximum number that it could fit and inform the user.
Version 1.1 screenshots:
Spoiler:
Spoiler:
Updated interface:
Spoiler:
New textures:
Stairs
Desert sand
Spoiler:
Side stairs, "smarter" paths, and randomized base grass texture
Spoiler:
De-jankified deserts:
Spoiler:
Redone beaches using autotile:
Spoiler:
Updated paths & extended map borders:
Original Alpha 1.0 screenshots:
Spoiler:
Cartographer's interface (extremely simple)
Spoiler:
Town example
Spoiler:
Plains
Spoiler:
Forest (coastal)
Spoiler:
Jungle
Spoiler:
Desert (in my engine I had sand like Hoenn route 111, but just did grass for this tileset)
Spoiler:
Map connections
Spoiler:
Discord Server
As always, I am still open to feedback and suggestions - in fact, I've made Discord server in order to better facilitate answering questions, helping with issues or just sharing generated maps.
It's not a very fancy server by any means, but I've put up an FAQ there as well as a space for suggestions or reporting issues.
Link: https://discord.gg/JRBHWQCmSb
My eventual goal with this project would be to export a "complete" game in this manner, including interiors, trainers, and basic events. Originally, I started this project as my own engine, the idea of which being that you would just start a new game and have an entirely ready-to-play region generated, but switched gears into just exporting the output to RPGMaker XP where a much better engine already exists.
I do not require credit be given for use of this tool (although you can give it if you want :D). If you do make a game out of it, I would love for you to share, either here or on Discord - I'm very interested to see what people come up with!
There are a few known issues to be aware of:
⦁ Generator may use 1-2 GB RAM, which these days shouldn't present an issue for most.
⦁ Texturing does have a couple small errors that might need manual adjustment, though it's overall pretty good. In particular ponds and puddles need the layer 2 outline added on top, so the player's reflection isn't visible on the corners where there is technically grass.
⦁ You will probably need to add a few extra stairs manually to ensure all map areas can be reached. I'm working on a way to hopefully improve this in the future.
⦁ Stair events will place the player on top of an item ball if it rests on the ending position of the stair. This is more of a placement issue, as the item placement has not yet been refined.
⦁ Swimming trainers can currently also spawn in ponds. I probably will remove this in the future unless it makes sense for the specific area.
⦁ Occasionally, cliffs can generate 2 tiles high which can't be pathed through correctly by the algorithm, which can result in a map being blocked off along one of it's connecting sides. You'll see an error mentioning this in log.txt if any of your region maps has this happen, though it isn't too common.
I'm sure there are probably other issues I've yet to discover, so if you find a bug or issue please let me know.
Here are some things I'm tentatively thinking about for the future versions - it's unlikely I will implement all of them, and may add things that aren't even on the list depending on what I feel like working on. But, let me know if you have any opinions!
⦁ More options for the region's landmass generation (e.g. more of a peninsula or land-locked region instead of an island/islands)
⦁ Configuration of which items can appear based on the area's level, e.g. lower level areas would have Pokeballs/Potions, while higher level ones may have Hyper Potions/Ultra Balls/etc.
⦁ Generally better item placement
⦁ More biomes
⦁ Further enhance city generation with different landmarks and features, etc
⦁ Add more building styles & types
⦁ Improve caves with more textures, varying types, multi-level caves, and tunnels connecting 2 areas.
⦁ Add other types of side areas such as forests
⦁ More building interiors
⦁ Add more features to route generation (more urban-looking routes, berry trees, etc)
⦁ Add some more decorative textures to the generation
⦁ Add fishing spawns for encounters.txt
⦁ Add more gens of pokemon species to the default biomes.txt and trainer pools (it's mostly gen 1 at the moment)
I know a lot of people want support for multiple tilesets, e.g. generation IV, etc. However this isn't really high on my priority list since if you want to you can just edit tiles on the existing tileset, replacing them with your own textures (as long as they are in the same location as the texture(s) they replace and generally tile with one another in the same way). The generator assigns tiles based on their position in the tileset image, so it will still function with modified tilesets if you set it up just right.
Which things would you like to see? Let me know what you think!
Download link:
https://www.dropbox.com/sh/ipyif1iloqx5laf/AAAc8CNvGdPMni0U-ivDQ9Hca?dl=0
Last edited: