Is Developing for the Source Engine Sacrilegious?
When I started delving into the Source Game Engine in 2009, the engine had been out for a few years. Already I heard rumors that Source was an old engine. At the time, I noticed a lot of recommendations to use UDK instead... and CryEngine 3 was creating a lot of buzz. At the time I ignored the dismissal of Source as Valve was still releasing new games on Source—Portal, Left 4 Dead and Left 4 Dead 2 had all come out in 2008-2009.
Fast-forward a few years and I am still a little skeptical of the dismissal predictions targeting Source. Having been actively following the development of Goldsource (Half-Life 1) through the latest iterations of Source (Portal 2, Counter-Strike: Global Offensive) I have come to see Source as something that is here to stay. I'm not saying it doesn't have flaws... but I do dismiss the regular accusation that Source is old; certainly, Source today is not the same thing it was just a couple years ago. It has grown and changed continuously throughout its existence. It's hard to call an evolving engine old.
Yes, there are a lot of technologies missing from Source or general weaknesses; open-world environments are a challenge in Source. Some of the newer engines have more robust default shaders. And, of course, the design tools for Source feel like they were slapped together as Fruedian experiments where the coders had to interpret app specs from inkblot tests thrown together by baboons tripping on acid.
Why am I even talking about this? Mainly because changes in my home life have taken away some of my free time and forced me to evaluate the time I spend on any activity. I've put my time developing Source tools under a microscope. Is it worth it? Financially, it's gone nowhere (rare but welcome donations probably add up to about 1 cent per hour of my time coding and testing Wall Worm... which is not very good in today's economy—and probably any economy that's been around for the last several hundred or thousand years). Professionally, it's also gone nowhere (Valve has never answered a single email I've sent and no serious company has expressed interest in scooping me up).
From a certain perspective, all this time has been a huge waste!
Despite that, I am happy with Source and the time I've put into it. Developing Wall Worm has been creatively rewarding and immensely educational. I've learned more about Source and 3ds Max than I ever would of in the last couple years just making maps in Hammer. And because of Wall Worm, I can be a lot more creative than I was in the past. I get great satisfaction out of building environments in which to play games; I also get great enjoyment from the appreciative emails and posts on the Internet by WW users.
Here are some screen shots of a level that I've been working on for years now. It's a remake of de_sacrelige for Counter-Strike 1.6. (I'm giving this newer one, for CS:GO, the correct name of de_sacrilege.) It's the level in the background of some of my very first videos on using Wall Worm. The level should have been done a long time ago, but I've continued to find myself swept into the development of Wall Worm itself instead of mapping.
When I finally turned my attention back to this map a couple months ago, I was faced with several dilemmas. First was the layout. When I first put the layout together, I was still in a very traditional (and amateur) Source frame of mind that comes from time working in Hammer. The building was (and still is) very blocky. I fretted with starting over, since I have long-since shed my bad Hammer habits, and wanted the building to be more organic.
Then my mind came to a new dilemma, one that never entered my thinking process much when I was mapping for CS 1.6—this building was architecturally impossible. Many aspects of it were simply unrealistic and physically not possible. I started to worry about critic A saying, "That column would crash through the floor!” and critic B saying, "Those walls are too thin to hold up anything above.”
I almost abandoned the level even though my longtime friends kept asking when it would finally be out.
I then reminded myself why I was making levels at all to begin with. It's to unleash some creativity and have fun playing in unique, intriguing and unusual environments. It won't be used by architects and engineers to build a death trap, after all! So flaws aside, I picked up where I left off. And I enlisted my friend Gulliver Thoday (whom you may recognize in Gamebanana, Steam and WW forums as K@rt). Gulli has been actively building models and textures for the map.
Approximately half the modeling is done, though very little of the textures are finished. I haven't done the sky or skybox yet. We've been play-testing the map on the WW game server. Hopefully I'll be able to devote the time to it that I need to get it finished and out soon.
3rd Party Corner
So you know that Wall Worm has been actively developed since late 2010. But since that time, some of the other developers with whom I've associated have gone AWOL. Among them are Cannonfodder, Wunderboy and even Maple 3D (developer of Convexity). In my last blog, I insinuated that Wunderboy would be back with us and that Maple 3D had some updates coming. But, as is often the case, I've been wrong. I've heard nothing from Wunderboy or Maple 3D in months. I personally have beta versions of their latest software that either enhances or addresses bugs... but I am no longer confident about them being released. As mentioned above, I know very well the amount of time and effort that goes into developing these "community” tools—as well as the returns.
I hope Wunderboy and Maple 3D revive their projects. I'm just not holding my breath.
That being said, I do want to point you all to some 3ds Max developers and tools that have been a great resource to me in general. I'd like to promote these guys as much as possible as they have built some really amazing tools:
Kostadin "Miauu” Kotev: Kostadin has not only built some amazing scripts, he has personally helped me solve MAXscript problems as I've developed Wall Worm. For those of you who are level designers, a must-have script he's written is called Work Plane. Get it!
GhostTown is a really cool tool to build cities parametrically. I've been using ghostTown Lite for a while but have recently been using the pro version. If you need complex city scenes for your 3d skybox or 2D sky renders... this is a must-have!
John "Joker” Martini: An artist that keeps sharing (usually for free) innovative, creative tools. Most recently he released a really powerful pipes generator . Check out all of his tools. I'm certain you'll find some very useful.
There are more I should list but that is it for this post.
So I wanted to end with a few notes on recent and upcoming updates in Wall Worm. The most notable enhancements to Wall Worm since my last blog have been:
- SMD Exporter now supports Edit Normals (Explicit normals). There have been some Maya users that still report problems but in all my tests manipulating normals in Max turn out well.
- Physics props have had enhancements and bug fixes.
- VMF Exporter now properly exports brush/displacement texture coordinates correctly.
- Texture exporters were overhauled to re-use texture maps between materials.
- VMF Exporter now PAKS all models and textures into the compiled BSP.
- You can now create displacements from selected faces or from plane primitives.
- More... a lot more.
Some of the things I intend to address in the upcoming months:
- Convert some of the functions to compiled plugins. Likely plugin-conversions are functions related to displacements. I may also add compiled plugins for the SMD/VTA and VMF exporters to speed them up.
- If some bugs to Convexity entities are not addressed in the next few months, I may build entity tools into Wall Worm.
- I may start weekly online video classes showing how to use various WW/Max tools for Source. Whether I do this will be determined by how many people would be interested in these classes; attendance would entail a fee. If interested, let me know.
I've had a great ride building Wall Worm over the last couple of years. I may have spoiled some people by releasing updates so regularly and developing the tools so rapidly. Sometimes it only takes a week or two of no updates before someone asks me what is wrong.
Development on WW is destined to slow down as my need to increase business rises. That doesn't mean I'm dropping support. Certainly, I'd feel more confident about the time I spend on WW if every WW user were to share a donation; since that is highly unlikely, and since my regular sources of income are dwindling, I am forced to try and find some new avenues of business... which inherently implies less time to work on WW.
Of course, since my main hobby is level design and 3ds Max, there is no chance WW will die.
Please share samples of your work on the WW forums! And remember... watch out for wall worms!