PyCAPGE: A Python-Based Adventure Game Engine for Preserving SCUMM Mechanics and Teaching Object-Oriented Programming

Read full text
Authors: Eduardo Garbayo
Cited by: 0

Abstract

The teaching of Object-Oriented Programming (OOP) presents a pedagogical paradox: bridging the gap between abstract theoretical concepts and tangible, engaging implementations remains a significant challenge. Historically, the Point-and-Click adventure game genre has offered an ideal model of discrete state-based systems; however, its educational potential remains largely untapped. The primary obstacle lies in the available tooling: industry-standard engines, such as Unity or Godot, employ a "black box" architecture that is prohibitively complex for introductory courses, effectively obscuring the fundamental logic of the software lifecycle. Conversely, original historical engines are often technologically obsolete or inaccessible for modern academic inquiry. This paper introduces PyCAPGE (Python Classic Adventure Point and Click Game Engine), a lightweight, open-source engine built upon the Pygame library. Unlike visual scripting tools, PyCAPGE adopts a "Glass Box" philosophy, deliberately exposing its internal architecture to the user. The engine faithfully recreates classic SCUMM-style mechanics—including finite state machines, resource management, and navigation via bitmasks—reimplemented according to modern software architecture standards. This work offers a twofold contribution: PyCAPGE functions as a digital preservation artifact documenting historical development techniques, while simultaneously serving as an educational scaffold with low cognitive load, where advanced concepts such as inheritance, polymorphism, and serialization are demonstrated in a visual, practical manner.

Fields of Study & Subjects

Teaching and Learning Programming Computational Physics and Python Applications Software Engineering Research

Publication details

Journal / source
Zenodo (CERN European Organization for Nuclear Research)
Publication date
8 January 2026
Language
EN
Document type
Preprint