As many of you may know, Cemetech has long been a staunch supporter of Blockland, then TBM, and now the project alternately known as FreeBuild and The Builders' Game (TBG). We currently have 2 active developers, elfprince13 and CyberPrime. They've been putting sporadic effort into the project for quite a few months, but over the past two weeks they have stepped up development. Expect progress, particularly after weekends; they also would like any proficient C++/TorqueScript coders to let them know if said coders would be interested in helping out. At some point Freebuild/TBG will need some mappers, vehicle scripts, and artists, but they'll let us know when they get to that stage.

Several things remain before a playable demo will be released::: Finish separating datablocks from other code and placing each datablock in it's own file in the dynload directory hierarchy using specific naming scheme for maximum reusability and so that only datablocks which are specifically asked for are loaded. This is a long and tedious job, and community volunteers would be more than welcome. Please post here if you would like to help and we will get you set up with instructions.

:: Finish the preliminary master server, authentication, and chat integration with Cemetech, and the fallbacks for LAN play or when Cemetech is down. This is nearly done, and in fact the PHP side of things is complete and we just need to finish making changes to allow Torque to take advantage of these features.

:: Adding the 3D previews to the inventory, and to the player selection gui.

:: Finish the mod-loading interface. CyberPrime has taken command of this side of things, and the GUI is functional. We still need to write the package-stack magic to make it possible to load and unload these without restarting the engine. If there is any portion of the code, or functionality that our modding community (looking at the TOB guys here) expects to interact with or would like more modular for easier modification of specific functionalities, please let us know so we can break large chunks of code down to make overriding or extending specific features more modular.

:: Relatedly, finish the GameMode interface programming interface and modify the Create + Join Server GUIs to include the new features. This will allow the modding community to design games and in-game rulesets and behaviors for specific maps or types of games. Examples include: Racing, Deathmatch, Sandbox, Capture the Flag, Tag, Flight-Sim, etc. We have modified the map naming scheme to go along with the 3 modes which we plan on writing ourselves. Map artists should follow this naming scheme for new maps + game modes. BL- maps are for building, DM- maps are for death matching/fighting type games modes, and RC maps are for racing. Expect Sandbox and Deathmatch rulesets to be ready for an initial release.

:: Finish prettying up the GUI. When elfprince13 restarted the engine programming with TGE 1.5, we lost much of the "pretty factor" that Gobbles had put into the early alphas. We still have the artwork for these, but elfprince need to change a couple rendering things to make the new engine support the button style we'd like.

:: Get a working build process for OS X, Windows and Linux. Write now OS X is working the best. Windows was working but broke when support for libcurl was added. Linux is largely untested though I have gotten it to at least compile. elfprince13 plans on moving the Windows build process to use the mingw tools so that he only has to worry about writing GCC-friendly code, and not worry about maintaining compatibility with another compiler (VC++).

Long term plans (stuff that needs to be done before TBG is "done"):

:: LDraw support. The plans for this are in the works, the first step is writing an LDraw parser + renderer in C++ or lifting a functioning one from an existing open source project. The current preference (for expediency) is for the latter, however it depends on the licensing of whatever open source LDraw projects exist. When this phase of the project is complete existing models will largely be deprecated in favor of .mpd. This will allow us a much broader Lego community base and a much larger part library. When this happens, we encourage community members who wish to write scripts to convert old TBM .save files into the new format to do so.

:: Object management. This is perhaps the single most key performance issue plaguing our game, and it is the highest priority beyond getting an initial playable demo. The plans for handling this are pretty much set. The code is not. Being licensed for the TGE means that we will have access to the GG forums and their expertise to assist in this endeavor.

:: Goodies. Turrets, fxLights, etc. Better AI and camera controls.

:: Community features. Model sharing and mod database.

:: Dependency checking for mods + auto-update.

:: A track-based (train and monorail) vehicle support system. Kerm is the main point-man for this one.

That's pretty much it. One last thing. Some of you may be surprised, some may not, but the official name for TBG is actually FreeBuild (The Builder's Game being a subtitle). Here's some eye candy to go along (click for full version). Notice both the program icon in the dock, and the side of the blimp.

I should have been more specific....I meant the download when we actually make the release, however I will quote the full info here, so you can have a general idea of what will need to happen.

forartists.txt wrote:

FOR ARTISTS
===========

