The Unity Online Community

Một phần của tài liệu Game Development for iOS with Unity3D 2012 (Trang 266 - 278)

10. Thinking Outside the Box 243

10.8 The Unity Online Community

Developer Portal with the UUIDs of any new devices, you will also have to redownload profiles each time a new tester joins and package the profile up with each new build. The time spent talking users through the process of installing builds via iTunes or through an .ipa file (not to mention staying on top of keeping all of your testers informed about new builds via email) could be put to better use.

TestFlight is a free online solution providing over-the-air installation—that is, it’s a solution that means that your testers don’t need their devices to be tethered via USB cable to a computer for installation. In essence, TestFlight provides one-click installation straight from your tester’s iOS devices, adding a friendly front end to an installation procedure that may have otherwise been an intimidating process for novice users. It also offers user management for your testers, meaning that you can organize your testers into groups and distribute either group-specific builds or builds for everyone.

As well as the distribution and management of your test builds, TestFlight can aid the debugging process further with its software development kit (SDK). The SDK in- cludes such functionality as remote logging, crash reports, checkpoints, tester feedback via in-app questions, and more.

Implementing the functionality of the SDK and setting up Unity to build projects suitable for TestFlight can be daunting, but there is an alternative solution. The Unity Asset Store sells a low-cost system named Autopilot (for TestFlight SDK),8 which auto- mates the entire TestFlight build and uploading processes. I highly recommend it if you intend to use TestFlight, since it not only simplifies the process to a single click but also provides access to the Autopilot SDK, meaning that you can easily get crashlogs, user feedback, checkpoints, and session data from your users in real time. During testing, the extra functionality it provides could easily save you from a lot of extra work diagnos- ing bugs or providing support to your users.

10.7 Mantis

One of the most common tracking systems is Mantis. Mantis is a PHP-based free, web- based bug-tracking system working with MySQL, MS SQL, PostgreSQL databases, and a web server. If all that means nothing to you, don’t panic. Most low-cost hosting pack- ages will have these features, and some hosts may even have the ability to automate the installation in a single click. If you are in any doubt, of course, consult your hosting provider.

The full installation instructions for Mantis are beyond the scope of this book.

Mantis does have extensive installation instructions in its documentation if you feel competent enough to take that on yourself, but I would recommend http://www.

simplescripts.com as a great web-based utility for automating the Mantis installa- tion to your server.

10.8 The Unity Online Community

One of the best things about Unity is the amazing community of experts and artists that use it. On my Unity journey, I have met some incredible people and made friends with people from all around the world via Twitter, the Unity forums, IRC, and conferences.

One trait you tend to notice is that most Unity users are more than simply users of the

8 http://u3d.as/content/cratesmith/auto-pilot-for-test-flight-sdk/2cU

software, but people passionate about their tool of choice and, perhaps even in some cases, a little defensive about it. Unity, for many, provides a voice that we didn’t have before and a playground for our imaginations to run wild in. The freedom and power that this software gives to the independent or hobby coder is something unrivaled by anything else.

If you find yourself with a problem you can’t solve, or perhaps you have an idea and you are looking for the best way to make it happen in Unity, there are a number of places to get help from within the community. There is a vibrant and exciting independent game developer community out there, too, which means awesome support and places to pick up useful free code snippets.

10.8.1 The Unity Site Forum

The forum provided on the Unity website9 is a well-established resource and hangout for Unity users. Here, you will find product announcements, a showcase, news about the Asset Store and items on it, gossip, and forums for both collaboration and commer- cial work. Unity support is also provided here.

Be sure to do a quick search before posting up support questions, as your problem may have already come up before and an answer may well already have been posted.

Generally, people are extremely friendly within the Unity community, though not al- ways rich with time, so you should never expect an instant answer. Sometimes it can take a while to get a response, but I can’t think of a time when any of my posts have ever gone unanswered.

10.8.2 Unity Answers

To quote the Unity Answers site, “Unity Answers is the best place to ask and answer questions about development with Unity.”10 I couldn’t have put it better myself. It works by users and Unity staff providing answers to questions posted by other users. The vot- ing system also makes it easy to find the best answers quickly.

The community is quite spectacular and Unity Answers is a great resource for prob- lem solving. At the time of writing this book, more than 29,457 questions have been answered with more than 40,278 answers!

