(How) Did We Develop A Dael?


Upon learning what the theme was, I immediately thought of the dealmaking action known across the modern world. The handshake 🤝. From there, VR seemed the logical choice to allow the maximum handshaking experience possible.

Whenever I do a game jam, I try to play with a new tool or workflow. Good to try new things, yeah? I have some experience developing VR games from my professional work and something I've been curious about is XebXR support in Unity. After some digging around, I learned that while Unity doesn't natively support WebXR, there is a package on openupm to create WebXR builds.

Around the time I found that package, I reached out to Lucas to write the audio for the game. Fortune smiled as he was still free and agreed to join the team. I quickly wrote up an asset list and it seems he just as quickly finished the assets needed. The only audio Lucas didn't write for the game was the splash laugh. That was all me 😈 Anyway, Lucas did a great job writing several songs for the game, and countless sounds for hand interactions and especially the demon's vocalizations. We crossfade between songs based on game state, with 3 versions of the main gameplay loop playing depending on the remaining time. The demonic version fading in when you have 10 seconds left really helps punctuate the dire situation!

To summarize some technical aspects of the game:

The demon's face used a similar approach to faces that I used in last year's Crossroads Jam submission, albeit simplified since the demon face is only ever one color. I packed 4 different mouth and eye states into 4 separate channels for a single texture, then used an ellipse mask in ShaderGraph to allow independent selection of eye and mouth sates. The actual texture was projected onto a flattened hemisphere to give it a sense of depth.

 

 

The handshake mechanic uses a central pivot point that then calculates if the player's hand has gone above or below a set threshold on the Y axis (while holding onto the demon's hand). I originally wanted to do a spherical approach to allow you to shake up and down, side to side, or front to back, but I didn't think of a good solution for that until the last day...

For the dael that replaces all text with emojis, I delved into TextMesh Pro's character fallback support, where if a font doesn't have a character it searches other font assets for the missing character. This meant I didn't need to find a font that fit the game AND had all of the emojis in it. Instead, I could just fallback to a font with a bunch of emojis. Unfortunately, the font I originally found used SVG emojis which isn't supported by TextMesh Pro, so I had to find a slightly different version from github. The actual way the deal changed text was by forcing things to just display a different string that I manually typed out using emojis.

Since many common rendering techniques are expensive, and WebGL builds notoriously have little processing power, I had to use a few tricks to get things running performantly. This includes:

  • Using dither alpha cutout shaders instead of true transparency.
  • Disabling post processing Volume game objects when not in use as having them active tanks framerate by 10+ frames.
  • There is only 1 realtime light (the demon's face) and it casts no shadows.

Leave a comment

Log in with itch.io to leave a comment.