Defold 1.2.181 BETA

Defold 1.2.181 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 http://d.defold.com/beta/

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

Release notes

In this version we’ve set the supported OpenGL version to 3.1+ (previously 3.3) for Linux and Windows. Note that this version is for the engine, not the editor.
Hopefully, this will improve the support for some users having issues.

For Android, the build server now also uses d8 instead of the old dx command. This should be both a little bit faster, and also produce a smaller .dex file.

We’ve also optimized the font renderer which will be good for the more text heavy projects.

Another great optimization is for the mesh components. They will no longer upload their vertex buffer each frame, but only if the buffer is modified. The Native Extension api got the new dmBuffer::GetCOntentVersion()https://defold.com/ref/alpha/dmBuffer/#dmBuffer::GetContentVersion:type-version) and dmBuffer::UpdateContent.

Native extensions

We are currently working on a long running task on adding pipeline extensions.
As part of that, we’ve added two more apis to our dmSDK:

The component API will let you create a new component type, with the same life cycle functions as our in game component types.
To register such a type, you’ll also need to pair it with a resource type.

Note: We haven’t started documenting these yet, but we’ll do that as the task progresses.
In the meantime, you can look how we use these apis in the engine at
res_script.cpp and gameobject_comp.cpp

Work In Progress

As mentioned, this is part of a long running task, and we might need to change the api’s somewhat in the near future, although it’s not very likely as these are old api’s that we’ve used internally.

Engine

  • Issue-5010 - Fixed: Fixed crash issue with lingering http request at shutdown
  • Issue-5167 - Fixed: Fixed allocation when doing a reassignment of a mesh
  • Issue-5167 - Fixed: Mesh components can share vertex buffers
  • Issue-5313 - Fixed: Don’t upload font vertex buffer unless it has changed
  • Issue-5313 - Fixed: Only upload font vertex buffer data at the end of a draw command
  • Issue-5506 - Fixed: Http requests now prioritize max-age over ETag
  • Issue-5585 - Fixed: Updated the COMPLYING_WITH_LICENSES.md document
  • Issue-5615 - Fixed: Reset the frametime when coming back from iconified state to avoid a large delta time
  • Issue-5617 - Fixed: dmengine now supports -v and --verbose
  • Issue-5624 - Fixed: iOS: Enable codesign for dynamic frameworks.
  • Issue-5627 - Fixed: Use OpenGL 3.1+ on desktop
  • Issue-5640 - Fixed: Fix zero size canvas when open game in separate Chrome tab.
  • Issue-5644 - Fixed: Fix for large first dt when using variable dt
  • Issue-5655 - Fixed: Alignment fix for Basis Universal on non desktop platforms
  • Issue-5659 - Fixed: Improve require() parsing
  • Issue-5669 - Fixed: Http request settings now work on each individual request
  • Issue-5671 - Fixed: Close http request connection after the request timed out
  • Issue-8 - Fixed: Android: Added support for the d8 tool on the build server
  • Issue-5605 - ADDED: NE: Add resource api to dmSDK
  • Issue-4885 - Added: NE: Added component sdk

Editor:

  • Issue-551 - Fixed: Fixed dialog layout when deleting multiple files
  • Issue-5091 - Fixed: Ignore Mouse 4/5 buttons in editor
  • Issue-5665 - Fixed: Add basic authorization from userinfo in build server url

Update 2021-03-26:

  • Issue-5678 - Fixed: Readded dithering to 16bpp image formats
  • Issue-5639 - Fixed: Added support for BC7 textures on HTML5

Update 2021-04-06:

  • Reverted back to use Android build tools 29.0.3, since the update caused at least two regressions. We’ll delay the release for a day or two so you all can help test/reverify that is works as expected.
23 Likes

I am getting this error in the editor console using .181 beta on Windows 10.

ERROR:DLIB: Trying to cache an entry with no tag and max-age set to 0

I’m guessing it’s because of this change? The error message doesn’t appear using older editor versions.

Can this be safely ignored?

When does this happen? When you download something using http.request()

Yes that seems to be the case. Upon further investigation, I get the error in these cases:

  1. Calling http.request directly when loading an external image
  2. Initial websocket connection (I am using colyseus)
  3. Google Analytics extension when calling .screenview or .event methods (which likely call http.request too).

