Unity Certified Programmer

Similar documents
Save System for Realistic FPS Prefab. Copyright Pixel Crushers. All rights reserved. Realistic FPS Prefab Azuline Studios.

INTRODUCTION TO GAME AI

Space Invadersesque 2D shooter

Unity Game Development Essentials

Experiment 02 Interaction Objects

Unity 3.x. Game Development Essentials. Game development with C# and Javascript PUBLISHING

Shoot It Game Template - 1. Tornado Bandits Studio Shoot It Game Template - Documentation.

The purpose of this document is to outline the structure and tools that come with FPS Control.

Beginning 3D Game Development with Unity:

Procedural Level Generation for a 2D Platformer

Workshop 4: Digital Media By Daniel Crippa

Group Project Shaft 37-X25

Game Design 2. Table of Contents

Game Design Comp 150GD. Michael Shah 3/6/15

COMPASS NAVIGATOR PRO QUICK START GUIDE

Emergent s Gamebryo. Casey Brandt. Technical Account Manager Emergent Game Technologies. Game Tech 2009

School of Interactive Arts. Prospectus

Spell Casting Motion Pack 8/23/2017

Easy Input For Gear VR Documentation. Table of Contents

Introduction. Modding Kit Feature List

Ball Color Switch. Game document and tutorial

By Chris Burton. User Manual v1.60.5

Gaming Development Fundamentals

..... l ss t h t an an $100,000 of 000 of ann an u n al u al gross r evenu n e

Learn Unity by Creating a 3D Multi-Level Platformer Game

Easy Input Helper Documentation

Instructions for using Object Collection and Trigger mechanics in Unity

Team: Couch Potato Gaming. Ohio State Computer Science/Engineering 5912 Capstone. Game Design Document

Catch The Kites A Lightweight Android Game

The Archery Motion pack requires the following: Motion Controller v2.23 or higher. Mixamo s free Pro Longbow Pack (using Y Bot)

Attack of Township. Moniruzzaman, Md. Daffodil International University Institutional Repository Daffodil International University

Sword & Shield Motion Pack 11/28/2017

Official Documentation

Control Systems in Unity

Game Design Document. Plataforms: Platformer / Puzzle

Heavy Station Kit base 2

"!" - Game Modding and Development Kit (A Work Nearly Done) '08-'10. Asset Browser

Federico Forti, Erdi Izgi, Varalika Rathore, Francesco Forti

UNITY TECHNOLOGY ROADMAP

Game Programming Paradigms. Michael Chung

Chapter 1:Object Interaction with Blueprints. Creating a project and the first level

Macquarie University Introductory Unity3D Workshop

Sensible Chuckle SuperTuxKart Concrete Architecture Report

PoolKit - For Unity.

CompuScholar, Inc. Alignment to Utah Game Development Fundamentals Standards

Game Design 1. Unit 1: Games and Gameplay. Learning Objectives. After studying this unit, you will be able to:

Single Player Orientation

Pangolin: A Look at the Conceptual Architecture of SuperTuxKart. Caleb Aikens Russell Dawes Mohammed Gasmallah Leonard Ha Vincent Hung Joseph Landy

Adding in 3D Models and Animations

3D Top Down Shooter By Jonay Rosales González AKA Don Barks Gheist

Oculus Rift Getting Started Guide

Oculus Rift Getting Started Guide

A video game by Nathan Savant

Instructions.

PASSENGER. Story of a convergent pipeline. Thomas Felix TG - Passenger Ubisoft Montréal. Pierre Blaizeau TWINE Ubisoft Montréal

University of California, Santa Barbara. CS189 Fall 17 Capstone. VR Telemedicine. Product Requirement Documentation

ADVANCED WHACK A MOLE VR

Evaluating Performance of Point and Shoot in Bow and Arrow Shoot Mobile Game: Touch, Swipe, Rotate, Artificial Intelligence

CONCEPTS EXPLAINED CONCEPTS (IN ORDER)

TATAKAI TACTICAL BATTLE FX FOR UNITY & UNITY PRO OFFICIAL DOCUMENTATION. latest update: 4/12/2013

Foreword Thank you for purchasing the Motion Controller!

