I ported the universal animation system and other stuff from to the new jMonkeyEngine3. As a side effect you can have a demo
and the source of a model assembler as seen on the goblins in the december post. Next thing to come is a swarm based companion
for a player on a navmesh, wandering around the l2j universe. And of course further porting the l2j client to jme3, which has come quite far but took a month (in duration, not work time).

December 29, 2010

Again took some time to update the site, this time I am going to blame MS Xbox for the delay as I have replayed all Halo games made so far and some other distractions in team games.
Besides that I have finished the implementation of a high level universal animation system. As you can see it is working with the part set
npc system I implemented for the lineage 2 client. The model you can see on the left is one from the Medieval Total War II Mod Call to Warhammer. If you have not heard of it before, please
have a look at it. It is absolutely a must have if you like warhammer and have Medieval II.
The animation system is based on the Game AI Wisdom 2 Animation Selection article by Chris Heckers. An example for the JMonkeyengine is included, an
here is a video based on the JME 2 ninja model being used by the animation system.
The source including JME 2 example is provided for free. The original system by Chris Hecker was designed for Unreal II, which some might still know. If not, try to get a copy, should not be that expensive anymore these days.

Another thing I have been working on is a unit assembler based on model parts for the fast creation of diverse npc instances.
Models are defined by providing several possible parts for one location. On instantiation the parts are chosen randomly to create a variety of different looks as you can see on the goblins in the picture on the left. The current implementation
does not use any material variations, which are also planned (differently shades and colors for each instance). The source is currently not open but will be made available as soon as the next iteration of the lineage 2 client is completed.
Currently I am working on a clean setup a l2j instance and a startup configuration based on a single area. This should give me a starting point from which to expand. It is less coding than configuration, and database manipulation.
I am working on a master database from which the client and the server database will be based on. As I have seen from the past posts here it should be available in the mid of the year I guess..

May 11, 2010

It has been a long time since I updated the front page which could give the impression I have been not doing anything in the past months.
I tried to expand the navmesh demo with swarm/boids movement on it and the result was quite satisfying. The swarms were again modified to support
formations which you can see on the picture on the left.

Video 1 shows a formation starting at one point and following the leader.
The next step was the transition between navmeshes. The implementation uses a rectangular area where navmeshes are contained. Each edge midpoint lying on the
edge of the recagular area is treated as a transition cell to the next navigation mesh. To simplify the algorithm the mid point of an edge is nominated to a border point
which is the favored point for path finding. Once an entity crosses the edge the nav mesh of the next region is used and path planning to the desired point is recalculated.
Video 2 shows a unit in formation doing a nav mesh transition. The green points indicate the navmesh transition points.
Currently I am not sure if I wil keep the transition points or switch to edges, which would require changes or an extra layer in the quite modular navigation code. The
source of the multi navmesh solution is currently not available as it might be subject to change.

The next thing I have been doing was a multithreaded asset loader. Currently it loads terrain tiles for a dynamic terrain traversal demo where terrain patches are precached on approach and detached on leave.
The intention behind the asset loader is a central point for asynchronous asset management (sometimes called streaming). Assets are loaded by asset requests during runtime and attach themself to the scene as soon as they are available.
Assets are used as the base for audio/video instances in the final render environment. The source is currently not available (subject to change too).

With the different components in place I started to look around for a java backend for an online game. I had a look at different game server concepts and finally settled on l2j.
A java based open source game server, currently used soley for playing Lineage 2 as a free shard. The source is clean, well structured, capable of
handling large scale scenarios, lacks a bit on documentation in detail but has
a very lively community and several years in development. In addition it can be quite easily customized, which makes it simple to start a clean non lineage 2 based gameplay.

So as a proof of concept I wrote a JME based client for L2J which handles login, char creation, walking around the world. The last months I cleaned up my code of the client and made it available.
As the vision of my game and Lineage 2 do have things in common (which rpg does not need an inventory, a chat screen, an shortcut panel, etc.?), I decided to make the parts which do not make my game
unique freely available. You can have a look at the currently available l2j client (distributable and source) in the JME section.

If you are a friend of board games have a look at vassalengine.com, it's a java based customizable board game engine, with several free to play games. I succeeded in customizing it to be a warhammer tabletop node campaign tool. If you have time have a look. It's free too.

Something missing? Mail to

2009-06-01 WoW Importer for Max

The World of Warcraft tool for 3D Studio has been updated. It now converts model files from WoW Client version 2.x (upto 2.7) and displays correct animations for multi mesh models. The script can be found here....

2007-03-07 nGUI explained

If you ever wanted some more details on the nebula2 nGUI System you can find it in the nGUI System article.