Blending Programming Environments and Games

Titus presents. Photo by Austin Henley.

I presented our full paper, A Perspective on Blending Programming Environments and Games: Beyond Points, Badges, and Leaderboards, at the IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC 2016) in Cambridge, UK.

The abstract of the paper follows:

Programming environments and game environments share many of the same characteristics, such as requiring their users to understand strategies and solve difficult challenges. Yet, only game designers have been able to capitalize on methods that are consistently able to keep their users engaged. Consequently, software engineers have been increasingly interested in understanding how these game experiences can be transferred to programming experiences, a process termed gamification.

In this perspective paper, we offer a formal argument that gamification as applied today is predominately narrow, placing emphasis on the reward aspects of game mechanics at the expense of other important game elements, such as framing. We argue that more authentic game experiences are possible when programming environments are re-conceptualized and assessed as holistic, serious games. This broad gamification enables us to more effectively apply and leverage the breadth of game elements to the construction and understanding of programming environments.

ACT-R Models of the Concentration Game

Our paper on Speed/Accuracy Tradeoff in ACT-R Models of the Concentration Game Game has appeared in the 2013 International Conference on Cognitive Modeling.

This paper describes the development of subsymbolic ACT-R models for the Concentration game. Performance data is taken from an experiment in which participants played the game under two conditions: minimizing the number of mismatches/turns during a game, and minimizing the time to complete a game. Conflict resolution and parameter tuning are used to implement an accuracy model and a speed model that capture the differences for the two conditions. Visual attention drives exploration of the game board in the models. Modeling results are generally consistent with human performance, though some systematic differences can be seen. Modeling decisions, model limitations, and open issues are discussed.

Bot Detection in Casual Games

An article on our work in using low-level input characteristics as a mechanism for bot detection has appeared in The Abstract, the official blog of the NC State Newsroom. Bot detection is one of many possible applications in the broader research context of how computational approaches to evaluating input interactions can be leveraged in order to better understand and predict the underlying cognitive processes of a user.

If you’re interested in contributing to a related follow-up work, then please take a moment to participate in my newest research study, the Concentration Game.

Playing Fallout in a Window


This article describes the process for playing Fallout and Fallout 2 in windowed mode (that is, not full screen) successfully on Windows 7. The modifications to both Fallout and Fallout 2 apply to the non-DRM versions available at GOG.

  • For Fallout 1, you will need to use D3DWindower. Unfortunately, the program and Geocities site (surprise!) are in Korean or Japanese, but a badly ported English version is available if you look hard enough. Extract the files and copy them directly into the Fallout installation directory.
  • For Fallout 2, use sfall.


Because these files have been difficult to track down, I’ve mirrored them on my own site below (the MD5 hash is indicated in parentheses):

Fallout 1: DirectX Windower

Fallout running inside of a window.

For Fallout 1, it’s not entirely obvious how to get the DirectX Windower to function, so use the following steps:

  1. Open D3DWindower-English.exe. You can hover over a toolbar item to get its name.
  2. Click the Add Program toolbar item and add falloutw.exe.
  3. Click falloutw, then open the Settings toolbar.
  4. Set Height and Width to something appropriate, such as 1024 (H) and 768 (W) (the original game is 640×480). The English translation here is in error and the parameters are named in reverse.
  5. Enable Window Mode. Under Window Mode, uncheck DirectX 1-7 and check DirectX 8-9. Otherwise, the game will mysteriously crash.
  6. The remaining items can be left in their default state.
  7. Use the Run program icon to run the game.

Fallout 2: sfall

Fallout 2 running inside of a window.

Copy ddraw.ini and ddraw.dll in your Fallout 2 directory. Edit ddraw.ini as desired. Most of settings that need to be tweaked can be found under [Graphics].

Contrary to popular belief, the window can actually be moved from the top left of the screen by setting the WindowScrollKey property in ddraw.ini. Then, holding down the appropriate key and moving the mouse will move the window.

If you find newer versions of these files, please let me know and I’ll happily update this page.

Introduction to Game AI Using Python

Carolina Games Summit AI Demo

At this year’s Carolina Games Summit, Rogelio and I presented a talk on Introduction to Game AI Using Python. You can browse the project files for your own use (and experimentation!) at our GitHub page.

If you’re interested in learning more about Game AI, take a look at Beginning Game Development with Python and Pygame by Will McGugan (Amazon), as well as Artificial Intelligence for Games by Ian Millington and John Funge (Amazon).

Thanks to everyone who was able to attend!

Colophon: The libraries PyGame and NumPy were used in the development of this demo. The PlanetCute prototyping tiles were used for the sprites, with the free background music provided by Deceased Superior Technician.