PRODUCT DEVELOPMENT Family LINE OF. Product Live Ops

Z-Town Design Document

Introduction to Game Design. Truong Tuan Anh CSE-HCMUT

Greg Dydalewicz Animation Six Weeks TEKS TEKS Strand Interdisciplinary/Activity 1st (1) Creativity and

Engineering at a Games Company: What do we do?

Installation Instructions

Rubik s Cube Trainer Project

Their journey starts here

An Approach to Maze Generation AI, and Pathfinding in a Simple Horror Game

PLANETOID PIONEERS: Creating a Level!

Naturey Snake. Cal Poly Computer Science Department. By Oliver Wei Hao Xia Fall 2015 SENIOR PROJECT REPORT

Whiskey2D A 2D Game Creator

Game Design Document. RELEASE December 18, Austin Krauss

The 8 th International Scientific Conference elearning and software for Education Bucharest, April 26-27, / X

True bullet 1.03 manual

Introduction to Computer Science - PLTW #9340

Page 1

LANEY COLLEGE COURSE OUTLINE

Game Engines: Why and What? Dan White Technical Director Pipeworks Message

Deeper into GameplayKit with DemoBots

Orbital Delivery Service

Section 39: BobmerMan How-To

VR Easy Getting Started V1.3

Title (Name of App) Preview

VACUUM MARAUDERS V1.0

Competition Manual. 11 th Annual Oregon Game Project Challenge

EVAC-CITY. Index. A starters guide to making a game like EVAC-CITY

CS 354R: Computer Game Technology

First Steps in Unity3D

the gamedesigninitiative at cornell university Lecture 4 Game Components

Ascendance : A Platformer for Computers. By: Philip Scott Beauchamp and Joseph Grant Plaster. California Polytechnic State University

Abandon. 1. Everything comes to life! 1.1. Introduction Character Biography

HERO++ DESIGN DOCUMENT. By Team CreditNoCredit VERSION 6. June 6, Del Davis Evan Harris Peter Luangrath Craig Nishina

Warmup Due: Feb. 6, 2018

Beginning ios 3D Unreal

Game Design Document 11/13/2015

Toon Dimension Formal Game Proposal

Achieving High Quality Mobile VR Games

Transcription:

Unity Certified Programmer 1 unity3d.com

The role Unity programming professionals focus on developing interactive applications using Unity. The Unity Programmer brings to life the vision for the application using the features of the Unity Editor, together with the visual and audio assets created by other members of the software development team. The Unity Programmer is a programming generalist, adept at solving difficult problems with code, and responsible for contributing to a broad range of potential technical tasks, including integrating art assets, coding the user interface, scripting user interactions and game system rules, implementing application state logic, simulating physics, debugging code, and optimizing performance. Unity Certified Programmer is a professional certification for entry-level to mid-level programmers and graduating post-secondary students seeking programming roles in a variety of industries. This certification shows potential employers that the holder: Employs programming acumen within the context of professional software development processes to contribute to the creation and maintenance of applications built using the Unity Engine Has an aptitude for technical processes, is logically oriented and resourceful Can be entrusted to handle routine to mid-level programming tasks independently and to work through complex technical challenges with more senior engineers Job titles for this role Gameplay Programmer Software Engineer Software Developer Unity Developer Mobile Application Developer 2 unity3d.com

Prerequisites This certification was created for programmers who are recent college graduates in game programing, computer science, or related fields; independent learners who have completed 2 or more years of college-equivalent study or work experience in programming; or early-career to mid-career professionals who have been using Unity professionally. Candidates should come to the exam with previous hands-on experience programming interactive applications with Unity by themselves or as part of a cross-functional team, resulting in a completed prototype or technical demo. Prerequisite Experience: 2+ years practical experience in video game or 3D interactive programming using Unity 2+ years practical experience in computer programming including C# Experience in the full software development lifecycle working from concept through completion Understanding of professional applications for software development with Unity including game development, interactive entertainment, and design visualization Basic understanding of the visual/3d asset and animation pipeline in Unity, including character and environment setups Understanding of professional team software development practices including unit testing and version control Knowledge of Unity Services for collaboration, monetization, live operations, and multiplayer Understanding of mathematics critical to 3D interactive development, including linear algebra and matrix operations Note: This certification was developed for Unity version 2017.3. 3 unity3d.com

