Skip to content

Changelog

Every change to RPG Map Editor, newest first. The same list ships with the asset as Assets/CreativeSpore/RpgMapEditor/changelog.txt.

v1.7.0

  • ADDED fill, line, rectangle, filled rectangle, ellipse and filled ellipse tools to the RPG Map Editor overlay, with keys G, L, R and E (R and E again for the filled shape), and B for the pencil. They paint the tile from the palette, a copied block, or erase. Shift draws a square or a circle, Ctrl draws from the centre and Esc cancels. The fill shades the area it will cover while you hover. Each fill or shape is one undo step. The keys only act while painting, and then R and E stop switching to Unity's scale and rotate tools. They can be changed in Edit > Shortcuts
  • ADDED Brush Size to the RPG Map Editor overlay in the Scene view. The brush repeats that many times across and down around the cursor, with an outline of the area it covers. It also sets how thick the line and the rectangle and ellipse outlines are. The copies of a copied block line up edge to edge, so dragging lays it down as one unbroken pattern
  • CHANGED painting in the Scene view to use Unity's undo. Ctrl+Z undoes the last stroke and Ctrl+Y redoes it, each stroke shows as Paint Tiles in Edit > Undo History, and the history survives a script recompile. Before, Ctrl+Z skipped the painting and undid whatever else Unity had recorded, and undoing a long stroke took one Shift+Z per tile. Shift+Z, Shift+Y and the overlay buttons now do what Ctrl+Z and Ctrl+Y do. The in-game editor keeps its own undo, so an editor script that called BrushGizmo.UndoAction to undo Scene view painting should call Undo.PerformUndo now
  • CHANGED painting a block of tiles and undoing it, about 2.5 times faster with far less garbage. A 100x100 block took 282 ms and left 74 MB of garbage, now 108 ms and 15 MB
  • ADDED TileBatch, for scripts that write many tiles: it refreshes each changed tile and its neighbours once instead of once per write. AutoTileMap.LayersRemapped tells scripts that keep tiles by layer index when layers were reordered, added or removed
  • CHANGED the demo labels next to the boat, the balloon and the doors to TextMesh Pro, so they stay sharp at any zoom. RPG Map Editor now needs the TextMesh Pro package, which new Unity 2022.3 and Unity 6 projects already have. The first demo you play opens the TMP Importer: click Import TMP Essentials once. If you close it instead, the demos still play with those texts blank
  • CHANGED the demo scene menu to a uGUI dropdown drawn with TextMesh Pro, in the same place as before. R still reloads the scene. The in-game map editor keeps its own look
  • ADDED HelpText.SetTextAlpha, which fades a label drawn by TextMesh Pro or by a legacy TextMesh. HelpText and VehicleCharController use it, so labels you made with TextMesh keep fading as before
  • FIXED the editor freezing on big maps every time a layer was moved, added or removed in the Map Layers list. The map used to be saved and reloaded each time, which took close to a second on the 200x200 demo map. Now it takes about 10 ms, and painting you had not committed yet is no longer written into the Map Data asset on the way
  • FIXED Ctrl+Z after moving or removing a layer in the Map Layers list leaving the layer names and settings on the wrong tiles. Undo now puts the layers back together with their tiles, and a removed layer comes back with what was painted on it
  • FIXED Ctrl+Z doing nothing after adding a layer with the + button of the Map Layers list
  • FIXED Shift+Z after moving a layer undoing your painting on whatever layer had taken its old place
  • CHANGED map loading in the editor, which is about a third faster now. That covers the reload after a script change, opening a scene and Reload Map. A scene also opens without waiting for its map, which loads right after
  • FIXED pathfinding stepping off one side of the map and coming back on the other. A tile in the first column took the last tile of the row above as its neighbour, so a path could jump across the whole map
  • FIXED characters with MapPathFindingBehaviour getting stuck on the edge of a wall block. Pathfinding treated every wall tile as walkable, but a character's collision stops it on the outer part of the edge and corner tiles. A path now only goes over wall tiles that are walkable all the way across, on the inside of a wall block. In one part of the 200x200 demo map, 898 of the steps paths could take were ones the demo player could not make, and now there are none
  • FIXED MapPathFindingBehaviour.IsComputingPath staying true when the target moved to another tile before the path was found, which also stopped MapPathFinding.GetRouteFromTo from running for that character
  • FIXED setting MapPathFinding.MaxIterations crashing with a stack overflow
  • FIXED a path search that started in the same millisecond as the one before it sometimes taking a detour or finding no path
  • FIXED pathfinding sending characters to the wrong place after the map was resized or its Cell Size changed while the scene was running
  • CHANGED pathfinding so a search no longer creates garbage. On the 200x200 demo map a search used to leave about 2.6 MB behind, and one that found no way through about 40 MB, which meant garbage collection hitches with several characters looking for paths. Now it is none. Each character keeps a table with an entry per map tile instead, about 320 KB on that map, made once
  • ADDED a warning to the tileset inspector when a tileset has tiles of a different width and height, which RPG Map Editor does not support. Its button sets the height to the width
  • FIXED the tileset inspector throwing a DivideByZeroException on every redraw once Tile Size In Pixels was set to 0. The field now takes at least 1, and applies when you press Enter or leave it instead of on every key
  • FIXED the minimap of a map wider or taller than 2048 tiles showing only its top left corner. A bigger map is now shrunk to fit, one pixel for every two or more tiles
  • FIXED revealed areas looking darker than the rest of the map on the minimap of a Fog Of War layer, and partly revealed tiles showing as fully fogged. The fog now darkens each tile by how much of it is still covered
  • CHANGED the minimap so a refresh no longer leaves garbage behind: on the 200x200 demo map each full refresh made about 1.3 MB, and each brush stroke about 24 KB
  • CHANGED the unused editor helpers in EditorUtils (all but DoToggleIconButton) and the ShortcutKeys class to obsolete. They still work, and each warning names what to use instead. They are removed in 2.0
  • FIXED every save of a scene with a map storing copies of the minimap image and of the brush preview tiles in the scene file. They are made again whenever the map loads, so they no longer get saved
  • CHANGED the demo scenes, cleaned of data left over from the character animation kit removed in 1.5.4.1. Together they are 39% smaller, and they open and play as before
  • ADDED two demo scenes for the player prefabs that had none. In demo6 - Touch Movement you click or tap where the player should walk (PlayerTouch). In demo7 - Tile Movement the arrow keys move one whole tile per press (PlayerTileMovement). Both are in the demo scene menu and in Add Demos to Build Settings
  • FIXED a click on a uGUI control, such as a button or the demo scene menu, also sending a player with TouchFollowBehaviour to the spot under it
  • CHANGED, for scripts that read AutoTileMap.TileLayers: after a layer is moved, added or removed in the inspector, MapLayers[i].TileLayerIdx is no longer equal to i until the map is loaded again. Index TileLayers through MapLayers[i].TileLayerIdx, as the asset's own code does

