External tools used alongside Unity - Unity in Action: Multiplatform game development in C# with Unity 5 (2015)

Unity in Action: Multiplatform game development in C# with Unity 5 (2015)

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 already 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 a handful of 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), Git, and Mercurial; 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:

· http://subversion.apache.org/

· http://git-scm.com/

· http://mercurial.selenic.com/wiki/Mercurial

B.2. 3D art applications

Although Unity is perfectly capable of handling 2D graphics (and 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 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:

· www.autodesk.com/products/autodesk-maya/overview

B.2.2. 3ds Max

The other widely used 3D art and animation package, 3ds Max 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:

· www.autodesk.com/products/autodesk-3ds-max/overview

B.2.3. Blender

Though not as commonly used in the game industry as either 3ds Max or Maya, Blender is also 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:

· www.blender.org

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 is easily the most widely used 2D image application there is. The tools in Photoshop can be used for touching up existing images, applying image filters, or even painting pictures from scratch. Photoshop supports dozens of different file formats, including all image formats used in Unity:

· www.photoshop.com

B.3.2. GIMP

An acronym standing for GNU Image Manipulation Program, this 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!

· www.gimp.org

B.3.3. TexturePacker

Whereas the previously mentioned tools are all used beyond just 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.4. Audio software

A dizzying array of audio production tools are available, including both sound editors (that work with raw waveforms) and sequencers (that 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

This audio software 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:

· www.avid.com/US/products/family/Pro-Tools

B.4.2. Audacity

Although nowhere near as useful for professional audio work, Audacity 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:

· http://audacity.sourceforge.net/