Scrolling Game Development Kit UI Help  

What's New

Looking for just the new fixes/features? Here they are:

Version 1.4.6:

  1. A Special Function that activated a series of other special functions would not play a media clip if one was associated with it. Fixed.
  2. Minimizing the layer quick view window would cause an error and could corrupt the window settings preventing it from displaying correctly until its registry entry was deleted. Fixed.
  3. In the map editor, drawing a sprite path that was very far off the edge of the current display could cause an overflow error. Fixed.
  4. A collision test between sprites that are more than 32767 pixels apart would cause an overflow error. Fixed.
  5. VBScript does not support SavePicture. A feature has been implemented in GameDev's script hosting object to support this using code like:
    HostObj.DoCommand Array("SavePicture", CurrentDisplay.ScreenShot, "C:\A.BMP")
  6. GameDev now warns the user that the action is not officially supported when trying to create a tileset with more than 255 tiles in it. Also, the dialog where categories and solidity are defined was causing a terminal error when dealing with such a tileset. Now it displays an error message and fails more gracefully without terminating.
  7. Changing the name of a layer that had tile animations and paths linked to it would break all the references between the layer and its animations and paths. Now the references are maintained when a layer name is changed, and the tile animation dialog fails more gracefully if a reference to a layer is broken while it is active (due to a layer being deleted or whatever).

Version 1.4.5:

  1. An error would occur in rare circumstances when multiple sprites reaching the end of their paths at same time activated functions to delete sprites. (fixed)
  2. Scripted sprites on background layers caused sprites on foreground layers to ALL be treated as scripted sprites. (fixed)
  3. Deleting a tileset would not check to see if the tileset was being referenced by an inventory item before allowing the delete. (fixed)
  4. Deleting a tileset and saving the game before navigating to the player settings dialog could result in inventory tileset references being shifted to refer to the wrong tileset. (fixed)
  5. Scripting wizard would error if recording was set to begin on a function that is triggered before gameplay begins. (fixed)

