Beta 0.6.3 released. Important features: improved lighting model, quest editor added, character switching without having to relog, embedded JREs in all server and client downloads, and bug fixes.
Note: due to a small error discovered with the auto updating feature, it is recommended that you download a full server or standalone client update for 0.6.3. This shouldn’t be a regular occurrence going forward, and the auto updating feature will allow for seamless updates in the future.
Improved Lighting Model
Recently, the HTML5 Canvas 2d rendering context spec was updated to support blend modes to be specified in the globalCompositeOperation property.
Lugdunon's previous lighting model was not optimal due the fact that the lighting layer was simply laid on top the game world. This caused a 'washing out' effect with bright, or colored lighting.
Now, the lighting layer can be applied to the game world via a multiply blend operation. This finally creates the effect that was initially planned for when the lighting implementation was first written.
The most exciting new feature is that GMs can now edit every aspect of their world's quests from within the game client itself! The quest editor was designed with extensibility in mind, and new quest requirements, and conditions can be implemented by nodders and will integrate seamlessly with the existing system. A simple form validation system was also included as part of this update, in order to make custom UIs that much easier to implement in the future.
Fast Character Switching
One feature that was sorely needed was the ability to switch characters, or create a new character on a server without having to log out of the server and back in again. This inconvenience is now happily a thing of the past! Simply select the new 'Change Character' option from the options menu to be taken back to the character select screen where you are free to choose an existing character or create a new one.
It became clear this last iteration that most of the issues that end users were experiencing with the new standalone client and server implementations boiled down to java and OS env inconsistencies. In an attempt to reign in the majority of the factors in our control, each client and server download now come pre-packaged with a compatible JRE. While this does increase the size of each of the downloads, it should minimize the amount of issues and with the inclusion of the auto-update feature, future updates should be smaller and easier to apply.
- Fixed an NPE in net.lugdunon.util.FileUtils.getNamespacedProperty(String p, JSONObject o) that was preventing players from properly learning recipes.
- Fixed run.bat file for windows client and server downloads.
- Fixed an issue with the artifact updater not correctly deploying new mod jar to the necessary worlds / campaigns.
- Fixed a path issue with the lugdunon-server windows run.bat file.
- Fixed an issue with process termination that was causing the standalone client to crash each time a player attempted to close the client.
- Fixed scrollbar overlaps in the main UI and the default compendium mod.
Other Changes of Note
- DefaultWorldGen.json now contains an overwrite directive for both etc/quests.json and etc/commands.json. Make sure to update these (by removing the existing ones) if you are running a server!
- Toggle Options Dialog / Clear Target keybinding now also closes dialogs that support onclose().
- Changed the icon for the quests button from a start to an exclamation point.
- CraftItemCommand range check radius increased to 3, up from 2.
- Added -Dno.update flag for both server and client. If this flag is set to true, then no update check is performed.
- Added net.lugdunon.character.Character.MAIL_ATTACHMENTS_SIZE (9).
- Added game.player null check to OOCConsoleCommand, SayConsoleCommand, and YellConsoleCommand commandResponse() function.
- Replaced the 'register' section in the client login dialog with a 'purchase' section.
- net.lugdunon.ui.item.ItemSelectorDialog now supports the inclusion of a filter function that can be used to filter out unwanted items from the selection.
- Added support for initData.showEmpty in net.lugdunon.ui.item.ItemSelectorDialog.init(initData) to the client-side API.
- Added net.lugdunon.ui.item.ItemSelectorDialog.FILTER_SHOW_PLAYER_NON_INSTANCED_ONLY to the client-side API.
- Added net.lugdunon.ui.item.ItemSelectorDialog.FILTER_SHOW_PLAYER_PLACEABLES_ONLY to the client-side API.
- Added String.nlToBr() to the client-side API.
- Added String.brToNl() to the client-side API.
- Added DivHTMLElement.initValidation() to the client-side API.
- Added DivHTMLElement.validate() to the client-side API.
- Added support for client-side validation. This validation works on both input and textarea tags that feature the proper metadata, and is initialized and checked using a containing element's initValidation() and validate() functions.
- Added support for offset.noShim flag in game.showLabel(text,offset).
- game.screenLocationUpdated() will now only call listeners that implement screenLocationUpdated().
- Added exception handling for the game state portion of the game loop. This will allow the game loop to continue functioning even if an error occurs in the current game state's update() or draw() calls.
- net.lugdunon.command.core.console.ConsoleCommand now sets an opCodeAlias command property, before handing control off to the actual console fired command.
- /quit now logs the player out of the server and returns the client to the login screen.
- /logout now logs the player out of the server and returns the client to the login screen.
- /camp now logs the player's character out of the server and returns the client to the character select screen.
- Modified the execution of the client-side net.lugdunon.command.core.LoadCharacterCommand to allow for switching characters while still being logged into a server.
As always, the full change log for 0.6.3 is available here.