10.8.3 IRC Chat

The Unity3D IRC Channel is not an official Unity creation, but you will often find Unity staff using it and ready to help out. The discussion is mostly Unity-related, but don’t be surprised to find the occasional conspiracy theory discussion or trout-slapping session.

Grab an IRC client and point it to irc.freenode.net.

Join the #unity3d room to chat in real time with other users. Remember to be polite and courteous at all times—these are real people, after all!

10.8.4 The Unify Wiki

The Unify Wiki11 is part of what is know as the Unify Community,12 which is made up of a wiki, free tutorials, a gallery of Unity-based games (called the ”Unicade”), and the

9 http://forum.unity3d.com

10 http://answers.unity3d.com

11 http://unifycommunity.com/wiki

12 http://unifycommunity.com

10.8. The Unity Online Community 251

Unitree project. Everything here is free and available for download, although you should note that the Unify Community relies on contributions from its users or money gener- ated through the sale of merchandise available on the website. Grab yourself a Unity mousepad and t-shirt and, if you can afford it, please make a donation to keep this valu- able resource online.

The wiki is the place for Unity users to find and share their knowledge. It contains a wealth of goodies from shader code to wizards, game code (in-game elements like ra- dars or car physics, character controllers, utility scripts, camera code, GUIs, and more), particle systems, tips and tricks, articles, tutorials, and more. I have to emphasize this as much as I can, though—if you take, please try to give back either through donation or through contributing your own useful scripts. Not only is it a great way to help out your fellow Unity users, it’s a great way to get your name out there as a code guru and earn some respect and reduce bad karma!

10.8.5 Twitter

Twitter13 is rife with Unity and game developers, as well as a vibrant and exciting indie game community. If you are new to Twitter and looking to build up your follow list, here are some Unity-related accounts you should add right away (including my own, of course!):

y @PsychicParrot y @Unity3D y @TornadoTwins y @DavidHelgason

For more general game development chat, news, and information, you should con- sider following:

y @Dubane

y @VillageGamer y @Envato

y @CartoonsByRic y @RichPantsOn y @GeorgeBray y @GamaSutra y @OwlchemyLabs y @SpiltMilkStudio y @BugbearGames

13 http://www.twitter.com

Glossary

A

(Apple) Developer Center: Available to subscribers to the Apple Developer Programs, this is where certificates are issued, development software is downloaded, and development devices are registered with Apple.

ARM: ARM is a 32-bit RISC (reduced instruction set computer). The ARM architecture is used in the design of processors for low-power applications. Originally introduced by Acorn Com- puters in 1987, the architecture is used today in the design of the processors in most mobile devices, including those produced by Apple such as the iPhones, iPods, and iPads.

ArrayList: An ArrayList is an array, a dynamic data structure suitable for the storage, retrieval, and manipulation of data.

artificial intelligence (AI): In this book, we use a simple path following system for our AI players.

assets: In the games industry, almost all parts of a game project that are not hardware or software are referred to as assets, such as graphics, audio, or animations.

audio listener: Unity requires at least one audio listener to be present in every scene of a project.

The audio listener acts as an ear to the 3D world. Whatever audio would be heard at that point in the 3D space will be played out through the computer’s audio system.

AudioSource component: The AudioSource component is used in Unity to emit sound within a game environment. It is a component that is applied to a GameObject.

B

batching: The combining of objects in Unity.

Boolean: Refers to a system of thought developed by mathematician and computer pioneer, George Boole. In this book, we use variables declared as Boolean that may be one of two states, either true or false.

breakpoints: During debugging, it is useful to be able to pause script execution at a chosen point.

This may help to diagnose issues by looking at variable values at a particular time or perhaps seeing what is being rendered on screen at the point of pausing. To facilitate this, developers place breakpoints into scripts to tell the engine where to pause execution of a debug build (breakpoints will only stop execution in a debug build).

bundle identifier: Think of a bundle identifier as an application’s ID, used to identify it during cer- tification. An application’s bundle identifier ties it to a provisioning profile during development or ties it to a distribution profile when it comes time to distribute or upload to Apple.

C

cache: A collection of data, normally a temporary store.

cells: Culling necessitates the environment to be broken up into smaller areas. Each small, square area, known as a cell, contains information used to calculate visibility of the objects in the scene.

