Wall Worm 4, 3ds Max 2020 and Black Mesa News
It's hard to imagine that Wall Worm turns nine years old this year. With literally thousands of items in the changelog during that time, it's been a productive ride. I hadn't shared a general progress report since 2016, so I felt it's time for an update. I want to share some news as well as my perspective in general on 3ds Max, Wall Worm, Black Mesa and Source.
The last several months have been very active for Wall Worm. First, Autodesk did a feature on my work developing Wall Worm: From Black Sheep to Black Mesa and Beyond. If that wasn't a big enough honor, Autodesk also flew me out to San Francisco in March to be the keynote speaker on 3ds Max at the annual Game Developers Conference (GDC).
In the video below, you will see Nic Fonta showing off new features in 3ds Max 2020 and a new public roadmap for Max. I presented the second part of the talk with a brief history of myself, Wall Worm, Black Mesa and building pipelines in 3ds Max. It was the first time I did any public speaking, providing me a rare and wonderful learning experience. Next time I promise to spend more time looking at the audience and smiling.
While at GDC I made several new friends and shared many insightful conversations with several Max developers and others passionate about 3ds Max. It was a wonderful experience.
3ds Max 2020 is Here
If you didn't see yet, 3ds Max 2020 is now here. As you may know, Autodesk has changed their release schedule for Max features and updates. This means that every few months we are getting an update that includes new features, enhancements and fixes--making the annual release more of a milestone marker than a final destination.
Some people in the community may not have gotten this memo as they only saw the feature list of Max 2020 in isolation from the cumulative updates that came since 3ds Max 2019 was released. Not knowing this update schedule, some on the Internet have expressed disappointment. I, however, am very pleased with the ramped up development of Max that started with the release of 3ds Max 2016. The Max development team has beefed up recently and it shows with a solid stream of updates in recent years. With Max 2020 specifically, there are important speed improvements in the UI (some with animation playback, some with Editable Poly object), OSL Additions (new maps and accurate viewport display), Chamfer modifier overhaul and more.
One important change with 2020 (that started last year with 2019) is how many 3rd-party plugins were already recompiled and released within a couple weeks of the 2020 release. Wall Worm was among them--and Autodesk has been actively courting 3rd-party developers to coax them into supporting new versions as early as possible.
I've had the opportunity to spend time talking with Autodesk developers and have been lucky to forge many bonds in the Max ecosystem. I cannot share any specific details that are not public, but I can share my own experience and outlooks and impressions. I do know that the Max development team has been beefing up, that stability and performance have returned to the core of the Max credo, and modernizing Max's UI and Core is a continued area of focus.
Crashes, for me, have become an extreme rarity. Laurent Gibert, Product Manager for 3ds Max, said, "2019 is the most stable version on record for us, looking at our internal metrics." It's too early to speak for 2020 yet, but it looks good with the continuing dedication to stability.
While I foresee challenges as younger generations have more alternatives to Max than in the past, I think that Autodesk realizes this and is taking this into account. How they proceed is left to be seen. But I think they have learned from the past and are gearing up for a strong future. Evidence of that is in the growing development team of Max along with a new Public Roadmap that we've really never gotten regarding the future of 3ds Max.
Max is here to stay and continue to defend the top spot in the DCC arena.
Wall Worm Version 4
Since joining Black Mesa, a lot of my work has been focused on the productivity tools in Wall Worm. Many of the newer tools have been directly related to collaborations with or suggestions from other Black Mesa artists like Brian Dale, Matt Young and Adam Engels (among others). Very often I try to turn around updates to our team within minutes or hours of a request. This has been my modus operandi since 2015.
That doesn't mean broader features and fixes haven't gone into WW. One of the things I tried to focus on this last year was improving the user experience. If you haven't used Wall Worm in a while, I think you will be pleasantly surprised with version 4. An overview of some of the development follows. See the changelog for a full list of details.
New Icons and Toolbars
Phase 1 of the user experience updates included adding toolbars and icons for many of the functions in WW. I had tried to encourage the WW community to help with making the icons for a few years since icon design isn't my forte; failing that, I finally started the icons myself (after a candid conversation with young and talented environment artist Matt Young); the new toolbars are now available in the latest versions of WW for Max 2017+; I did not add them to older versions of Max because the older icon formats are not as simple to set up and maintain in older Max versions.
Not doing this earlier may have been a mistake on my part--since the responses for this have been far more positive than I had expected. Many users have explained to me that they are so happy about the "new" tools represented by the toolbar icons--but the reality is that almost all of them were already available in the WW menus (most for several years). What this mainly taught me is how important it is for me to try and adapt to users whenever possible rather than just try to force the users to adapt to WW. There are certainly many workflows in WW that the general user base should adapt to for the sake of efficiency and productivity--but not meeting WW users halfway with better UI paths was definitely a flaw it took me a while to admit. My justification for so long was that it just wasn't worth my time compared to other features.
Installers and Updaters
Phase 2 of the recent updates (culminating in Wall Worm v4 in March 2019) was the introduction of actual installers and updaters. While I still offer the legacy install path via a zip file, the preferred and most obvious to find method on the site is now an executable installer. I did this for a few reasons. One reason was that it's been a request for quite some time. The main reason, however, was to reduce the amount of time dealing with customer support. The new installer reduces installation steps.
With the new installer comes an automatic updater that will check for updates every week (or other frequencies of the user's choice) that will download and install the updates automatically if the user chooses to get the update. This is important for me because I've often found that users do not habitually keep their software up-to-date. I wanted to minimize the amount of time a user asks for help on a bug that was fixed 18 months ago or requests a "new" feature that was already added two years ago--this happens a lot more than you might expect.
Deeper Integration and New Tools
One of the main points of focus has been to add a deeper integration with the Max UI with features/functions that are native in Source. These include bringing in classic Source functions available inside Hammer or giving more access to Source data inside Max. A few of the tools added recently are detailed below:
Traditionally, Wall Worm would always equate Hammer's visgroups to Max's Layers. This makes a lot of sense. However, there are some limitations because in Hammer an object can belong to multiple visgroups whereas an object can only be part of a single layer in Max. This created challenges for Black Mesa because level designers would often set up specific visgroups inside Hammer that could get out-of-synch with expected views in Max when artists started showing/hiding layers to accomplish environment tasks.
This led me to implement Hammer-like visgroups and autovisgroups inside Wall Worm. While in the process of building the visgroup manager, I realized it was a good opportunity to add scene management tools that were previously unavailable in Hammer's visgroups. Among those are settings to force objects in a visgroup to export visible/hidden regardless of current state in the scene, allow tagging of visgroups to find visgroups by tag, selecting objects in scene through the visgroup manager, and adding notes into visgroups so team members can communicate visgroup purpose inside scenes.
One of the main complaints with level designers tiptoeing into 3ds Max is that the game's existing materials were not easily accessible. Having a VMT (Material) browser was high on the list of requests for the last few years. Until recently I just pointed users to the existing Material Library Generator; with a push to make the transition from Hammer to Max easier, I finally built a VMT browser.
As with the Visgroup Manager, I decided to improve on the capability of the VMT Browser in WW from the Hammer version. The WW VMT Browser allows the user to generate new WorldVertexTransition (2-way-blends) as well as Lightmapped_4Wayblend (4-way-blends) from existing materials.
MDL Loader Updates
In a recent update to Wall Worm, the MDL Loader now has the ability to import Bones that are properly skinned to a model. This was added to the functions that import MDL to a new WWMT Helper (for 3ds Max 2018+). Sequence imports will follow next. After that I hope to add Flex-to-Morpher imports. My end-goal with this is to derive all available data from the MDL to bring all information into Max.
New Modifiers, Geometry Classes and Texture Support
For the most part when I create new plugins and modifiers, they become commercial add ons. However, I have added several new free ones that come directly with Wall Worm. A few added since the last major news update:
- PFM Texture Support to load/save PFM files in Max (2015+)
- RandomElements Modifier to randomize positions/scales/uvs by element (Max 2016 SP2+)
- Bounding Cull Modifier to slice an object by the extents of another object in the scene (Max 2016 SP2+)
- BorderSpline spline object to procedurally generate splines form open borders of Editable Poly objects (Max 2016 SP2+)
- Displacement Proxy geometry class that generates a mesh from all scene displacements (even from XRef Scenes) to allow access to geometry for Forest Pack or other utilities.
One of the biggest challenges I've faced over the years is educating users on using 3ds Max and Wall Worm. The majority of people who start using Wall Worm already have a long history of experience with Hammer or other legacy Source tools and workflows. It's not easy to get users to change their habits. The challenge for me is to find ways to help users understand that using Max and Wall Worm as your pipeline really requires a transformation of perspective that is often nothing like traditional methods--the vast bulk of tutorials and documentation across the Internet is "wrong" from a Wall Worm perspective--and vice versa.
Attacking this front has been a multidimensional feat. Part of that has been to align/utilize traditional concepts as much as I can (for example, adding some tools/icons from Hammer into the recent Icon updates). For the rest that doesn't have a foot in traditional Source design, I've tried to create more paths for users to learn. Among these are:
- Hammered to the Max: This started as an E-Book but is also now a website with a condensed overview and introduction into Max/WW.
- Discord Channel: There is now a Discord channel where other WW users and myself are actively helping out with answering questions for new users.
- Documentation: I've been trying to fit in updates to the docs that have fallen out-of-date. An example of a new document to help teams work together: Anatomy of a Design Team.
- Updated Videos: For some users, videos are the best resource. When time permits, I've been adding them to the Youtube channel. Below are two recent additions.
Coming in line with an Autodesk initiative to improve security for Max users, I adopted some new standards with all tools released by Wall Worm. At this time, all scripts and executables provided by Wall Worm include digital signatures. This helps users ensure that the files they get are the ones I provided. All Wall Worm files are now signed by Wall Worm LLC. For more information, see Security and Protecting Against Malicious Code.
Black Mesa and Source
The official release of Black Mesa (including all the chapters in Xen) is slated to come out soon. I'm expecting the public to finally get to play the final chapters in the very near future. It's an exciting time for the team--some of the guys have been involved for well over a decade! See the May News Release.
In recent months we released a trailer in anticipation of the release:
The release of Black Mesa will mark a milestone not just for the team, but for the Source Engine as well. There still are some games coming out on Source. But the Source era itself is really in its twilight. Unreal and Unity have proven themselves to be more dedicated to making game development fun, simple and powerful. While using tools like Wall Worm and Max have made the world building part of Source easier and more robust, the limitations of the ancient tech in Source (klunky shaders, limited 32-bit tools, etc) just don't make it viable for very many new projects. Maybe Source 2 will have something to say about that in the future, but at this moment that is hard to predict.
In any event, it's been an honor participating at different levels in the Source Engine cosmos. I hope that all the work that has gone into the development of Black Mesa resonates with cascading enjoyment across the Half-Life universe.
With that, I'll end this post and let you get on with your adventures--I know you were supposed to be in the test chamber half an hour ago.