72 hours, one blink at a time




BuiIt in a blur: The making of Oculohedron
3 days. Zero sleep. One blinking labyrinth.
Last weekend, I joined my first ever game jam and submitted Oculohedron: a perception-based puzzle game where blinking reshapes the world around you.
It was emotional. Intense. Honestly a bit chaotic. But also the most creatively fulfilling thing I've done in a while.
What went right
Blink detection across platforms: Managed to get local webcam-based blink detection working natively and for web builds.
Strong core concept: The central mechanic, blinking to shift space really clicked with people. It felt novel, mysterious, and surprisingly intuitive.
Modular level design: Built reusable room templates and rotators that let me prototype weird levels quickly.
Web build actually worked: That alone felt like a small miracle.
What went wrong
Burned the midnight oil: It was my first time with both game dev and Godot. The 3-day sprint was intense, and by the end, I was running on fumes.
Procedural generation was a trap: Spent hours on a level gen system… then scrapped it. Went with handcrafted rooms. Still kept one broken gen level because it fit the theme.
Performance issues: Early builds chugged hard until I aggressively optimized lighting, dropped baked decorations, and A LOT of failed experiments.
Controller support and key rebindings were an afterthought (but added post-jam!)
Player feedback & Insights
This was meant to be a jam prototype and nothing more.
The feedback from the jam has been incredibly encouraging not just emotionally, but also directionally.
Here's what stood out most:
What resonated
-
The core mechanic: blinking as input LANDED. Even players who didn’t use a webcam appreciated the novelty of the idea. That was reassuring, especially since it was a slightly "risky" input choice.
-
The vibe and concept felt fresh. Multiple players called it "innovative" or "cool" even with the visual limitations. That told me the idea was strong enough to carry the experience.
-
Webcam integration in the browser surprised people. A few folks mentioned they didn’t even know it was possible to detect blinks through a web build. This gave the game a bit of a "how is this real?" effect, which I’ll admit was super satisfying.
What needs work
-
Visuals and audio need leveling up. Nearly everyone agreed that the aesthetic foundation is there, but it needs polish. Players wanted more atmosphere: eerie lighting, unsettling soundscapes, and stronger visual cohesion to match the concept.
-
There's ambiguity around the game loop. Some players weren’t quite sure what the goal was, or how their actions were progressing the game. The feedback loop: blink, something changes, now what? It needs to be clearer and more rewarding.
-
Blinking as a mechanic has physical limits. A few folks mentioned eye strain or fatigue. While the mechanic is novel, it needs balance: maybe optional cooldowns, alternate input modes, or clearer pacing to avoid overuse.
Takeaways
This was my first jam, and I went into it expecting chaos and got that, sure but what I didn’t expect was how much meaningful insight could come from a few lines of honest feedback.
It’s clear now that the concept is solid enough to build on. The technical execution was "good enough" for a jam, but it has a lot of holes.
What started as a weird tech experiment now feels like a prototype for something deeper, more atmospheric, and more player-focused.
That was all I needed to hear.
So I'm continuing. Slowly. Thoughtfully. But I want to see how far this weird blinking idea can go.
Tech stack (for the nerds)
Engine: Godot 4.2
Shaderless visuals: Emissive + baked environment lighting + volumetric fog
Modular room system: Built with reusable room scenes
Custom web build tooling: Python scripts to inject scripts in the Godot Web builds export pipeline (never again)
What I'm working on next
Even though the jam timer ran out, I couldn’t stop tinkering. Here's what I dove into right after submitting:
-
Player fall detection + respawn system: Falling into the void no longer means soft-locks or game overs. I added thresholds that trigger warnings and auto-respawn with subtle UI feedback. The jam version accidentally turned into a roguelike... this fixes that :(
-
Blink-triggered respawn: You can now blink to respawn after falling. Mechanically consistent, thematically satisfying.
-
Controller support + key rebinding: Fully functional and flexible, you can remap controls and play with a gamepad now. (huge props to @Quinten for showing his keyboard layout :D)
-
Performance tuning & tweaks:
-
Swapped out heavy autogenerated mesh colliders with hand-made ones for better performance.
-
Added an in-game FPS counter.
-
Reverted unnecessary baking that was hurting load times.
-
Dropped web-specific tooling for now to focus on a smooth native build experience.
-
-
Polished transitions: Improved the visual flow of blinking in/out, especially when respawning. Small touches, big feel.
Here’s what I’m building toward, post-jam:
-
Smarter blink mechanics: The current blink system is solid, but I want to push it further.
-
Lore delivery: Right now, the game runs on vibes and implied mystery. I'm exploring:
-
Environmental storytelling
-
Symbolic clues etched into geometry
-
Audio logs or fragments of text that deepen the mythos
-
-
Better feedback loop: Enhancing feedback with visual cues, ambient shifts, and spatial audio.
-
Playable release: My current goal is a tightly paced, ~30-minute standalone version. Polished. Atmospheric. Mechanical depth without overstaying.
Get Oculohedron
Oculohedron
You wake up in the calibration room. Every blink alters the space. This was never just a test.
Leave a comment
Log in with itch.io to leave a comment.