The Story & Capabilities of Apparance, a Procedural App for Unreal and Unity

The Apparance team told us about their procedural generation system for Unreal Engine and Unity, detailed its capabilities and advantages, and discussed some of its more notable use cases.

Introduction

We're Sam Swain and Dan Thomas from Apparance. We provide procedural generation tools for game development, supporting both Unity and Unreal Engine. Sam is a Lionhead and Hello Games Tools Programmer who's been working on the tech since 2006. He went full-time on Apparance in 2016 and brought Dan on board in 2022 to help grow the business.

As a tiny startup, it's a collaborative effort. Sam focuses on product development and implementation, whilst Dan uses his experience as Founder and Head of Games at Etch Play to manage operations and communications. It's his job to ensure developers discover the technology, partly through articles like this.

The Birth of Apparance

Many years ago, Sam worked at Demis Hassibis' first games start-up, Elixir Studios. He provided tooling for the then-groundbreaking Totality Engine, which supported 'infinite polygons'. Fast forward through many years at Lionhead, and Sam came to realize a huge amount of developers' time was spent waiting for asset pipelines and building systems. It was a huge problem and a death knell for creativity.

With his Totality days in the back of his mind, he realized that a similar scalable, procedural approach would unlock all sorts of development possibilities. He wanted ways for people to work faster, with tools that enabled rapid iteration and experimentation. Play was key to creativity, and real-time authoring and content development were essential for the ease that play needs.

A runtime procedural element also unlocked the possibility of dynamic detail levels, greater content quantity, and increased variety in level appearance. Ultimately, this meant a greater project scope for resource-limited developers.

So, Sam set about building a geometry-synthesis engine and the tooling to support it. This grew from text-driven prototypes to simple DirectX renderers to a powerful system that can either be used standalone or plugged into Unreal Engine and/or Unity.

The Software's Capabilities

At its heart, Apparance is a data-driven, multi-threaded synthesis engine. It feeds input parameters into the procedural definition processor and generates outputs from them. It's technically all just data, but the output is used to place objects (like mesh assets) or fresh triangle geometry (bespoke mesh) into your scene to enable the mass creation of content.

The procedural-definition data and processing are all handled within the core engine, which is shared between platforms. Why is this useful? Well, for example, if you suddenly wanted to move platforms because of license changes, you could take your procedures from Unity and use them straight away in Unreal. With a bit of asset remapping, you would be good to go.

A key aspect of building procedurally is 'parameterization' – that is, expressing a system as a set of configurable values. All your objects can have as many input parameters as you want to customize the object or scenery it builds. It's fully deterministic, so the same parameters always give the same results (essential for reloading and replaying static levels). Inputs like this also unlock ways to make your in-world objects smarter, adding customization capabilities for your designers to play with. For example, something's color or the number of its segments, or perhaps how detailed its greebling is.

Apparance in Game Development Pipelines

Apparance primarily supports the placement of your art assets and is great for assembling modular elements in interesting and helpful ways. It also includes a suite of ever-growing geometry generation operators, so you can build meshes that respond to the input parameters too. Great for a piece of wall that stretches and textures perfectly into any space you need it to fit.

The procedure processing is fully data-driven, so no scripting or compilation is required. Instead, the procedures are authored in Apparance's visual node graph editor. This runs externally to the engine, so the experience is identical regardless of platform – it can even connect to a running game to tweak procedures on the fly! This live connection is always present and allows all changes to be seen in your host engine's 3D view as you make them. All structural changes, value tweaks, and even slider dragging are immediately reflected in the engine.

But all this power and functionality is of no use if it's not fast. Here Apparance excels. The processing of procedures and the synthesis of content are both handled in the background on as many threads as needed. It's then down to the host engine to add objects, instances, and geometry to the scene for viewing.

Apparance is intentionally small and focussed, leading to rapid iteration, exploration, development, and operation of systems built with it both during editing and at run-time in your games.

Use Cases

We were very impressed by Salix Games' Gardens prototype. This is the indie studio behind Dance of Death: Du Lac & Fey. They leveraged Apparance for a beautiful prototype that unlocked the potential of the Lumen dynamic illumination system in Unreal Engine 5. This combination led to some stunning results both visually and within the design of the game itself. The project is currently pursuing further funding led by founder Jessica Saunders.

Another super interesting project was built by Rogue Sun (creators of Tin Hearts). It's a Unity prototype that integrated Apparance with Open Streetmap Data and some custom renderers. This combination enabled them to blend procedural generation with real-world input, smoothly recreating 1,000 square kilometers of New York City.

Of course, the biggest example of Apparance in the wild is Gloomhaven, built by Flaming Fowl Studios (founded by ex-Lionhead friends). Here, Apparance powered level design through dungeon generation and intelligent, parameterised asset placement. We worked closely with Flaming Fowl's artists to create content palettes to ensure a powerful and efficient level-generation process.

Receiving Epic MegaGrant

Until the Epic MegaGrant, Sam's focus had been on the Unity version because his early adopter teams were using it. However, the grant allowed us to bring Apparance to Unreal. Not only that, we were able to develop and polish it to become the lead platform. Thanks to the support of Epic, we were able to make a full release of the Apparance Unreal plug-in.

Apparance For Unity

The Unity version is fully functional and battle-tested on several hardware platforms. In fact, it was used to build the scenery systems for Gloomhaven. The majority of the work to be done is in polishing the user experience and optimization within the Unity development environment. It's been a long time coming, but we're very close and excited to offer Unity developers a real chance to play with the tech.

As for how it differs, it's the same C++ runtime underneath, so in terms of capability, both plug-ins are identical. The substantive differences are around polishing the user interface, onboarding, and workflows. Fundamentally, the same procedures will work on both engines.

Promotion & Monetization

Apparance is entirely self-funded. We're extremely proud of that, but it can also sometimes feel like we're not moving fast enough. The revenue comes from a split of licensing income and implementation consultancy. The consulting side of things has been a great way to make sure the product is fit for end users, "Eating our own dog food," as the adage goes.

More broadly though, we've recently started a big push to raise the profile and get more users discovering and playing with the tech. We're doing this through social media, where we have a "show, don't tell" strategy by putting as much cool-looking content out as we can! 

We've involved our small community in this as well – you've already covered Olly Lawson's amazing work, and we have other projects in progress.

On the licensing side of things, we recently made the fully-featured development version of Apparance completely free. We now only charge for license releases. This was a significant milestone for us, and we've seen a huge uptick in engagement and downloads as a result.

Future Plans

We have a huge update coming soon. It should unlock some amazing capabilities with how procedural objects can interact. We're referring to this as Smart Objects, and we have some great demos in the works. We're also busy working on the company branding and onboarding experience for new developers.

Again, our small size makes for a slow-but-steady progress on all this, but we're excited about what we have in store. You can follow us on LinkedIn and Twitter for more info, or jump onto the forums to ask any questions and see some more deep-dives from the team and community.

The Apparance Team

Interview conducted by Theodore McKenzie

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more