CS 276 // GAME SYSTEMS IN GODOT

Slice It Thin.

Agile for Game Teams, the Vertical Slice, and Sprint 1

Lucas P. Cordova, Ph.D.

Willamette University  |  Thursday, October 8, 2026

SCORE 000276HI 999999

Outline

QUEST LOG

Tonight, 9:59 PM: the proposal. PDF uploaded to Canvas by each member, the same PDF committed at docs/proposal.pdf, and a short PROPOSAL.md at the repo root. Thursday, October 15: the prototype gate. Tuesday, October 20: Lab 4.

CS 276
LEVEL 01

Player Select

Each team's two stakeholders.

SCORE 000276HI 999999

Two stakeholders per game

The deal
WhoTwo classmates from two other teams, serving your game for the whole semester.
WhenThree review gates only: prototype (Oct 15), alpha (Nov 5), beta (Nov 19). They play the build in class and write structured feedback.
Your job backAnswer every note in your next sprint report: adopt, adapt, or decline, each with a reason.
Graded onThe feedback you give to the game you serve: 10% of the course grade. Specific, insightful, useful.
The mathSix games, twelve roles. Every student serves exactly one game that is not their own.
CHECKPOINT

A stakeholder is your game's client and its critical friend. Your proposal is written for them.

CS 276

The Matchmaker

PLAYER SELECT
  1. The Stakeholder Matchmaker has read the roster and solved the rules: every student serves exactly one game, and never their own.
  2. The envelope is sealed. It reveals one name at a time, one team at a time.
  3. When your name comes up: that is the game you serve until December. Write it down.
  4. When your team is up: these are the people your proposal is written for.

With ten students and four games, two games get a third stakeholder.

CS 276

Roster

Game Team Player 1 Player 2 Player 3
……………… Sophie, Tegan ……………… ……………… ………………
……………… Laken, James ……………… ……………… ………………
……………… Adrian, Nathaniel, Roman ……………… ……………… ………………
……………… Ryan, Evan ……………… ……………… ………………
CS 276

First handshake

CO-OP MODE

Two minutes, right now:

  1. Teams: send your two stakeholders the draft proposal (the doc link or the PDF so far).
  2. Stakeholders: reply confirming receipt..
  3. Both: swap names. You will be reading each other's work until December.
CS 276
LEVEL 02

Ship It Small

Sprints, backlogs, and the vertical slice

SCORE 000276HI 999999

Why games ship late

  • The plan was perfect in week one, and the game nobody has played yet keeps getting better on paper.
  • Every system is 90% done, and none of them meet in a playable build.
  • "It will be fun once X is in." Then once Y is in.
  • Scope grows every week while the showcase date stays exactly where it is.
CHECKPOINT

Agile, in one sentence: make the loop between plan and playable short enough to catch the drift while it is still cheap to fix [1][2].

CS 276

A sprint

DEFINITION

A sprint is a fixed timebox with one goal. It ends with something playable and a short report: what shipped, what slipped, what you learned, and the plan for the next one [1].

SprintDatesThe goalGate inside itReport due
SPRINT 1Oct 8 to Oct 22A playable vertical slicePrototype, Thu Oct 15Thu Oct 22
SPRINT 2Oct 22 to Nov 12Every MUST in, or formally cutAlpha, Thu Nov 5Thu Nov 12
SPRINT 3Nov 12 to Dec 1All content in, balance in dataBeta, Thu Nov 19Tue Dec 1
FINALDec 1 to Dec 11Showcase build, public releaseShowcase, Thu Dec 3Postmortem, Dec 11

The gate sits inside the sprint: the first week ships the build, the second week answers the stakeholder notes.

CS 276

The backlog

DEFINITION

The backlog is the ordered list of everything the game might need, written as things a player can do. Top of the list is what you build next; the bottom may never happen.

  • Your proposal already holds it. MUST is the top of the backlog.
  • WANT sits below the line, waiting for a sprint with room.
  • WON'T is the fence. It keeps the backlog from growing in the dark.
Player can dash through a one-tile gap

Done when:
- dash is a state in the controller FSM
- a 1-tile gap in level.tscn is passable only by dashing
- my teammate pulled main and did it without me
PATTERN

One item fits in one sitting. If it does not, split it. Done means it runs on main from a fresh clone.

CS 276

The vertical slice

DEFINITION

A vertical slice is one thin cut through every layer of the game: input, the core loop, a way to win or lose, and a restart. Playable start to finish. Ugly allowed [2].

Wide and shallowThin and deep
A title screen, a settings menu, a pause menu, four mazes drawn in tiles, and nothing that chases you.One grey maze. Blitz moves. Berries count. One rival chases. Caught, then Space to restart.
Every system started. Nobody has played the game.Every system touched once. Anyone can play the game today.
CHECKPOINT

The Prototype line in your proposal is your vertical slice. The prototype gate grades exactly that cut.

CS 276

Predict: which prototype passes the gate?

PREDICT

Fingers up, no talking. Three teams push on October 15. Which build passes the prototype gate?

1: a complete menu flow (title, settings, credits) and finished pixel art for all four rivals. No maze yet.

