◀ 8.58.69.1 ▶

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.

In the Editor ~30 min

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:

  1. Project window → nothing in this project makes a sound yet, so there is no clip to drag in — import one of your own into Assets first. 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.
  2. 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.
  3. Hierarchy → Main Camera → Inspector → the follow script from Assets/Scripts/Package Scripts for 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.
  4. Hierarchy → the Canvas in Start (index 0) → Inspector → the text slot on HudController, 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.
  5. 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.

One honest inventory before you polish anything. This project contains exactly one Coin instance in the entire game. There is no coin economy, no shop, and nothing that spends a coin. That is not a failure — it is the truth about what you built, and the review will go better if you can say it before anyone else does. Decide now: do you place more coins and give them a purpose, or do you leave the single coin and describe it accurately as a demonstration of the pickup system? Both are defensible. "I did not notice" is not.

Socratic: What Did You Actually Ship?

  1. 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?
  2. 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?
  3. 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?
In the Code ~15 min

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.

Architectural specification: the clear screen.
  • 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 through StatManager, 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?
Final Review ~20 min

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.

  1. 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).
  2. 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).
  3. Explain Time.deltaTime to someone who has never written code (1.5).
  4. Why is your jump "tight"? Name the three values you tuned (6.3).
  5. 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.
  6. 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).
  7. What does Physics2D.queriesHitTriggers default to, and which tool did you use to stop it corrupting your ground check from 6.2 (8.3)?
  8. 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).
  9. Which beat of your cave killed the most playtesters, and what is the data behind that claim (7.7)?

Socratic: Inherit, Extend, Create

  1. 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?
  2. Which of the three categories is the largest in your project — and is that the answer you expected in September?
  3. 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:

Reference Docs

Need a deeper explanation? These pages cover the same concepts:

Next: 9.1 — Binary: How Numbers Live in Memory, the next unit, where you find out what your int health actually is.

0/6 answered

Answers save on this device as you type. At the end of class, click Download and upload the file to the Canvas assignment.

Saved on this device only — the Dashboard tracks your progress.