Announcing WorkAdventure v1.12

What's New in WorkAdventure 1.12?
First of all, let me tell you this v1.12 release is HUGE!
It has been 3 months since the last release, and the team and community have been doing an amazing work at improving and extending WorkAdventure.
There are very visible changes, like a super sleek new design, or a brand new user list! π€©
There is also under the hood a number of improvements that will make WorkAdventure more powerful and more interoperable in the future.
Let's review those new features together π
Summary
6. More scripting API features
7. Edit your OpenID settings in the "developers section"
9. Metadata in the scripting API
11. Faster startup on big maps
13. Compatibility with Tiled 1.9
Announcing WorkAdventure v1.12
A brand new design! π¨
Good bye pixels, hello rounded corners!
This release marks the beginning of a new default theme for WorkAdventure.
The redesign is not completely finished so you will still find a few pixelated icons and popups, but in the coming releases, those will be replaced by the new design.
For those of you that are pixel lovers, I want to say I understand (I also deeply love the pixelated design). But the new design allows us to cram more information in a single page, and that was much needed for the upcoming chat system!
And don't worry, the world itself will stay in your beloved 2D pixelated universe, only the UI elements are sleeker!
A big thanks to Benedicte and Hugo for their work on this redesign. β€οΈ
A reusable design πͺ
The new design is now using Tailwind CSS and will soon be exported in a dedicated NPM package. This means anyone will be able to easily use the new design to create interfaces that blend seemlessly into WorkAdventure!
So if you are developing maps with a lot of scripting, additional cowebsites that open, etc..., it will be easy for you to provide a feeling of continuity between WorkAdventure and the extensions you build!
A new user list π
You can now view the list of all users connected to your world (and you can walk to them automatically), thanks to the new user list!
This means you will no longer need to wander through the maps to find your beloved colleagues or friends! A quick look at the user list and you will know if the user is here. You can also directly walk to him/her in a single click!
But wait, there is more! π
An improved chat system π¬
The user list will be the basis of completely revamped chat system in the upcoming versions.
You will notice that the chat system has already been migrated to the new design.
You are now notified when someone is chatting with you with a new "chat notification sound". Also, when someone is in the process of typing a message, you are notified too.
But this is just the beginning.
In the future, the chat system will expand up to the point where it can replace a Slack or Discord channel! And the real beauty is how it works behind the scene! β¨
To track the availability of the users and the chat messages, we are using a XMPP server (Ejabberd). If you have never heard about XMPP, this is a federated protocol for building messaging applications.
This is a strategic move for WorkAdventure because this will allow us to interact with all the XMPP ecosystem in the future!
Just imagine. You are out of office. A colleague needs to talk to you. She clicks your user name, you are offline. She writes a quick message. On your phone, you get a notification through your XMPP messaging client.
You read the message and with a click, decide to connect to WorkAdventure to chat with her. This is the future we envision and where we are headed.
Β
In the upcoming versions, and thanks to this integration with an XMPP server, you will also be able to:
π create special zones that will allow you to enter in a chat room
π add friends
π create private "teams"
π connect to the chat system without going through WorkAdventure
π build a federated multiverse of WorkAdventure servers (!)
Player variables πΉ
This is a major new feature from the scripting API. It is now possible to attach and save variables per player. Previously, variables were attached to a map. Now, you can create variables attached to a given user.
Β This can be very useful in a number of situations.
Β π If you build a game, you can track the score of a user, or you can build an inventory system easily
π If you build a waiting room, you can attach the arrival time of each user to the user itself
π ...
Β
Player variables can be:
π persisted or transient (persisted variables are stored in MongoDB for connected users and LocalStorage for anonymous users)
π public or private (public variables can be read by other players)
π attached to a room or to a world (variables attached to a world will be available in all the rooms of this world)
Β
Additionally, the new `WA.players` object will allow you to track players around you in real-time using the scripting API.
Β In the end, you will be able to create new advanced behaviors based on the presence of players around you!
More scripting API features π€©
The scripting API continues its expansion!
You can now open and close the chat window using the Scripting API. You can force turning off the microphone or the webcam of the current user from the Scripting API.
You can also be notified when a user enters / leaves your bubble.
Β
... and much more! π₯
Edit your OpenID settings in the "developers section"
For those of you that connect WorkAdventure to a single-sign on server, a brand new section in the developer settings (in the admin dashboard) allows you to set up a connection to your OpenID connect provided all by yourself!
Translations π
Our community rocks and keeps providing (and kindly updating) the translations in many languages.
For the v1.12, we welcome the Brazilian Portuguese translation, thanks to @MaximilianoVeiga! β€οΈ
Metadata in the scripting API π£
If you have implemented your own Admin API, you can now send any data from the admin to the Scriting API, thanks to the new notion of "metadata".
In the future, we will use those metadata to send data related to the user, like the list of NFTs the user has (if the user did connected with its Metamask wallet).
Start / Exit areas πͺ
The new "area" objects (that supersedes layers) can now be used as start and exit positions.
Faster startup on big maps πΊ
Thanks to an optimized collision grid generation, big maps should now be faster to load in WorkAdventure (especially on low-end hardware like phones)
A better code π§βπ»
Behind the scene, we keep striving for a robust and clean code. This release is no exception and brings its bunch of improvements regarding end-to-end tests, linting, openId connection, library upgrades, optimized and faster builds, etc...
Compatibility with Tiled 1.9 π€ΈββοΈ
The format of JSON maps changed in Tiled 1.9. Maps generated with Tiled 1.9 were not fully compatible with WorkAdventure before 1.12.
This version of WorkAdventure brings compatibility with Tiled 1.9 while keeping compatibility with older Tiled versions.
Easier network setup π
For big corporations that have protected networks, we are happy to now offer a list of fixed IP addresses that they can whitelist to allow smooth WorkAdventure integration.
They are listed in the brand new "Preparing your network" page: https://workadventu.re/admin-guide/preparing-your-network.
Updated Woka administration page π§π½
The user experience of the "Woka" page in the administration panel has been improved!
To conclude ...
A big thanks goes to the community. For this release, we've had 4 first-time committers!Β β€οΈ
If you want more details, you can check the release notes: https://github.com/thecodingmachine/workadventure/releases/tag/v1.12.0