Thursday, September 11, 2008

Plexus Introductions

First a thank you to Quin for setting this resource up, hopefully it will turn into something really useful for all of us dabbling in Sauer's source code!

My name is Roy Riggs. I am a member of TEAM CTHULHU a programming team that formed back in the late 1980s when we met while in college while at Purdue. Fresh off William Gibson's teat, we've always this a dream of building cyberspace. Back then it was MUDs, but now the sky is the limit!

Our latest endeavor is a project called Plexus. You could think of it sort of like Sauer in that it's not just a game, but a platform for making games, and once its up and running we hope others will dive in and create their own rulesets. Time will tell.

At this phase in it's life, Plexus is more of a collection of cool features to get our platform up to snuff. Our first release won't really have a game to play other than making and exploring maps made by other people. Probably mind numbingly boring to existing Sauer fans, but you have to start somewhere. Anways, here's some of the things we're going to have. Naturally our code base is open source, zlib license to be exact, so if anything looks to be of interest to your project, feel free to poke around our repository! I'll focus on things that might be of interest to other Sauer modders.

P2P Networking – All information is stored in a cloud. Models, maps, everything. No central server means that there’s no downtime, and no need to worry about which server your friends are on. Uses Free Pastry for communication. Although this is all independent of our Sauer mods, it's a big deal, so I had to mention it!

Socket level control of Sauerbraten - We've spliced in a socket to communicate with Sauer so you can control the engine from any outside application that uses this protocol. We're writing our stuff in Groovy but you could make your own game using Python or what have you. This allows developers to use whatever language they wish.

World of Warcraft style mouse handling - Sauers mouse handling is frightening for anything other than an FPS, so we've reworked it to be exactly like WoW's. You can even orbit the camera around your toon for screenshots. There are still some bugs/quirks with this in edit mode, but in general it makes editing Sauer maps so much easier.

Randomly generated maze maps - Nothing too fancy, but we don't have many artists helping on the project yet so anything that up the appearance of content is good. Our sauer socket protocol has additional functions to allow external creation of maps.
Importing of Dwarf Fortress maps - There's a popular indie game called Dwarf Fortress which uses old school ASCII style maps. We have an importer that can load these maps into Sauer using the same interface as the random maze generation.

Custom models/costumes – I wrote a model importer that imports md2 and md3 models and creates the md3.cfg so you can load them into Sauer. We modded the engine to allow changing player models on the fly.

Feel free to check out our Plexus Blog for updates!

3 comments:

Bill Burdick said...
This comment has been removed by the author.
Bill Burdick said...

We use the cloud for communication in addition to data sharing. Here's more about what we do with the cloud.

Also, here are some more details on our sauer mod.

Bill Burdick
TEAM CTHULHU

Kripken said...

"World of Warcraft style mouse handling [...] There are still some bugs/quirks with this in edit mode"

Hi guys,

I might be able to help with this. I've been looking into doing the same thing with my project (also based on Cube 2), and had what I assume are the exact same problems. What I did was basically two things:

1. Use correct trigonometry so mouse pointing works ok from non-center-of-screen positions
2. Change some Sauer editing code to use camera1 instead of player, i.e., to no longer assume the player and camera are facing the same way

I can go into more detail and/or give you parts of my code, if that can be helpful to you.