Defold 1.2.192 BETA

Defold 1.2.192 BETA

The latest beta is now released, and we invite those interested in beta testing the new features in the editor and engine to join now.
The beta period will be 2 weeks and the next planned stable release is two weeks from now.

We hope this new workflow will highlight any issues earlier, and also get valuable feedback from our users. And please comment if you come up with ideas on improving on this new workflow.

Please report any engine issues in this thread or in issues using Help → Report Issue

Thx for helping out!

Disclaimer

This is a BETA release, and it might have issues that could potentially be disruptive for you and your teams workflow. Use with caution. Use of source control for your projects is strongly recommended.

Access to the beta

Download the editor or bob.jar from Defold Downloads

Set your build server to https://build-stage.defold.com

Engine

  • Issue-3718 - Fixed: Camera properties are available via go.get()/set() and go.animate()
  • Issue-5591 - Fixed: Add API hooks for logging
  • Issue-6268 - Fixed: Remove shared editor libraries
  • Issue-6276 - Fixed: Update iOS sdk
  • Issue-6289 - Fixed: Copy node flipbook animation when cloning
  • Issue-6296 - Fixed: Replace socket select() with poll()
  • Issue-6301 - Fixed: Rebuilt luajit for ios simulator
  • Issue-6302 - Fixed: Removed duplicate symbol for iOS in glfw library
  • Issue-6306 - Fixed: Use dmVMath instead of Vectormath::Aos
  • Issue-6307 - Fixed: Fix ANR: SCREEN_OFF when android.app.NativeActivity.unloadNativeCode
  • Issue-6308 - Fixed: Use unicode string for the window title on Windows
  • Issue-6310 - Fixed: Save generated manifest keys and load keys from project options if specified
  • Issue-6313 - Fixed: Update opening of OpenGL 3.1 compat mode window
  • Issue-6317 - Fixed: Custom iterator for properties in label component. Add text field.
  • Issue-6318 - Fixed: Fixed API ref for set_maskbit() and updated examples
  • Issue-6321 - Fixed: Fix profiler scope in gui
  • Issue-6326 - Fixed: Ignore autobuilding for cubemaps
  • Issue-6329 - Fixed: Fix order of tilegrid physics setup
  • Issue-6330 - Fixed: Use 3 channels for DF font only if blur for shadow > 0
  • Issue-6331 - Fixed: Fix for unicode window title not being null terminated
  • Issue-6334 - Fixed: Docs: Updated clang dependency link
  • Issue-6342 - Fixed: Create WebGL 1.0 context on iOS < 15.2 (fix crash when game hangs on start).
  • Issue-6333 - Fixed: Crash in ParticleFX Assertion failed: size <= Capacity()
  • Issue-6351 - Fixed: Patch reported system name for iPads running OS version 15+

Editor

  • Issue-6338 - Fixed: Removed Sign iOS App menu option
22 Likes

Beta updated with one more fix for: 1 and 2

7 Likes

WOW! Great release. Thank you guys.

3 Likes

Android Bundle cannot be built in beta: I get the error Failed creating Android Application Bundle. So with any project: examples, new ones.

OS: Windows 11

3 Likes

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.

22 Likes

We’ve fixed the issue and a new beta version should be available in about 30 minutes.

3 Likes

It is! The things you explained is much more useful to understand the changelog. Earlier I went to PR’s to see concrete changes :slight_smile:

10 Likes

Thank you for the detailed explanation. Very helpful.

3 Likes

We’ve fixed the issue and a new beta version should be available in about 30 minutes.

Thank you. Everything works =)

2 Likes

Thank you. Very helpful and convenient. :+1:

3 Likes

We’ve included a fix for the reported system_name in sys.get_sys_info() for iPads running iOS 15+. These devices reported “iPadOS” as system name. The system_name field will once again report “iPhone OS” for all iOS devices (phones and tablets regardless of iOS version).

Note: The purpose of the system_name field is to provide a simple way of figuring out which platform your game is running on and as such it must return consistent results.

4 Likes