Plan for David "Fulcrum" Wyand
by David Wyand · 09/16/2005 (1:16 pm) · 54 comments
Welcome to the second in a series of frequently infrequent talks about Torque Constructor. This is a continuation of my blog/.plan here. You may also want to read Matt's .plan here.
What is Torque Constructor
Torque Constructor is a .map (as in the .map file format) editing and .dif (the Torque interior file format) producing program being developed primarily by Matt Fairfax and myself under the direction of GarageGames. You may have seen the Development Snapshot of the Day posted back in March where the project was first announced. If you're familiar with programs like Valve's Hammer, with a smattering of traditional 3D apps such as NewTek's LightWave or Luxology's Modo, then you'll understand Constructor.
What I will NOT talk about
OK, let's get this out of the way up front. In this Deconstructing Constructor series I'll not be discussing release dates or pricing in these little talks. Some of you may jump up and down and wave your arms demanding this information, but all you'll get are funny looks. I'm the developer and not the publisher, so I cannot provide this information. I hope we'll not have to speak of this again. Please, don't make me get Pat's knife wielding monkey. :o)
Discussion: Opening Reference Shapes
There are many times when it is useful to have a reference to a game's character or vehicle shape when building your maps. I've often seen it asked in the forums just how big Torque's player is in mapping/texture units so that the artist may build a doorway. And Tim Aste has built a brush the size of a standard player to use as a reference in his Content Pack Combo #2.
But what if your player is not a standard size? And what about vehicles? Wouldn't it be great if you could just load in your DTS files directly and build your map around them? Please oh please, someone help us! :o)
Voila:
Mr. Torque Orc in from of Tim Aste's bombed out 1-story building from his Content Pack 2
Larger version
Constructor allows you to open any DTS file -- known as a Shape in Constructor -- which you may place within your scene. All of the brush transform tools (rotate, translate, etc) work with Shapes so you're free to locate them where they make sense. I should also note that you're not required to have your DTS files in a particular place for Constructor to load them.
Discussion: Texture Browser
When it comes time to organize your textures to be applied to your brushes, open up the Texture Browser.
Constructor's Texture Browser showing images under the TGEDemo album
Constructor allows you to organize your textures into albums. An album may be named whatever you'd like, and there's no restriction on the number of textures that may be within it. You are also not forced to place the textures into a particular directory for the Texture Browser to operate, and an album may contain textures from different directories.
When you click on an album name in the left list, all of the textures in that album are displayed. To change the current texture, you would select one of the textures and click on the Make Active button. Of course you may also change the current texture outside of the Texture Browser using the drop-down menus on the Materials Form.
Discussion: Lifting Textures
It is great to be able to select a texture from the Browser or from some popup menu listing a bunch of textures. But wouldn't it be handy to be able to lift a texture off of one brush, make it the current texture, and then apply it to another brush? Constructor allows you to do this directly from the Materials Form:
Lifting a texture from a brush that has multiple textures applied.
With a brush selected (or many brushes selected), clicking on the Lift popup provides a list of all textures being used by that brush. Select one of them and now it's the current texture. Select a new brush and then click on the Apply button and as you'd expect, that brush is now using that texture. Woohoo!
Discussion: Building a Cube
While cubes are not glamorous, they are often the starting point for a lot of maps. Rather than discuss what goes into making a cube, I thought I'd put together a video. Here's the highlights:
- Zoom into one view which changes the displayed grid size
- Size a cube in the orthographic and perspective views making use of the snap-to-grid
- Use the Texture Browser to select a texture and apply it to the cube
- Rescale the texture to fit the cube
- Make the cube into a permanent brush and deactivate the Cube tool
Show me the movie! (6MB)
Discussion: Building a Cylinder
A cylinder in Constructor shares many of the same parameters with the cube: position, size, texture scaling and texture offset. It also has some unique parameters: number of sides and texture wrapping.
The number of sides for a cylinder may range from 3 to any number you'd like. Want to have a cylinder with 400 sides? Go for it. There are of course some practical limitations, one being how small (width) each side is. If they become too small due to a large number of sides on a cylinder with a tiny radius, they succumb to floating-point rounding and wink out of existence, creating an invalid brush. In this case, no harm done -- you'd just have to adjust the number of sides.
Now one advantage to Constructor is that you get to see the results of your parameter changes in real time. No dragging out a bounding box and blindly typing in the number of sides here. You're able to make sure that the cylinder is perfect before committing it to the map.
The other special parameter for cylinders is texture wrapping. Here you have two options:
- Have the texture map itself to each face individually. Essentially making the uv coordinates align with the edge of each face.
- Have the texture wrap itself around the cylinder, repeating as necessary. This is like a label wrapped around a soup can.
OK, enough talk. Time for the movie! Here's the highlights:
- Create and size a cylinder in multiple views with snap-to-grid turned on
- Change the number of sides and notice the texture being mapped to each face
- Change the texture to wrap around the cylinder
- Select a different axis for the cylinder to be created along
- Make the cylinder into a permanent brush but without deselecting the tool
- Make two more cylinders
- Select all of the cylinders and move them in the scene
- Change the texture of one of the cylinders using the Texture Browser
Show me the movie! (14MB)
Until next time, enjoy!
- LightWave Dave
What is Torque Constructor
Torque Constructor is a .map (as in the .map file format) editing and .dif (the Torque interior file format) producing program being developed primarily by Matt Fairfax and myself under the direction of GarageGames. You may have seen the Development Snapshot of the Day posted back in March where the project was first announced. If you're familiar with programs like Valve's Hammer, with a smattering of traditional 3D apps such as NewTek's LightWave or Luxology's Modo, then you'll understand Constructor.
What I will NOT talk about
OK, let's get this out of the way up front. In this Deconstructing Constructor series I'll not be discussing release dates or pricing in these little talks. Some of you may jump up and down and wave your arms demanding this information, but all you'll get are funny looks. I'm the developer and not the publisher, so I cannot provide this information. I hope we'll not have to speak of this again. Please, don't make me get Pat's knife wielding monkey. :o)
Discussion: Opening Reference Shapes
There are many times when it is useful to have a reference to a game's character or vehicle shape when building your maps. I've often seen it asked in the forums just how big Torque's player is in mapping/texture units so that the artist may build a doorway. And Tim Aste has built a brush the size of a standard player to use as a reference in his Content Pack Combo #2.
But what if your player is not a standard size? And what about vehicles? Wouldn't it be great if you could just load in your DTS files directly and build your map around them? Please oh please, someone help us! :o)
Voila:
Mr. Torque Orc in from of Tim Aste's bombed out 1-story building from his Content Pack 2Larger version
Constructor allows you to open any DTS file -- known as a Shape in Constructor -- which you may place within your scene. All of the brush transform tools (rotate, translate, etc) work with Shapes so you're free to locate them where they make sense. I should also note that you're not required to have your DTS files in a particular place for Constructor to load them.
Discussion: Texture Browser
When it comes time to organize your textures to be applied to your brushes, open up the Texture Browser.
Constructor's Texture Browser showing images under the TGEDemo albumConstructor allows you to organize your textures into albums. An album may be named whatever you'd like, and there's no restriction on the number of textures that may be within it. You are also not forced to place the textures into a particular directory for the Texture Browser to operate, and an album may contain textures from different directories.
When you click on an album name in the left list, all of the textures in that album are displayed. To change the current texture, you would select one of the textures and click on the Make Active button. Of course you may also change the current texture outside of the Texture Browser using the drop-down menus on the Materials Form.
Discussion: Lifting Textures
It is great to be able to select a texture from the Browser or from some popup menu listing a bunch of textures. But wouldn't it be handy to be able to lift a texture off of one brush, make it the current texture, and then apply it to another brush? Constructor allows you to do this directly from the Materials Form:
Lifting a texture from a brush that has multiple textures applied.With a brush selected (or many brushes selected), clicking on the Lift popup provides a list of all textures being used by that brush. Select one of them and now it's the current texture. Select a new brush and then click on the Apply button and as you'd expect, that brush is now using that texture. Woohoo!
Discussion: Building a Cube
While cubes are not glamorous, they are often the starting point for a lot of maps. Rather than discuss what goes into making a cube, I thought I'd put together a video. Here's the highlights:
- Zoom into one view which changes the displayed grid size
- Size a cube in the orthographic and perspective views making use of the snap-to-grid
- Use the Texture Browser to select a texture and apply it to the cube
- Rescale the texture to fit the cube
- Make the cube into a permanent brush and deactivate the Cube tool
Show me the movie! (6MB)Discussion: Building a Cylinder
A cylinder in Constructor shares many of the same parameters with the cube: position, size, texture scaling and texture offset. It also has some unique parameters: number of sides and texture wrapping.
The number of sides for a cylinder may range from 3 to any number you'd like. Want to have a cylinder with 400 sides? Go for it. There are of course some practical limitations, one being how small (width) each side is. If they become too small due to a large number of sides on a cylinder with a tiny radius, they succumb to floating-point rounding and wink out of existence, creating an invalid brush. In this case, no harm done -- you'd just have to adjust the number of sides.
Now one advantage to Constructor is that you get to see the results of your parameter changes in real time. No dragging out a bounding box and blindly typing in the number of sides here. You're able to make sure that the cylinder is perfect before committing it to the map.
The other special parameter for cylinders is texture wrapping. Here you have two options:
- Have the texture map itself to each face individually. Essentially making the uv coordinates align with the edge of each face.
- Have the texture wrap itself around the cylinder, repeating as necessary. This is like a label wrapped around a soup can.
OK, enough talk. Time for the movie! Here's the highlights:
- Create and size a cylinder in multiple views with snap-to-grid turned on
- Change the number of sides and notice the texture being mapped to each face
- Change the texture to wrap around the cylinder
- Select a different axis for the cylinder to be created along
- Make the cylinder into a permanent brush but without deselecting the tool
- Make two more cylinders
- Select all of the cylinders and move them in the scene
- Change the texture of one of the cylinders using the Texture Browser
Show me the movie! (14MB)Until next time, enjoy!
- LightWave Dave
About the author
A long time Associate of the GarageGames' community and author of the Torque 3D Game Development Cookbook. Buy it today from Packt Publishing!
#2
09/16/2005 (1:30 pm)
Way to go Dave and Matt.
#3
09/16/2005 (1:34 pm)
Look good guys.
#4
09/16/2005 (1:35 pm)
You can load DTS shapes, but when you save the map, and open it in Torque, will the DTS shapes still be in the same place? Cause if so WOOT. if not,eh..
#5
One question: will Constructor have the ability to snap brushes together, similar to the glue command in Quark?
09/16/2005 (1:35 pm)
This will be worth any price you put on it! :) Great work!One question: will Constructor have the ability to snap brushes together, similar to the glue command in Quark?
#6
09/16/2005 (1:39 pm)
Very very awesome! :)
#7
09/16/2005 (1:58 pm)
I second Ryan's question about the DTS shapes and their carry-over into the engine. Everything else is looking great, can't wait to get my hands on it!
#8
09/16/2005 (2:00 pm)
Cant wait to see this bad boy in action at IGC Dave, you and Matt have done a wonderful job thus far and I am sure that we will all get to nag and annoy you about all these little features after your IGC presentation :)
#9
09/16/2005 (2:01 pm)
BTW out of curiousity what are the little boxes with the "?" in Constructor? Are you defining a placement node where you can spawn a particle effect off of much like how a Mount node works in a DTS?
#10
09/16/2005 (2:03 pm)
Great stuff.. I wish the movies where not in mov format.
#11
09/16/2005 (2:05 pm)
Looking great I can't wait for it to come out.
#12
09/16/2005 (2:06 pm)
#13
You can then save the whole thing and drop that into the mission editor without hand-placing those props again that would be Real Nice feature.
"My wallet buying senses are tingling"-JohnH
09/16/2005 (2:11 pm)
With functionality like dropping in DTS objects, Why not drop DTS props straight into your interiors. Plants, desks, chairs, etc.,You can then save the whole thing and drop that into the mission editor without hand-placing those props again that would be Real Nice feature.
"My wallet buying senses are tingling"-JohnH
#14
You know you have the idea of texture albums?
Wouldnt it be really good if you could have all your source textures in a treeview browser (imagine my 13 DVD set of textures across a large tree on my HD), now then you make a map and save it into my games /maps directory?
Well, what would be extra super-duper-neat is that you could add an option like "export to active dif" that copies only the textures used for the given DIF file into the folder used to load the dif? (either parent or whatever).
That means you dont have to spam extra copies of textures and such everywhere... see what I mean?
Also, if you could add an option to do that in batch mode from command line (some command line switch), so that on final production we could have constructor -clean *.dif and it would remove any unused textures from the dif's parent directories for each dif in the directory?
Those kind of game clean up utils would be extra neato :)
Of course it looks excellent too.. cant wait to use it! and I'm sure we'll use it on my game design degree :)
09/16/2005 (2:24 pm)
Hey Dave, whilst reading your plan, I thought of a really nice feature to request...You know you have the idea of texture albums?
Wouldnt it be really good if you could have all your source textures in a treeview browser (imagine my 13 DVD set of textures across a large tree on my HD), now then you make a map and save it into my games /maps directory?
Well, what would be extra super-duper-neat is that you could add an option like "export to active dif" that copies only the textures used for the given DIF file into the folder used to load the dif? (either parent or whatever).
That means you dont have to spam extra copies of textures and such everywhere... see what I mean?
Also, if you could add an option to do that in batch mode from command line (some command line switch), so that on final production we could have constructor -clean *.dif and it would remove any unused textures from the dif's parent directories for each dif in the directory?
Those kind of game clean up utils would be extra neato :)
Of course it looks excellent too.. cant wait to use it! and I'm sure we'll use it on my game design degree :)
#15
Can we have a cylinder path extrude? makes a cylinder that follows a path? That way we could do gas pipes and stuff easily.
09/16/2005 (2:25 pm)
Ooh, another idea!Can we have a cylinder path extrude? makes a cylinder that follows a path? That way we could do gas pipes and stuff easily.
#16
Edit: Like the one Phil mentioned for example.
09/16/2005 (2:47 pm)
One of the reasons I have chosen Quark (so far) as my interior creation tool, was that it has some neat duplicators. Any of those in Constructor sure would be nice :)Edit: Like the one Phil mentioned for example.
#17
Currently the DTS shape loading is for reference only while within Constructor. But boy, it sure would be cool to use Constructor to place your DTS objects and then have it all come into Toruqe wouldn't it? :o)
Unfortunately Toruqe doesn't have a built-in solution for this. So either we work around it (save a .mis file fragment, use special point entities as a reference to later load DTS shapes against, etc.) or we change Torque. We'll choose a direction once we have some more core features in place.
Jacob:
As of this minute there is no brush-to-brush snapping. It is on my list of features to add, but it is unknown if it will make it for a v1.0 release.
Logan:
The boxes with '?' on them are my placeholder's for point entities -- in the case of the image above those are omni lights on the Orc tower. A point entity is represented as a DTS object in the scene, so omni lights will eventually look like light bulbs, spot lights like a stage barn door light, etc. This also opens up the possibility of having a user defined DTS object for a point entity -- see the discussion of placing DTS objects on a map above. :o)
Phil:
Certainly having Constructor automatically move a map's textures to the appropriate directory should be in place. Manually copying textures is annoying and error prone. A batch mode sounds interesting. And as everything in Constructor is done in Torque script -- from loading in a map to exporting a DIF -- I don't see why a plug-in couldn't be built to do what you're after.
Phil and Jacob Again:
There's a bunch of different tools such as duplicators that could be built. But again I don't know what we'll finally have for a v1.0 release. Fortunately all of Constructor's tools (such as the cylinder tool in the movie above) are built using the script-based plug-in system, so there's no reason why these types of tools couldn't be added at any time, or by any one. I will need to add in a nice path builder though, which is on my list.
- LightWave Dave
09/16/2005 (3:16 pm)
Greetings!Currently the DTS shape loading is for reference only while within Constructor. But boy, it sure would be cool to use Constructor to place your DTS objects and then have it all come into Toruqe wouldn't it? :o)
Unfortunately Toruqe doesn't have a built-in solution for this. So either we work around it (save a .mis file fragment, use special point entities as a reference to later load DTS shapes against, etc.) or we change Torque. We'll choose a direction once we have some more core features in place.
Jacob:
As of this minute there is no brush-to-brush snapping. It is on my list of features to add, but it is unknown if it will make it for a v1.0 release.
Logan:
The boxes with '?' on them are my placeholder's for point entities -- in the case of the image above those are omni lights on the Orc tower. A point entity is represented as a DTS object in the scene, so omni lights will eventually look like light bulbs, spot lights like a stage barn door light, etc. This also opens up the possibility of having a user defined DTS object for a point entity -- see the discussion of placing DTS objects on a map above. :o)
Phil:
Certainly having Constructor automatically move a map's textures to the appropriate directory should be in place. Manually copying textures is annoying and error prone. A batch mode sounds interesting. And as everything in Constructor is done in Torque script -- from loading in a map to exporting a DIF -- I don't see why a plug-in couldn't be built to do what you're after.
Phil and Jacob Again:
There's a bunch of different tools such as duplicators that could be built. But again I don't know what we'll finally have for a v1.0 release. Fortunately all of Constructor's tools (such as the cylinder tool in the movie above) are built using the script-based plug-in system, so there's no reason why these types of tools couldn't be added at any time, or by any one. I will need to add in a nice path builder though, which is on my list.
- LightWave Dave
#18
One suggestion (if it's already in, sorry :)):
A couple of the more popular Quake editors had a feature where you could stretch/scale/rotate/fit to face textures on a face directly in the 3D window. Any chance of Constructor doing this?
09/16/2005 (3:29 pm)
Great stuff! Can't wait for this. One suggestion (if it's already in, sorry :)):
A couple of the more popular Quake editors had a feature where you could stretch/scale/rotate/fit to face textures on a face directly in the 3D window. Any chance of Constructor doing this?
#19
I second Rodney's request - Quark has that feature and it has been very helpful for me :)
09/16/2005 (4:06 pm)
Thanks Dave for your response!I second Rodney's request - Quark has that feature and it has been very helpful for me :)
#20
09/16/2005 (6:55 pm)
This product looks better every time I see it. I can't wait, and my VISA is ready. 
Associate David Wyand
Gnometech Inc.
I forgot to mention that the image with the Torque Orc (Fluffy) loaded into Constructor was taken on my Inspiron 9300 at 1440x900. Hence the wide-screen ratio. Constructor lets you fit the interface to nearly any screen size. Wheee!
- LightWave Dave