Sunday, September 29, 2013

Google Summer of Code 2013 report: Samuel Kogler

The Google Summer of Code 2013 is now complete. Samuel Kogler worked during the summer on improving the terrain rendering component in Ember.
We've previously used a component called the PagedLandscapeSceneManager2 for our terrain rendering. This component however is both unmaintained and has some design deficiencies which makes it ultimately unsuitable for what we want to achieve with the worlds in Worldforge. Samuel's task over the summer has been to bring the newer and more flexible Ogre Terrain Component into Ember.
Apart from the work he's been doing on Ember he's also submitted many changes to Ogre, both to core Ogre functionality and to the aforementioned Terrain Component.
We're very pleased with the work he's done, as well as having to work alongside with him. It's been an absolute joy to see his progress.
Below is his own presentation of the work he's done.
As he's based his work on the not yet released Ogre 1.9 branch we haven't yet merged his code into Ember master; as soon as Ogre 1.9 is released we'll commence that work. Until then his code can be seen over at his Github fork.

Thursday, September 26, 2013

Cyphesis 0.6.1 released



I just recently released Cyphesis 0.6.1. The official announcement is over at the Worldforge site.

This is the first release after I took over from Alistair as maintainer. The focus, as well as with the upcoming Ember release, is fully on implementing features to make it easier for world authors.

This follows the strategy I laid out when taking over maintenance duties in April. In order for Worldforge to attract new developers and world builders we must make it much, much easier to actually create worlds. A crucial part of this is making sure that any changes done on the server actually are persisted between server restarts. Previously this wasn't true, as no "minds" were persisted. That meant that all of the behaviour and knowledge of any creature or character was wiped out when the server shut down.
That of course made it quite hard to iteratively construct an interesting world. Not so anymore!

But not only that; it's now also much easier to both alter and inspect minds. This was also a source of frustration previously, as there was no good way as a world author to interact with the minds. While a crude mechanism for inserting new goals was available, this didn't really cut it. Especially when goals malfunctioned or behaved in non-intuitive ways. Trying to figure out why the woodcutter wouldn't cut down the tree one meter in front of him was nigh impossible.
All of this is now improved as it's now possible to add, delete, alter and inspect goals. The latter feature is a god send when constructing behaviour or implementing new goals, since it's now easy to see exactly what a certain NPC is thinking.

However, in order to fully use these editing feature you must run the latest version of Ember. There will be a 0.7.1 release shortly; we're currently working out some final issues. In the meantime, if you want to try these new features out you should run Ember from the Git master branch, preferably through the Hammer script.

Monday, April 01, 2013

Exporting and importing in Ember

The last couple of weeks I've been working on improved authoring capabilities in Ember and Cyphesis. One of the most important features is the ability to both export and import entities from and into servers.

This allows a world author to save a snapshot of the world to local disk, and later on restoring the world as it was in the snapshot. There are multiple usage scenarios, but one that immediately springs to my mind is the improved ability to perform iterative world editing. By being able to reset the world back to a known working state it's much easier to try out new configurations and behaviour.

All work is currently being done on separate branches of both Ember and Cyphesis. The following video shows the status of this feature some weeks ago; it has progressed even more since.