Not Squid Game

Overview

This project began as an exploration of an idea for a procedurally animated eight-legged creature that was first coded in p5js. This 2D creation was converted to 3D and looked like a perfect interactable element if brought to real-life. With this idea, I built a mixed-reality game that highlights the movement and beauty of this creature by allowing players to directly interact with it as a virtual element in mixed-reality.

Process

  • 1. 2D Creative Coding (p5.js)
    • 2D eight-legged procedurally animated creature based on user interaction.
    • Procedural generation logic & user-input responsiveness.
  • 2. WebGL + 3D Export
    • Converted 2D p5js sketch to 3d and gave it forward velocity.
    • Features and further development ideas:
      • Rendered in 3D
      • Export geometry for other 3D software
      • Allowed me to explore spatial/interactive ideas such as a mixed reality game
  • 3. Unity + C# Recreation
    • Converting JavaScript/p5 logic into Unity C#
    • Managing transforms, prefabs, instancing
    • Integrating Meta Interaction SDK
  • 4. Full Mixed-Reality Arcade Game
    • Designing objective, difficulty and game loop.
    • Implementing game mechanics: dodge → destroy → score.

Game Design

Objective

Score as high as possible without dying.

Intention

I wanted to design a game loop that is fun, engaging and most importantly, encourages the player to interact with and move the eight-legged creatures/octopi.

Game Loop

  • You play in a mixed reality environment with three octopi that you can grab and move.
  • Every time you hit one of the enemy spawners with an octopus of the same color, the spawner gets destroyed and you gain 1 score. These spawners respawn in a different location each time they are destroyed. They spawn squids that follow and attack the player. The frequency of these squids increases as time passes so gaining score becomes more and more difficult as time goes on.
  • The enemy spawners continuously spawn squids that attack your face, you have to dodge these squids until they despawn or destroy them with your hands or the octopi. If any one of these squids touches your face, it is game over. You get your score displayed and also unlock the restart button to play again.

Challenges

Challenge 1 — Translating Procedural Motion from p5.js to Unity

  • Rewriting the logic from JS to C#
  • Managing many transforms & references
  • Ensuring the creature moved identically to your original behavior

Challenge 2 — Prefab-Based Instancing for Hundreds of Dynamic Objects

  • Procedural spawning/despawning of all meshes
  • Using Object Pooling instead of Instantiate/Destroy for performance
  • Managing memory and scene clutter

Challenge 3 — Running Smoothly on Standalone XR Hardware

  • Triangle count challenges
  • CPU (C# scripts) vs GPU (rendering) bottlenecks
  • Reducing update frequency, smooth meshes, or using lower LODs
  • Tuning spawn rates, animations, and motion

Takeaways

  • I built a full pipeline from sketch → 3D → Unity → Mixed Reality game.
  • Learned procedural animation, instancing, prefabs, optimization, game loops, and XR interaction.
  • Tackled real technical challenges typical of professional XR development.
  • Showed how creative coding can evolve into full immersive experiences.
  • Combined motion design, interaction design and game design to create an immersive experience.
NSG Gallery 1
NSG Gallery 2
NSG Gallery 3
NSG Gallery 4
NSG Gallery 5
NSG Gallery 6
NSG Gallery 7

Discussion and Future Plans

  • Polish the game, add visual effects and feedback effects and sounds. Implement a database to store scores and make a leaderboard.
  • Try more procedurally animated creatures and bring them to life in mixed-reality.
  • Research on how to make virtual elements fit the real environment using lighting data, camera capture, textures and realistic lighting.