Tales from the Dev Side: Unity in a Splintered Industry
February 25, 2013 17 Comments
As word hit that XNA was being faded out, non-developer me was curious where else the community that I’ve downright fallen for with would turn to next to create the games I both love and loath. And the community has responded. First, the guys at MonoGame hit me up with a semi-well-received, semi-controversial editorial touting their platform as the next big thing. While a direct response to that from the mad bastard behind FortressCraft is still coming, industry veteran-turned-indie Scott Tykoski wanted his chance to sing the praises of Unity. As always, I understand almost none of this. But Scott’s a gifted writer and not prone to panic, so you should give him a read.
UNITY IN A SPLINTERED INDUSTRY
As the death knell rings for XNA and my Xbox Indie pals pay their respects on twitter, a question hangs in the air – “Where do we go next?”
And by we I mean the group of developers that got excited at XNA as an inexpensive multi-platform solution. We bet YEARS of development energy on a system that looked so promising, yet let us down in so many ways.
“Where do we go next, now that XNA is dead?”
We also have to deal with the “gold-rush” mentality that has come along with the mobile gaming boom. Indie/Hobbyist game developers are everywhere, and worse, most of them are making very similar games (take hit game, change the theme, rinse, repeat), intensifying player dissatisfaction with titles that don’t push any significant boundaries.
“Where do we go next, now that the world is oversaturated in unsatisfying games?”
And heres another challenge to overcome: our industry is undergoing HUGE, seemingly random marketplace shifts. Phones streaming games to tvs. Consoles putting games on the backburner to focus on movies and television.
“Where do we go next when there are so many platforms and nothing is certain?”
The honest answer? We go away. We give up and we move on.
UH…WE’RE NOT REALLY SCREWED, RIGHT?
No, sorry, I’m kidding…we’re totally fine.
Actually, being in the Indie gaming scene has never been more exciting – even with app stores overflowing with crappy titles (we’ve fought that battle before, right XBLIG guys?). You see, every studio – from the one-man operations to the largest gaming conglomerates – is facing the exact same conundrum: “What platforms do we focus or development energy on?”
This universal need for multi-platform tools means we now live in an ecosystem ripe with ‘Make Once – Play Everywhere’ solutions. Unreal for the big spenders. Adobe Air for the Flash experts. Gamemaker Studio, GameSalad, Stencyl, & Construct for folks unfamiliar with code. And of course the mega-versatile MonoGame for anyone fully invested in XNA (Rest In Peace, sweet prince).
But while all these solutions have their disadvantages, be it price or flexibility, one toolset has them beat on all counts: UNITY.
What once was a fun little tool for prototyping, Unity (now at v4.0) has matured to the point where you can make some pretty amazing games, like the beautiful Kentucky Route Zero or the 4x Epic Endless Space.
Kentucky Route Zero
With Unity, developers can now rest assured that core engine systems are covered and they can focus on the most important task: DESIGNING A GREAT GAME!
THE BASICS OF UNITY
At its core, Unity is a 3d game engine where the developer can script using C# or go straight into scene creation using the fully featured editor, which feels a lot like using 3DMax or Maya (where you move game objects around in 3S space). While it may seem daunting at first, the toolset gives a great entry point for either artists or developers to start working on their game.
While the amazing editor would be reason alone to use Unity, the real selling point is the admirable cut of its cross-platform jib (ie: it can export games for every friggin’ platform). Titles for PC, XBox360, Wii, Web, Android, and iOS have all been made and released using the Unity, proving itself on multiple devices many times over.
It should also be noted that you can make a Ouya game RIGHT NOW using Unity. That’s pretty amazing cross-platform support, if I do say so myself. Which I do. Obviously.
SO MUCH 3D GOODNESS
While modeling, texturing, and animation have to be done in a traditional 3D program (3DMax, Maya, Blender, etc), Unity does all the heavy lifting when it comes to importing and rendering those assets. Lighting, post processing, shadows, and animation are all available out of the box.
I remember trying to get a distance blur effect hooked up for battles in Galactic Civilizations II but it was a huge pain and never happened. In Unity.. it’s as simple as dragging a effect script onto the camera object. Most effects are drag-and-drop ready…it’s simple to the point of sickening.
And lets talk for a bit about asset pipelines. The amount of raw data that goes into defining meshes, bones, UVs, and animations is staggering, and have given rise to third-party frameworks that manage this deluge of data. The fact that Unity makes the asset import and management process a two click process is a testament to the overall ease-of-use the editor provides.
THE JOYS OF C#
Anyone familiar with XNA is also familiar with the beautiful C# coding language. I won’t pimp that here, but Unity uses it, and it’s awesome.
Coding is as simple as writing your code, making a few public variables to use as dials, then attaching that script to your game objects. Those variables can then be tweaked in the editor, so writing modular code is buttery smooth.
The editor also has its own scripting API, so you can easily extend the editing tools as necessary.
THE ASSET STORE
Another notch on Unity’s belt comes in the ‘Asset Store’, where you can buy or sell anything game related.
Lets say you want a ‘Plants vs Zombies’ look to your game and need to animate several of 2D characters. You can go into a separate 3D program, rig and bind 2D planes, export the data, then use a 3D animation object to render your characters. OR you can purchase SmoothMoves, an in-editor 2D animation solution for 75$.
It’s the best 75 bucks you’ll ever spend, I assure you.
Chances are, if you need a game-related subsystem, someone already has a solution available on the asset store: just purchase, plug, and play!
NOW FOR THE BAD NEWS
Instead of a proper point-counterpoint, I decided to bottle up ALL the negative stuff to dump on you at the end. I know…I’m an a-hole.
First and foremost, the cost. Good news here is that a free version can be used by most Indies. Once you start making more than $100,000 a year, however, it’s time to go PRO, which will cost you $1500. Exporting features come in the form of add-ons, so exporting to iOS from the free version will run you $400, from PRO it’ll cost $1500.
Unfortunately, all the R&D testing I did was with a PRO version with a PRO iOS exporter, so some of my exuberance may come from using a super-slick $3000 version. You can dig around in the Unity Store to get some charts comparing features of the different versions.
Also, debugging was a bit more painful than in XNA and traditional IDEs. My testing of the tool was mostly on the art side, however, with a full-time developer testing out the coding front, so my pains could have simply been lack of experience. My fear is that you’ll be spending more time with print statements and less time with breakpoints.
Another issue, for those of us that love our retro graphics,the 3D environment can make 2D game creation tricky. It’s doable, but definitely less intuitive than making a proper 3D game.
The biggest drawback to Unity – as with any third-party engine – is the lack of control you have on the last 10%. You’ll always encounter areas where you want the engine to do something that’s just not possible (for one reason or another). While the main 90% will be smooth sailing, compromising on the last 10% of your vision may be too steep a price.
UNITY & MAKING GAMES WORTH PLAYING
So I started this editorial with that stupid ‘we should give up’ gag. It was mostly for fun, but there’s a legitimate feeling of helplessness that comes when your platform of choice is discontinued. There were too many crunch weeks spent on games using XNA to shrug it off as a necessary loss.
And while it sucks to see an amazing framework put to pasture, we are now drowning in possible alternatives. Alternatives that not only allow you target multiple platforms, but that alleviate the burden of creating the subsystems that your game will depend upon.
It’s for the sake of quality gameplay that I fully endorse Unity, and really any 3rd party engine. The overwhelming majority of your audience could care less about the underlying engine.. all they want is a new experience, something that’s not ‘Angry Birds with Zombies’.
Creativity on the Indie scene is a talk best left for another time , but always remember: originality is your key competitive advantage over the AAA studios. Use it! The less time you’re making engine systems that never excite the player, the more time you can devote to making original gameplay systems that will excite yourself, the player, and perhaps even our entire industry.