All game systems are designed to be dynamically-created and configured as-needed at runtime. This ensures that players truly are in charge of their play experience.
Items are designed to be procedurally-generated based on a set of statistics, modifiers, and hundreds of small parts that are dynamically-assembled to fit certain visual and functional styles and be completely unique to every player.
This is carried through to the huge enemy bosses (Behemoths), environment art, world simulation, and more as well.
Physically Accurate Simulations
Building off of systems already in Unreal Engine, we created a system and workflow to ensure that there is physically accuracy throughout the worlds we create.
This accuracy extends to game systems, physics simulations, as well as rendering. If it looks like wood, it'll behave like wood, sound like wood, break like wood, and... Be... Generally wood-like.
Completely Dynamic, Always
Everything we do in our games, we do based on a series of systems and simulations. And then doing everything in our power as gamers to try and see how far we can get with them.
To ensure as much customization and variety as possible for our players, we have completely dynamic lighting, global illumination, environment simulation & rendering, materials, and more.
We want all of our games and their engine to be procedural, dynamic, flexible, and bulletproof. So we can hand it to our players and say: have at it.
NVIDIA GameWorks Volumetric Lighting
A highly-detailed, physically-based atmospherics scattering and volumetric rendering algorithm.
Uses existing shadows maps for lights in the scene to construct hardware-tessellated meshes every frame to serve as detailed light shafts that are then rendered with a customizable, powerful shading and scattering effect.
Additional work done to work alongside trueSKY for full and seamless integration into our entirely dynamic scene.
NVIDIA GameWorks Blast
Major improvement to the PhysX and APEX destruction that allows for GPU-based rigidbody simulation.
Allow for complex, efficient, dynamic in-game destruction to truly bring the rugged world of Steel Hunters to life.
Blast allows us to create content/structures with multiple layers, structural integrity from its miscellaneous pieces, and... Well. It's fast. Yay fast.
Full trueSKY Integration
A full, engine-wide integration of simul's trueSKY cloud and atmospherics calculation and rendering middleware.
trueSKY allows for complete, physically-accurate atmospherics with a wide variety of customizable parameters for aesthetics and performance.
Since Joy Machine's middle name is "Dynamic and Procedural" (it really is), SideFX's Houdini is like software made specifically for us. Their increased dedication to making it a game development tool along with the Houdini Engine has made it a perfect tool for our kind of workflow.
We'll be talking more about how we use this in our workflow in the future, but the general idea is to create highly-parameterized content packages for run-time variations of miscellaneous meshes.
NVIDIA GameWorks HBAO+
Incredibly detailed, efficient ambient-occlusion.
Uses the depth buffer as a height-map to conduct ray-tracing to ensure accurate, detailed AO.
With the latest HBAO+ binaries, we were able to replace both methods of AO built-in to UE4 (SSAO and DFAO) and save up to 9-10ms per frame.
[Currently Disabled in Favor of UE4's SSAO].
Joy Machine and PopcornFX go back a while, ever since Trent established the VFX pipeline on ArtCraft Entertainment's Crowfallaround it.
More relevant: PopcornFX provides an incredible degree of power and runtime customization for all of its effects, making each effect a very powerful and versatile asset.
And our Unreal Engine integration outperforms UE4's Cascade system in most use-cases. So that's pretty excellent as well.
From the Joy Lab
VoxelFarm 3 Integration
We've been working with the team at VoxelFarm since it launched, and we also have it fully integrated into our UE 4.15 codebase. Which means: massive terrain, fully-destructive environments. And other things we probably haven't thought of yet.
Adaptive meshing, a complex, efficient, dynamic level-of-detail solution, and an entire system built with procedural generation principles at its core allow for: well, anything, really.
Handles giant texture database files (UDIMs) that support up to 256k worth of textures in a single file.
No need to modify any assets with custom UVs, Granite is just integrated into the engine and simply requires some basic material modifications to use a custom texture sampler.
Dedicated middleware for texture streaming in-and-out varying levels of detail.