Chapter 1: What is Unity and What Makes it Awesome?

First in a series of posts that reprints the unedited manuscript, No-Code VR Development Using Unity and Playmaker.

Chapter 1: What is Unity and What Makes it Awesome?

The history of video game development is relatively short yet decidedly dramatic. In turn borne of revolutionary technology and revolutionizing technology, its history has at times been cyclical. From an independent developer’s perspective its major epochs are defined by how easy or difficult it has been to complete a commercially viable game product.

The first video games were mostly proof of concept projects cooked up in University laboratories and government research facilities. Games such as OXO, Tennis for Two, and Spacewar! were one and two man affairs whose graphics consisted of simple 2D shapes. By recycling mechanics and graphics, small teams were able to churn out a glut of space shooters and pong clones. Pac Man, despite being more complex both in terms of graphics and game mechanics, was completed by Toru Iwatani and a nine-man team in about a year. Iwatani’s small team created something that raked in money hand over fist, one quarter at a time, until they’d amassed billions. This was the Golden Age of Arcade Gaming.

The Golden Age of Arcade Gaming was a decent time to be an indie developer. It was simple enough for anyone with solid programming skills and a home computer to experiment with game creation. A small team with good financing could then take those experiments to market.

The Age of the Home Console, generations three through seven, was not as kind to indies. Arcades and PCs were no longer the place to play. Ever-evolving hardware drove demand for ever-impressive graphics. More money in meant more money out meant more money in. This money-primed feed-back loop resulted in a need for ever expanding teams of highly skilled artists and programmers. By the turn of the century a “Triple A” title required hundreds of workers and a budget of as many millions. Arcades died out. The little guy could no longer compete.

And so they didn’t. Individuals wanting to experiment and innovate pursued game development as a hobby. They cannibalized retail PC games, putting the games up on blocks, stripping them down, and carrying away the engines. A game engine is what makes games (and game development) go. A game engine is a generalized software development toolbox that provides functionality typical of game development and game play. This functionality includes rendering, networking, and physics simulation. It facilitates the development of video games by providing tools that allow the user to create levels, import new art assets, and implement additional scripts (code). By using engines and swapping out art assets and scripting new scenarios, skilled “modders” could transform a sci-fi game such as Half-Life into a tactical shooter like Counter-Strike. Impressed by these accomplishments, big-budget developers like Epic quickly realized that they could license their game engine to developers that were slightly less-big. They couldn’t be too much less-big however; the Unreal Tournament 2004 engine for example cost a quarter million dollars to license. This left a vacuum that, in time, less-expensive engines could fill.

Some hobbyists came together in the realization that while they couldn’t create a “Triple A” game, they could create a game engine. They created many game engines. In fact, devmaster.net lists 370 game engines, most of which are free. A “you-get-what-you-pay-for” caveat applies here though; many of the engines are incomplete, their documentation is lacking, and their capabilities are limited.

One such limitation is a lack of extensibility. Updates to these game engines’ functionality only come by way of an update to the game engine itself. Typical of freeware, these updates tend to be infrequent. Furthermore, by not attempting the completion of a game, game engine hobbyists may lack the foresight to anticipate a game developer’s needs. Any added capability therefor is bound by the insight, ability, and time constraints of a relatively small, unpaid development team.

Free engines, typically, will lock creators into a programming language. No matter what programming language is chosen, the choice will decimate an already curt list of available programmers. These engine’s art asset pipelines may be wonky too, similarly draining the talent pool of potential artists.

One of the worst limitations of just about every game engine is that each can only build to one platform. To build to PC requires one engine, separate consoles pair to separate engines, and each mobile OS will likewise necessitate a different engine. Deciding upon an engine therefor locks you into a platform, restricting revenue. Good luck predicting what the market for any particular platform will be like once you’re finally ready to release your game!

What is Unity and What Makes It Awesome?

The aforementioned problems all have a solution; Unity. As its name implies, Unity unifies the development process by allowing users to “develop once, publish everywhere!” Developers are therefor freed from having to choose a single platform. Similarly, developers using Unity needn’t subjugate themselves to a single programming language. Unity allows programmers to use several different programming languages, individually or in combination (while the actual GUI deployment of multiple programming scripts is being phased out in favor of C#, developers can still import and implement other languages’ scripts into Unity1).

Extensibility has been crowdsourced through the implementation of a public plugin marketplace. Whatever problem you may encounter, odds are there is a cost-effective solution in the asset store (one of these plugins, Playmaker, allows developers to create games without having to program)! Miraculously, Unity3D can be had for the low, low price of free!

Unity:

Allows developers to publish to a multitude of platforms all with the press of a button!

Allows developers to program in several languages through importation or automatic translation of scripts!

Offers a cost-effective solution to many problems through its crowdsourced asset store!

Offers a free version!

It is difficult to overstate how revolutionary, unique, and transformative these features are. Deciding what game engine to use was once the most agonizing decision a game developer faced. Such a choice would affect the game’s chances of success as much or more than any other decision. Unity makes the decision a nearly foregone conclusion; today it is the world’s most widely used game engine (and with good reason)! Along with new digital distribution models and mobile platform proliferation, Unity has remade the marketplace. Game development is financially viable for independents once again.

WIP Sites:learnindiedev.com Unlike Udemy, this site will feature live lessons and game jam learn-a-thons (exactly what it sounds like)! Featuring No-Code Video Game Development, the only video course to become a published text book!

openforcommissions.com Why be hard to find? Upload your portfolio, change your open/close status with a single tweet, get paid!