v1.6.1

  • ADDED a warning to the map inspector when the map object is moved, rotated or scaled away from the world origin, where painting, drawing and collisions stop lining up. Move To Origin puts it back, and Undo reverts that
  • FIXED the door teleporters in the demo scenes doing nothing in the editor unless the demo scenes were in Build Settings. In play mode they now load the scene straight from the project, as the demo scene menu does. A scene that cannot be found logs a warning instead of leaving a stray teleporter on the player, and Link With Target now also applies to doors that lead to another scene
  • FIXED painting that was not committed yet being dropped without a word when the Tileset or Map Data field changed, or on Reload Map or Import Map. The inspector now asks whether to save it first
  • FIXED Import Map... keeping the old size in the Settings tab, so Apply New Dimensions resized the imported map back, and the import never being saved into the Map Data asset
  • FIXED the Scene view going on painting after you switched from the Paint tab to Settings or Data, with no brush shown
  • FIXED the Paint button of the Scene view overlay ignoring Smart Brush and always painting on the selected layer
  • FIXED the preview of a Shift + right drag copy showing the layers below the selected one, which the copy leaves out
  • FIXED Remove Tileset leaving the collision settings of the sub tilesets in later slots on the wrong tiles. The dialog also says now that, on maps using the tileset, tiles painted from those slots change
  • CHANGED the painting help (F1) to describe the selected layer and Smart Brush, and fixed "Are your sure?" in the Clear Layer dialog
  • FIXED PlayerController throwing a NullReferenceException in a scene of your own. It needed a Camera2DController in the scene, a Shadow Sprite and a Weapon Sprite, and a Bullet Prefab before a fire key was pressed. All four are optional now: without a Camera2DController the player leaves your camera alone, and without a Bullet Prefab the fire keys only turn the character
  • CHANGED the Scripts/RpgFramework and Samples folders so they can be deleted if you only want the map editor. The Directional Animation Character menu item moved into RpgFramework, and Camera2DController now looks for the player by the Player tag instead of by PlayerController
  • CHANGED the welcome window's Getting Started card. Open Online Manual opens the new manual, and the introduction no longer mentions the Control key, which does nothing in the Scene view
  • CHANGED the manual. It was rewritten from scratch for this version and is now online at https://www.creativespore.com/docs/rpg-map-editor/, with a new PDF copy in the Documentation folder built from the same pages. The RPG Map Framework guide is now its Gameplay Framework section, and RPG Map Framework.pdf is a one-page note pointing there
  • CHANGED the demo scene menu so it no longer covers the in-game map editor's tile palette. The FPS counters are gone, and so is the Reset button: press R to reload the scene, as before
  • FIXED an IndexOutOfRangeException when painting on the bottom row of a map 124 tiles high, or any other multiple of 62, or in the bottom right corner of a map that many tiles wide. On those maps, painting in the last column also rebuilt a part of the map it did not touch
  • ADDED an RPG Map Editor overlay to the Scene view with the brush position, the selected tile, the paint tools and the painting help. It replaces the box that was drawn in the top left corner, where Unity's own tool overlay covered it. Like any overlay you can move it, dock it or collapse it, and it only shows while a map is selected
  • FIXED buttons of other windows not responding while painting, the Cancel button of the New Scene window for example. The button reacted to the click but never ran
  • FIXED the editor redrawing the inspector and the Scene view nonstop while the Paint tab was open, even with the mouse still
  • FIXED the collision legend shown while holding Shift in the Paint tab being cut off
  • FIXED Remove Tileset in the tileset window coming undone. It cleared the slot but never wrote the atlas image, so the tiles came back on the next reimport. It now saves the image, like Accept does, and asks before removing anything
  • CHANGED DemoPathFindingBehavior, the script of the pathfinding demo, to the CreativeSpore.RpgMapEditor namespace like every other script in the asset. Your own code that names it needs that namespace
  • ADDED a Quick Start section to the welcome window. Start Painting asks where to save a new Map Data asset, then opens a new scene with a map that uses the demo tileset, selected and already on the Paint tab. Open Demo Scene opens the first demo, and Add Demos to Build Settings adds the five demo scenes for a player build without touching the scenes already listed
  • FIXED the tileset window rejecting a sheet with a message that only gave a pixel size. It now says where the sheet belongs: a 512x512 image dropped on an autotileset is a B to E sheet, so it goes in a Normal Tileset slot. It also recognises sheets made for 48 pixel tiles. A correct sheet that Unity had scaled on import (512x384 rounded up to 512x512 by the default texture settings) is now accepted, and every field shows its size with a tooltip about what goes in it
  • FIXED a new AutoTileMap showing two unlabelled Create buttons and nothing else. The inspector now says which asset is missing and what the buttons do, offers Use Demo Tileset, and tells you when the tileset has no atlas yet. The Settings tab and the layer list have tooltips. GameObject > RpgMapEditor > AutoTileMap selects the map it creates, pressing Cancel in the Map Data save dialog no longer shows an error, and the Scene view no longer throws a 'Getting control 0's position' error when a map finishes loading
  • CHANGED RpgInput.GetAxis to log a warning, once per axis name, when an axis other than Horizontal, Vertical or Mouse ScrollWheel is read with the Input System package. It used to return 0 without saying why
  • FIXED play mode with Enter Play Mode Options set to skip the domain reload. Values left over from the previous session are now reset, including the one that could stop every teleporter from working in the next session
  • FIXED disabling an NPCBasicAI or CompanionAI component leaving the character walking, even when it was switched off in the middle of a step. The AI now stops with the component, the character stops on the spot and its walk animation pauses
  • FIXED fog of war running one more update loop every time a map with a fog layer was reloaded
  • FIXED a memory leak in the in-game map editor. The palette made a new background texture every time it was drawn
  • FIXED tile collision on tilesets whose tiles are taller or shorter than they are wide. The collision row was computed from the tile width
  • REMOVED FULLHTMLCodeDocumentation.rar from the Documentation folder. Updating does not delete a copy you already have
  • FIXED compile errors in RPG Map Editor after importing Super Tilemap Editor into the same project. Two pathfinding scripts had the same file ids as scripts in Super Tilemap Editor, so importing it wrote its code over ours. The pathfinding code now lives in RpgPathFinding.cs and RpgMapPathFinding.cs. PathFinding.cs and MapPathFinding.cs stay in the package as empty files, so updating overwrites the old code instead of declaring it twice
  • FIXED Save Changes After Playing overwriting map assets. With it on, leaving play mode or loading another scene wrote the map back into its Map Data asset even if nothing had been painted, and any fog of war uncovered while playing stayed uncovered for good. It now writes only when a tile was changed during play. The option is off for new maps and shows a warning while it is on. Maps already in your scenes keep the value they had
  • FIXED painting lost when scripts recompiled before you pressed Commit. Uncommitted changes are now saved into the Map Data asset before a recompile, before the scene closes and before play mode starts, and the Paint tab tells you when there are uncommitted changes
  • FIXED the editor scripts failing to compile in a project without the 2D Sprite package, which took every editor feature of the asset down with them. The Directional Animation Controller inspector now shows a warning with an Install button when the package is missing
  • FIXED Show Map Editor On Play not being undoable and not being kept as a prefab override. It has a tooltip now, plus a reminder that the in-game map editor also shows in player builds
  • CHANGED saving a map to write only its Map Data asset. Reordering a layer used to save every modified asset in the project
  • FIXED the scene menu in the demo scenes. It could not switch scenes or reset the current one unless you had added every demo scene to Build Settings by hand, and pressing Play on the pathfinding demo jumped straight to the first demo because the menu did not list it. In the editor the menu now loads the demo scenes directly. A player build still needs them in Build Settings, and the menu says so in the console instead of failing
  • FIXED the tileset palette showing up as a blank area in the AutoTileMap inspector. It only happened on displays running above 100% scaling, which is why it was so hard to track down. The palette was drawn as the background of a copy of a built in editor style, and Unity keeps a separate high resolution background on those styles that was winning over the tileset image. The palette is now drawn directly, the same way the tileset window has always drawn it
  • FIXED a memory leak in the tileset palette. The inspector and the tileset window rebuilt the palette texture whenever anything in them changed, and never released the previous one. A long painting session would slowly eat memory
  • FIXED a memory leak when a map is loaded. Building the minimap made one scratch thumbnail per sub tileset and then left every one of them in memory
  • FIXED an error thrown by the tile palette and the collision editor after removing a sub tileset. The selected index was left pointing past the end of the list. A tileset with no sub tilesets now shows a short message telling you to add one instead of failing
  • CHANGED minimum Unity version to 2022.3. The asset is tested on 2022.3.62f2 and Unity 6
  • REMOVED the compatibility branches for Unity 4 and Unity 5. Scene loading, shadow casting, texture import settings and the scene loaded callback now call the current API directly
  • REMOVED EditorCompatibilityUtils. It only existed to pick between Handles.DotCap and Handles.DotHandleCap, so the scripts call Handles directly now
  • REMOVED the startup fix that renamed tileset and map assets saved with a .prefab extension before Unity 2018.3. It needed an older editor to run, so it could never do anything here
  • REMOVED the legacy character animation kit: CharAnimationController, its inspector, the Char. Animation window and the GameObject > RpgMapEditor > Legacy > Character menu item. Use DirectionalAnimation and the Directional Animation Character menu item instead. If a scene still has a CharAnimationController on a character, replace it before upgrading
  • REMOVED the eTileLayer enum, deprecated since multiple layer support arrived in 1.5.0. Layers are addressed by their index in AutoTileMap.MapLayers

