Unpacking the Toolbox
Hello everyone. I’m Robert Crane, a senior developer at Visionary Realms and also lead tools programmer. Many of you probably aren’t that familiar with me but I’ve actually been at the company for over 6 years now. I wasn’t originally hired as the tools programmer but pretty early on we discovered that the tools fell short of what was needed to handle the team scaling in size.
We have many tools at VR that help us build Pantheon. From simple database table editors for the designers to automation software for building versions of the game and deploying it out to test servers.
The goal was to take the tedium out of complex iterative tasks and give back as much time for creativity as possible. If I could write a tool to generate a detailed zone and populate it with NPCs, I would. And believe me, I tried!
Visuals are always fun so I’d like to chat about some of my most important work of late which is the biome generation tools. We tried almost every out-of-the-box terrain solution known but, in the end, we discovered that we needed something bespoke to Pantheon to enable us to get the look and functionality we strived for. It was a big task starting biomes from scratch but it needed to be done.
There are two parts to a biome: The terrain texturing and the flora which are the grass, trees and such that are generated on top. Both are equally important.
Our terrain shaders (the code responsible for drawing the terrain) currently support 12 unique layers. Think dirt, grass, snow, etc. A lot of the generation of these layers is done procedurally.
A terrain graph that generates some grass in Thronefast
As well as the procedural side of things, we also have the ability to paint directly on the terrain or use splines to help shape roads or paths.
Spline texturing tool used here to generate road
The flora is also mostly generated procedurally which means that if we need to make a change to the terrain layers underneath, the flora will automatically be regenerated to fit the new terrain look.
Each biome layer, for example a type of tree, has a mask which lets the system know what parts of the map are of interest for this biome. This allows us to have detailed control of where objects are generated but not have to worry about being placed on roads or buildings which are part of its procedural rules.
Marking off an area of the map where we want a certain tree to be spawn
And that’s roughly how biomes are created. Our world builders still have to sculpt the terrain to make sure that the area feels playable but the beauty of most of the biome look being procedural is that if we need to make a sculpting change for game play, the biome can be regenerated with a press of a button. Obviously, there is a lot more that goes into a zone or else everything would look the same but the biome tools make the job a lot quicker. To make a new biome to blend into an existing one, we just add the extra layers to the biome texture stack and paint a blend mask between the two.
Showing extra snow layers added and start of blending into Hangore biome
There are also a lot of support tools for world generation. For instance, we have a lot of cliff walls in Pantheon so I created a tool to help block out cliffs by just drawing a spline. Once it is blocked out and tested for gameplay, artists can then add extra detail to the walls to give it variance.
Terrain cliff spline tool in action
I’d also like to briefly talk about another of my favorite tools which is Pulse, our node-graph based entity event system. Pulse allows designers to script complex quests or let two NPCs have a conversation or anything a designer imagines. It allows the programmers to concentrate on building features and less on designer gameplay requests. It is another tool we created from scratch to make sure it was extremely performant for an MMO world.
Here is an example of an NPC dialogue when interacting with a player…
A pulse graph for an NPC in Thronefast
I love seeing what the designers come up with using Pulse. I’m often amazed how far they have taken it and how creative they have become with just a handful of nodes and a bit of time.
I hope this little peek into the tools has been interesting to read. Working on the tools for VR has been a dream job for me and watching the rest of the team use them to generate Pantheon has just been amazing.
Let us know if you want to read more about some of the other tools and just maybe we can get Kyle to talk about the ability tool he wrote! It is really amazing.
Thank you everyone. Onward and Upward!
|Producer’s Letter||Monthly Recap||Tools of Pantheon||Community Feature|