As many of you know, trying to port a terrain map from one
mod directory to another in Torque can be a bit of a hassle,
involving the world editor and texture painter, which take a
little bit more time than is necessary. Exacerbating
this is the fact the The Builder's Game uses a slightly different
directory structure than is typical with most Torque games, in
order to improve organization. We ask that while your mission
files (*.mis) should still be placed under the
core/data/missions/ directory as is usual, your mission previews
should be placed in core/data/missions/previews and be in a 4:3
aspect ratio, no larger than 1024*768 and no smaller than 320*240.
We ask that all heightmapped terrains (*.ter) be placed in the same
directory as your terrain textures. This should be
core/data/terrains/YourName or core/data/terrains/YourName/YourMap.
If you choose to use terrain textures created by someone else, you
should make sure those textures are also redistributed, IN THEIR
ORIGINAL DIRECTORY, with your map (make sure you are allowed to do
this with the specific textures you are using), to ensure that all
users will be able to enjoy your creation.

To expedite the process of porting your map to TBG, we have a
created a script that will automatically change your heightmapped
terrain to use the correct path for its textures. To use this script
start up a server running your map, with the fixer mod enabled. To do this, use the Mod's dialog accessible from the main menu, or run TBG with -mod fixer or add the single line "fixer" (without the quotes) to your mods/modload.dyn file. Next, press F11 to launch the
World Editor. Now press tilde (~) to open your console.
In the console type the following and press enter.
showTerrainPath();

you should see output which vaguely resembles the following:
core/data/terrains/Chris/tbm/data/terrains/Chris/grass42
core/data/terrains/Chris/tbm/data/terrains/Chris/grass5
core/data/terrains/Chris/tbm/data/terrains/Chris/rock_02

with more or fewer lines full depending on your map. the correct
directory for those textures is actually core/data/terrains/Chris.
This means we want to replace the first part of the path
"core/data/terrains/Chris/tbm" with "core." To do this, you would
type the following and press enter.
fixTerrainPath("core/data/terrains/Chris/tbm", "core");
Your screen may blink a couple of times or your mouse my lock up
for a second or two. Wait this out, you should see output that
resembles the following:
Fixing 8 materials
core/data/terrains/Chris/grass42
core/data/terrains/Chris/grass5
core/data/terrains/Chris/rock_02

Congratulations! your map has been patched. You can now press
tilde again to exit the console, and then F11 to exit the World
Editor GUI. Your terrain was automatically saved after the last
part of the script, so there is no need to the save the whole
mission using the File menu.

You should also be aware that datablocks should be separated from the rest of your mission/any scripts that you write, however we haven't settled on a final directory structure for storing datablocks, so that information isn't included yet.

[edit]
The second-to-last piece necessary for totally dynamic weapon and mod selection is now in place. The initCanvas() and the top level main.cs have been altered to support completely reloading the game without the need to exit. All that remains is coding the functions to support loading datablocks on demand.

Last edited by elfprince13 on 11 Sep 2009 03:29:06 pm; edited 1 time in total

KermMartian wrote:

:: Get a working build process for OS X, Windows and Linux. Write now OS X is working the best. Windows was working but broke when support for libcurl was added. Linux is largely untested though I have gotten it to at least compile. elfprince13 plans on moving the Windows build process to use the mingw tools so that he only has to worry about writing GCC-friendly code, and not worry about maintaining compatibility with another compiler (VC++).

Status update: OS X + Windows are now online with the libcurl friendly build and the md5 console functions. I did have to go back to using VC++ after I figured out the root of the problem (and a solution), however progress has been made on mingw (GCC + Windows) + Linux builds. In either case I can build both debug and release builds of Torque, but only the debug version will load all the way to the gui. The release builds hang intermediately on a black console.

But for now at least, things are settled. I'm still looking for volunteers to help with datablock migration.

Once you are I'll run you through the process. And Kerm's absolutely correct. It's not hard, just tedious.

btw, my AIM sn is bombadilsboots. On MSN it's elfprince13@gmail.com. Add me on one of those, because it makes coordination a whole lot easier.

[edit]
Thankyouthankyouthankyouthankyou. This particular part of the project has been about 30% just because whenever I sit down to work I'd much rather work on one of the more technically interesting problems instead of cut-pasting data.

:: Finish prettying up the GUI. When elfprince13 restarted the engine programming with TGE 1.5, we lost much of the "pretty factor" that Gobbles had put into the early alphas. We still have the artwork for these, but elfprince need to change a couple rendering things to make the new engine support the button style we'd like.

Just need to add some polish to the chat hud, and those little power-bar thingies at the bottom left.

Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.