skip to main content

Sparking Creativity with the Game Boy Advance

Presented at SIGCSE 2020, Portland, OR, USA

Poster Abstract

Numerous studies have shown that Game-Based Learning positively impacts educational effectiveness and student motivation. However, according to Amabile’s Componential Model of Creativity, motivation is only one aspect of creativity, next to expertise and creative skills. Therefore, we looked beyond motivational aspects in order to amplify all dimensions of creativity. In a ‘Software Design in C++’ course at our local faculty of Engineering Technology, students learn to apply high-level object-oriented software development techniques on low-level embedded hardware. By introducing the Game Boy Advance (GBA), a 32-bit handheld released by Nintendo in 2001, students not only need the domain-specific technical expertise and motivation to succeed, but also the right creative skills to cope with the limitations of this embedded system that has only 96kb of VRAM. We focused the labs on stimulating these creative problem-solving techniques. Results are promising: students were highly motivated and creative output was distinctly increased; but technical expertise was still lacking during examination. Further work involves investigating the impact of peer-assessment on all aspects of creativity.

Groeneveld, W., Aerts, K. (2020). Sparking Creativity with the Game Boy Advance. In: Proceeding of the 51th ACM technical symposium on computer science education. Presented at the SIGCSE ‘20, Portland, OR, USA, 11 Mar 2020-14 Mar 2020.

Poster preview, click to enlarge

Project results 2018 - 2019

Utilizing the custom-built gba-sprite-engine library residing at Github. See the README there for more information. The engine itself uses the Tonc C calls behind the scenes.

Survey results

24 recorded participants.

[1] Have you ever played a Game Boy (Advance) game before?

Blue: yes, red: no.

[2] How motivated were you during project work?

Five-point Likert scale. 1: not at all. 5: extremely.

[3] Did the fact that you are developing on the GBA influence your motivation?

Blue: yes, positive; more motivated than classical assignment. Orange: it did not matter for me. Red: negative; less motivated than classical assignment.

Project results 2019 - 2020

Software Design in C++’ Course Details

The following lecture slides and lab notes were used throughout the semester to get students acquainted with the C++ programming language, high-level object-oriented design, and the Game Boy Advance hardware. Students had no knowledge of C or C++ before. They had some knowledge of programming in Java before.

This is the English index page, roughly based on the Dutch index, where students can find more information regarding the course itself. All links below contain content in Dutch.


  1. Introduction in C/C++: context, ecosystem
  2. Pointers in C, dynamic memory in C++
  3. Introduction in Object-Oriented thinking in C++
  4. Templates, operators, STL, summary, exam info

Lab notes

  1. Introduction in C
  2. Pointers in C and C++
  3. GBA Programming in C: an introduction
  4. GBA Programming in C: tile-sets, a simple game
  5. Introduction in C++
  6. C++ Class Inheritance, operators and templates
  7. Software design: thinking and testing before coding
  8. GBA Programming in C++: an abstraction layer
  9. GBA Programming in C++: scrolling backgrounds
  10. GUI design with C++ in Qt: an introduction
  11. GUI design with C++ in Qt: porting a GBA game to Qt