Mendeleev’s periodic table of elements is 150 years old! To celebrate the occasion, the kids’ science center Technopolis and chemistry group Essenscia tasked my colleagues at CREATE and myself to build a gentle introduction to the rather heavy matter of chemistry.
Together we came up with the concept of a game: two players travel through space, on the hunt to find all 118 elements. Armed with nothing but the Ionator 118 and a thirst for scientific knowledge, you disintegrate any floating household object unlucky enough to cross paths with you. When you successfully reduce an object to its primary components, the elements fall into the periodic table on the bottom screen, and a notification pops up with a short bit of info for each new element you discover.
We walked the tightrope between fun gameplay and educational value to the best of our ability, trying to keep in balance. The amount of objects on screen simultaneously, the speed they’re going, and the time it takes to disintegrate them all play a major role. If there’s a lot going on, it’s fun to play, but you’re not going to be registering what elements are in an object and the educational purpose is lost. If there’s just one thing on screen at a time, the players can process the given information, but the game gets rather dull. After a lot of tweaking, I’m happy with the result.
When thinking on how we would tackle the turrets, we quickly decided on using two rotary encoders for pitch and yaw input, rather than say tracking a laser dot. The encoders are used in industrial applications, and provide consistent and reliable input, which we receive in Unity using a Phidget. When the turrets are built, the encoders can be installed in either direction and with any current measured angle, so calibration is required to have the values make sense. The calibration took a bit of trigonometry on my part, but was easy to do once on site: each Ionator has a built-in laser pointer, and a switch hidden underneath the floor to activate calibration mode. When the switch is flipped, the laser is turned on and the PC running the game is informed to switch to calibration mode. In this mode, the projection shows only a target to aim the laser at. With a click of the turret’s trigger, the pitch and yaw for each corner of the projection screen is recorded. Using these angles and the relative position of the turrets, the turret’s aiming direction is calculated, and the players can zap to their hearts’ content.
This was the first full project I did using Unity’s HD Render Pipeline. Even though it’s still experimental (which sometimes showed due to graphical glitches in the editor), its vastly improved post processing stack and particle system drew me in. The Visual Effects Graph actually became instrumental to the core part of the gameplay: disintegration. Using the new tool that ships with the VFX graph package, I generated a point cache for each mesh. This produces a point cloud on the mesh’s surface, which can be used to drive particle positions. To visualize the disintegration progress on an object, I added glowing wire cubes on the targeted object’s surface, starting at one end and slowly engulfing the object in its entirety as disintegration continues. When the object is fully destroyed the particles fly apart, driven by a noise function. Combined with the new post effects, this gives a very satisfying result.
Images from Essenscia’s YouTube video of the opening ceremony.