Difference between revisions of "Unity Course Notes"
Line 179: | Line 179: | ||
* The 2 script types supported are C# and UnityScript | * The 2 script types supported are C# and UnityScript | ||
* specular property controls COLOUR and STRENGTH of reflection | * specular property controls COLOUR and STRENGTH of reflection | ||
+ | * the material property controls spreading of light on microsurface details: SMOOTHNESS | ||
+ | * material rendering mode uses black in an alpha channel to define where material is exactly NOT appearing - CUTOUT | ||
+ | * The albedo of a material is defined as: colour of the material without lighting data | ||
== Lesson 3 - Lighting and animation== | == Lesson 3 - Lighting and animation== |
Revision as of 08:13, 5 September 2020
My informal notes on a Unity course I am taking towards the Unity Certification!
Contents
- 1 Lesson 1 - Welcome to Unity Certified Developer Courseware
- 1.1 Economics of Games
- 1.2 Game Production Pipeline
- 1.3 Job Roles
- 1.4 Getting Started / User Interface
- 1.4.1 Install the IDE
- 1.4.2 Set up the interface in an ergonomic way
- 1.4.3 Creating Game Object
- 1.4.4 Child & Parent Objects
- 1.4.5 Tagging
- 1.4.6 Importing from Asset Store
- 1.4.7 GameObject Settings
- 1.4.8 Transform (moving)
- 1.4.9 Importing Packages the right way
- 1.4.10 Arranging Prefabs
- 1.4.11 Navigation
- 1.4.12 Game Level Design
- 2 Lesson 2 - Managing Project, assets, game level
- 3 Lesson 3 - Lighting and animation
- 4 Lesson 4 - Intro Scripting in Game Dev
- 5 Lesson 5 - navigation / pathfinding / player allies enemies
- 6 Lesson 6 - Particle Systems
- 7 Lesson 7 - audio, camera, player selection, system, user interface
- 8 Lesson 8 - building and prepping for mobile deploy
- 9 Certification Exam
- 10 Beyond Unity
Lesson 1 - Welcome to Unity Certified Developer Courseware
Conducted by Koh Siang Leng, 5 Sept 2020, 10am
Note how some versions in unity hub have LTS and some do not.
Are you irritated cos unity updated and everything BROKE? Use version of unity LTS "Long term support" - a version which does not accept any new features but will be supported for about 2 years.
Economics of Games
Unity has its own ad platform which makes it easier for a developer to integrate advertising for monetisation. Analytics is used extensively in mobile gaming too. Should be integrated in from the very start... (How?)
Monetise in the form of...
- Physical Purchase
- Download
- Subscription
- Freemium
- In game purchase
- Advertising
Game Genres to think about...
- Action
- Adventure
- Arcade
- Fighting
- Non-Game (<-- probably me)
- Platformer
- Puzzle
- Racing
- RPG
- Shooter
- Simulation
- Sports
- Strategy
- Survival
- Open world etc
Game Design Document and Technical Design Document
- For small company - the document is nice to read but in practice sometimes along the way people do not update along the way as they are building and playtesting the game.
- For big company - there is probably a dedicated team doing this all day, that's their job to make the roadmap updated all the time!
Game Production Pipeline
Step 1 Pre-production
- Create the game design document and technical design document
Step 2 Production
- Implementing assets and creating game play
- building the game for release
Step 3 Maintenance
- Fixing bugs and releasing patches
- Incremental functionality improvements
Step 4 Upgrade
- Building and releasing new content
- Major additions and mods, such as new levels, seasonal content, special release (like upsize of your happy meal - it is easy to upsell when they are always interested in your product)
Job Roles
THEY WILL TEST THIS IN THE EXAM. take note on art director vs concept artist in particular.
- Concept art = provides unifying point for art direction (hence commonly confused with art director role)
Getting Started / User Interface
Install the IDE
- Install Visual Studio: https://visualstudio.microsoft.com/
- Link it as editor.
Set up the interface in an ergonomic way
Can even put inspector on its own on a 3rd col on the right.
Creating Game Object
Child & Parent Objects
Tagging
- What is the purpose of tagging? (common question in unity exam) - We say its used to find gameobjects (not grouping). It doesn't matter to Unity what is the gameobject tag. Its for the developer to find items with same tags.
Importing from Asset Store
GameObject Settings
Transform (moving)
You can be precise about the position you move in Inspector
Importing Packages the right way
- Often there are clashes with basic assets like main camera, you can overwrite them all usually and ignore the warning.
Arranging Prefabs
- (Mac) Command-D to copy, Command drag to drag with snapping (Ctrl-D for windows)
- Command-delete to delete the prefab
- Common rookie mistakes by students - trying to drag into the game instead of scene editor, or double clicking into editing the prefab itself instead of the scene
- Create empty gameobject, put all the blocks inside it so this container holds all your blocks
- Window > AI > Navigation > Clear & Bake
- Change Agent size and other values to tune your pathfinding
- Created an empty and put the maincamera as a child of the hero and its like a fps (3rd person view)! It works! (trainer approved)
Game Level Design
- A game could be composed of several different levels.
- With level design, you can progressively teach the player new skills in the game (hidden tutorials)
Examples of Game Level Design:
- Basketball shooter game: a level design would occupy a finite space, be bounded to a basketball size with walls, have a basket on either end, and floor markings to indictate the play area.
- 2D platformer games: consists of one continguous continuous background. level design elements are to facilitate game mechanic, placement of elements don't correspond to real world placement as much as game mechanic.
- 3D shooter: level design dictated by mechanics of the game - cover mechanism allows player to duck behind objects, placement of objects and lighting allows game to be played effectively.
- Endless Runner: obstacles test the player's reflexes, bounding or side wall conditions, overhead and underfoot tracks/wires elements.
- Zombie Toys: cover for player, enemies in form of props, concealment point
- Trainer shared an example of a game level design map drawn by his children. boss levels and all. :-D
Difficulty of game level
- must not be too hard
- must allow user to gain mastery progressively
- after user has mastery, they will find it harder to stop playing your game
Lesson 2 - Managing Project, assets, game level
Additional Box Collider
- Let's say you have many elements, what if your player decides to do a weird wall hug and squeeze thru your buildings and perhaps fall off the game map entirely?
- In Inspector > Add additional box collider > Extend your collider
- Remember to set your collidable items as "static"
Rigidbody
- Rigidbody component > uses gravity / uses “drag” to determine the air resistance from forces affecting the game object
- https://docs.unity3d.com/Manual/RigidbodiesOverview.html
- may want to apply some drag so got friction otherwise will keep moving
Raycast
- Raycast > locates colliders along the path of a ray (immediately, like a laser)
- https://learn.unity.com/tutorial/let-s-try-shooting-with-raycasts
Project Management
- Naming convention
- can be simple (human readable) or have a system (requires a legend for universal understanding amongst team members
- eg in animation, dope sheet
Shaders
- Albedo map - flat colour without light
- Normal map - makes detail on surface
- Occlusion - shadow map
- Emission - emit light
Cutout
- Shader > Cutout For alpha channel artwork - adds complexity quickly
Cookie
quiz qn examples
- The breadcrumb in project window shows: FILE PATH OF SELECTED ASSET (you must select it first)
- Acceptable formats for audio are: AIFF, MP3, WAV, and OGG. (Unacceptable -> MIDI, RCA, IFF, QuickTime, Egg, wav, avi)
- Project Window toolbar allows searching assets by: Label and Type
- Modifying organisation of assets is done in PROJECT WINDOW (assets is just your files on the computer)
- The 2 script types supported are C# and UnityScript
- specular property controls COLOUR and STRENGTH of reflection
- the material property controls spreading of light on microsurface details: SMOOTHNESS
- material rendering mode uses black in an alpha channel to define where material is exactly NOT appearing - CUTOUT
- The albedo of a material is defined as: colour of the material without lighting data
Lesson 3 - Lighting and animation
Lesson 4 - Intro Scripting in Game Dev
Lesson 6 - Particle Systems
Lesson 7 - audio, camera, player selection, system, user interface
Lesson 8 - building and prepping for mobile deploy
Certification Exam
- 100 questions pulled randomly from a bank - mcq, drag and drop, matching, hotspot
- 90 mins to complete
- must score 70% to earn Unity Certified Developer
- Unity Exam shortcut section - based on PC
Beyond Unity
- Unity isn't the game for every sort of game. Can also consider Cocos-2dx.