Thoughts on Engine Licensing

I seem to have hit a strange impasse of decisions regarding game engine licensing. It used to be a simple decision on my part for licensing an engine for personal use: cobble together the cheapest Unity license possible. Now things have changed, both personally and with modern game engine licenses. Its led me to be thinking about this a fair bit recently and I decided maybe I should just write it up as food for thought for anyone that might stumble across this.

Background

I learned Unity extensively at my first game development job Michigan State University back in 2008. The head of my lab had decided to begin using the engine both in the classes he taught and in most of his academic classes, accurately predicting that its trajectory would lead it to be an affordable and beginner-friendly tool for game development, that would still have enough depth to produce a top tier game if put in the right hands.

The university had previously used the Torque engine for teaching 3d game design classes, which gave full access to native source code... but apparently the view on that was that it was more a necessity than a bonus to be able to get around stability issues when using the engine. Unity on the other hand has resisted allowing full source access from the beginning. This always seemed to make sense to me since their business model has seemed to roughly be to market a fully capable 3d game engine as a piece of software akin to Photoshop. The parallels can definitely be drawn to Flash's use as a 2d game engine, which at the time seemed to be filling a vacuum of products with real consumer demand, Flash seemed to me to be a piece of software intended more for generic "interactive media" but was instead being coerced into being a fully functional architecture for increasingly ambitious 2d games. It always struck me as incredible that something as simple as adding a data structure equivalent to the STL's vector would be considered a groundbreaking advancement in Flash game performance optimizations. But, enough about Flash, my point is that I'm happy I hopped onto the Unity train when I did. It's proven to be an effective tool for prototyping new ideas, rapidly building projects in game jams, testing out some of the latest rendering techniques, and building full scale projects intended to have hours of gameplay.

GDC 2014

As you may be aware, this year's GDC brought in a whole wave of competitive moves by several of the larger game engines. Unity announced the next major iteration of their engine and key features in development for it. My rapidly expiring educational license is in limbo due to a crashed hard drive. Now the desire to go through the hassle of trying to recover it is rapidly fading since a new engine version would require a new license anyways.

I'm nearly at the end of ways I can weasel my way through pro trials, all my academic licenses from my days at University are either for much older engine versions or have expired. Unity's previous introduction of a 99 dollar educational use only license was a great stab at what I'm going to talk about when I get around to actually making a relevant point in this post, but that license is now very difficult for me to acquire as my ties to the University dry up. Unity offers a 75 dollar a month subscription license, but witha 12 month contract, it doesn't really save anyone any money. If you only need Unity for 3 months, you're still going to end up paying the full prices.

In the mean time, Crytek and Unreal both announced competitive pricing for their engines at GDC. Crytek offers a 10 dollar a month subsctiption service now. My understanding is that this allows access to a gameplay layer of sorts for licensees, but a full engine source license is different. Unreal on the other hand stepped forward with a 20 dollar a month subscription with full access to the engine source for Unreal Engine 4, a step away from the restricted model they followed with UDK for Unreal Engine 3. This comes witht the caveat that you must pay 5% of your revenue to Unreal if you release a commercial game.

This fascinates me. Unreal has single handedly made itself a very interesting engine for people like me: people that have little to no intention of releasing a commercial video game.

Non-Commercial Use

 My continual usage of Unity in my spare time is driven by a few key pillars:

  • Staying familiar with an engine I have expert level knowledge of is worthwhile, even though Iron Galaxy historically uses Unity very rarely. If that were to change, which is possible since we do lots of external contracting, my experience would certainly come in handy. It would also likely be useful in the unlikely case of Iron Galaxy being sucked into a dimensional rift while I'm oversleeping and suddenly I find myself in need of a new job.
  • Unity makes for an excellent choice for experimental game design: whether its a game jam or a prototype of an idea that might eventually turn into a real thing, fast set-up and fast iteration make it very appealing engine for that sort of thing. The free version does a very decent job of this still. I've been using free version features only to slowly poke at a prototype of a silly Manatee-based game. I might release it at some point. Probably for free. Probably no one will notice. That's fine.
  • It offers an interesting trade-off as a choice for prototyping rendering techniques. On the upside, boring things like particle systems and model importing are handled for you already. On the downside, you have to work around the choices made by the rendering engineers there. This is true of all licensed engines. With full source this becomes easier, but only to the extent that merging the latest engine revision might be a huge headache if you get too agressive with modifications. It's best to live in harmony with an engine instead of fighting it, and I think its worth practicing that in projects outside of the office.
  • Students, indies, and professionals might find implementations and blogs about work in Unity interesting since they might be using it too.

So here's the dilemma: I could license Unity 5 and go on my merry way. Or. I could purchase a new guitar with that money. What I have done is license Unreal 4 for 20 dollars, and I don't have to pay for a full 12 months if I don't see the need to. Unreal has out of the blue become something very interesting to me for use as my platform for prototyping new techniques. In fact, Unreal has done a huge favor to researchers everywhere that might want to prove out their ideas in a commercial engine. With full source access, building in even esoteric (if potentially ill-advised) revisions to the engine should be painless. They can keep their source drop even if they don't keep paying for source access, and they can share it freely among their groups/labs/grad student slave labor/etc. I'm excited to be able to tell a researcher that there's no reason they can't test something out in a commercial engine.

There's some problems with jumping ship from Unity for the time being though:

  • I like leaving the door open to using cutting edge or impractical rendering tricks in small projects where the render budget might otherwise go unused.
  • My accrued Unity knowledge will begin to collect more dust than I'd like.
  • Iron Galaxy already has a lot of familiarity with Unreal, including myself. So I lose the benefit I mentioned before about diversifying my experiences.

Why Any of this might be relevant to Unity

There are two reasons why I think Unity is leaving themselves exposed in a few ways to Unreal's decisions besides the competitive pricing they're offering. There's the aforementioned issue of the ease of access for academics to use it as a test bed of choice. Furthermore, Unreal is introducing a marketplace for selling engine enhancements, just like Unity does. It seems that the Unity Asset Store has been very successful for them: it allows additional engine features that they have not personally developed, and they get a cut of the revenue of transactions in the store.

In my mind, developers targeting tools development are essentially paying for the engine twice. Once for the license, and again with a revenue cut. Unreal's making a compelling point that for that system to make sense: the up front cost should be as low as possible.

Where this leaves Me

I think 1,500 dollars for a game engine is incredibly cheap for developing a commercial game. I'm less inclined to think it makes sense for somebody making an art game or prototyping a new rendering technique, or even just someone making improvements that Unity or Unreal is getting a cut of in their stores when other developers by their tools. So for now it seem increasingly likely that I'll be splitting my free time between Unity and Unreal. Not sure if I have the appetite to give CryEngine a spin just yet. In the end, it surprises me that I'm even having to have this dilemma, since Unreal and Unity used to occupy very different spaces when it came to hobbyists. Weird.