certificate signing request (CSR): A small file generated by an OSX application called Keychain, from a Mac, used to describe the developers system to the Developer Center when generating Development Certificates.

checkbox: A simple user interface element that can be set either on or off by clicking or tapping on it.

collider: A collider is a Unity component that provides collision detection to your GameObjects via the PhysX engine.

color depth: The number of bits used in image data to indicate the color of a single pixel. The higher the number, the more colors but with the disadvantage of using more memory to store the image.

cube mapping: The most common method for simulating reflection, such as the surface of mirrors or chrome. It uses six textures (or, in some cases, a texture split into six areas) to represent up, down, left, right, forward, and back views.

D

dependencies: When one task relies on the completion of another before it may be completed, we often refer to those other tasks as the main task’s dependencies.

development provisioning profiles: Development profiles contain information on which devices your application is allowed to run on during development. Without the correct provisioning profiles, your app will not run on any iOS device.

Glossary 255

draw call: This term normally refers to function calls within or between scripts.

draw call batching: Combining draw calls to reduce the amount of information sent to the graphics cards and therefore reducing the overhead in the transport and processing of graphics data.

drop-down menu: A drop-down menu is a menu that appears upon clicking on a button or icon.

The menu “drops down” from an area close to or within the button or icon.

E

elevator pitch: An elevator pitch is the summary of a concept that may be delivered within the time it takes for an elevator to reach its floor. The idea is that elevator pitches summarize something quickly and in the most exciting way possible, usually in order to achieve a sale or authorization to go ahead with building a larger project.

Euler angles: Three angles introduced by Leonhard Euler to describe the orientation of a rigid- body. In Unity, these angles are defined as 3D vectors such asVector3(1,2,3).

F

first-person-shooter (FPS): The game is played out through a first-person perspective, usually as though you are looking out at the game world through the eyes of the main character.

flat velocity: In the context of this book and the code within it, the flat velocity is the velocity of a rigidbody physics object in a 3D space without taking into account its vertical (y) axis. For example, we use this in Chapter 6 to calculate the speed of our kart so that we can stop it from going too fast. If we were to take into account its y-axis, the calculated speed would be incor- rect on slopes.

flythrough: This term refers to the flying action of some form of floating, disembodied camera. It may be controlled by a user or automatically moved by the computer.

G

game design document (GDD): A document outlining some or all of the elements and concepts within a video game.

GameObject: A GameObject is an element within a scene in a Unity project. This is discussed in detail in Section 4.1.2.

Gantt chart: An informational diagram. See Section 1.9.

garbage collection: In programming, we create objects and references to objects throughout our scripts. These objects and references use up an amount of RAM and must, at some point, be cleaned up and the memory freed up for other purposes. This process is known as garbage collection.

graphical user interface (GUI): See user interface (UI).

h

homepage: A main page of a website, usually the page that appears by default when a website is visited for the first time.

hot keys: Keyboard shortcuts.

I

instancing: An instance may be thought of as an occurrence of an object, although it is usually used in the context of being a reference copy of an object (not an actual object), which reduces overhead in either memory or processing or both.

instantiate: In programming terms, instantiation is the process of forming a copy of an existing object that is independent of its template object. Unity instantiates objects into game scenes on demand, such as player objects, character rigs, or effects. We look at this in more detail in Section 6.2.7.

iOS: The name of the operating system used by Apple Inc. mobile devices such as the iPhone or iPad.

iPad (1, 2, or 3): The iPad is Apple’s tablet computer system. To date of writing, there are three generations of iPad.

iPhone: A brand of smartphone made by Apple Inc.

iPod: Apple Inc.’s mobile MP3 player.

iPod Touch: A mobile MP3 player with added functionality to run apps and games the same way as the iPhone produced by Apple Inc. Essentially, iPod Touch are iPhones without the phone.

iTunes Store: Commonly known as the App Store, this is the place for iOS users to download and purchase applications and games for iOS devices.

J

JavaScript: The JavaScript programming language. See Section 4.1.6.

L

layers: The Unity interface provides access to a layering system, used to help easily identify game elements.

lightmapping: A lightmap is a data structure containing information on the brightness of surfaces.

Unity uses the Beast lightmapping system to create the effect of a computationally expensive lighting system (offering shadow projection) by applying lightmaps to its surfaces.