Core skills The core skills in this field of work focus on contributing to the technical execution of a project from conception through launch, and beyond. Programming Core Interactions Implement and configure game object behavior and physics Implement and configure inputs and controls Implement and configure camera views and movement Working in the Art Pipeline Understand materials, textures, and shaders, and write scripts that interact with Unity s rendering API Understand lighting, and write scripts that interact with Unity s lighting API Understand 2D and 3D animation, and write scripts that interact with Unity s animation API Understand particle systems and effects, and write scripts that interact with Unity s particle system API Developing Application Systems Interpret scripts for application interface flow such as menu systems, UI navigation, and application settings Interpret scripts for user-controlled customization such as character-creators, inventories, storefronts, and in-app purchases Analyze scripts for user progression features such as scoring, leveling, and in-game economies utilizing technologies such as Unity Analytics and PlayerPrefs Analyze scripts for 2D overlays such as heads-up displays (HUDs), minimaps, and advertisements Identify scripts for saving and retrieving application and user data Recognize and evaluate the impact of networking and multiplayer functionality 4 unity3d.com

Programming for Scene and Environment Design Determine scripts for implementing audio assets Identify methods for implementing GameObject instantiation, destruction, and management Determine scripts for pathfinding with the Unity navigation system Optimizing for Performance and Platforms Evaluate errors and performance issues using tools such as the Unity Profiler Identify optimizations to address requirements for specific build platforms and/or hardware configurations Determine common UI affordances and optimizations for XR platforms Working in Professional Software Development teams Recognize concepts associated with the uses and impacts of version control with technologies such as Unity Collaborate Demonstrate knowledge of developer testing and its impact on the software development process, including Unity Profiler and traditional debugging and testing techniques Recognize techniques for structuring scripts for modularity, readability, and reusability 5 unity3d.com

Certification Exam Topics Programming Core Interaction Implement behaviors and interactions of Gameobjects and environments Identify methods to implement inputs and controls Identify methods to implement camera views and movement Working in Art Pipeline Knowledge of materials, textures, and shaders - Unity rendering API Knowledge of lighting - Unity lighting API Knowledge of 2D and 3D animation Unity animation API Knowledge of particle systems Unity particles API Developing Application Systems Application interface flow such as menu systems, UI navigation and application settings User-controlled customization such as character-creators, inventories, storefronts, and in-app purchases Implement user progression features such as scoring, leveling and ingame economies utilizing tools such as Unity Analytics Implement 2D overlays such as heads-up displays(huds), mini-maps and advertisements Saving and retrieving application and user data Recognize the value and impact of networking and multiplayer functionality 6 unity3d.com

Programming for Scene and Environment Design Determine scripts for implementing audio assets Identify methods for implementing GameObject instantiation, destruction and management Determine scripts for pathfinding with the Unity navigation system Optimizing for Performance and Platforms Evaluate errors and performance issues using tools such as the Unity Profiler Identify optimizations to address requirements for specific build platforms and/or hardware configurations Determine common UI affordances and optimizations for XR platforms Working in Software Development Teams Version Control: Impacts and uses of tools such as Unity Collaborate Testing and it s impact to software development process Recognizing techniques for structuring scripts for modularity, readability and reusability 7 unity3d.com

Sample Questions Question 1 A Programmer must implement a UI menu system. Each menu consists of a UI Panel and one or more UI Buttons, all of which are parented under a UI Canvas object. The entire UI menu system will be created in a separate scene that is loaded additively. The art style for the panels and buttons should be consistent (color, texture, button transition type, etc.), but the Art Director has not locked these decisions down yet. She would like to work on these settings concurrently with the Programmer s UI work. Her changes would take effect on all new and existing objects in the scene. What would be the best way for the Programmer to use Unity s functionality to easily create a functional menu system while meeting the requirement of allowing the Art Director to work concurrently (and independently) on the look and feel? A Create subclasses for UI.Button and UI.Panel, and set the look and feel values programmatically. B Create new button and panel materials, and assign them to all buttons and panels in the scene. C Use prefabs for the button and panel, and have the Art Director modify the prefabs. D Write a script to search/replace values in the scene file based on the Art Director s input. 8 unity3d.com