2: one grey maze, a placeholder Blitz, a berry counter, one rival that chases, caught and restart.

3: all four mazes drawn in tiles. Blitz walks through every one of them. Nothing chases, nothing counts.

The gate asks one question: can a stakeholder play a meaningful session of your loop, unassisted, for a minute of real decisions?

CS 276

Scope is the only knob

Who sets itCan it move?
TimeThe gates. Oct 15, Nov 5, Nov 19, Dec 3.FIXED
Quality of the loopYour stakeholders and your players, by playing it.FIXED
ScopeYou, every sprint, out loud.THE KNOB
PATTERN

Behind? Cut scope, keep the date. First a WANT comes off the sprint. Then a MUST moves to WANT, declared in the sprint report with a reason. The date stays where it is, because the stakeholders are coming either way.

WATCH OUT

A feature that is 90% done counts for zero at a gate. A stranger either can play it or cannot.

CS 276

Definition of done

DONE MEANS
  • It is merged to main, and the feature branch is closed.
  • It runs from a fresh clone: open project.godot, press play, and the README says which keys.
  • Your teammate pulled it and played it without you at the keyboard.
  • The issue is closed with a one-line note on what changed.
PATTERN

Same test as the gate: can a stranger play it? Write it on the board over your sprint board and never argue about done again.

CS 276
LEVEL 03

Sprint 1 Planning

Issues, a board, and owners, on your laptops

SCORE 000276HI 999999

The Sprint 1 goal

The prototype gate, Thursday, October 15, 9:59 PM. Stakeholder Review 1 plays whatever is pushed by 9:40 AM that morning.

The gate gradesPoints
Core loop playable: a stakeholder plays a real session of the loop unassisted200
Controller quality: an explicit state machine matching the proposal's table, or a documented revision75
Scope trajectory: what exists matches the proposal's Prototype line; MUSTs on track75
Runnable by anyone: clone, open, play; README instructions; the prototype tag placed75
Team process: both members in the history, sensible commits75
CHECKPOINT

Sprint 1's goal, in one line: the vertical slice, playable by a stranger, tagged prototype.

CS 276

Issues are backlog items

VagueA sprint can build this
Make the gamePlayer can move between platforms with the FSM controller
ArtBlitz has a placeholder sprite that faces the way she moves
EnemiesOne rival patrols two waypoints and chases within sight range
Fix stuffGetting caught shows a banner and Space restarts the maze
  • Title: Player can verb thing. A stranger could test it from the title alone.
  • Body: a Done when list, two to four bullets.
  • Labels: must or want, plus sprint-1 if it is in the slice. One assignee.
CS 276

Step 1: labels

LIVE DEMO

On github.com, in your team repo:

  1. Click the Issues tab.
  2. Click Labels (the button to the right of the search bar, beside Milestones).
  3. Click the green New label button. Label name: must. Pick any color. Click Create label.
  4. Repeat for want and for sprint-1. Three labels total.
  5. Click Issues again to return to the list. It is empty, for about one more minute.
PATTERN

Labels are the MUST / WANT split from your proposal, now attached to work instead of prose. sprint-1 marks the slice.

CS 276

Step 2: issues

LIVE DEMO

One issue per MUST, then per slice item:

  1. On the Issues tab click the green New issue button.
  2. Title: Player can .... Body: Done when: and two to four bullets.
  3. In the right sidebar click Labels and tick must or want. Tick sprint-1 only if the prototype needs it.
  4. In the sidebar click Assignees and pick one teammate.
  5. Click the green button at the bottom to create it. Repeat until every MUST has an issue.
WATCH OUT

An issue with two assignees has no owner. An issue with no Done when can never be closed with a straight face.

Five to eight issues is the right size for a two-week sprint with a gate in the middle.

CS 276

Step 3: the board

LIVE DEMO

A Sprint 1 board for the repo:

  1. Click the Projects tab of the repo.
  2. Click the arrow beside Link a project and choose New project (some layouts show New project directly).
  3. Pick the Board template. Project name: Sprint 1. Click Create project.
  4. The board opens with Todo, In Progress, and Done columns.
  5. At the bottom of Todo click + Add item, type #, and pick each sprint-1 issue from the list. One at a time, every slice issue.
  6. Back in the repo's Projects tab, confirm Sprint 1 is listed, so your stakeholders can find it.
SPRINT 1, THURSDAY NIGHT
Todo Doing Done #3 move #1 arena #4 berries #5 rival #6 caught

Cards move right as branches merge. Done on this board means the four-part definition of done.

CS 276

Co-op: plan Sprint 1

CO-OP MODE

Twenty minutes, with your teammate, both laptops:

  1. Turn your MUST list into issues with Done when bullets (steps 1 and 2). Five to eight.
  2. Cut the slice: label sprint-1 only what the Prototype line needs. Everything else waits.
  3. One owner per issue, split so both of you have work in week one.
  4. Build the Sprint 1 board with every slice issue in Todo (step 3).
  5. Agree on branch names: one branch per issue, feature/<number>-<slug>, from last Thursday's git pact.

