1 of 24

computer science

🤝

video game development

Andrew Murray

Tyler Bonnell

2 of 24

Who are we?

Andrew Murray

  • Graduated from here somehow*
  • Ran a Game Development Club while here
  • Full-time Software Engineer (not in games)
  • Made a bunch of games that�are mildly popular (andrfw.com)

���*copied Miya’s homework a lot

Tyler Bonnell

  • Got into programming when I was 12 by making bad Flash games
  • Not as good as Andrew at finishing games but I have some projects online (ty.pizza)
    • swamp.camp — pre-alpha town building game
    • brigsby.js.org — open source game engine
  • Also graduated from UW CSE, also a full-time software engineer (also not in games)
  • Miya’s fiance 🤵‍♂️👰

3 of 24

Overview:

  1. How Code Becomes a Game
  2. A Variety of Computer Science in Games
  3. Why None of that Matters
  4. Q&A

4 of 24

Overview:

  • How Code Becomes a Game
  • A Variety of Computer Science in Games
  • Why None of that Matters
  • Q&A

5 of 24

Code in CSE 142:

“Hey Java, I’d like you to run my code”

Java runs�your code

Your code finishes running and the program stops

Some Side effect occurs (eg, you print�a song)

6 of 24

Now Imagine an (overly-simplified) Web Browser

7 of 24

Now Imagine an (overly-simplified) Web Browser

Closes the app

Goes to a new page

Displays page

8 of 24

Code in a simple application:

Click on chrome.exe

Some code is run, waits for user action

Types in a URL

Hits the close button

Code A runs

Code B runs, shows the website

Your code finishes running and the program stops

9 of 24

Now Imagine a Video game

10 of 24

Now Imagine a Video game

Is affected by gravity over time

Is directly affected by player input

Is indirectly affected by player input

(collision between itself and the player)

11 of 24

Code in a game:

Your code finishes running and the program stops

Boot up�“Super Mario Bros.”

???

12 of 24

Code in a game:

Boot up�“Super Mario Bros.”

Your code finishes running and the program stops

13 of 24

Game engines!

14 of 24

Game engine demo

15 of 24

Are there other ways of organizing that?

  • Sure!
  • (this is the part where the homework ties in)

16 of 24

Overview:

  • How Code Becomes a Game
  • A Variety of Computer Science in Games
  • Why None of that Matters
  • Q&A

17 of 24

Games involve many areas of CS

  • Algorithms — Pathfinding, matchmaking
  • Graphics — Rendering
  • Computer vision — Augmented reality
  • Artificial intelligence — NPC behavior
  • Networks — Large scale/low-latency online games
  • Systems programming — Optimizing hardware-intensive games
  • Data science/machine learning — Anti-cheat, understanding player engagement
  • Human-computer interaction — Accessibility, controller design
  • User experience design — Menus, tutorials
  • Data engineering — Managing data for persistent online games, analytics
  • Security — Preventing hackers in games

18 of 24

Overview:

  • How Code Becomes a Game
  • A Variety of Computer Science in Games
  • Why None of that Matters
  • Q&A

19 of 24

Fast inverse square root function (Quake III Arena, 1999)

20 of 24

ASCII graphics (Dwarf Fortress, 2006)

21 of 24

Train hats (Fallout 3, 2008)

22 of 24

Game feel (Celeste, 2018)

23 of 24

Game feel (Celeste, 2018)

24 of 24

Overview:

  • How Code Becomes a Game
  • A Variety of Computer Science in Games
  • Why None of that Matters
  • Q&A