BYOND 5.0 Version 514 Release Notes
Build 514.1548
Fixes (More Info)
Dream Daemon
- Movables with fractional step offsets sometimes failed to handle collisions properly. (Linkenclick)
- Calling rgb() with non-constant values for non-RGB color spaces caused a proc stack underflow and often a crash. (Taitz)
- The server calculated visual bounds of some objects incorrectly in some cases. Mainly this was when a turf was in visual contents. (Lummox JR)
Dream Maker
- The ?. operator when used on the left-hand-side and before a list index, e.g. a?.b[c] = d, did not compile correctly. (Vallat)
Dream Seeker
- The client was reading animation messages incorrectly, which resulted in errors that appeared and disappeared in waves as more animations were created. (Vallat)
- The threads used for particle effects had a small memory leak. (Lummox JR)
- When particles spawn count and lifespan was so high that there was no more room to spawn new particles, the count of pending particles to spawn would keep rising. Now the pending count resets to under 1 if there is no more room for new particles. (F0lak)
- An object with no icon, even if it had maptext or KEEP_TOGETHER visual contents, was not recognized as having extended visual bounds. (Lummox JR)
- Uppercase U was sometimes mistaken for a whitespace character in maptext wrapping. (Azrun)
Features (More Info)
Dream Seeker
- Rendering performance has been slightly improved.
- The performance of multiple particle calculation threads in the pre-render stage has been dramatically improved. Additionally, there is also client profiling information available for particle performance in the pre-renderer.
Build 514.1547
Fixes (More Info)
Dream Seeker
- Client ticks were less precise when Dream Seeker was connected to a remote server, unless it was first started as a server itself and then later link()ed to the server. (The peoples republic of china)
- Mouse operations on grid controls mistakenly copied the grid cell into the "control" argument. This also impacted new mouse macros. (Klirix)
- Using plane masters caused non-HUD objects not to clip when outside the normal map area. (The peoples republic of china)
- Particles with icons appeared behind of the sprite belonging to their parent object, instead of in front. (Lummox JR)
- When no other icons on the screen were animating, deleting a particle set or detaching it from an object was not enough to make the map draw a new frame, resulting in apparently frozen particles until the next update (such as an object moving). (Lummox JR)
- Creating a new skin control at runtime but giving the winset() call a fully decorated name (e.g. winset(usr,"window.thing","...;parent=window")) caused the control to be created incorrectly by including the window name twice. (Crazah)
- Because new particles reused empty slots in the array left behind from dead particles, they could draw out of sequence. (The peoples republic of china)
- The "unlit sprite" used for SEE_BLACKNESS and SEE_PIXELS didn't load correctly. (Ter13)
- Objects that used a render_source from a plane master were positioned incorrectly relative to their parent object. (The peoples republic of china)
- Objects in visual contents should have inherited the micro-layer of their parent if they used FLOAT_LAYER. (They did correctly inherit if using the VIS_INHERIT_ID or VIS_INHERIT_LAYER flags.) (Ter13)
- Icon particles were drawn at incorrect positions, causing artifacting at their edges. (The peoples republic of china)
Features (More Info)
DM Language
- Particle values were inconsistently based on either client ticks or BYOND standard ticks. All of the timing has been adjusted to use BYOND standard ticks. This will impact any particle effects you already have: spawn count should be divided by tick_lag for instance, and friction and drift in particular may need to be updated (which in turn would affect gravity).
- A grow var has been added to particles to change their scale over time.
- The value of particles.spawning can now be fractional, allowing finer control over spawn rate.
Build 514.1546
Fixes (More Info)
Dream Daemon & Dreem Seeker
- Eye gliding was broken in newer movement modes. (F0lak)
- A new 514 feature intended to make animation transitions easier to detect was implemented incompletely, resulting in some failed transitions. (Bravo1)
Dream Seeker
- Icons could become corrupted after garbage collection due to problems with texture atlas handling. (Anturke)
- Alpha masks using an icon instead of a render source failed in most cases. (The peoples republic of china)
- Browser controls with on-show commands didn't work correctly, causing a problem with non-popup browse() commands applied to the default skin. (LordAndrew)
- The "measurement" phase of the bloom filter was handled incorrectly, resulting in very strangely broken results for some cases. (Crazah)
- A display flag indicating an icon had a particle set attached stayed active in any of the atom's overlays or image objects, resulting in more pixels being drawn. (Vallat)
Features (More Info)
Dream Daemon
- Limitations in the timers used to measure tick usage meant that world.cpu, world.tick_usage, and world.map_cpu weren't very precise. These have been updated to be much more precise.
Build 514.1545
Fixes (More Info)
Dream Maker
- The TILE_MOVER flag did not save when set at compile-time.
Note: This fix changes the .dmb format for projects built with BYOND 514. (Exxion)
- When using the spin arrows in the color selection dialog, the new color preview below did not update. (F0lak)
Dream Seeker
- Dream Seeker could crash in some cases when trying to fill a texture atlas. (Vallat)
- The alpha mask filter could cause Dream Seeker to crash when it didn't have an icon or render source. (F0lak)
Features (More Info)
Dream Maker
- The spin-arrow buttons for hue in the color selection dialog now allow movement past 0 or 360.
Build 514.1544
Fixes (More Info)
Dream Maker
- NORMAL_RAND was mistakenly still called GAUSS_RAND (an earlier name for it) in the stddef.dm file, in conflict with the documentation. (Vallat)
- The particles var could not be assigned a value at compile time. (Zewaka)
- Generators could not be assigned to particle datums at compile-time. (Zewaka)
- JUMP_EASING was defined incorrectly in stddef.dm. (Zewaka)
Dream Seeker
- Particle effects didn't cause the map to redraw if no other icon animations or changes were in use. (Klirix)
- Icons being unloaded could cause a crash. (Vallat)
- Alpha mask filters were broken. (Vallat)
Build 514.1543
Features (More Info)
DM Language
- The new gradient() proc can blend between colors.
- animate() can now interpolate between colors using color spaces other than RGB. (Note that this does not currently apply to color matrices.)
- rgb() now allows you to specify a color space, so it can be used to create colors from HSL, HSV, and HCY numbers. There is also a new rgb2num() proc that will reverse the process, producing a list of numbers.
- A new filter type, "bloom", causes halo effects on all pixels above a certain RGB threshold.
- A new proc called load_resource() has been added, to make it possible to preload an icon/sound asset and change how long to it stays loaded.
- splicetext() and list.Splice() have been added, which do a cut and an insertion at the same time. For instance, splicetext("banana", 3, 6, "laclav") becomes "balaclava". For text in particular this should be a benefit since it avoids multiple changes to the string tree (using the old method of copytext() + string + copytext()) in favor of a single change.
- browse_rsc() behavior has been improved so that files can be sent through the regular resource download system, which can 1) check for whether the client already has a file, and 2) batch-send any needed files. The old approach was not scalable and resulted in delays in some games.
- time2text() now takes another argument for the time zone. Additionally, client.timezone and world.timezone vars have been added.
- ||= and &&= shortcut operators have been added.
- BYOND now supports better control over the use of tile or pixel movement with world.movement_mode, and a new appearance flag called TILE_MOVER. This controls the behavior of things like turf.Enter() and can be used to sidestep old legacy behavior, impacts gliding, and objects in TILE_MOVEMENT_MODE or with the TILE_MOVER flag are locked to the tile grid.
- A new "assign-into" operator := has been added, which can be overloaded. This allows more flexibility in advanced datum types.
- List access now has a ?[] operator. If the list is null, the list access will do nothing and fail without an error.
- world.map_cpu has been added to help track CPU usage for map-send operations. This is not a full profiler but it should help some games gauge how server performance is impacted by map complexity and player load.
- Client-side particle effects have been added! The particle system allows for a massive amount of flexibility with special effects (which is likely to be expanded in future builds). These effects are purely visual, run on the client, and should not impact server performance.
Dream Seeker
- The renderer now uses texture atlases to keep more sprites on the same texture, which should improve rendering performance slightly for many games.
- Embedded winget syntax [[...]] used in client macros and client-side commands such as .winset, has been greatly improved. Now all embedded winget parameters can have the parameter name followed by a format type, for instance [[map.size as json]], to make it easier to include this info in various command formats.
- Client macros can now be bound to mouse actions, and provide data to the attached server verb via a [[...]] syntax similar to embedded wingets.
513 Release Notes | View All