v1.6.0

  • ADDED support for the new Input System package. Every input call goes through the RpgInput wrapper, so the asset runs with Active Input Handling set to Input Manager (Old), Input System Package (New) or Both. On Both the old manager is used, so the axes a project already configured keep working
  • FIXED compile error in Unity 6 caused by a SerializeField attribute on the CurrentFrame property of CharAnimationController
  • FIXED obsolete FindObjectOfType warnings, replaced with FindAnyObjectByType
  • FIXED obsolete TextureImporter.spritesheet warnings in the Directional Animation Controller inspector. Character sheet slicing and pivot updates now use the ISpriteEditorDataProvider API, and the sprite name to file id table is rewritten with the rects so sprite references survive the reimport
  • CHANGED minimum Unity version to 2022.2, needed by FindAnyObjectByType and the sprite data provider API

v1.5.6

  • ADDED Atlas material property to Tileset inspector
  • FIXED issue with AutoTileData asset extension in Unity 2018.3 (or any version using the new prefab system). In order for the fix to work, you need to open the project in a previous version.
  • FIXED compatibility issues with Unity 2018.3
  • FIXED issue when selecting tiles from the tileset inspector when the tilemap cell size has been changed. Tiles in the brush were bigger than usual.
  • FIXED small issue with Camera2DController when catching the Camera component

