Skip to main content

The IndieBeat: How one dev made the Shader Forge Unity tool

Neat Corporation is working on a VR espionage game, Budget Cuts.
Neat Corporation is working on a VR espionage game, Budget Cuts.
Image Credit: GamesBeat

The Unity plug-in Shader Forge launched over five years ago, and it often pops up in conversations and top lists about essential development tools. It enables people to quickly change the appearance of their game without going under the hood and coding these alterations. Swedish indie developer Freya Holmér charged $90 for it and used the money to fund her game studio, Neat Corporation. But in April, she released the tool’s source code and made it free for all on the Unity Asset Store.

Neat Corporation is working on the virtual reality game Budget Cuts, a spy thriller that combines espionage with space-bending teleportation coming out on May 31 for Oculus Rift and HTC Vive. Holmér says that as development ramped up, it became impossible to juggle developing a game while also supporting a tool. She was just doing the bare minimum, what she calls “admin stuff” and fixing only the most crucial bugs.

“I used to update [Shader Forge] quite often, at least once a month and sometimes three times in a single month, because every time—people have feature requests, or Unity adds a new feature and I have to support that in Shader Forge,” said Holmér in a phone call with GamesBeat. “There’s a bit of that, as well as a burnout with Shader Forge as well. I’d worked on it for, God, how long is it now? I think Shader Forge was like five years old at this point. After that amount of time, you get tired of a project. The motivation is just not there. I just felt like it would be kind of morally irresponsible to keep charging for it if I’m not supporting it.”

Holmér has been passionate about video games ever since she watched her dad play while she was growing up. And she started early with modding, creating levels for games like Croteam’s Serious Sam and Nadeo’s TrackMania. She then moved on to using Valve’s Source engine, making levels for Team Fortress 2 and Half-Life 2. Finally, when she enrolled in the Stockholm-based two-year games education program Future Games, she began her first foray into using Unity and Unreal.

Making shaders available for everyone

Above: Graphics programmer Omar Shehata shows a before-and-after picture of what shaders can do.

Image Credit: Omar Shehata

After graduating from Future Games, Holmér worked for a little bit before coming back to the school to teach its Unity programming course. That was where the idea for Shader Forge began to percolate.

“I also supervised [the students’] projects,” said Holmér. “During those projects I saw them using the Unity game engine, and the Unity game engine didn’t have a shader editor. At the time, the Unreal engine had a shader editor, but Unity didn’t. During that project, the students were using Unity. I just saw how much they missed using the shader editor in the Unreal engine. And I also felt the same way when I used Unity. I felt kind of locked down in not being able to make shaders.”

So Holmér taught herself how to code shaders, and then decided to create a visual tool that would enable others to use shaders in Unity as well. She ran a public beta for the tool, and once she was satisfied with its usability, she released it onto the Unity Asset Store, where it currently has a five-star rating.

“I very rarely had negative feedback [about Shader Forge], actually. I kind of personally felt that I was charging a bit too much for it, but I’ve never had people complain about the price. Or maybe, I don’t know, two or three times?” said Holmér. “If someone felt that it wasn’t up to par with what they were expecting, I always just issued refunds. The refunds were few and far between. I basically accepted all refunds.”

Designing a developer tool

Above: One of Freya Holmér’s tutorials for her tool, Shader Forge.

Image Credit: GamesBeat

Holmér estimates that she spent a year working on it full-time and then another full year’s worth on updating and supporting it. That doesn’t count the extra time she spent on making sure its website was useful and creating guides to help users learn how to use the tool.

Some of Shader Forge’s aspects are because of the way Unity works, like its file-management system. Other features, like its user interface, are because Holmér spent a ton of time on refining them.

