(0.6.2) Status for Monday, March 17, 2014

(0.6.2) Status for Monday, March 17, 2014

Postby lugdunon » Mon Mar 17, 2014 11:11 pm

Finally a proper update! Apologies for being so quiet of late, but this update has been a bit of a bear to tackle so far.

A few interesting points about this update:
  • The standalone client is running well on all three target platforms.
  • Mods are now id'd, versioned, and stored in self-contained jar files for easy distribution, loading, and updating.
  • The lugdunon-server.jar has been slimmed down to from 32mb to 4.8mb (and will get even smaller by release) to also make for easier distribution and updating.

Still to-do before release:
  • Implement a worldgen interface to allow for simple, world creation and configuration using the client to facilitate the process.
  • Allow LAN / WAN server startup and management from the standalone client.
  • Clean up some loose ends with respect to mandatory subsystems, full screen mode, etc.


Now on to the details:


/etc files altered in this update:
  • manifest.json
  • mods.json
  • subsystems.json

Release Notes:
  • Fixed an issue on the client-side that was causing placeable range checks to now wrap. This should fix the issues reported with being unable to access certain workstations in Aunt Peru's house.
  • Added a standalone client (in three flavors: MacOS, Linux, and Windows)! The client is written using JCEF (https://code.google.com/p/javachromiumembedded). The standalone client (and server now) require a 64-bit java 7. This client currently support the playing of Lugdunon in a native environment, free from the need of an html5 complient web browser. Also supported currently is the ability to run a game campaign in standalone, single-player mode, and a multi-player server option for LAN and WAN play is coming soon!
  • Added jquery base64 encoding / decoding lib to client code base.
  • Added support for acquiring the current machine's public IP address (game.client.getPublicIp()).
  • Addition of a standalone mode for both client and server code bases. Checking this on the server can be accomplished by calling Server.isStandalone() and on the client with game.isStandalone().
  • net.lugdunon.states.list.LargeListState.populateListItems() now returns a boolean to indicate the inclusion of an 'add new row' list item.
  • Added net.lugdunon.ui.settingsMenu.settings.standalone.StandaloneClientSetting to the client-side code base. Players will be able to modify certain settings that pertain to standalone mode. Currently supported is the ability to change properties pertaining to the standalone server configuration.
  • Added net.lugdunon.states.list.StandaloneClientOptionsList to the client-side code base. This will appear in lieu of of the server listing when a player logs into the standalone client. The server list will be shown instead in the case of a guest login.
  • Added net.lugdunon.states.list.SinglePlayerOptionsList to the client-side code base. This appears when a player selected 'Singleplayer' from the standalone client options. Here, a player will be able to create new and edit existing single player campaigns.
  • The progress dialog now has its id set using .data() upon creation.
  • The client in standalone mode now features a black background.
  • Added a net.lugdunon.ui.table.Table UI control to the client-side code base. This control supports the use of column models to dictate rendering, filtering, and sorting of data.
  • Added net.lugdunon.ui.SimpleKeyValuePropertyEditor to the client-side code base. This editor leverages the new table control to allow for simple key / value property editing.
  • Added game.getQSParams() to the client-side API. This allows easy access to any query parameters that exist in the query string of the URL used to load the client.
  • Full screen functionality now takes advantage of the system's native full-screen exclusive mode for rendering at full screen when the client is run in standalone mode.
  • Added game.getStandaloneRequest(request,props,callback,context) to the client-side API. This is used for calling any standalone client bridging REST services as a GET request.
  • Calling this on a client that is not currently in standalone mode will have no result.
  • Added game.postStandaloneRequest(request,props,callback,context) to the client-side API. This is used for calling any standalone client bridging REST services as a POST request. Calling this on a client that is not currently in standalone mode will have no result.
  • Added the standalone client java code to the LugdunonServer project. The client code base leverages the server's code as well as including the ability to launch a server instance in a separate process. Also, for means of IPC communication between the standalone client and the chrome (HTML5) client process, and also between the standalone client and the server process, the standalone client maintains two small collections of REST services (one for each bridge). These services reside on the loopback interface on ports 41972, and 41973.
  • The chrome (HTML5) client process is open for remote debugging on the loop interface at 41971.
  • The lugdunon-server.jar is no longer monilithic. All supporting libs are now distributed alongside the server.jar. In addition, all mods are now self contained in their respective jars as well.
  • Added a net.lugdunon.world.defaults.audio mod for containing all of the default sound effects used in Lugdunon.
  • Added a net.lugdunon.world.defaults.audio.music mod for containing the default musical score used in Lugdunon.
  • Moved net.lugdunon.world.environment.calendar.BaseCalendar from the net.lugdunon.world.defaults.environment mod to the main server code where it belongs.
  • net.lugdunon.asset.manager.FileSystemAssetManager is now the default asset manager.
  • net.lugdunon.asset.manager.FileSystemAssetManager has been optimized heavily to leverage the existing cache. This results in a server loading time of < 20 seconds.
  • Mods are now loaded from a jar file at runtime, and placed in the world's ~/mods/ directory. They can be enabled via inclusion in the ~/etc/mods.json file. The mods and jar files are named according to the package that the mod.json manifest file is located.
  • net.lugdunon.manifest.ManifestGenerator now examines the contents of all loaded mod jars in the discovery of client-side assets.
  • Added an id field to net.lugdunon.state.mod.Mod in the server-side API.
  • Added a version field to net.lugdunon.state.mod.Mod in the server-side API.
  • Added net.lugdunon.state.mod.Mod.getModFilePath() to the server-side API.
  • Added net.lugdunon.state.subsystem.Subsystem to the server-side code base.
  • Added net.lugdunon.state.subsystem.Subsystems to the server-side code base.
  • Modified the start() procedure for net.lugdunon.Server to facilitate standalone server mode.
  • Modified the init() procedure for net.lugdunon.state.State to facilitate standalone server mode.
  • Added ~/times.cfg for holding campaign creation, and last accessed times.
  • Added net.lugdunon.state.World.getCreated() to the server-side API.
  • Added net.lugdunon.state.World.getLastAccessed() to the server-side API.
  • Added net.lugdunon.state.World.getLastAccessed(boolean update) to the server-side API.
  • Added net.lugdunon.state.World.getModPath() to the server-side API.
  • Added net.lugdunon.state.World.createDefaultWorldStructure(String worldBase) to the server-side API.
  • Added net.lugdunon.state.World.getSubsystems() to the server-side API.
  • Removed net.lugdunon.state.World.getEnvironment() from the server-side API.
  • Removed net.lugdunon.state.World.getCharacterStatsSystem() from the server-side API.
  • Added net.lugdunon.util.CallService to the server-side code base to facilitate the calling of REST services.
  • Added net.lugdunon.util.IFatalErrorHandler to the server-side code base. Any error that requires the cessation of the server process should call
  • State.instance().getFatalErrorHandler().handleFatalError() from now on.
  • Added net.lugdunon.util.ExitFatalErrorHandler to the server-side code base.
  • Added net.lugdunon.util.FileUtils.setBaseFilePath(String baseFilePath) to the server-side API.
  • Most of net.lugdunon.util.FileUtils' file access methods now support an absolute path mode.
  • Added net.lugdunon.util.LocalNetworkAddressEnumerator to server-side API.
  • Added ~/etc/subsystems.json.

Check out the clients in the Standalone Client Imgur Album.
User avatar
lugdunon
Site Admin
 
Posts: 407
Joined: Tue Nov 05, 2013 5:53 pm

Return to Updates

Who is online

Users browsing this forum: No registered users and 11 guests

cron