v1.5.5

  • ADDED CreateTileSprite to RPGMapHelper class to create an sprite from a tile
  • ADDED StopFrameIdx to DirectionalAnimation to select the frame used when the animation stops playing (-1 will stop the animation in the current frame)
  • FIXED some exceptions when during a collision event the contacts array is empty
  • FIXED some namespace issues when using the tool with other CreativeSpore tools
  • FIXED allow changing the layer Id of a tilemap. Now it is not set back to Default on play.

v1.5.4.1

  • ADDED new GameObject option to create a Directional Animation Character and moved old character option to legacy
  • FIXED issue with CharAnimationWindow when setting Tile.realtimeSinceStartup to avoid warning error
  • FIXED issue when creating an atlas for an auto tileset because of the import setting option Non Power Of 2 was set to Nearest by default, modifying the texture width and height

v1.5.4

  • Added alpha texture in the in game tilemap editor (thanks to bilsimser)
  • Improved TouchFollowBehaviour and MapPathFindingBehaviour making the movement smoother
  • Fixed warnings using Handles in Unity 5.6
  • Fixed lights when using diffuse material
  • Fixed issue in Unity5.5 when using serialization mode Force Text
  • Fixed bug with TouchFollowBehaviour when clicking not reachable position while moving to the previous target position
  • Fixed jittering issue when moving the player
  • Fixed issue with GetAutotile when the returned value is modified
  • Fixed a problem when changing the default material of a tileset, in the build the material was always the Sprite/Default

