Welcome to Application Systems Programming, the second course in the Unity Certified Programmer Specialization from Unity Technologies.
This course will help you prepare for the Unity Certified Programmer exam, the professional certification for entry to mid-level Unity programmers. Unity is used to create real-time 3D applications for many industries, including video games, automotive, film, training, and more. In this course, you will be challenged to solve realistic Unity programming problems that are aligned to topics covered on the exam. Throughout the second course, you will expand upon the development of a 2D action video game that was started in the first course: AsteraX. In doing so, you will practice many of the skills covered in the exam, including adding particles effects, implementing user customizations, managing user and application data, and optimizing for different platforms.
This is an intermediate course, intended for people who are ready for their first paying roles as Unity programmers, or enthusiasts who would like to verify their skills against a professional standard. To succeed, you should have at least 1-2 years of experience programming interactive applications in Unity. You should be proficient at programming in the C# language and familiar with Unity's scripting APIs. You should have experience in the full product development lifecycle, from concept to launch (and beyond). And you should understand multi-platform development, including deploying applications to XR (AR and VR) platforms.
Particle and Effects Systems
For the first part of the course, you'll get an introduction to the course and its Challenge/Solution format, then launch right into challenges that will take the AsteraX game to the next level. Games and other software applications can strongly benefit from user feedback systems that provide a lot of impact and interest. Unity's particle systems can create powerful visual effects, and in the first challenge of this course, you'll implement particle systems to create satisfying explosions and other effects to add excitement to the game.
User Progress and Reward Systems
In the following two lessons, you'll continue to add important application systems to the game. First, you'll implement multiple level support with progressively increasing difficulty, as well as the ability for the user to pause the game. Then you'll create a popular type of user reward system: a set of achievements that the player can earn for reaching defined milestones.
Data Management and User Customization Systems
What's the use of user progression systems if application data doesn't persist between sessions? In this week's lesson, you'll implement a way to save the user's data to the local device. After setting up Unity Analytics in preparation for a later lesson, you'll implement user customization functionality: allowing users to unlock new ship parts and build their own custom ship from the menu.
Optimizing for Performance and Platforms
Let's assume this week that the application is relatively complete and you're ready to launch it to the public. Instead of releasing it blindly, however, you're going to wire it up to Unity Analytics and RemoteSettings, which will allow you to track user progression and update the game difficulty in an agile fashion without releasing a new version. For your final challenge of this course, you'll prepare a mobile version of the game with the appropriate inputs and optimizations.