DarkMMO, first client screen shot

Not all that exciting a zone.  No hud or characters yet.

But it shows that my pathway from Aurora tools->server->jme client is working for zone maps :slight_smile:

Here it is with the troll in-world.

He’s in a a neutral position because animation is doing something odd.  Thats next on my list to fix…

Looks good so far!  :slight_smile:

looks good even without lights

Thansk and yeah right now its just geometry and (low-res) textures with an ambient light source.

Lighst should be pretty easy to add when i get to them cause all the data is already in the NWN area info.  Similarly, I just need to write a bit of decompression code for the high res textures.  (Im using the low res ones right now cause they are straight TGA.)

Here's the latest from the DarkMMO project.

I've added animation playback in the Netbeans NWN mdl viewer.

I caught a little video.  Its a bit jerky due to running the capture software along with NB6, but you cna get the general idea.


Nice… You should give us more hints about the actual implementation/development path you are following… While screens are cool, I want to know what is going on behind the scenes!  :wink:


Well, lesee…

Im building off of the NWN tool chain and data structures.  This means you can go into the aurora toolset and build a module (actually many modules but mreo on that below) and then dump it on the server.

Both the client and the server have copies of the NWN resources which include models, textures, animations, tile definitions and so on. 

NWN is a tile based world creator, so each zone has a tile set reference and a rectangular map of tile numbers.

The module file created by the aurora toolset contains a MODULE definition that has multiple AREAS.  Each Area is a Zone and contains tile map, lighting info, placables information and so on.

The server reads the module files and builds a Darkstar internal database of zones where a zone name is module_name.area_name.  (This is done using Darkstar's uatomated persistance of "ManagedObejcts" each module, zone and tile is a managed object in the server) 

This is in preparation for the ability to tie area-transfers between modules. (Something NWN couldnt do but my server will.) 

Each zone managed object contains the tile set reference and the tile map.  When a user enters a zone, a "new zone" command is sent with the basic info on the zone (currently width and height, eventually this will include lights and such.)  Then a "setTile" message is sent with the identity of each tile, its orientation,  and its x,y  in the tile map.  (This allows me to eventually implement on-the-fly tile replacement but for now its just sent  on entry.)  The client looks up each tile in its copy of the NWN resources and builds the scene graph for the zone.

The troll is added by an "addObject" message from the server which again causes the client to look up the creature model in the NWN resources and add it to the world at a specified place as well as associating it with a server-supplied id number for later reference.

Thats as far as Ive gotten so far.  The "conversation" is still evolving.  Next, Im going to add a message that tells the client what obejct ID is unde its control, add the local movement keys, and implement the collision detection.  Each tile has an associated walk mesh.  The collision detection on the client will check it with every "step".  However, for efficieincy, the client will only send movement to the server when one of four thinsg happens:

(1) Movement starts

(2) Movement stops

(3) Character facing changes

(4) Movement has gone in a straight line for more then a set threshold of distance.

This is to cut down the work on the server.  The server sees character movement as line segments between the last movement posted and the current one.  It checks that line segment for any collision along the way and if necessary forceably sets the position of the charcter back to the last legal place  on the line segment.  This collisions tuff is all code we actually wrote for a Java3D based demo 3 years ago that I am going to re-integrate into the current client.

Very interesting topic! I like the idea of a MMO based on NWN resources. :slight_smile:

Very interesting project You wouldn't by any chance happen to have established a website for it already would you?

Not yet.  I'll probably create a google-project for it after JavaOne.

Quick Plug;  This will all be in a book I'm writing… "Writing Massively Multiplayer Games with Project Darkstar."  The DarkMMO will be the last half of the book and will be explained in gory detail in there.

jeffpk said:

Not yet.  I'll probably create a google-project for it after JavaOne.

Quick Plug;  This will all be in a book I'm writing... "Writing Massively Multiplayer Games with Project Darkstar."  The DarkMMO will be the last half of the book and will be explained in gory detail in there.

nice work jeff, ill make sure to pick up the book when its out.  :D

SO here’s a little treat.  I have the troll walking around under user control in the client.  What jerkiness you see is due to the impact of the screen capture software I used.  Its silky smooth when not recording.  Obviously the animations aren’t blended together yet…


New vid, blocking test ina more complex zone


(P.S.  Theres a really cool youtube extension for SMF that lets you embed vids right in your messages.  We’re using it a www.projectdarkstar.com  if you want to see it in action.)

how did u get those models build so fast…2 days u made a town…very impressive.

Ah, grasshopper… it is all in the knowing…

This is the main reason I chose NeverwinterNights as a starting point.  The models are all in the NeverwinterNights resources.  Zones are created in the NWN Aurora editor by plugging "tiles" together that are sort of like lego pieces.  Each 10 foot by 10 foot area of the map is one tile.

This also means I can download new zones incredibly quickly because all I actually push down is a tile map that tells the client how to plug the tiles together.

The great thing about this system is that ANYONE can be a world designer, no 3D art ability necessary!  Its the perfect thing for a community effort.

(In case your wondering, no, I can't legally redistribute the NWN resource sbut if all you want to do is play you can download them from here for free:


If you want to build zones, you can buy NWN which is available really cheap these days.

I AM hoping I can convince Atari to let me ship a copy of the resource with the book.  As I see it, the book is another reason for someone to buy NWN as I wont be shipping the Aurora toolset with it. ;)  )

jeff, is it possible for us to get the source code for this project before the book is released?

i would love to buy the book and study it, but it will probably take a long time before its released. at the same time, i really wanna get my hands on darkstar.

Yes indeed… Im intending an initial release of the code base to date in 6 to 8 weeks.

jeffpk said:

Yes indeed.... Im intending an initial release of the code base to date in 6 to 8 weeks.

thats great. ill be sure to check it out then~



any new on this? How is it come along?

Regards MadLion