The first game method I used with publishable data on associative-learning issues was a sprite-based game with a 3d feel. I used PovRay to render out around 120 images of a “romulan warbird” from the Star Trek Next Generation series that I made using CSG operations in the Povray scene description language. Those were animated in the game where participants shot torpedoes at the spaceship and earned points for hitting it. It was hard to hit the spaceship, so about 1 in 3 of the torpedoes was programmed as a “homing” torpedo that locked on and chased the spaceship until it hit. At times the spaceship would attack you and you would be knocked offline for up to a minute. You could avoid being knocked offline by suppressing your torpedo launching under the auspices of saving energy for your shields. Different lights could be programmed to signal the attacks, and people learned very quickly which lights indicated attack and learned to suppress their shooting during those lights. The game worked out very well, producing 8 publications (if memory serves). It is pictured below.
With the Covid it became necessary to begin collecting data online. That, of course, required new methods be programmed. It was quite an undertaking for me, as I had very little knowledge of the internals of how the internet operates. Thankfully, technology is such that it makes things easy for those of us who have used tech over the years, but haven’t followed up on how it operates under the hood. The Unity Real Time Development Platform made the transition a relative piece of cake.
The idea was to start with the simplest of my game methods and port it over to the internet. In practical terms that meant programming the game in Unity, compiling it as a WebGL project, and then finding a server site to host the game. I had to learn some ins and outs of PHP along the way. Unity and modern computers are a dream to work with. Gone, for me, are the days of inline assembler, gone are the days of unrolling loops and optimizing code to extract every little bit of framerate from an XNA-based program. With Unity you have as much, or little, control over the innards of your game as you want. I thought it would be hard to step away from that control, and work with a higher-level game engine, but the increase in productivity was worth it. Especially as I can achieve the graphics I want easily, with framerates in the 500s, just by dropping models into a scene, doing some minor configuration to get the look I want, and scripting their behavior. Unity is just an amazing tool.
The game follows the same principle as the previous one, but all aspects have been improved, particularly the graphics. You are again taking a “Space Academy” systems proficiency test for promotion where you have to earn points by shooting at the spaceship, which in this case is the CyberGnostic Space Chicken. The chicken will attack with Eggs of Destruction. Rather than draining your power and leaving you offline for a period, it drains your points. Suppressing your behavior saves energy for your point computer, preventing point loss. I’ve yet to determine how well this scenario is going to work online. You can give it a go here. This particular experimental setup is about 12 minutes. Once the game loads, be sure to hit it’s fullscreen button. CyberChicken.