
ThreadedPaws - Educational Concurrency Game
A serious game developed at Ontario Tech University for learning concurrency concepts including thread interleavings, data races, and deadlocks. Built with Unity and C# as part of the MITACS internship program.
Overview
ThreadedPaws is a serious game developed at Ontario Tech University's Software Engineering & Education Research Lab as part of the MITACS internship program. The game teaches students to identify and fix concurrency pitfalls and bugs through interactive gameplay. With advances in multi-core processors increasing the need for concurrent programming, ThreadedPaws addresses the challenge of helping students comprehend and avoid common pitfalls such as data races and deadlocks.
Gameplay Overview
ThreadedPaws is an educational game where players manage a busy dog salon while learning about concurrency concepts.
Objective: Arrange actions like get, return, read, and write to help stylists complete appointments without conflict.
Mechanics: Players drag and drop blocks to build sequences for each stylist, creating action plans that must execute correctly.
Challenge: Avoid concurrency problems like starvation, deadlocks, and data races by ordering steps correctly. Players must think strategically about resource management and action sequencing to ensure smooth operations in the salon.
Educational Focus
Each level highlights a specific concurrency concept:
-
Starvation: When one stylist never gets the tools they need because others are monopolizing them. Players learn to ensure fair resource allocation.
-
Deadlock: When stylists hold tools and wait on each other forever—no one can move forward. Players must recognize circular dependencies and break them.
-
Data Race: When multiple stylists access shared data (like the cash register) at the same time, leading to inconsistent results. Players learn to synchronize access to shared resources.
Players solve these problems by reordering actions and managing shared resources carefully, gaining hands-on experience with real-world concurrency challenges.
Technical Implementation
Development Environment:
- Engine: Unity game engine
- Language: C#
- Platform: Educational game for desktop
Game Architecture:
- Drag-and-drop block-based action sequencing system
- Multi-threaded simulation engine demonstrating concurrency concepts
- Level-based progression system introducing concepts incrementally
- Visual feedback system showing concurrency issues in real-time
Research Context: Developed as part of the Software Engineering & Education Research Lab at Ontario Tech University, focusing on game-based learning approaches for computer science education. The project contributes to research on effective methods for teaching complex programming concepts through interactive experiences.
Project Team & Recognition
Project Members:
- Luisa Rojas Garcia
- Niranjan Girhe
- Riddhi More
- Jeremy Bradbury (Supervisor)
- Michael Miljanovic (Supervisor)
Institution: Software Engineering & Education Research Lab, Computer Science, Faculty of Science, Ontario Tech University, Oshawa, ON, Canada
Program: Developed as part of the MITACS Globalink Research Internship program, providing international research experience in game-based learning and educational technology.
Screenshots