M

(Mac) OS or OS X: The operating system that Apple Macintosh computers use. An operating system is a vital part of any computer system, as it provides a suite of programs managing hardware resources and providing services for other software such as games or applications.

Glossary 257

massive multiplayer online game (MMO): A video game where a large number of players can interact with each other.

massive multiplayer online roll-playing game (MMORPG): We won’t be building any of these, but we do touch on just how much work it takes to build one!

memory footprint: The peak amount of space in memory that a software application takes up as it is running.

mind mapping: A form or diagram suitable for studying and organizing information such as ideas or story elements.

mipmapping: A system of filtering intended to reduce aliasing artifacts and increase rendering speed. Mipmapping should be used sparingly on limited memory devices, as it uses several precalculated, optimized images that require extra memory to store.

modeling: The act of building 3D models with modeling software.

MonoDevelop IDE: A script editor and debugger bundled with all versions of Unity.

N

.NET libraries: A library of classes, interfaces, and value types designed to be the foundation on which .NET Framework applications are built. In Unity, .NET support is provided by the MONO platform, which is an open source, cross-platform framework. Unity uses MONO to support C#, which uses the .NET framework.

null reference exception: This is an error that occurs when code tries to access an object that has a value of null. Normally, these types of exceptions will be caught by the engine and reported to you before compilation is possible; however, there are always exceptions to the rule and it is al- ways possible that objects are initialized in a different order on different platforms, which may lead to null referencing on a device that is not immediately apparent in the editor. A simple null value check before accessing objects is usually all it takes to stop the exception occurring. See Section 6.2 for more information.

O

occlusion culling: A line-of-sight–based system that means the renderer will only draw when it needs to, freeing up precious CPU cycles and helping to keep up the frame rate.

P

PHP: A scripting language generally used for web development.

pickups: Virtual objects in a game world that may be picked up by the player.

powerups: Virtual objects that change the behavior of the player, environment, or other objects.

prefabs: Precomposed objects in a Unity project. See Section 4.1.10.

press kit: A collection of product information put together (usually in one download location) to make it easier for members of the press, such as a reviewer or PR agent, to be able to include screenshots during a review or write-up of a product.

promo (promotional) codes: To provide users with free copies of normally-paid-for iTunes Store published games, developers can distribute promotional codes generated through the iTunes Connect portal. Promotional codes (also known as promo codes) usually take the form of a string of letters and/or numbers. A user may redeem codes by typing them into the iTunes Store, which will reward them with a copy of the app being associated to their account and available for download and installation. Promo codes have a limited lifespan and will expire, which means that once they are generated, they should be distributed immediately.

Provisioning Portal: The section of the Apple Developer website dedicated to the management of provisioning certificates. See Section 2.7.4.

Q

quality assurance (QA): The Quality Assurance team normally provides support to the technical and creative teams in finding and diagnosing issues. This may include providing feedback on issues such as functional problems (bugs), game-play issues, or asset problems such as audio or graphics problems. A QA team may also be responsible for designing and building additional tools or environments to support teams in providing robust products, such as automated test- ing systems, logging software, or specific hardware set-ups.

R

rect: Short for rectangle, the rect object provides a method to define a 2D rectangle in code (part of the Unity library and applying to all languages supported by the engine).

renderer: The renderer is a component applied to a game object in the Unity engine that adds functionality to render 3D geometry.

replayability: Generally a term for the likelihood of players returning to a game to play again.

reproduction (repro) steps: During testing, it may sometimes be difficult to define an issue with just words. Most commercial QA/testers will provide steps to reproduce the issue so that the team can see the problem for themselves.

RGB (red, green, blue): A color scheme used in additive color modeling.

rigidbody: A physics object. See Section 4.5.

S

shader: A small program used to calculate rendering effects on graphics hardware. Unity ships with many different shaders. See Section 4.1.3 for more information.

shoot ‘em up: A type of game focused on the firing of some kind of weapon and the destruction it causes.

sidescroll (or sidescroller): A term used to describe a game that has a moving background, nor- mally (but not limited to) a jump-and-run platform game.

Một phần của tài liệu Game Development for iOS with Unity3D 2012 (Trang 266 - 278)

Tải bản đầy đủ (PDF)

(278 trang)