Round clear: show me the board. Side quest: write the README's How to Run section now, before there is anything to run.

Walk the board, then put your initials up when every slice issue has an owner and a Done when.

CS 276

Sprint check

On the boardWhat it means, and the fix
An issue called Build the gameThat is the backlog in one card. Split it until each title names one thing a player can do.
Every card on one nameOne teammate ships and one watches. Reassign until both have week-one work.
Twelve cards labeled sprint-1That is the whole MUST list. The slice is the few cards a stranger needs to play the loop once.
A slice card that needs art firstPlaceholder it. A ColorRect plays exactly like a sprite at the prototype gate.
Cards with no Done whenNobody can close them. Write the test now, while it is cheap.
No card for the README or the tagAdd two: Anyone can clone and play, and Tag prototype. Both are graded.
CS 276

The sprint report, previewed

Due Thursday, October 22, the second Thursday of Sprint 1. Short. Pulled straight from the board.

SectionWhere it comes from
ShippedThe Done column: closed issues, as a changelog.
SlippedCards still in Todo or In Progress, each with one line on why.
LearnedStakeholder Review 1 and any playtest: what you saw people do.
Feedback logFEEDBACK.md: every stakeholder note marked adopt, adapt, or decline, with a reason.
Next sprintThe Sprint 2 board, already built, and any MUST that moved to WANT.
QUEST LOG

Alongside each report, every student files a peer evaluation of their teammate's contribution. The commit history is the evidence.

CS 276
LEVEL 04

Critical Friends

How to be a stakeholder worth having

SCORE 000276HI 999999

The job

  • Play before you judge. Clone the repo, follow the README, and play for five minutes with the team's hands off the keyboard.
  • Observe, then interpret. Write what you did and what happened first. Opinions come after, and ride on an observation.
  • Check the plan. Hold the build against the proposal's Prototype line. Is the slice there?
  • Ask questions the team can act on next week.
CHECKPOINT

You are graded on specificity, insight, and usefulness. "Jumping feels bad" scores low. "I pressed jump at the ledge three times and fell each time; the window may be too short" scores high.

CS 276

The review note

Write
1 Play logThree lines: what you tried, what happened, where you ended up.
2 The momentThe one moment the loop worked on you. Be exact about when.
3 The wallWhere you got stuck or confused, and what you expected instead.
4 The questionOne question about the loop that the team must answer to reach alpha.
5 The plan checkDoes the build match the proposal's Prototype line? What should they build next, and what should they drop?
PATTERN

Five parts, written on the Canvas review form during Thursday's session, one per stakeholder. The team gets both notes the same day.

CS 276

Adopt, adapt, decline

The team answers every note in FEEDBACK.md before the next sprint report. Three verbs, each with a reason.

VerbMeansExample
ADOPTWe will do exactly this.Adopt: the jump window grows to 0.15 s. Issue #12.
ADAPTWe will address the problem a different way.Adapt: instead of a longer window, coyote time. Issue #13.
DECLINEWe will leave it, and here is why.Decline: the hard jump is the aesthetic (Challenge). Playtest 10/29 will confirm.
CHECKPOINT

Declining with a reason is a complete answer. Ignoring a note is the only wrong one.

CS 276

Before next Thursday

STAKEHOLDER QUEST
  1. Read docs/proposal.pdf for the game you serve. It lands tonight.
  2. Write three questions you want the prototype to answer. Bring them.
  3. At 9:40 AM on October 15, clone their repo and play from the README. The team watches, hands off.
  4. Fill the five-part note on Canvas before the session ends.

Your own team is on the other side of the same table. Plan the morning so both of your games get played.

CS 276
LEVEL 05

Game Over Screen

What you know now

SCORE 000276HI 999999

Checkpoint reached

CHECKPOINT
  • A sprint is a timebox with a goal that ends in something playable. Three of them, each with a gate inside.
  • The backlog is your MUST list as issues: a player-facing title, a Done when list, one owner.
  • The vertical slice cuts thin through every layer. It is the prototype gate.
  • Cut scope, keep the date. Out loud, in the sprint report.
  • A stakeholder plays first, observes, then asks. The team answers every note.
QUEST LOG

Tonight 9:59 PM: proposal PDF in Canvas and at docs/proposal.pdf, plus PROPOSAL.md. Tue Oct 13: playtesting. Thu Oct 15: prototype due 9:59 PM, Stakeholder Review 1 in class. Tue Oct 20: Lab 4 due 9:59 PM, Lab 5 assigned.

CS 276

Sources

  • [1] Schwaber and Sutherland, The Scrum Guide (scrumguides.org, 2020 edition): sprints, backlogs, and the definition of done.
  • [2] Keith, Agile Game Development: Build, Play, Repeat, 2nd ed. (Addison-Wesley, 2020): sprints and vertical slices for game teams.
  • [3] GitHub Docs: About issues and Planning and tracking with Projects (docs.github.com).
  • [4] Fullerton, Game Design Workshop, 4th ed. (CRC Press, 2018): prototyping and playtesting.
  • [5] Course gate pages on Canvas: Project Gate 1: Proposal and Project Gate 2: Prototype.
CS 276