Welcome to Rapid Gameplay Prototyping, the first course in Unity’s Gameplay Programming Specialization!
This course is exam preparation for Unity’s Expert Gameplay Programmer Certification Exam. This course will challenge you with a series of realistic programming problems in Unity video-game projects, inspired by one or more of the topics covered in the Expert Gameplay Programmer Exam. Throughout this course, you will work on a 2D “infinite platformer” game project. This will help you practice prototyping core game play mechanics, including scripting GameObjects and their components, coordinating UI systems, and implementing UI scripting. You will also identify conflicts and implement solutions during the prototype stage.
This is an advanced-level course, intended for industry game developers or very experienced Unity enthusiasts who are looking to “level-up” their gameplay programming and implementation strategies. To succeed in this courses, you should have at least 2-3 years of experience developing games with Unity. You should be familiar with the full-game lifecycle (working from early concept to launch), creating and working with Prefabs, understanding game asset and animation pipelines, and have some experience with Unity Services. You should also have advanced programming skills, particularly in the C# language.
Core Gameplay Prototyping
For the first week of this course, you’ll get practice in identifying and configuring the required Components and key features for a game prototype from an analysis of a Game Design Document. You’ll develop the technical design for basic user controls, and behaviors for the player’s character and the NPCs, and then implement them.
UI Coordinate Systems
Providing feedback to the player is crucial for a game prototype, and nothing works as well to provide feedback as the User Interface. A UI has to be carefully constructed to deliver this feedback, though, and it has to be responsive. Thus knowledge of the various ways UI can be implemented into a game and how it performs across various devices is key to success.
This week you’ll be having a look at the various UI coordinate systems in order to determine which best supports your game’s mechanics. Then you’ll implement a basic UI, keeping the aspect ratios of varying devices in mind, all while optimizing the UI's performance. When you’re done, you’ll have a UI that, once wired up to the appropriate game code, will provide valuable feedback. But most importantly, it won’t detract from the gameplay experience.
Your UI is ready to provide feedback, and for that it needs data and methods of translating that data into visuals that user can quickly absorb. From simple meters for health or time, to complex maps showing player progress or proximity, these elements need to run smoothly and accurately. If your game must be localized into multiple languages, you’ll have to plan and execute for that, too.
This week you’ll delve into the scripting side of UI. You’ll hook up last week’s UI to your gameplay, and add new features derived from scene data. All this has to perform well, which will require a look at the UI Profiler to determine how to optimize per platform. For elements that require localization, you’ll use a script to determine which assets need to be replaced. When you’re done, your UI will give you real-time feedback on your gameplay.
Conflicts & Solutions During Prototype
The reason we prototype is to test an idea before fully committing to it. Ideas that sound amazing on paper may need a lot of tweaking, or may work great except for one big loophole. They may be completely infeasible, but through prototyping lead to something even better. By analyzing gameplay and making adjustments where needed, you can make a good idea into an amazing game. In this last week of Rapid Prototyping, you’ll be verifying the functioning of your procedural level generation and analyzing your prototype for any other conflicts in gameplay. Of course you’ll need to identify solutions for those conflicts should they emerge, and further prototype solutions. Some prototypes are made only to test an idea, while many go on to become the game should the idea be successful. Your prototype will be a fully playable game, ready for you to expand and iterate upon.