Thanks. The error can be ignored, but we should probably remove the log.

What happens is that the client receives a 200 OK response from the server and tries to cache the response, but the response does not include an ETag and no Cache-Control: max-age= response header.

1 Like

There should be no http cache involved in WebSocket connections.

Tracked by this issue: https://github.com/defold/defold/issues/5685

Thanks on improving font resources/rendering! Awesome to see optimizations like this.

3 Likes

Hi guys, currently, I’m testing v1.2.181 on MacBook Pro M1. I’m building sample mobile application and it works fine, but when I connect my android phone and try to build it, I got the errors:

WARNING:DLIB: Profiler Resource.LoadResource took 3.030 seconds
WARNING:DLIB: Profiler Resource.Get took 3.098 seconds
WARNING:DLIB: Profiler Resource.Get took 3.199 seconds
WARNING:RESOURCE: Unable to create resource: /builtins/materials/sprite.vpc: FORMAT_ERROR
WARNING:RESOURCE: Unable to create resource: /builtins/materials/sprite.materialc: FORMAT_ERROR
WARNING:RESOURCE: Unable to create resource: /_generated_9e14ceb8.spritec: FORMAT_ERROR
WARNING:DLIB: Profiler Resource.Get took 3.692 seconds
WARNING:RESOURCE: Unable to create resource: /_generated_edc3c8e5.goc: FORMAT_ERROR
WARNING:DLIB: Profiler Resource.Get took 3.884 seconds
ERROR:GAMEOBJECT: Could not instantiate game object from prototype /_generated_edc3c8e5.goc.
WARNING:RESOURCE: Unable to create resource: /main/main.collectionc: FORMAT_ERROR
WARNING:DLIB: Profiler Resource.Get took 3.966 seconds
WARNING:DLIB: Profiler Engine.Init took 4.522 seconds

Interesting. @JCash what do you think this could be?

Are you doing Project->Bundle->Android and install or are you using dmengine.apk from d.defold.com?

I assume you are using the 1.2.181 Beta since you are making a post in this thread? If so, please also make sure your editor is configured to use https://build-stage.defold.com in Preferences.

I’m using dmengine.apk, choose the phone as a target and build.

Yeah, I’m using a different build server. Changing to https://build-stage.defold.com/ doesn’t fix the issue.

Wow guys, sorry, I found the issue. I used old version of dmengine.apk, with a v1.2.181 it works fine. Build from bundle android app works as well. Thank you for help.

2 Likes

Does Defold use the build server to build locally?

We use the build server to build the engine if you have native extensions or an app manifest.

That’s me again with a new issue)

Currently, I’m trying to create a bundle that can be uploaded to the Google Play Store. Tested on a sample Mobile Game project.

I’ve generated Keystore using this command:

keytool -genkey -v -noprompt -dname "CN=John Smith, OU=Area 51, O=US Air Force, L=Unknown, ST=Nevada, C=US" -keystore mykeystore.keystore -storepass 5Up3r_53cR3t -alias myAlias -keyalg RSA -validity 9125

build settings look like this:

the error is

Unable to find keystore alias

Build using bob.jar from http://d.defold.com/beta/ works fine (but only with java for intel architecture)

java -jar ~/Downloads/bob.jar -v --archive --platform=armv7-android --bundle-format=apk --keystore=mykeystore.keystore --keystore-pass=mykeystore.keystore.pass.txt --keystore-alias=myAlias build bundle

I wanted to test (Windows 10), but in live-project with a lot of extenstions, I got the error:

the build server also is updated to https://build-stage.defold.com

extensions:
image

(but in empty project beta works and in 1.2.180 works fine also)

2 Likes

If the project has no native extensions it will use the pre-built engine that ships inside bob.jar and the editor. The problem you got was because you had native extensions and we built a custom engine for you. And apparently there’s some kind of problem either with the combination of extensions you have or just the fact that the build happens on the build server (more likely).

2 Likes

Hi @BunBunBun!

I had missed updating a file with the new transcoder library info.
I’ve now pushed that fix and I’ll update the links (in the other thread) as soon as it has built.

Note: This feature is actually experimental, and not even in on the alpha branch yet, since I need to cleanup some code still

4 Likes

@Mathias_Westerdahl now all works! Thanks for fast fix!

2 Likes