Google Summer of Code 2014 results

During the summer three students have worked on Worldforge as part of Google Summer of Code. With this year’s program now coming to a close we would like to highlight these three students and the work they’ve done.

Céline Noël, Smartbody integration in Ember

Céline has been working on integrating the Smartbody system into Ember. Smartbody is a comprehensive system for simulating human behaviour, with all of the subtle body movements that natural motion entails.

Since Smartbody is such a large system, and deals with so many different facets of human motion, a large part of the work done by Céline involved integration with Ember on the code level. Once this was done further work was done with modifying the Ember structure so that human entities use Smartbody for their underlying animations and movement.

The work can be seen on Github. It’s not merged into Ember master proper yet as there are some outstanding issues, but will be during the coming months.

Péter Szücs, Android support for Ember

Péter has been working on adding support for Android to Ember. This work has mainly involved getting the whole Worldforge stack to build for Android, and then adding support for multi touch to Ember.

The main difficulty initially was getting the Worldforge stack to build for Android, using the existing Autoconf build system. Péter has done changes to most of the Worldforge libraries, as well as to the Hammer build tool. The Hammer build tool now has built in support for cross platform builds, and will setup an Android toolchain by itself.

We’re not yet where we can provide Android builds of Ember, but expect this to happen during the nearest months. Keep an eye on this space for more announcements ragarding Android support. The coming weeks we’ll start moving Péter’s work into the main repositories.

Yaroslav Taben, Cyphesis Entity filters

Yaroslav has been working on adding entity filtering to Cyphesis. This project is a little harder to explain for someone who haven’t worked with Cyphesis, but it can basically be described as “functional filtering of entities using a query language”. This is very useful for things like the AI code, since world authors then can more easily write rules for entity behaviour using a query like language.

The areas where Yaroslav mainly worked were both with defining the rules for the query language, and implementing this in an efficient way in the code. We used a iterative process for the language definition, where we during the summer tried out various syntaxes until we found one that fit our specific use case better.

The code can be seen on Github and we plan to start integrating it into Cyphesis within the coming weeks.

All of the students worked hard during the summer, and produced excellent results. As before we’re very happy with the program, and would like to thank Google for providing us with this opportunity.