“Everything from making sure that the vital information is readable, and the most important features are highlighted, so that people can find them, stuff like that, but also the minor stuff,” said Holmér. “The stuff that’s minor to most people, but to me I found it really important to have the minor small animations on buttons, or things responding properly if you resized a window. Adding smoothing to things that might look a bit too jarring otherwise. I wanted to make the interface feel very professional and sleek. I’ve probably spent an embarrassing amount of time just on the interface itself.”

Holmér says that her “user interface philosophy” centers on making more relevant things visible while allowing less relevant options to fade into the background. This makes the tool look more approachable rather than bombarding users with too much information. Accessibility is important to her, and this is especially true for a shader tool, which count both technical as well as non-technical people as its users.

“I’ve used [that philosophy] quite a lot to guide people to the correct things,” said Holmér. “That’s a bit of a problem if you have a massive interface — with a lot of tools, let’s say you have Blender or Maya, where you have buttons all over the screen, and you have no idea what any of them do. What I wanted to do in Shader Forge was to hide the things that are irrelevant and just make them accessible when they are relevant. That way it’s a bit more lenient on the eye to just look at the application and use it properly.”

This wide audience has led to some tricky situations. Shader Forge enables users to create many different nodes, each type affecting game objects in its own way, and then hook them up to each other. So Holmér rolled out a feature where holding down a hotkey like M would bring up a menu of all the kinds of nodes that start with this letter. Users could then scroll through that list with the mouse wheel, which sounds like an intuitive way to navigate.

But the problem is that many of the artists using Shader Forge weren’t using mice. They were using tablets.

“A tablet pen doesn’t have a scroll wheel,” said Holmér. “That’s one of those things where that type of shortcut breaks down. They weren’t able to scroll in the list of nodes. Around some corners, in every fourth update or so, there was something I added that didn’t work well for anyone using an unconventional input device. It was interesting to see how all these experiments work out in the end.”

Tools as part of game development

Above: Tj Hughes often uses Shader Forge to help create Nour’s delectable aesthetic.

Image Credit: Terrifying Jellyfish

Holmér cofounded Neat Corporation with Jenny Nordenborg, who’s now the studio’s head of operations. It’s still a small team of six people, and everyone wears a lot of hats. Lately, Holmér has done a lot of 3D modeling and programming, though she also creates the majority of Budget Cuts’ shaders. She also develops internal tools for the team to use. She describes these as “very much hacked together” and won’t be releasing them for public use. She also has over 20 unfinished tools that she’s fiddled around with over the years.

“With Shader Forge I was lucky to be at the time and place where the was a really big gap in what people wanted and needed,” said Holmér. “Most of the tools I’ve been working on since then are kind of niche, kind of experimental. None of them are really viable for release yet. But I do go back to them occasionally and try to find a more interesting way to approach them, maybe solve more problems for more people.”

Though most players will never learn about plug-ins like Shader Forge, these development tools are an integral part of the games that they love. And a lot of creativity and dedication go into creating the tools as well — like Holmér’s obsession with perfecting the user interface.

A lot of developers have used Shader Forge, like The Chinese Room who used it to create its classic game Dear Esther. Indie dev Tj Hughes told GamesBeat that he frequently uses it for his colorful culinary game Nour — but it’s also how he learned how to work with shaders to begin with.

“Before Shader Forge, I had merely fantasized about being able to write shaders,” said Hughes in an email to GamesBeat. “I’ve seen countless GIFs and pictures circulating on Twitter about the cool things you could do with shaders, but I’ve never been able to understand how to write them. As someone who learns best visually, writing code for visual effects seemed prohibitively complicated at the time.”

Unity recently rolled out the tool Shader Graph in beta, and new tools are in development all the time. They might be niche, like Holmér’s side projects, or they might address developer needs as more folks try their hand at things like developing for XR. Or they might help newer developers make even more incredible games, democratizing game development more than ever.

IndieBeat is GamesBeat reporter Stephanie Chan’s weekly column on in-progress indie projects. If you’d like to pitch a project or just say hi, you can reach her at stephanie@venturebeat.com.