appendix B
External tools used alongside Unity

Developing a game using Unity relies on a variety of external software tools for taking care of various tasks. In chapter 1, we discussed one external tool; MonoDevelop is technically a separate application, even though it’s bundled along with Unity. In a similar manner, developers rely on an array of external tools to do work not internal to Unity.

This isn’t to say that Unity is lacking capabilities that it ought to have. Rather, the game development process is so complex and multifaceted that any well-designed piece of software with a clear focus and clean separation of concerns will inevitably limit itself to being good at a limited subset of the process. In this case, Unity concentrates on being the glue and the engine that brings together all the content of a game and makes it function. Creating all that content is done with other tools; let’s take a look at several categories of software that could be useful to you.

B.1 Programming tools

We’ve already looked at MonoDevelop, the most significant programming tool used alongside Unity. But there are other programming tools to be aware of, as you’ll see in this section.

B.1.1 Visual Studio

As mentioned in chapter 1, although Unity comes with MonoDevelop and you can use that IDE on both Windows and Mac, on Windows you could also choose to use Visual Studio. Recently, Microsoft acquired SyntaxTree, a company that has been improving the integration of Visual Studio (http://unityvs.com/).

B.1.2 Xcode

Xcode is the programming environment provided by Apple (in particular an IDE, but also including SDKs for Apple platforms). Although you’d still be doing the vast majority of the work within Unity, you need to use Xcode to deploy a game to iOS. That work often involves debugging or profiling your app using the tools in Xcode (https://developer.apple.com/xcode/).

B.1.3 Android SDK

Similar to how you need to install Xcode in order to deploy to iOS, you need to download the Android SDK in order to deploy to Android. Unlike when building an iOS game, you don’t need to fire up any development tools outside of Unity—you simply have to set preferences in Unity that point to the Android SDK: http://developer.android.com/sdk/index.html.

B.1.4 SVN, Git, or Mercurial

Any decent-sized software development project will involve a lot of complex revisions to code files, so programmers have developed a class of software called VCS (version control system) to handle this problem. Three of the most popular systems are Subversion (also known as SVN) (http://subversion.apache.org/), Git (http://git-scm.com/), and Mercurial (https://www.mercurial-scm.org). If you don’t already use a VCS, I highly recommend starting to use one. Unity fills the project folder with temp files and workspace settings, but the only two folders that need to be in version control are Assets (make sure your version control is picking up the meta files generated by Unity) and Project Settings.

B.2 3D art applications

Although Unity is perfectly capable of handling 2D graphics (chapters 5 and 6 focus on 2D graphics), it originated as a 3D game engine and continues to have strong 3D graphics features. Many 3D artists work with at least one of the software packages described in this section.

B.2.1 Maya

Maya (www.autodesk.com/products/autodesk-maya/overview) is a 3D art and animation package with deep roots in moviemaking. Maya’s feature set covers almost every task that comes up for 3D artists, from crafting beautiful cinematic animations to making efficient game-ready models. 3D animation done in Maya (such as a character walking) can be exported over to Unity.

B.2.2 3ds Max

Another widely used 3D art and animation package, 3ds Max (www.autodesk.com/products/autodesk-3ds-max/overview), offers an almost identical feature set and is quite comparable in workflow to Maya. 3ds Max runs only on Windows (whereas other tools, including Maya, are cross-platform), but it’s used just as often in the game industry.

B.2.3 Blender

Though not as commonly used in the game industry as either 3ds Max or Maya, Blender (www.blender.org/) is comparable to those other applications. Blender also covers almost all 3D art tasks and, best of all, Blender is open source. Given that it’s available for free on all platforms, Blender is the only 3D art application that’s assumed to be available by this book.

B.2.4 SketchUp

This is a very simple-to-use modeling tool, especially well-suited for buildings and architectural elements. Unlike the previous tools, SketchUp (www.sketchup.com) does not cover all or even most 3D art tasks; instead, it focuses on making it easy to model buildings and other simple shapes. This tool is useful in game development for whiteboxing and level editing.

B.3 2D image editors

2D images are crucial to all games, be they displayed directly for 2D games or as textures on the surface of 3D models. Several 2D graphics tools come up often in game development, as you’ll see in this section.

B.3.1 Photoshop

Photoshop (www.photoshop.com) is easily the most widely used 2D image application there is. The tools in Photoshop can be used to touch up existing images, apply image filters, or even paint pictures from scratch. Photoshop supports dozens of different file formats, including all image formats used in Unity.

B.3.2 GIMP

An acronym standing for GNU Image Manipulation Program, GIMP (www.gimp.org/) is the best-known open source 2D graphics application. GIMP trails Photoshop in both features and usability, but it’s still a useful image editor, and you can’t beat the price!

B.3.3 TexturePacker

Whereas the previously mentioned tools are all used beyond the field of game development, TexturePacker is only useful for game development. But it’s very good at the task it was designed for: assembling sprite sheets to use in 2D games. If you’re developing a 2D game, then you probably want to try out TexturePacker (www.codeandweb.com/texturepacker).

B.3.4 Aseprite, Pyxel Edit

Pixel art is one of the most recognizable 2D gaming art styles, and these are good pixel art tools. Photoshop can technically be used for pixel art as well, but it’s not focused on that task. Furthermore, the animation features are more front-and-center at Aseprite (www.aseprite.org/) and Pyxel Edit (www.pyxeledit.com).

B.4 Audio software

A dizzying array of audio production tools is available, including both sound editors (which work with raw waveforms) and sequencers (which compose music using a sequence of notes). To give a taste of the audio software available, this section looks at two major sound-editing tools (other examples beyond this list include Logic, Ableton, and Reason).

B.4.1 Pro Tools

Pro Tools audio software (www.avid.com/US/products/family/Pro-Tools) boasts many useful features and is considered the industry standard by countless music producers and audio engineers. It’s frequently used for all sorts of professional audio work, including game development.

B.4.2 Audacity

Although nowhere near as useful for professional audio work, Audacity (http://audacity.sourceforge.net/) is a handy sound editor for small-scale audio work, like preparing short sound files to use as sound effects in a game. This is a popular choice for those looking for open source sound editing software.