Part 3 of a savvy enthusiast’s delving into Valve’s ambitious new game engine... now with actual results!
Hey again! It’s been three months since Valve officially announced Source 2 at GDC, and roughly three years since I first started this journey of making it all relevant to you, the gaming public... and especially those who, like me, have sought answers to all the frustrations of Source once and for all.
And now, we can finally say Source 2 is in the public’s hands! Dota 2 Reborn has been released in beta, adjacent to the fanfare of E3. While it’s still not being released with any sort of big codebase yet, it’s certainly ready for its spotlight at last. So today, let’s give it the star treatment!
Valve certainly launched Dota 2 Reborn with bold statements, so let’s get right down to the nitty-gritty.
This is nothing new, since they’ve been built off Source 1 tools, been hinted at for years and soft-launched in the alpha Workshop Tools. But coming from the simplistic and obtuse tools in Source 1, I cannot stress how incredible a change this is.
I’m fully prepared to say that with these tools, Source 2 has finally pretty much reached the flexibility of early Unity, with double the power and none of the cost.
This was a big focus on both the Workshop Tools and Reborn: the ability to create not only custom maps, but entirely new game modes!
Along with the asset tools above, each game mode (officially called an “addon”) uses a full Lua API allowing for custom units, abilities, modifiers, events, and more.
At this point, however, it seems to be pretty limited in scope. Much like the Alien Swarm and Portal 2 tools, there’s only so much you can modify. You have access to all of the tightly-packed assets and gameplay elements, and they’re reportedly difficult to change.
If anybody is attempting to make Dota 2 total conversions using only Lua scripting and custom assets at this point, it’s going to be an absolute miracle. See my post on the Skyrim mod debacle for reasons why.
This was a pleasant surprise for all of the Dota 2 players that also helped prove my case in Valve going free-to-develop-for without me knowing for sure. I know most of you lit up at the clean-looking new main menu for Dota 2 Reborn, but I’m here to point out what it’s being run on.
Panorama seems to be Valve’s fourth iteration of GameUI, the menu system that already went through several iterations. Source 1’s original menu ran on code inherited from GoldSrc, then got revamped for consoles by the release of Left 4 Dead.
CS:GO and Dota 2 use Scaleform, a middleware that basically provides an interface to Adobe Flash. However, it’s been reported that Scaleform is licensed at $750 per project, per platform. So with that, on top of needing a copy of Flash Pro for every computer that develops with it, the cost is racked up immensely.
Panorama, on the other hand, doesn’t use Flash. It uses HTML5 technology! ...Well, technically it uses XML meant to look like HTML, but it’s close enough! At this point, you can check out all the features of Panorama at the Valve Developer Community.
Even with all the big words about Source 2, a lot of crucial details were left at the back of the PR spin. Thankfully, they’re still out in the open for me to point out to all of you!
Source 2 is 64-bit enabled, so a few limits that Source 1 had are now expanded significantly.
First and foremost, the gameinfo.gi file lists a max networked entity count of 10,000, a drastic increase from the hard limit of 2048 in the past. Entities are any level elements that can be singled out and reached out to: characters, props, and even invisible pieces of game logic. Many entities reside in either the client or server, but networked entities talk to both. This means that with higher bandwidth, you can send four times as much data to clients about anything that moves and/or thinks!
Second, multicore is taken to the extreme! Processor hangs are fewer and quicker resolved, especially during loading screens. It’s back to being able to stream music in one thread while loading in another, like in GoldSrc (except without reaching to Half-Life score or CD stuff).
Third, more visual fidelity! More polygons and more textures! Dota 2 certainly takes for granted a lot of work that Valve iterated through all of their games past, especially with the jump to Source 2. There are still a lot of dirty little tricks put in to clean up performance, especially with Valve’s old SteamVR demos, but the results show promise that hasn’t waned.
Fourth, pseudo-dynamic map loading! Not really being pointed out by anyone, but right now, Source Filmmaker and Hammer take advantage of quick loading times by keeping multiple opened maps in memory to swap between on the fly. It’s a nice touch that, if the game proper is able to use, leads to potentially making entire linear or even open-world games with Source 2 in the future.
I was confident from the beginning that if Source 2 was going to made free for developers, VPhysics was going to need to shed some baggage. Namely, the $25,000 needed to co-license Havok’s IVP code entangled in the enigmatic module.
Sure enough, VPhysics2 seems to be doing away with that code entirely. Unlike the original module, steeped in reference to 15-year-old code, there is zero mention of it in the new one.
Instead, it’s steeped in Rubikon references. There are callers for all four supported shapes: sphere, capsule, hull, and mesh, in addition to constraints and joints as expected.
Some fellow delvers have frequently interpreted the recurring “VPhysX” reference as a quiet mark of modifying Nvidia’s PhysX, which was recently made free for noncommercial use. While it might be a valid argument for the use of soft-body physics, I’m skeptical that Valve would risk litigation from Nvidia just for a bit of code. If anything, I see it as either a practical marker or a respectful nod to the group that let them put Half-Life 2 and Portal on the Shield.
Regardless of the details, it’s clear that this is a step in a positive direction. As has been hinted at by plenty of GDC talks, Valve made their physics module their own, and even if it’s fresh out of the gate, it’s one that hopefully won’t break the bank for creators.
Of course, what positive talk about something would be complete without playing devil’s advocate at the end? Despite delivering on a lot of rumors and promises, there were a few that haven’t been completely addressed at time of launch.
Source 2 still pulls a lot from Miles Sound System. In fact, they even got the 64-bit version this time! Sure, Valve and RAD Game Tools partnered together to make VOGL, but if Valve’s going to quietly phase out Bink, then they should at least have MSS optional. It’s inferred that they do with the Source 1 license, but both Unreal and Unity are stripped of those dependencies, and don’t even fully acknowledge FMOD’s plugins.
A curious detail that hasn’t been addressed is that Hammer’s grid still only extends to 32768 (2^15) units on each side, and the 2D view still only goes so far. It might be there for posterity’s sake, but I’ve been able to place a floor brush roughly 80k x 80k without nagging from the compiler. It uses kd-trees instead of traditional BSP, so it might be worth testing the map size limits.
Since Dota 2 Reborn is fresh in beta, it’s safe to say that we’ll be seeing a lot more Source 2 in the coming weeks. Still, the Lua API shows that Valve might potentially be taking a different direction in mod support. Taking a lot of influence from Unity’s Mono, Epic’s UnrealScript (which was deprecated for a reason), and especially Garry’s Mod’s Lua implementation.
Let’s hope either the API gets expanded or a proper codebase is released... either by the end of The International or with the release of... another game.
A fun little follow-up to the fact-checking I did last time to estimate the cost of licenses alone on Source 1, now that they’re pretty much being deprecated.
- Havok-licensed physics middleware - $25,000
- Autodesk Scaleform license - $750
- Adobe Flash Professional CC annual prepaid - $240
- Bink Video license - $6,000
- Miles Sound System license - $4,000
- Being pioneers in modding - priceless
So would Valve have rather had themselves and their partners each shell out at least $36,000 every time they wanted to simply release their game on Windows, or would they have sought ways to cut the middleman, as it were? I’ll let you decide...
...but the answer’s yes.
Even if you couldn’t care one bit about what difference a physics engine would do for you making a new hero, please feel free to share your own thoughts about this development in the comments below. Correct any mistakes I’ve made, share your stories of playing with the Alpha/Beta tools, and even suggest even better points to be made about Source 2!
I’ll be sure to make at least one or two iterations of this article while the topic is hot, taking all the shared information coming in from the community, and aggregating it all in this article!
Image 1: Rubikon, churning out 64k HP.
Image 2: Some poor sod who’s just having a good time while standing between two warring pros.
Follow the author’s ConTAYct entry.