Workadventure Versions Save

A collaborative web application (virtual office) presented as a 16-bit RPG video game

v1.18.9

2 months ago

v1.18.8

2 months ago

What's Changed

Full Changelog: https://github.com/workadventure/workadventure/compare/v1.18.7...v1.18.8

v1.18.7

2 months ago

v1.18.6

4 months ago

v1.18.5

4 months ago

What's Changed

Full Changelog: https://github.com/workadventure/workadventure/compare/v1.18.4...v1.18.5

v1.18.4

4 months ago

What's Changed

Full Changelog: https://github.com/workadventure/workadventure/compare/v1.18.3...v1.18.4

v1.18.3

4 months ago

Improvements

Bug fixes

Full Changelog: https://github.com/workadventure/workadventure/compare/v1.18.2...v1.18.3

v1.18.2

4 months ago

v1.18.1

5 months ago

What's Changed

Full Changelog: https://github.com/workadventure/workadventure/compare/v1.18.0...v1.18.1

v1.18.0

5 months ago

What's new

Scripting API improvements

New event system

WorkAdventure features a new "event system" that integrates with the scripting API. In the scripting API, until v1.18, the only way to exchange data between players was to use variables. Variables are great to store data. Because you can track in real-time the changes to a variable, the variable system was often abused to send real-time messages between players.

While it did work, it was not the best solution. Variables are not meant to be used as a real-time messaging system. WorkAdventure 1.18 introduces a dedicated event system that is meant to be used for exchanging real-time messages.

The event system can be used from the scripting API to broadcast an event to everybody in a room, or to send an event to a specific player. Additionally, the event system can be used from the RoomAPI (server-side API). From the RoomAPI, you can both send and listen to events.

Sending / receiving messages on behalf of the user

When you are in a bubble, the scripting API can now listen to messages sent to you, and also write messages on your behalf. This means that now, you can indeed code a bot using the scripting API. ... and guess what? There is a new tutorial just for that

Accessing the URL hash from the scripting API

From the scripting API, you can now access the hash using WA.room.hashParameters (the part of the URL after the "#"). This can be pretty useful to craft special links that enable some features in your maps.

Playing a sound to other players in a bubble (beta)

Via the scripting API, you can now play a sound (MP3 or OGG file) to other players that are in the same bubble as you. The sound will appear to originate from the microphone of the user that runs the function. We use this feature associated to a text-to-speech engine to simulate a bot talking to other users in a bubble.

Saving user name and Woka in database

For SAAS users or users using a compatible Admin API, logged users Woka name and Woka character are now stored in the admin side. Previously, those were stored in local storage.

It means that if you connect to WorkAdventure from another computer, your name and Woka character and companion will follow you! Localstorage is still used for users who prefer to connect anonymously.

For developers of Admin APIs, there are 3 new endpoints to be implemented:

  • /api/save-name
  • /api/save-textures
  • /api/save-companion-texture

Noise canceling in Jitsi by default

Noise canceling is now enabled by default in Jitsi (unless you are using Firefox). Why not Firefox? Firefox records audio in stereo and the noise canceling feature does not support stereo input so noise canceling will stay disabled for Firefox users until a proper solution is found.

Screen wake lock

We are now using the screen wake lock API of the browser to prevent your screen lock from starting when you are in the middle of a call.

Improvements

Stability

We now try to display an error message if a video in a bubble should be received, but is not received. This should help users diagnose the issues. Those errors can also be reported to the analytics (Posthog)

#moveTo for area names

You can now put in the URL: "#moveTo=[area_name]" or "#moveTo=[area_id]" and your Woka will automatically walk to this position when entering the map. This was already the case for areas defined in Tiled. It is now also possible for areas defined in the map editor.

Improved low-level Jitsi broadcasting

The technical stack to use Jitsi as a low-level SFU has been heavily refactored. With this refactor, it will be possible, in the future, to replace Jitsi with any other SFU and support many SFUs at once. Those improvements come with a number of bug fixes too.

Headless mode

WorkAdventure can now be started in headless mode. In this mode, the browser will not render the "game" at all. This will be useless for regular users, but can be useful in a number of specific scenarios (this will speed up E2E tests for instance).

Bug fixes

Map editor fixes

For this release, we put a strong focus on the bugfixes of the map editor.

Design

We keep migrating WorkAdventure to the new design system. In this release, screen-sharing gets some additional space (the videos on the right will be smaller so that the screen-sharing can get more screen space). Also, the error dialog gets a redesign!

Translations

Version upgrades

A big one here. We are pretty happy to have contributed a fix in ts-proto that is deployed in this new version of WorkAdventure. Another big upgrade: WorkAdventure now runs on Node 20 instead of Node 18.

Performance

Scrolling performance improved on overcrowded rooms

Some work was done to improve the scrolling performance on maps that are overcrowded (more than 100 users packed in a small area of the map)

Other performance improvements

Deployment

A big thanks to @klauserber for his first contribution. He contributed an alternative installation method for WorkAdventure: a Helm chart!

BREAKING CHANGES

If you are implementing an Admin API, the AdminAPI endpoints have slightly changed.

The most notable changes are in the /api/room/access endpoint:

  • /api/room/access should now always return HTTP 200 codes (even for unauthorized access or room not found).

  • On a success response, you should add the status: "ok" property

  • On an error response, you should add the status: "error" property

  • You must add 2 new properties to the response:

    • isCharacterTexturesValid => if false, the user will be redirected to the character selection screen upon login
    • isCompanionTextureValid => if false, the user will be redirected to the companion selection screen upon login
  • /api/map should now always return HTTP 200 codes (even for unauthorized access or room not found).

Note: always returning an HTTP 200 means we can be sure the endpoint is up and running. If there is an error, we can treat it properly. With an HTTP 404 for instance, it was hard to make the distinction between "the room does not exist" and "the service is not at the requested address".

Minor improvements

Map editor

A number of small quality of life changes have been done on the map editor.

Other refactoring

Bugfixes

New Contributors

Full Changelog: https://github.com/workadventure/workadventure/compare/v1.17.0...v1.18.0