8.6 — Boss Studio + Final Review
Your boss works (8.5), and the semester's final is a normal B day — a normal B day where you ship the game you have been building since September. Today is split in two: polish in the studio, then the review that makes sure you can talk about every decision you made, out loud, without notes.
Grade yourself against your own spec first. Open BOSS_SPEC.md
from 8.1 and read it line by line next to the running game. Every
attack has a telegraph the player can see? Every phase change is visible within a second?
The arena is the shape you drew? Write the gaps down before you fix any of them — a spec
you never check against the build is a wish, not a specification.
Then the three universal upgrades. Each one is optional, and each one has a real cost in a project this size:
-
Project window → nothing in this project makes a sound yet, so there is
no clip to drag in — import one of your own into
Assetsfirst. Then Inspector → Add Component → AudioSource on the object that should make the noise (open the attack prefab itself to put the swing sound on every instance), and drag the clip into the AudioSource's slot. Audio is half of "feel" and none of "mechanics", and it is the first audio in this project — budget for learning the component rather than assuming it is one line. - Inspector → Sprite Renderer → Color on the boss for the hit flash, or an Animator state if you would rather flash with an animation. Test it against the telegraph you already tuned: a flash that lands on the same frame as the wind-up is a tell competing with a tell.
-
Hierarchy → Main Camera → Inspector → the follow script from
Assets/Scripts/Package Scriptsfor the camera nudge on the charge. Be careful here: that script is finished and it is not yours, so a shake has to work with somebody else's follow logic rather than around it. -
Hierarchy → the Canvas in
Start (index 0)→ Inspector → the text slot onHudController, if the message belongs on the HUD you already own. If it belongs in the arena instead, you are building a second Canvas: right-click → UI → Text - TextMeshPro makes the Canvas, the text object and an EventSystem together. Which one it is, is the decision in the code half — make it there before you build either. - Game view → one full run, from the first control you ever wrote to the fight resolving, with a notes file open. Then GitHub Desktop → tag the build. The playable build is the portfolio.
Ship-freeze rules for the review: no new attacks, no new systems, no "just one more mechanic." New things break old things, and the build you demo has to be the most boring build you have made all year.
Socratic: What Did You Actually Ship?
- Name the one thing in your game that a stranger would remember after playing it. Is it the boss, the cave, or something you built in an earlier unit?
- Your project ships one Coin. Where is it, what does collecting it prove, and what is the honest one-sentence description of your game's economy?
- Which system in your game is the most fragile — the one most likely to break if you touched it? What does leaving it alone cost you?
One upgrade on that list is a file decision rather than a field, and it is the only code this studio asks for. The rest of the polish is an Inspector slot.
- Which file owns the message — the boss's death path, the HUD, or the listener on the event you wired in 8.5? Pick one and say what the other two would have to know that they do not.
- The HUD you own is a Canvas in
Start (index 0)reading the player's stats throughStatManager, and the boss dies in the arena. What would it take for that HUD to hear about a boss in a different scene? - If you print a line instead, who is it for — the player, or a tester with the Console open? Say which, honestly, then decide whether that is enough for a final build.
- If you build the second Canvas, what does the player see after a wipe sends them back to
Start (index 0)— and are both Canvases reading the same numbers, or two different ones? - The ship-freeze applies to code too, so this is the last script you write this semester. Can you test it inside the single run above — and if not, is that a reason to print a line and stop?
The final is a normal B day: your game, open, playable, and a conversation about it. Practise that conversation — answer each of these in about thirty seconds, out loud, without looking anything up.
- Trace collecting a coin from the moment of contact to the number going up. Name every method it passes through — and say which object the number now lives on, and why it moved there (2.1, 5.3).
- Draw whatever schedules your boss's attacks, from memory — a state machine with the
transition condition on every arrow, a coroutine in order, or the clock in
Update()(4.5, 8.4). - Explain
Time.deltaTimeto someone who has never written code (1.5). - Why is your jump "tight"? Name the three values you tuned (6.3).
- Where did you use the cooldown pattern? Count every instance in your game — the turret, then the enemy or the hazard, then your swing, then any attack the boss telegraphs.
- Where does the boss's health live, and where does the player's? Explain the difference in one sentence using the word lifetime (8.2).
- What does
Physics2D.queriesHitTriggersdefault to, and which tool did you use to stop it corrupting your ground check from 6.2 (8.3)? - If you built a UnityEvent on your boss's death, what does it decouple? If you did not, say what you did instead and what it cost you (5.2, 8.5).
- Which beat of your cave killed the most playtesters, and what is the data behind that claim (7.7)?
Socratic: Inherit, Extend, Create
- Your game is a program built by forking a starter. What did you inherit unchanged, what did you extend by turning its knobs, and what did you create from nothing?
- Which of the three categories is the largest in your project — and is that the answer you expected in September?
- Your boss was not in the starter, and neither was the arena it fights in. Where is the line between "using a library" and "authorship" — and which side of it does your boss fall on?
Checkpoint — the semester, complete:
- One full run, from first control to the fight resolving, played and bug-listed
- Spec graded line by line; every remaining gap has a reason, not an excuse
- All nine review answers said out loud, without notes
- The single-coin fact known and described accurately, not discovered by someone else
- The clear-screen decision made in a file, and tested in the run
- Repo tagged and pushed — the playable build is the portfolio
Reference Docs
Need a deeper explanation? These pages cover the same concepts:
- Unit 8: Boss Fight — the ship checklist
- Unity + C# Quick Reference — everything you used this semester, on one page
Next: 9.1 — Binary: How Numbers Live in Memory, the next unit, where you find out what your int health actually is.
Saved on this device only — the Dashboard tracks your progress.