Tech Progress Update!

Hey everybody! We wanted to give a more comprehensive update on the tech status for TUG, and to give an idea of what we are working on here. There was no patch update this week; we have a bunch of things in the works that are pretty big system changes and we want to make sure they are solid before releasing to the public.

Here’s the quick break down of things we are working on:

Networking / Multiplayer

Scripting Sub-system

Character and AI Systems

Terrain Modification Tools

MULTIPLAYER

The multiplayer and networking is going better than expected. But it’s not without its challenges. For the most part, we have converted the game over to server/client architecture; so even playing single player, you are silently running a server and connected to yourself in the background. That piece alone has affected almost everything in the game, most specifically generation, game objects, and save/load has been totally redone to go through server/client architecture. Now locally, we have been able to connect and play several people on a server in the office; but as of yet it’s untested for remote non-LAN connections. I hope to get to that soon.

All that said, the next patch for TUG will likely not have full multiplayer, but will instead remain single player, but going through the server/client architecture. We need some testing done to make sure single player is still solid, so we will likely have one patch cycle where TUG is set up in that way.

Hopefully after that, the following patch would actually contain multiplayer connectivity and playing together in creative mode!

The UI for multiplayer of course will need to be there. That’s the other piece that will need to be completed before full blown multiplayer support can be released. We don’t want you guys to have to type in an IP address by hand in a config file just to connect to a server!

SCRIPTING SUB-SYSTEM

We recently merged our scripting subsystem into the main code branch. We plan on using LUA for game scripting. We aren't currently using it for anything; but we can now make plans that incorporate it. One of the first things that will probably be handed off to LUA control is the UI system; but that will probably be a few patches away…

The scripting system will also be the basis for the next part we are making progress on, characters and AI.

CHARACTERS AND AI

These two are major systems. They are still somewhat in their infancy; but they are making rapid progress. The Seedling (which will be the player character representation for multiplayer) is coming along; he has been created, and has a few animations. I plan on hooking him up this week to see him in game, and maybe have him represent other players in multiplayer.

The next steps for these systems will be getting a basic mob in the game, probably an animal or something where we can start toying with primitive AI systems and getting the LUA pipeline firmly implemented to support anything we want to do with AI. That’s also a few patches away still…
We also continue to work on the first person hands. We are getting item attachments going so you can hold items and tools. That should be done shortly.

TERRAIN MODIFICATION TOOLS

This is where some of the fun begins. We are working on a host of fancy terrain modification tools, which will include things like chiseling, sculpting, odd shape blocks, etc. It will add a general “not just cubes anymore” feeling to TUG. To support this however, we have to create some new code architecture to make this work, and more importantly, work across a network. This will also require some UI support; the “tools bar” (above the hotbar) will probably go away and be replaced by something different when we figure out the design for how a whole host of modification tools will fit into the picture. Some of the inputs and controls for these tools will be reworked as well to make all the tools feel consistent and hopefully intuitive.

FUTURE STUFF

One of the future things we'd like to tackle is redoing the way the data files are set up for TUG. Currently for modders that gameobjects.txt file is becoming a monster and not at all fun to deal with. We would like to break up that file into folders. Basically each object would be in it's own folder, with its own assets (or referencing shared assets) and a small text snippet to define the object. That way if a modder makes a Lamp, all they would have to do is put all their stuff into a Lamp folder and send that out to people. They would just drop that in their mods folder and poof, TUG would have the lamp object ready to go. No more more messing with and merging data into a big bulky data file.

And as always we are working on optimization of the engine, trying to get the memory footprint down, and squashing any memory leaks.

So there ya have it, a little taste of what's going on behind the scenes for the tech team!