Home > Blog >

Wall Worm: Work Flows and Other Things

Posted Aug 14, 2015
Last Updated Aug 14, 2015

In the last blog post I introduced you to Wall Worm Pro. Since then there have been numerous updates in Wall Worm and Wall Worm Pro to help enhance your Source Engine work flow. I've done my best to  update the documentation and UI tooltips, but it isn't always feasible due to time.

One of the greatest challenges for anyone trying to move to an all-Max pipeline for Source is understanding the start-to-finish process. I cannot impart what I know in a Matrix-style knowledge transfer, but I can record some videos. That's the current video project: Wall Worm Level Design Episodes 1 and 2 are now available on Youtube. These two videos demonstrate setting out the basic world geometry (brushes) with CorVex and then creating Displacements from them to fill up the terrain. The third episode will show how to export all of the models, textures and level.

Enjoy music by my brother Eric Olson in the videos.

http://www.youtube.com/watch?v=5on5u4nMzzQ

http://www.youtube.com/watch?v=cC56uKp0ODk

At the end of video 2, I'd spent around 8 hours on the scene (apart from the skeleton model, which I'd made a couple years ago).

Introducing PropLine

I was just preparing for adding rocks, rubble and walkways to the level in those videos when I decided that there needs to be a faster/cooler way to distribute the props along the walkways than just dropping them on or even using Object Paint. Although Object Paint is one of my favorite tools in Max, I just wanted to be able to do things a little more efficiently and consistently. My first thought was to use RailClone. The problem was that RailClone is not really great for re-using props (as I wasn't wanting to create new geometry but re-use prop models along paths so that the exported scene would reuse the static props). And that planted the seed for PropLine. PropLine is kind of like the spacing tool in Max mixed with the Boolean compound object... and kind of like RailClone. But it's none of the above.

So as is my habit over the last few years, my level got put on hold as I built a tool to make something in it easier to do. The next video in the series linked above will also include examples of using PropLine. Until then, here are a couple generic videos on PropLine:

http://www.youtube.com/watch?v=OlqZBAR4Y_w

http://www.youtube.com/watch?v=9T0FViR1JcE

The Texturing Work Flow

Since the introduction of Wall Worm Pro, the texturing work flow has been gradually changing. In the last couple of weeks we finally got around to consolidating the way the new texture exporting and materials work across the board. For a while there was some inconsistencies with brush materials and brush UVs when using the new WW Pro texture properties. Those bugs are now fixed.

With the new WW Pro textures, you can create materials/textures for your brushes using any Max texture node (not just bitmaps). One of the coolest aspects of this is being able to use Substance maps for your materials. See the documentation on Advanced Texture Controls which were just updated with some information on brush textures as well as gamma correction.

http://www.youtube.com/watch?v=a6pXGCoMbVE

Notable New Features in Wall Worm

Below is a quick list of new features since the last blog.

  • Nem's VTFCmd now included with WW Pro. Vtex is not longer needed when WW Pro is installed.
  • WWMT now exports Goldsource models if the global setting is set to Goldsource.
  • Sky Writer now exports to TGA to gfx/env when global setting is Goldsource.
  • Added skinned model support to Goldsource SMDs.
  • New Macroscript “Sew Selected Vertices” for editable poly and editable mesh nodes.
  • Added support for displacements to use actual brushes instead of generated brushes (requested by Black Mesa team.)
  • Entities now allow you to get/set Hammer-style rotation values. This means you can enter a Hammer Angle into the entity parameters and the node will rotate in Max coordinates respectively.
  • Light entities now allow setting the color brightness explicitly instead of being a result of multiplying the light's multiplier value and the VMF Exporter's light multiplier.
  • More...

Notable Bug Fixes and Changes

There have been a lot of bug fixes over the last several months. Luckily more users are providing me with bug reports than was normal in years past. Please remember to send me a bug report if you run into a problem. I am obsessive about keeping Wall Worm running smoothly; if you encounter a problem then it's unlikely that I know about the error—send me a report and sample scene if possible.

  • WW Pro SMD/VTA/DMX exporter would experience an increasing slowness when exporting models with higher and higher tri-count and the exporter was set to use explicit normals. This bug is fixed and using explicit normals is now fast and efficient.
  • VMF Importer has been updated to import much more quickly than in past and should no longer have the strange “Unknown System Exception” error.
  • VMF Importer now imports output data correctly (previously it was failing to import any output correctly that had a blank value). This bug was only noticeable in some outputs and was hard to notice because the output seemed to exist in Max—but one of the values was undefined and hence the VMF exporter would not re-export those outputs.
  • VMF Exporter code has been updated to create cleaner output along with more truncated values (for example, UV values between -0.001 and 0.001 are all set as 0, which reduces the texinfo data in the BSP.)
  • VMF Exporter was applying incorrect UV/Material to some materials on non-concave brushes in WW Pro.
  • Many fixes to bugs in the QC/SMD importer/exporter that were reported by users.
  • Many updates/fixes across all WW tools, including PropLine, CorVex, WW Pro, WW, ShellVex and more.
  • More...

A little tip about Wall Worm and addressing bugs. One of the things that Wall Worm does in functions that can be slow is turn off many of the Max UI and systems that can slow down Max. This is because there are some functions in MAXScript that are tied to the 3ds Max User Interface—and every time MAXScript interacts with the Max UI, there is a drastic slowdown. So in those instances, Wall Worm essentially turns off the UI. This can cause a problem if there is an uncaught exception... because when that happens Wall Worm never runs the code to turn the UI back on. As such, if you encounter this, don't panic; instead, click Wall Worm > Wall Worm Utilities > Unfreeze UI. And then immediately hit F11, copy the contents and email the error to me.

The Failed Level Design Contest

In the last blog I announced the Wall Worm level design contest. Long story short: it bombed. No maps were made and finished. There was some interest, but there was the repeated explanation that users don't really understand the WW/Max workflow for levels. That is part of what spurred me to start the videos linked at the top of this post.

I have not given up on this adventure. I've been in talks with several external entities on co-sponsoring a contest. I have two notable plugin developers giving away expensive plugin prizes to winners. But I'm going to rethink the rules/conditions and get more educational material out. Please feel free to discuss your ideas on a WW Level design contest on the WW forums.

Conclusion

Thank you all for inspiring me with your creativity, excitement and energy. I wish I could do more to keep the docs up-to-date, make more videos and address every feature request that comes in. I try my best. Please forgive me when the docs don't keep pace with the tools.

As always, stay creative and feel free to share your ideas and thoughts any time.