ID:2089236
 
With today's release of 510.1345 as the new stable version, I thought I'd start a new tradition of posting the new features in brief. Because this is something I didn't think to do before, I'll do the same in this post for 509 and 508.

Version 510
  • Breaking change: HUD objects no longer interlayer with non-HUD objects on the same plane. BACKGROUND_LAYER and EFFECTS_LAYER however can be used to move things forward or back while keeping them on the same plane. (This does not apply to games compiled before 510.)
  • Unlikely breaking change: Images with override=1 will no longer override their parent atom's color, alpha, transform, etc. without explicit appearance_flags saying so.
  • Unlikely breaking change: Images with the override var set will now override the name and/or suffix of their parent, if they're given a name and/or suffix of their own. This impacts verb parsing.
  • Unlikely breaking change: world.fps now rounds correctly to the nearest millisecond when setting tick_lag, so a world.fps of 60 would formerly mean tick_lag of 0.16 and an actual FPS of 63 (after rounding), but now means a tick_lag of 0.17 and an actual FPS of 59.
  • Unlikely breaking change: BACKGROUND_LAYER and EFFECTS_LAYER are now respected in the topdown map format.
  • Regular expressions are now supported with the /regex datum and the new regex() proc.
  • New text handling procs have been added:
    • findlasttext / findlasttextEx
    • replacetext / replacetextEx
    • jointext
    • splittext
    • spantext / nonspantext
    The replacetext() and splittext() procs allow regular expressions.
  • JSON is now natively supported with json_encode() and json_decode().
  • A new appearance_flags value, KEEP_TOGETHER, lets an atom and its overlays/underlays render as one unit before color, alpha, transform, etc. are applied. KEEP_APART can be used to break an overlay away from its parent. All maptext has an implied KEEP_TOGETHER with its main icon.
  • The new appearance_flags value PLANE_MASTER can be used for lighting and other post-processing effects. A plane-master object does not draw its icon, but instead collects all other icons in the plane and draws them on a temporary surface. Then the master's color, transform, blend_mode, and other properties are applied to that whole plane. (For instance, lighting can be done with a plane-master on plane 2 that has BLEND_MULTIPLY, and any lighting overlays on plane 2 can be given BLEND_ADD. All the lights are drawn on plane 2 and then overlaid on the regular map.)
  • FLOAT_PLANE has been added, which tells an overlay or image to use the plane of its parent. Icons and states added as overlays directly have this plane, as do any overlays loaded from savefiles.
  • Big-icon handling has been substantially improved. But a new appearance_flags value, TILE_BOUND, can be used to specify that an atom's visibility should be based strictly on its actual home turf, not all of the turfs it covers.
  • savefile.Flush() has been added, to do pending writes immediately.
  • world.tick_usage says how much of the current tick has been used, which makes better planning possible for CPU-intensive operations.
  • QUAD_EASING has been added as an easing type to animate().
  • Find/Replace behavior has been improved in Dream Maker, and now supports more options including regular expressions.
  • winset(player,null,"url") returns the URL the user is connected to in IP:port format, with port 0 if it's a local .dmb file. Returns null if they're not connected, for use in JavaScript.
  • Dream Seeker makes smarter choices about video hardware, preferring AMD and Nvidia cards best, and anything else over Intel.
  • Webclient sound support has been dramatically improved.

Version 509
  • All appearances now have a plane var, which can be used in place of BACKGROUND_LAYER and EFFECTS_LAYER.
  • The color var now supports color matrices, supplied as a list. The format is basically identical to the one used in icon.MapColors().
  • The new client.color var can supply a color cast that applies to all atoms on the map, except those that explicitly say otherwise with the NO_CLIENT_COLOR value in appearance_flags. This value can be a matrix, but it does not support any alpha.
  • The new read-only /client vars bounds, bound_x, bound_y, bound_width, and bound_height can get the client's viewport in pixels. Map format and client.dir are not taken into account.
  • animate() has an optional flags parameter. ANIMATION_END_NOW will cause an existing animation to stop immediately instead of transitioning from where it is. ANIMATION_LINEAR_TRANSFORM will force all transform matrix interpolation to be strictly linear.
  • animate() can be used on the client, for color and pixel offsets.
  • The value of glide_size now supports fractional values.
  • flick() can now handle /icon datums without requiring an explicit fcopy_rsc() call.
  • Runtime errors include usr.loc and src.loc in their details, when usr or src are movable atoms.
  • Maptext now uses a different font quality setting for smoother results.
  • "Show all files" in Dream Maker now includes empty folders in the tree.
  • The dm.exe compiler prints out its version number when compiling.

Version 508
  • maptext_x and maptext_y have been added to all appearances, allowing maptext to be offset.
  • The new appearance var can be used to copy and assign multiple appearance values at once. Only density, dir, screen_loc, and verbs are not changed.
  • MouseWheel() has been added to /client and atoms.
  • Error handling has been added with the new try, catch, and throw keywords. This uses a new /exception datum. Also you can set a global error handler in world/Error().
  • The internal limit on unique map cells (unique combination of turf type, appearance, and area ID) has been increased beyond 64K.
  • Proc chains that fail due to too much recursion will no longer count as a critical error. They can be caught in the new catch blocks, instead.
  • In reboots initiated by Dream Seeker (reason 1), usr in world.Reboot() will refer to the player who sent the command.
  • Map upscaling in Dream Seeker has been improved, for pixel-perfect games.
  • The icon movie editor in Dream Maker can now flip, shift, and rotate multiple icons at once.
  • A -verbose flag has been added to Dream Daemon to print out full runtime error info regardless of how many errors have occurred.
  • When a world finishes compiling, a timestamp will be printed.
Nice! I was just looking for this. =)
world.tick_usage says how much of the current tick has been used, which makes better planning possible for CPU-intensive operations.

Here is a primer on how to utilze this:
http://www.byond.com/forum/?post=2055964
#511hypetrain