Version 1.4.4:

  1. Map Editor was slow when drawing a small tile on a large screen without using tile matching due to a bug in the map editor code. After this was fixed, map editor operates significantly faster in this situation.
  2. A sprite set to follow nearest sprite was ignoring solidity when there was no sprite to follow. Fixed.
  3. The Switch to Sprite function now properly implements switching to a sprite on another layer.
  4. Tile interactions that trigger special functions would not handle the Switch Map function well. Fixed -- it's now possible to have a tile properly trigger a switch map function.
  5. If "prevent player edits in map editor" option is checked in the options dialog, the map editor will now prevent the Save Game function from loading a game, which would seriously alter the project.
  6. Error messages and handling improved. Some errors were being cleared before they were displayed.
  7. Creating an empty tile animation and saving the project would corrupt the project. Fixed.
  8. GameDev now prevents the creation of duplicate sprite names within a map. Attempting to create a sprite whose name is already used by other sprite in the same map gives an appropriate error message.
  9. The scripting wizard distributed with versions 1.3 through 1.4.3 was from version 1.2. The correct version of the scripting wizard (with many fixes and features) is being distributed with the 1.4.4 install.
  10. Improved validation of inventory items. If an inventory display definition would access a tile outside the bounds of the tileset, an appropriate error message is displayed. (For example, if you try to create an item that uses tile number 99 and is set to "increase icon index", if your tileset only contains 100 tiles, 0 to 99, and the max quantity of the item is more than 1, you will get an error message indicating that there aren't enough tiles for that.)

Version 1.4.3:

  1. GameDev installation no longer overwrites Quartz.dll. When it did this, DirectX Media (DirectShow) no longer worked if the machine had an older version of DirectX installed than the machine that created the install (mine) which has DirectX 9. (If you are experiencing this problem, installing version 1.4.3 will NOT fix it. You must upgrade DirectX to 9.0 or later, or delete Quartz.dll from your System32 directory, and re-install your current version of DirectX.)
  2. The install packager no longer creates scripts that install Quartz.dll
  3. The install packager has been upgraded to use and require NSIS version 2.0, which generates installers with a much nicer user interface.
  4. The player settings dialog had a typo for resolution "1024x786" which has been fixed to read "1024x768".

Version 1.4.2

  1. Sprites that did something other than cycle to the first point at the end of their path were not working properly in some cases. They would activate the end of path action immediately if the sprite was set to start somewhere other than its default location. This has been fixed.
  2. Error checking on the interactions tab of the maps dialog has improved.
  3. The "Switch to Sprite" function was ignoring the setting "Follow path relative to sprite's starting point". The setting was only being used for the create sprite function, but now both functions heed this setting when creating a new sprite.
  4. The quick tutorial has been updated to reflect new palette from version 1.4.1.
  5. The "Follow flat floor" type sprite was fixed again to address problems seen in the Ethereal Peace project.
  6. When a platform is destroyed, the sprite riding the platform could have accumulated a lot of vertical velocity from gravity that was never reset, and would cause the sprite to fall very fast. Normally it is reset when the sprite steps off the platform, but this did not occur if the platform was unexpectedly destroyed. Now the vertical velocity of a sprite riding a platform is maintained at 0 when riding a platform.
  7. If no tileset was selected in the tilesets dialog, the program would abort if you tried to click the update button. Now an appropriate error is displayed instead.

Version 1.4.1

  1. The icon used for GameDev projects is now distinct from the icon used for GameDev.exe and GDPlay.exe itself. (Restarting windows may be required, or you can go to Folder Options in windows explorer and pretend to modify an icon; then it will update all icons.)
  2. GameDev was designed to run GameDev.vbs (if it exists) from the GameDev.exe directory when gamedev starts. However, this was only occurring if the "/e" switch was specified on the command line, so it wasn't a very useful mechanism for developing GameDev plug-ins. Now it will run even when no parameters are present on the command line. The only times it doesn't run is when another script is specified or "/p" is specified on the command line (to play a project without going into the editor).
  3. Bug fix: The map editor was hard coded to scroll based on a 640x480 resolution, so in 1024x768, the map would start scrolling long before the mouse reached the edge of the display. Now it works as you'd expect.
  4. Bug fix: Pressing alt-tab at the same time a message was appearing would cause an error (this was possible if, for instance, you forgot to set a message function to activate only on initial touch, and tried to use alt-tab to get out).
  5. Version 1.4.0 altered the behavior of initial touch functions so they would not activate if the function was at the location where the player starts out on the map. This has been reverted to the old behavior and improved to ensure that such a function is ALWAYS activated.
  6. Bug fix: Sprites designed to "Follow flat floor" would sometimes freeze when they hit a left wall if they started out in the air. Now they are sure to keep moving if possible.
  7. The default color palette in the tileset editor has a much better set of colors now (same number and layout, just different colors).
  8. The scripting docutorial had a reference to "line 386" of GoldYoink.vbs, but the reference was wrong. Fixed to refer to "line 396."
  9. The help file for GameDev has an entry for GoldYoink.vbs so you can view the script with line numbers by itself. This link has been modified so that the script appears in a window of its own, so you can view other topics at the same time.
  10. Step 1 of the tutorial was referring to old color positions in an old palette. It has been modified to refer to the newest palette colors.
  11. Bug Fix: Adding a sprite without specifying the required parameters used to add a blank sprite definition if a path was selected. Now if you get an error message when adding a sprite, you can be sure that nothing was added to the sprite list.
  12. Radeon video cards have problems with GameDev. Version 1.4.0 made the problems worse: games with a graphical title screen would be unable to properly display messages. 1.4.1 fixes that problem. Using catalyst drivers version 3.4 (or later, hopefully) GameDev 1.4.1 seems to work without problems.
  13. Automatically unload tilesets while switching maps. In version 1.4.0 and earlier, if your project contained more than 50 tilesets, you could hit the limit when playing through the whole game when the 51st tileset was loaded because tilesets were never unloaded once they were loaded. Version 1.4.1 fixes this problem and also minimizes memory usage in this regard.

Version 1.4

* Items marked with an asterisk indicate possible backwards compatibility issues. A game may not play exactly as it did before, but largely, there should be no real issues with these changes.

Main New Features

  1. New "Loading Screen" functionality allows specification of a 400x250-pixel bitmap to display with a progress bar while loading the project GDP and map files. (Empty value behaves as before.)
  2. Display of inventory can now be selective for maps. Each map can display a specific subset of the available inventory. (By default, all inventory is displayed, as before.) Note, if the total number of inventory item types available is greater than 255, any items beyond the 255 limit will automatically be displayed.
  3. Tile interactions can now interact with quantities of inventory greater than 1 (a single tile can alter an inventory quantity by any number).
  4. Multiple resolutions are now supported. Games can be played in 320x240, 640x480, 800x600 and 1024x768 resolutions. Map Editor will use the same resolution except for 320x240 mode, which will display the map in the top left quadrant of a 640x480 display.
  5. Tile interactions can now trigger special functions.
  6. New concept of “trigger points” allow you to create sprites, copy sections of map or teleport the player relative to the trigger point instead of having to specify an absolute or player-relative coordinate. The trigger point is set when the player touches an interaction tile, when a sprite terminates at the end of a path activating a function, when two sprites collide, and when the player touches a special function (all actions that can trigger special functions). When a tile interaction sets the trigger point, it is set to the tile’s location (in pixels). When a sprite reaches the end of a path and activates a function, it is set to the last position of the sprite. When two sprites collide, it is set to the coordinate of sprite A. When the player touches a special function, it is set to the coordinate of the player. This can be used, for instance, to create an explosion sprite at the location of two sprites colliding (even if neither are the player sprite).
  7. There is a new activation parameter for special functions called “Global” that allows the function to be checked regardless of the player’s position. It acts as if the function covers the entire layer, but the nice thing is, it won’t be drawn over the entire layer, blocking your view of other functions when you are looking at functions. Also, it’s a bit more optimized since it knows the player is always touching it. This will be handy for creating functions that only require button presses to activate, like a button to drop a bomb, no matter where you are.
  8. Save game support has been added as a new special function. The new Save/Load game function allows you to save a game under a specified name, load a game of a specified name, delete a game of a specified name, activate another function if the specified game exists or activate another function if the specified game does not exist. The specified name is defined as part of the function, so the available save game “slots” are defined by the game developer, but there are an unlimited number of slots (determined by how many different names are used). Saved games are perfect and, when loaded, should restore exactly to the point where the player left off.
  9. Sprites can now follow paths relative to their starting point. For example, if you define a path that follows an arc to the right, you can now create that sprite anywhere and it will follow that arc to the right of its starting point instead of heading toward the paths absolute position. This could be handy, for example, to allow the player to throw items no matter where the player is standing (no scripting required).
  10. Paths can now have pause points in them. Pressing P while creating a path allows you to enter a number specifying for how many frames the sprite will become inert after reaching that point. Delay points can also be added and deleted in the sprites and paths dialog.
  11. Special functions can now be triggered based on any of the buttons configured in the controller configuration screen instead of just up, down and button 1. The new buttons available for activation parameters are left, right, button 2, button 3 and button 4.
  12. It is now possible to remember the current map when switching to another map. The map is put on a “stack” so that you can return to it later by activating another “Switch Map” function set to “<Return to old map>”. There can be up to 5 remembered maps. This is handy for cases where there are multiple ways to get to a map and you want to return to wherever you came from… particularly useful for a menuing system (jumping quickly to a map where you can select a save game or something).
  13. It is now possible to switch to a map without re-initializing the sprites. Don’t want to forget that the player had killed the big boss monster on this map? Just un-check the box that restarts the sprites in the switch to map function.
  14. Media clips can now be interrupted and re-triggered. Before, if a media clip was triggered and it was already playing, you couldn’t hear anything new, but now you can check the “Allow interrupt/restart” box to allow such clips to re-play from the start when this occurs.
  15. There is a new auto-validation setting in the options dialog (turned on by default) that determines whether a project is automatically validated before game-play begins. Right now this just confirms that all your sprites have at least one frame in each available state.
  16. When triggering a function based on button presses, it’s now possible to require multiple buttons be simultaneously pressed. By checking the “All at once” box, you can specify that the function will only activate if all the checked buttons are pressed at once instead of when any of them are pressed alone.
  17. There are 3 new "Auto delete" settings available in the motion tab of the sprites and paths dialog. They allow a sprite to be deleted when it hits a solid (when its velocity is altered because of solid pixels on the map). There are 3 new variations combining this criteria with existing criteria.
  18. Pressing a button to trigger a function can now restrict the triggering of the function to only the initial press instead of repeatedly triggering the function as long as the button is pressed. (This is a similar idea to "Initial touch only" but applies to the button press instead of the player touching the function area.) This is accomplished by checking the "Initial press only" option in the Activation Paremeters for a special function.
  19. When specifying which buttons can trigger a function, it is now possible to exclude key combinations where extra buttons are being pressed. For instance, if you have a function to shoot left and another to shoot right, but you don't want to allow the player to be able to shoot left and right at the same time, then make sure that the activation parameters for the function that shoots left has the "And nothing else" option checked. If the function is activated by a button press, then this option will ensure that only that button is being pressed; if others are also being pressed, then the function will not activate.
  20. Tileset graphics may now be up to 128x128 pixels per tile as opposed to the old limit of 64x64 pixels. When the width or height of tiles in a tileset exceeds 64, the tileset editor will come up in 800x600 mode instead of 640x480 mode. That means your video card better support 800x600 in the color depth you have selected for the tileset editor if you want to edit tiles larger than 64x64. A number of tile display windows throughout GameDev have been enlarged to allow display of the larger tile size. Perhaps the most notable of these is the support for larger graphics in the Sprites and Paths dialog.
  21. New sprite motion types are available in the "Controlled by" dropdown list on the motion tab in the Sprites and Paths dialog.
  22. There are now twice as many colors in the palette in the tileset editor (4 rows of 30 instead of 2 rows of 30).

Minor Improvements / Behavior Changes

  1. Optimized special function handling. Now you can have any number of special functions created with the “Add function” button (not positioned within the map) and they will not be looked at during every frame; only when activated by another trigger. Only functions within the bounds of the current layer will be tested for player touching during each frame.
  2. Sprites now terminate when outside the visible map window instead of when they would be off the entire screen space. Before, a sprite set to be deleted when “off display” would remain active until it left the boundaries of the physical screen rather than the map window.*
  3. When using the “repelling” functionality of a sprite collision, you can now click both “A Repels B” and “B Repels A” and get desired results. However, A repelling B will take precedence. The new behavior is that, if B is blocked by solid tiles, it will push back on A, preventing A from pushing it any farther, and preventing A from walking through B.*
  4. Instructions are displayed on screen while creating a path in the map editor.
  5. The frame rate limit set in the player settings dialog is now applied to the map editor also.
  6. Special functions and selection rectangles in the map editor are now clipped to the edges of the map display instead of being allowed to draw in the area between the edge of the map and the edge of the screen.
  7. The volume slider on the media clip management dialog now adjusts for the fact that the volumes are logarithmic. You should be able to get a more linear volume out of this slider now like you do with the standard Windows volume control.
  8. Quick Tutorial has a new note about using Alt-Tab.
  9. New checkbox in tile import window to snap the import selection rectangle to tile-sized offsets.
  10. The tileset management dialog will now prevent you from removing a tileset from the project if the tileset is in use by sprite definitions or map layers.
  11. GameDev.exe and GDPlay.exe will automatically attempt to "register" (in the windows registry) BMDXCtls.dll and ScrHost.dll on startup. This is required for proper operation. That means you should now be able to un-install a game package created with the install packager, and then run GameDev or another game without errors, if BMDXCtls.dll and ScrHost.dll are in the same directory as the EXE.
  12. There is now a way to hide the splash screen on start up if you really want to do that. Contact me for more information.
  13. MSComCtl.ocx is now delivered as part of a self-installing game package because it is required by the progress bar for the loading screen in case the project uses a loading screen.
  14. You can now use the shift-key when selecting tiles (in the sprites and paths dialog or any of the many other dialogs that have a tile selection window). This allows you to select a range of tiles with a single click. When you shift-click a tile, that tile will be selected along with all the tiles to the next nearest selected tile.
  15. Selecting the "Activate series of special functions" effect would sometimes display an invalid function in the activation sequence, if the function used to be a different type. Now it initializes to blank instead.
  16. When clicking on a special function whose effect has not been defined, GameDev used to leave the existing effect listed, but now it clears the selection indicating no effect has been selected for the current function.

Bug Fixes

  1. Unhandled (terminal) error could occur if tileset bitmap file was not available when attempting to edit categories on that tileset. Now a proper error is displayed.
  2. Errors could occur if a sprite collision triggered switching to a new map. Now these potential errors are avoided, allowing sprite collisions to switch maps seamlessly.
  3. Map file loading was incorrect, but did not seem to cause errors for normal projects. It did, however, result in an infinite loop when loading a corrupted project in some cases. (ie. A project saved by an old version of GameDev and manually edited to have a newer version number or vice versa). This has been fixed.
  4. If a sprite was set to be automatically deleted when it was off the map or display and also set to be deleted when it was motionless, there would occasionally be an error: if the sprite was the last sprite in the array, the game would terminate with an error message, otherwise additional sprites might be improperly deleted. This has been fixed.
  5. Clicking the button to update a map in the maps dialog now validates the map view parameters before updating the map. Before, this validation was only being done on the creation of a new map.
  6. Exiting the game while a video clip was playing would cause errors as GameDev attempted to “fade out” the video. Now when you quit a game, any video clips that are playing will stop abruptly to avoid this error.
  7. Pressing a button to cancel the playback of a modal media clip was checking the wrong flag (it was checking of the clip was suspending other clips instead of if it was modal). Now you can properly cancel modal media clips with a button press.
  8. Inventory quantities exceeding 32767 could be drawn incorrectly or cause an error. This has been fixed.
  9. Special functions that displayed a message were improperly sizing the message frame when the message contained hidden text (text inserted by the message wizard to format the message). This has been fixed.
  10. If there is an error storing the player settings after clicking OK on the Player Settings dialog, it will now stay open instead of closing.
  11. Left/right sprites with gravity would sometimes jump for no reason immediately after landing due to a glitch in the sprite’s ReactToSolid function. This has been fixed.*
  12. The flag to reset a sprite’s current frame when it stops moving was operating incorrectly when the animation speed was not correlated with the movement speed. This has been fixed.*
  13. Some bugs in the sprites and paths dialog have been fixed including one that causes a sprite to be incompletely loaded when it contains more states that the previously loaded sprite.
  14. Tile import functionality would not import a complete tile unless it was entirely visible in the import selection window. Now it will import properly even if the tile is partially scrolled off the window.
  15. Tile import window now reports the correct coordinates in the title bar (they were incorrect when the window was scrolled).
  16. The tileset re-slicer would not import the proper number of columns or rows for certain bitmap widths and heights. The math rounding problem has been fixed.
  17. Attempting to edit a tileset whose bitmap file could not be found would cause a terminal error. Now the proper “nice” error message is displayed instead.
  18. Attempting to save a tileset that was already part of the project but whose image file could not be found used to cause a terminal error. This has been replaced with a nicer non-terminal error.
  19. Attempting to open (double-click) a tileset whose image file could not be found used to cause a terminal error. This has been replaced with a nicer non-terminal error.
  20. Creating a new map would not properly store the background color for the new map until you used the update button. This has been fixed.
  21. In the player settings and inventory dialog, switching the tileset for an inventory item or switching from an inventory item using one tileset to an inventory item using another tileset or no tileset was not showing up properly. This has been fixed.
  22. After initially entering the map editor, if you tried to copy a block of tiles, and the end drag point is above or to the left of the starting point, an error would occur. This has been fixed (the copy is silently cancelled).
  23. A left/right type sprite with separate accelerating states and drifting states would sometimes appear as accelerating when it was drifting.
  24. The tileset window in the sprites and path dialog would "remember" an old tileset after loading a new project when it should have been cleared out. Fixed.
  25. Creating a new tile animation was properly preventing a duplicate name, but it was still possible to rename an existing animation to a name that was already in use. This has been fixed.
  26. Tile matching definitions would not prevent duplicate names. This resulted in the inability to access a definition if it had the same name as another, but wasn't the first one. Now GameDev prevents duplicate tile matching definitions.

Effects on Scripting

  1. NewInteraction method added to Engine object (global method) to create new Interation objects.
  2. NewMatchDef method added to Engine object.
  3. NewPlayer method added to Engine object.
  4. New values "frmLoadScreen" and "frmMapInventory" added as valid inputs to GameDevForm property.
  5. New values "Interaction" and "MatchDef" added as valid inputs to NewGameDevObj function.
  6. Map object has new methods SerializeRuntime and DeserializeRuntime to store and load runtime-only information like sprite instances and positions.
  7. Sprite definitions are now case-sensitive when you refer to them by name using the SpriteDefs property of the map class.*
  8. New SpriteDefExists property on a map object indicates if a sprite definition exists by the specified name on that map.
  9. Media clip object now has a “StartClip” function that properly handles the “allow interrupt/restart” flag properly. Use this instead of the “Play” method for most cases.
  10. New InsertPoint method on a path allows insertion of a path point anywhere along a path without having to recreate the path from the beginning. (Delay points have negative X corresponding to delay time.)
  11. New bIgnoreValidate property on Player object allows script to turn off automatic validation if they know the project looks invalid, but probably is valid (GoldYoink version 1.1 and later uses this).
  12. New playback resolution properties are exposed on the Player object. “PlaybackResolution” can be any value from the Resolution Enum (1=320x240, 2=640x480, 3=800x600, 4=1024x768). New read-only properties “VerticalResolution” and “HorizontalResolution” will return the respective values based on the Resolution setting.
  13. SerializeRuntime methods exist on Map and Player objects to serialize the data that is stored for a saved game. Only the data not saved by standard save methods are serialized by these functions.
  14. New method “SaveRuntime” on the project object effectively saves the game in the specified slot name. “LoadRuntime” loads a specified save-game from a slot. “DeleteSave” deletes it.
  15. New “Validate” function on the project returns a string containing any validation errors that may exist.
  16. New “SetLoadingStatus” method on project object manipulates the loading screen (I see no real use for this from script).
  17. New methods “PushLocation” and “PopLocation” on the player object allow you to remember and return to a map (up to 5).
  18. New Method “PrepareMapInventory” is called before playing on a map to prepare the cached array of inventory items that will be displayed on this map. (If you switch maps manually, you may have to call this yourself.)
  19. The following new Enum values are available to use with the Flags property of a SpecialFunction object: INTFL_ALLBUTTONS (mask returns only button-related flags), INTFL_REMEMBER_SPRITES (0=“Restart Sprites”), INTFL_REMEMBER_MAP. Flags for the Load/Save Game function: INTFL_LOADGAME, INTFL_CHECK_EXIST, INTFL_IF_NOT_EXIST, INTFL_DELETE_GAME (default is save game when all flags are 0). INTFL_RELATIVETOTRIGGER.
  20. The new Enum value INTFL_ACTIVATE_FUNCTION can be added to the Flags property of an Interaction object to indicate that its media clip property is actually a special function name. (New property “ActivateFunction” returns the same string as “Media” property.)
  21. The following new Enum values are available for use with the SpecialFunction object’s new Flags2 property: INTFL2_ALLATONCE, INTFL2_ACTONBUTTON2, INTFL2_ACTONBUTTON3, INTFL2_ACTONBUTTON4, INTFL2_ACTONLEFT, INTFL2_ACTONRIGHT, INTFL2_ALLBUTTONS (mask returns only button-related flags), INTFL2_GLOBAL
  22. SaveGameFuncName property on SpecialFunction object returns the name of the special function that can be activated by a “Save/Load game” function. (It is stored in the same location where a sprite name is stored for other function types.)
  23. New enum value FLAG_RELATIVE_PATH available for use with the SpriteDef’s Flags property.
  24. New WaitCounter property on sprite object returns a negative value corresponding to the X coordinate of a delay point in a path. (The x coordinate is a negative number indicating how many frames to wait). When WaitCounter reaches X, sprite stops waiting.
  25. Sprites have new PathOffsetX and PathOffsetY properties indicating the offset of their starting point from the path starting point (if the relative path flag is set).
  26. New SetAll method in a TileGroup object allows you to set all bits of a tile group to true (add all tiles to a group or, in the case of map inventory, add all items to the map’s inventory display).
  27. New TranslateCtlActions method in the Player object will convert action flags as represented by CtlActions and the eActionBits enum into Special Function flags and the INTERACTION_FLAGS and INTERACTION_FLAGS2 enum. (Note, the flags representing buttons in the INTERACTION_FLAGS enum do not overlap the flags representing buttons in the INTERACTION_FLAGS2 enum, so they can be combined into a single bit map without losing any informaton.)
  28. There is a new bHitSolid property on every sprite object that gets set to True during the call to ReactToSolid if the sprite hits a solid (used for the new auto-delete options for hitting solids).
  29. There is a new NextRandomPoint function on every sprite object that returns the index of a point that the sprite can head toward next if it is one of the types that follows paths randomly.
  30. The tileset editor class ("TileEdit") has new properties to describe the screen resolution being used: EditResolution, HorizontalResolution and VerticalResolution.
* Items marked with an asterisk indicate possible backwards compatibility issues. A game may not play exactly as it did before, but largely, there should be no real issues with these changes.

Version 1.3.1

Version 1.3

Version 1.2