We found that it’s pretty often when our release notes aren’t so clear. We are going to improve it in the future, but now I decided to make a short explanation for every ticket in release notes.
New properties were added for camera component: fov
, near_z
, far_z
. Now it’s possible to animate these properties using go.animate()
and get/set using go.get
and go.set
New API added in Defold SDK:
dmLog::RegisterLogListener
- register a new listener for logs with will receive all the logs from the logging system (if it’s not filtered out by log severity level)
dmLog::UnregisterLogListener
- unregister a custom lisener
dmLog::Setlevel
- set log severity level
All the functions are avaliable in the release build.
The native libraries for all platforms were included in the editor bundle for each platform. Now CI removes unused libraries which reduces the editor build size by about 100Mb (~25%).
Now cloning of the node also copies flipbook animation state from the original node.
File descriptorw (FD) are unique identifiers for a files or other input/output resource such as a socket connections.
When an application wishes to check if it is possible to read or write to a descriptor it can use either select()
or poll()
. The old / classic one is select()
and a bit more modern is poll()
.
The biggest downside of using select()
is a limitation for 1024 FD. If an app is using more than 1024 FD it will crash. It’s a really rare situation and in most cases using more than 1024 FD in a client app means an error in the client code. But in some rare cases, app may use too many FD by purpose, that’s why we decided to replace select()
with poll()
A while ago we updated LuaJit to the latest version for better support x64 platforms. This process needs a re-build of LuaJit for every platform/architecture combination. iOS sim was missed during this process. Now LuaJit has updated for iOS sim and this target platform works.
In some cases, the order of APP_CMD_* events from Android OS may differ from the expected order.
When a device is locked with an opened app and then the user tries to unlock it, in some rare cases the OS may create and destroy app 2 times without window initialization which causes the ANR.
Now it is possible to use unicode symbols as a window title on Windows. This means that cyrillic or hieroglyphic symbols will be displayed fine in the window title.
The game manifest (game.dmanifest) is part of the Defold game archive format. It is included in an application bundle together with the actual archive data and index. The manifest contains cryptographic checksums of both the entire data set, as well as the individual files. The manifest file is mainly used for Live Update content on the platforms that support this feature.
The manifest is however still generated when bundling a game that doesn’t use Live Update. The cryptographic checksums are calculated using a temporary public and private key pair. New keys are generated for each build.
This is generally not a problem, but it also means that it is not possible to generate two consecutive builds from the same content and with the same checksum.
This change makes it possible to specify a public and private key pair on the command line to repeatedly generate exactly the same bundle. With this change generated keys are also saved in the project root (manifest.private.der and manifest.public.der) and automatically reused for subsequent builds if no key pair is provided.
More information about the archive format here: https://github.com/defold/defold/blob/dev/engine/docs/ARCHIVE_FORMAT.md
Fixes issue with crash on start on Intel HD 2000/3000 and some other older GPUs
It’s possible to get access to the game hierarchy and components data using Defold SDK. The functionality is used in extension-poco. This fix adds access to the label’s fields such as text
.
Documentation fixes.
Fixes typo in gui
component when all the component functions were shown in profiler as on_message
function.
Fixed issue with cubemap building during the bundling process.
Fixes issue when changes in init()
function for a factory created tilemap were overridden by the initial state of the tilemap.
Distance Field (DF) fonts now use 3 layers only if a font shadow blur is more than 0. In all the other cases it uses one layer. That reduces DF fonts size significantly.
WebGL 2.0 turned on by default starting iOS 15.
However, it seems like it crashes from time to time on iOS 15.0.x and doesn’t work at all on iOS 15.1.x (black screen on initialization). At the same time, iOS 15.2 works just fine.
This fix forces using of WebGL 1.0 for iOS 15.0.x - 15.1.x.
Fixes issues with crashes and unexpected errors with particles in cases where particles are created in a collection without any factory with particlefx component.
For particlefx component, the component itself isn’t a render object. The emitters are render objects. That means the recalculated value can’t be used as a buffer size for the particlefx render objects buffer. But now it’s possible to specify max number of emitters per collection in game.project
→ particle_fx.max_emitter_count
.
Please, let us know if such information is useful for you and we should explain changes a bit more than we used to.