It All Broke First

Everything kicked off with a big red error screen.

I was testing a new build and ran into a WebGL initialization failure. The game couldn’t render anything — just a full shutdown on load. No map, no HUD, nothing. After checking the logs, it turned out to be a browser-level graphics issue: WebGL wasn’t initializing, likely due to hardware acceleration being off or driver issues on that particular machine.

It was frustrating, but it pushed me to reconsider how I was handling the rendering stack — especially since I’d been building everything in 2D.


The Three.js Transition

So I took the jump: I started prototyping the game’s rendering in Three.js, moving it into actual 3D space for the first time.

The initial goal was to get back to functional — to just get tiles back on screen, track movement, and test pet mechanics again. But Three.js opened the door to so much more. I quickly realized that if I was already rebuilding the render layer, I might as well go further.


3D Terrain Is In

A few days later, I had a working version of elevated, hex-based terrain.

What used to be flat tilemaps are now actual 3D structures — cliffs, rivers, valleys, and plateaus all rendered with height. The result changes how you read the map and move through space. You can’t see over cliffs, pets get blocked by steep terrain, and vision is way more dynamic now.

It’s all still pretty raw, but seeing the world pop into depth for the first time was a huge moment. I’ve started redesigning some of the biomes to take advantage of verticality — especially for chokepoints, hidden paths, and exploration rewards.


What Else Got Built

  • Full character + pet HUD: You can now see stats, abilities, energy, pet loadout, and live tile data
  • Notifications for major events: Damage, healing, pet recalls, turn cost — all tracked in a live log
  • Pet recall system: You can now trigger emergency recalls with health and energy tradeoffs
  • Mission objective tracking: You’re now actively guided to explore 80% of the map
  • Multiple pet types and portraits are hooked into the system

Lessons and What’s Next

This week reminded me that some of the best breakthroughs come from breakage. If that WebGL crash hadn’t happened, I probably wouldn’t have jumped to Three.js so soon. Now that it’s in, the game’s world has way more depth — literally and mechanically.

Next steps:

  • Improve WebGL fallback for older machines
  • Add region logic (capture, defend, etc.)
  • Begin enemy patrols and detection cones
  • Continue refining terrain generation and level design tools

Thanks for reading — and if you’ve ever stared down a red error box at midnight wondering if the thing’s even worth saving: keep going. Might be the best pivot you make.

—Brian

Facebook
Twitter
LinkedIn