Thursday, April 12, 2007
Playing With Torque Constructor: A Quick Take on GarageGames' New Game Development Tool
Torque Constructor was launched to the public a few hours earlier than the previously announced April 9th release date.
Background
Now, my own experience with other Constuctive Solid Geometry (CSG) editors has been limited. I've used QuArK, a variant of WorldGen (I think that was the name) that shipped with Vampire the Masquerade: Redemption, and UnrealEd. And now, I've gotten a couple of hours of playing around with Constructor under my belt. Hardly enough to render a verdict - especially as I am NOT what you'd call a "power user" of any of these tools. I'm still pretty much a beginner, but that never got me to shut up about a subject before, so why start now? So I thought I'd share my experiences.
I have REALLY been looking forward to Constructor. As I've said before my experience with QuArK (Quake Army Knife) has been troublesome. I feel like I've made some level of peace with the editor, but it's strictly a relationship of convenience. I'm not a power-user of that tool, so I've no doubt I've been missing some major conveniences in that package out of sheer ignorance. But I've put hours somewhere in the mid-double-digits into the tool and used it in practice to create real (though not particularly masterful or pretty) levels for Apocalypse Cow.
QuArK is really sharp and useful and capable in some areas, and annoyingly lacking and stupid in others. The interface has always been a little bit clumsy and ... klugey... to me. It might be my ignorance, but managing textures was always a pain in QuArK. And, finally, there was the little matter of setting it up for use with Torque whenever you upgraded to a new version, making sure all the export paths were set properly, and... ugh. And then there were the bugs. The really nasty, I-just-munged-whole-level-lets-restart-without-saving type bugs*. I was never sure if they were because I was doing something wrong, or if it was just one of those issues you just had to learn to avoid.
Torque Constructor: The Good
By comparison, Constructor feels like it has a much more polished interface (I hesitate to call it intuitive... there really is no such thing when dealing with this kind of tool). It is a little less bewildering to a beginner, I think. It's far easier to get into it and start making useful stuff, with a more gentle learning curve. With only about two or three hours of usage, I already felt competent enough to do everything I could do in QuArK (plus a bit more). Of course, it's already set up for Torque. Exporting a DIF file (Torque's proprietary format) is naturally a piece of cake. Constructor allows you to save files in both .MAP format (the text-format standard developed by id Software, used by many similar editors), as well as a new "CSX" format.

I really like the "Free Cam" mode that allows you to fly your camera around the model very freely. The UI layout is also very flexible and easy to configure. While I haven't played with it, Constructor also has the Torque Lighting System built into it, allowing you to see how your creation will look when fully and properly lit. Some really minor but appreciated elements include a grid size scaled more for Torque-sized objects (approximately 2.5 units for the default humanoid character), and the fact that upon loading a large map file, the camera automatically zooms out to encompass the entire level. Small conveniences, but nice. I've got some gargantuan interior levels in Apocalypse Cow, and when I brought them into Torque Constructor for the first time, except for some missing textures I had to correct, they acted as if they belonged there.
Another great option is the ability to bring in Torque models (DTS objects) as reference objects to compare scale.
Constructor also offers several very nice ways of manipulating, slicing, and dicing a brush. From standard CSG subtraction, and making hollow (easily enough done in QuArK as well), there's also the ability to rotate brushes with a fine level of control (down to actually inputting the exact positions and rotation values by hand). Then there's the knife tool, the slice tool, and a clipping tool. Since the knife is one of my most-used tools in Blender, I was pretty excited about this one. I expect these to be pretty handy when developing cave-like levels or levels with more organic topography.Duplication of brushes is easily supported. Creating a spiral staircase is apparently a snap. You can change a particular brush from being a structural element to a detail brush, or collision volume, portal, trigger, or some other type of object by simply clicking a radio button in its properties. Basic Torque entities are supported, including lights, paths, and mirrored surfaces (though that's not entirely functional yet - see below). There are also things like custom workplanes, that allow you to work off-axis, and little convenient tools like automatically dropping the brush (or even a vertex) to the ground.
I haven't touched it yet, but Constructor - as a tool built using Torque - fully supports TorqueScript plug-ins. Adding to the prefab library is also practically trivial. I imagine that within a few weeks, there will be a ton of community-driven support for these features. I understand that there's built-in concavity detection as well, to make finding of bugs a lot easier.
Torque Constructor: The ... Different
Constructor has its own quirks. For example, creating a new brush is a two-step process. First there's "virtually" creating the brush, by "Activating" a primitive. In this state, much about its core geometry can be changed directly (such as, for a cylinder, how many sides it has, or the beveling on a cube). Once satisfied with the brush (or the cloning parameters), you "make" the brush, and it goes from being a virtual brush to a real, in-game brush. At that point, some features of editing it becomes a little less flexible, though you then have tighter control over, say, the actual vertices. . This can be done deliberately by pressing the "Make" or "Make and Continue" buttons, or it may happen if you accidentally click somewhere else in the scene.
Torque Constructor: The Not-So Good
The documentation on Constructor is fairly skeletal at this point, though that will only improve over time. In return, however, we're getting a lot of time from the developers during this first week directly in the forums.
Constructor has some problems with its initial release, which is unfortunate, though not unexpected.
First of all, portals, zones, and mirrors are not scheduled to be supported until version 1.0.1. If you are just doing small buildings, and don't care if (for now) the interiors are lit by sunlight and the outside ambient light, that may not be such a big deal. But if you are doing big larger, Quake-style interior levels mixed with outdoor terrain, this means you have to save your file as a .MAP file, and then bring it back into the CSG modeler you've already been using, and then export it to a DIF file from there. That's not a crippling step - I imagine I will be doing most of my principle modeling in Constructor for here on out, but it's a painful extra step I'd rather not have to deal with.
Another problem is that you cannot rename brushes, or put them in groups like you can in, say, QuArK. Now, you can group them into selection sets --- but that only gets saved out in the .CSX files, not .MAP files. Again, not a big deal, but since I'm having to save these things as .MAP files anyway to get QuArK to export them with portalling information, that's Yet Another Step.
Texture management is pretty straightforward, with a lot of great tools for manipulating the texture coordinates (including some automated UV grids), save one major one - the ability to use the mouse or keyboard to scroll around the texture coordinates directly on a face. This is a real time-saver when trying to line up textures on adjacent brush faces. Trying to fine-tune this by hand was a real pain. I tried using the texture unification, which supposedly makes this a lot easier, but it didn't work well for me. More experimentation will be required here.
There are a lot of other little conveniences that are common enough that they are missed in this package. The lack of automated "snap-to-grid" functionality on vertices, for example (though the ease of manually edit the coordinates directly makes up for it, for me). I also couldn't directly select occluded objects. In QuArK, repeated clicking in the same area would cycle through all brushes under the cursor. In Constructor, as far as I can tell, it involves either selecting it via the perspective view by moving the camera close to it (which is pretty convenient to do, really, thanks to the camera control capability), or hiding all the occluding brushes. Again, not a big deal, but it would be a time saver.
And as usual with a 1.0 release, there are a number of small bugs, performance issues, and the occasional crash that users are discovering. Trying use the area-select tool on the cathedral caused Constructor to hang on me on one system. The cathedral example provided with Constructor is one such example - it's a really big, resource-hoggy extreme, and people are finding a number of issues with it on various systems.
Torque Constructor: Preliminary Verdict
Three hours or so with the tool is hardly enough to say anything definitive about the tool. But I've enjoyed playing with it, and it seems to give me almost all the functionality I've come to depend on in other BSP-style level-building tools. Unfortunately it may be a couple of revisions before I blow QuArK off my system entirely, as there are still some things which it does better than Constructor (or does AT ALL that Constructor doesn't). And it's not a bad tool. But I am going to start moving all of my primary level-building development over to Constructor effective immediately - even in that short time, it's become clear that its easier to use.
At least for me, the non-power user who only pretends to know what he's doing.
But I will appeal to a more experienced authority on this. In the few days Constructor has been out, Adam Wilson managed to figure it out and posted this picture of a church he built with the tool:
He offered no word on how long that took him, and I understand the interior is unfinished. But I'm gonna call Constructor "Very Promising" at this point.Now I just have to get back to coding instead of playing with it...
* UPDATE (7/1/2007) - I was contacted this morning by DanielPharos, currently on the QuArK development team. The latest version I worked with was 6.5 alpha (and much of my experience was with prior versions.) He told me that since QuArK 6.5.0 Beta, they have made great strides in fixing memory leaks and silent access violations. According to him, "I know the older versions of QuArK are really crashy, but in my opinion we've done a major improvement with this new version." Definitely good news!
(Vaguely) related stuff:
* Torque Modeling Tool Available Free Next Week
* Raising a Barn
* A Metric for Scoping Games?
.
Comments:
Links to this post:
<< Home
We've been having problems with it so far...the monastery we created in Quark imports fine into Constructor, but exporting it (even as legacy DIF) creates a DIF that causes the TGE engine to crash.
I hadn't come across a mention of exporting it to MAP, then importing it back into Quark before re-exporting it to DIF, until I saw this. I'll have to give that a try...
I hadn't come across a mention of exporting it to MAP, then importing it back into Quark before re-exporting it to DIF, until I saw this. I'll have to give that a try...
Suckage that the monestary crashes. Contact the GG guys --- they'll probably want to take a look at your model and see if they can find where it crashes. They've got brand-new DIF creation code in Constructor --- it's not a re-write of their old MAP2DIF stuff. So there's bound to be some issues there.
Hopefully version 1.0.1 won't be long in the coming, with some fixes for issues people are running into.
Hopefully version 1.0.1 won't be long in the coming, with some fixes for issues people are running into.
This reminds me a lot of the old Genesis3D GEdit, which was really nice to build levels in.
Since it has Mac compatibility I suspect I'll be using this for future game development endeavours.
FYI, you don't need a license to Torque to download and use it -- just a garagegames.com account.
Since it has Mac compatibility I suspect I'll be using this for future game development endeavours.
FYI, you don't need a license to Torque to download and use it -- just a garagegames.com account.
Correction made, Ravuya, thank you.
Yeah, the interface for Constructor is taking some getting used to, but its not hard. I like it.
Yeah, the interface for Constructor is taking some getting used to, but its not hard. I like it.
I'm having no real problems with Constructor so far, its a great tool, really easy to come to grips with, and I really like the interface. I merged my codebase into 1.5.1 last night, pretty painless (it affects code I never touch anyway :P), my new model warehouse with baked in static meshes works perfectly. Be warned, 2 of the example diffs they include cause the engine to crash, even in a clean 1.5.1 build. But my diffs are working fine.
Matt Fairfax has promised version 1.0.1 in a few weeks, so I have hope there.
The main thing that stands out for me in comparison to Quark is the error handling and lighting. If you mess up a brush, it immediately shows you the offender in red outline. In quark it would be perfectly happy until you tried to export and then you'd have to hunt the problem down. Its nice to know immediately and be able to just hit Undo.
The real time lighting is really nice. Being able to see how your lighting changes will affect your level without having to load up TGE is great. I'm not seeing all those wierd lighting errors that would pop up all the time in Quark. It just works.
Those reference shapes are proving amazingly useful in jusdging scale and suchlike. I really appreciate them when I want to model steps and suchlike.
You don't have snap to grip functionality with vertices, but you can edit the mouse step size, which is practically the same thing. Set it to 0.5 and you will move your vertices in 0.5 increments. Easy.
Beware of the keyboard shortcuts. I use the free cam mode a lot, so I often end up hitting 'W' without holding down the right mouse button, causing it to go into Move Object mode, some other commands don't work in that mode, the first few times I thought CTor had gone wonky.
Matt Fairfax has promised version 1.0.1 in a few weeks, so I have hope there.
The main thing that stands out for me in comparison to Quark is the error handling and lighting. If you mess up a brush, it immediately shows you the offender in red outline. In quark it would be perfectly happy until you tried to export and then you'd have to hunt the problem down. Its nice to know immediately and be able to just hit Undo.
The real time lighting is really nice. Being able to see how your lighting changes will affect your level without having to load up TGE is great. I'm not seeing all those wierd lighting errors that would pop up all the time in Quark. It just works.
Those reference shapes are proving amazingly useful in jusdging scale and suchlike. I really appreciate them when I want to model steps and suchlike.
You don't have snap to grip functionality with vertices, but you can edit the mouse step size, which is practically the same thing. Set it to 0.5 and you will move your vertices in 0.5 increments. Easy.
Beware of the keyboard shortcuts. I use the free cam mode a lot, so I often end up hitting 'W' without holding down the right mouse button, causing it to go into Move Object mode, some other commands don't work in that mode, the first few times I thought CTor had gone wonky.
Looks like we've got things straightened out. Seemed to be an issue with the portals we were using; after deleting them the monastery is exporting fine now from Constructor.
I'm looking forward to seeing what we can accomplish with it.
I'm looking forward to seeing what we can accomplish with it.
Gareth - Thank you for the tips. I've been running into that problem too, as I almost always use Free Cam mode, and I keep forgetting to hold down on the mouse button before hitting W.
Really - it doesn't seem like there's anything you can do in Constructor that you couldn't already do in Quark (in fact, until 1.0.1, it's the opposite), but it really does feel like it'll be possible to do things easier and more quickly.
And that's the whole point of a tool, right?
Really - it doesn't seem like there's anything you can do in Constructor that you couldn't already do in Quark (in fact, until 1.0.1, it's the opposite), but it really does feel like it'll be possible to do things easier and more quickly.
And that's the whole point of a tool, right?
I'm still a Blender addict. Torque Constructor is generally for "interiors": places where you can walk around (think: Complex collision heirarchies).
Blender is more for standard 3D objects and characters.
Blender is more for standard 3D objects and characters.
After using Hammer, I'm finding that with Constructor things are generally more tedious. Instead of 5 tools to deal with, now there are like 10 tools to accomplish the same thing. And some of them are completely hidden until you find the right window and tab to click on. And there are some aspects of the interface that are completely non-intuitive to me.
However, with that said, over-all, Constructor is definitely the more robust tool. And although I'm not liking the interface right now, maybe with time I can get used to it. *shrug*
However, with that said, over-all, Constructor is definitely the more robust tool. And although I'm not liking the interface right now, maybe with time I can get used to it. *shrug*
Yeah, the problem with Hammer is kind of a subtle one... the license still explicitly forbids its use in creating commercial games, IIRC.
Not like I expect the license police to come after you if you use it, or anything, but I like to make sure my t's are crossed and my i's dotted.
Post a Comment
Not like I expect the license police to come after you if you use it, or anything, but I like to make sure my t's are crossed and my i's dotted.
Links to this post:
<< Home