v1.5.3

  • Fixed An atlas texture can now be set to Sprite/multiple to make sprites from it.
  • Fixed issues with Path Finding when FPS was high (using Fast Quatilty in the Editor)
  • Fixed issues with FollowerAI
  • Fixed touch player controller
  • Fixed player flickering when using the touch controller
  • Fixed bugs related with high FPS rate

v1.5.2

  • Added SetAnim(string name) to DirectionalAnimation
  • Added OnAnimationLoopOver event to DirectionalAnimation
  • Fixed bug in the DirectionalAnimationController triggering in some cases an out of bounds exception
  • Fixed Unity 5.4 warnings about OnLevelWasLoaded
  • Fixed some Unity5 compatibility issues

v1.5.1

  • Fixed issue when adding or removing sub-tilesets from a tileset, the colliders were gone
  • Added support for 2D collider check in CompanionAI and NPCBasicAI
  • Added PlayerTileMovement controller for a movement based on tiles

v1.5.0

  • RPG Framework scripts moved to folder Scripts/RpgFramework
  • Added new animation controller for characters: Directional Animator
  • All characters, including vehicles now use the new directinal animator
  • Improvements in all character behaviours and AI behaviours
  • Added new AI behaviours: CompanionAI and NPCBasicAI
  • Improved teleporter setup with a new option, link with target, so the target teleported is linked with the source
  • Added a farm scene example with NPCs, animals and vehicles
  • Renamed demo scenes and added scene selector to all of them
  • Added edit collider button to PhysicCharBehaviour

v1.4.3

  • Added CellSize parameter to the tilemap to change the size of a tile in the scene
  • Added method RpgMapHelper.GetTileCenterPosition
  • Fixed TouchFollowBehaviour to be more precise
  • Added TeleportOnEnter to teleporter to allow teleporting on enter event
  • Added activation key parameter to teleporter and fixed input management
  • Fixed fast player direction change when moving player using path finding
  • Fixed pixel perfect camera according to real camera height

v1.4.2

  • Added a toolbar for painting, erase and display help
  • Added teleporter prefab for scene or map transition
  • Added persistence to player object to allow transitions between scenes
  • Added framework manual
  • Added support for Unity 5.3
  • Fixed some minor gui exceptions