Question 2 A 3D endless runner game is set along multiple parallel train tracks in a rail yard. The Player is always running forward on the tracks, and must avoid oncoming trains by jumping over them or onto an adjacent track. Each new train added to the track is added behind all other trains on that track, however because trains move toward the Player at varying speeds, or not at all, trains occasionally overlap each other, which needs to be fixed. What is the most performant way to prevent new trains from overlapping with trains already on the same track? A When spawning a train on the track, determine a spawn position that will avoid the problem by using the speeds of the new train and the train last placed on that track as well as the point at which the train last placed on the track will de-spawn as it passes the player. B When a train is moving, raycast forward from the front of the train, and push any train hit by the raycast forward with the faster train s speed. C When spawning a train on the track, add a Rigidbody to it, and then use forces to move trains. D When spawning a train on the track, use a BoxCast with a length proportional to the train s speed to ensure that it will not collide with another train until it is behind the Camera. 9 unity3d.com

Question 3 A Programmer is working on a dark and moody room and must create a flickering torch that casts a dancing, eerie shadow over the walls, floor, and ceiling. The Programmer writes these functions on a MonoBehaviour attached to the torch: void Start() { Light light = GetComponent<Light>(); light.lightmapbaketype = LightMapBakeType.Mixed; light.type = LightType.Area; light.shadows = LightShadows.Soft; light.range = 5f; } void Update() { GetComponent<Light>().intensity = Mathf.PerlinNoise(- Time.time, 0); } The torch does not cast any light or shadow during run time. The light is set to the default values in the Editor. What should the Programmer change for this code to work as required? A Set light.lightbaketype to LightmapBakeType.Realtime B Set light.range to 10 C Set light.shadows to LightShadows.Hard D Set light.type to LightType.Point 10 unity3d.com

Question 4 A Programmer is developing a mining simulation game where the Player can dig through the ground in search of minerals. In one of the sites, the player can create a tunnel that intersects an existing cave system. The Design Document specifies that any audio that occurs in both the current caves or new tunnels should have some reverb. The Programmer needs to make sure the user is consistently in the closest cave s ReverbZone. How should the Programmer manipulate the AudioReverbZone properties to meet these requirements? A Increase the reflections to fit the new area. B Increase the maxdistance of both ReverbZones so that they touch within the new connecting area. C Increase the reverb to accommodate the new area. D Increase the decaytime on the new area. 11 unity3d.com

Question 5 While writing a loading function, a Programmer receives a compile error: error CS1624: The body of `CustomAnalytics.LevelLoading() cannot be an iterator block because `void is not an iterator interface type void LevelLoading(){ AsyncOperation async = SceneManager.LoadSceneAsync( Level_01 ); while (!async.isdone) { yield return null; } } What should the Programmer do to fix this error? A Change yield return null to yield return WaitForSeconds(0) B Change void LevelLoading() to IEnumerator LevelLoading C Change SceneManager.LoadSceneAsync( Level_01 ) to Application.LoadLevelAdditiveAsync( Level_01 ) D Change while (!async.isdone) to while (!async.allowsceneactivation) 12 unity3d.com

Question 6 A driving game s input system is mapped so that the horizontal input axis controls steering. During testing, it is discovered that some joystick devices register steering input even when the stick is centered. Which change should be made to the axis in the input system to resolve this issue? A Increase Gravity B Set Snap to true C Increase Deadzone D Decrease Sensitivity 13 unity3d.com

Question 7 In an adventure game set on an alien planet, the player must exterminate various life forms. The player s score increases for each kill. The Design Document states that the score must be linked to a player s account to retrieve later even if the player is on a different play session or a different device. What is the most reliable method for the Programmer to store the score data? A Use DontDestroyOnLoad() on the GameObject holding the score data and upload data to a server right before application quits B Save score in to PlayerPrefs every time it gets updated and uploaded to a server right before the application quits C Use a static value to store the score data so it will be available in the next play session D Use data serialization to persistently store the score data and upload it to a server Correct Answers: C, A, D, B, B, C, D 14 unity3d.com