Intro


I've created a web-based maze generator.


It is already capable of many things, like:

  • Maze generation of up to 100x20 cells
  • Manual room creation
  • Manual door creation
  • Cell and wall dimension configuration
  • Nav mesh generation
  • First person preview
  • GLTF export

And I still have a lot of plans with this tool (like texturing, POIs insertion, automatic props placing, usage of 3D kits, etc.), but it was time to test the output.

For such purposes I started this project. It is a game and also a "runtime template" for my levels.

First version is pretty limited and contains following features:

  • VR controls: Smooth movement
  • VR controls: Teleport movement (supported, but no UI yet to change it in build)
  • Desktop controls: WASD + Mouse
  • VR / Desktop controls switcher: Enter VR button centering and appearing only when VR is available
  • Level: Simple maze, manually exported
  • Lighting: One fully baked directional light
  • Physics: Player cannot move through the walls
  • WebGL build

Here is a screenshot from game engine with baked lights. Shadows are jagged, but l selected pretty high texel size and lightmap size hint to speed up the process. I've tested that with higher values it's getting better.


I've chosen to use Godot 3.5. It's much faster to use than Unity for small projects. It has out of the box support of WebXR with its Godot XR Tools in comparison to XR Toolkit. And it's fast, real fast. Did I mention that it's fast?

One more great point is that developing VR on macOS with "sync scene changes" feature becomes much easier. This featyre allows me to tweak settings from Godot and see them immediately in my Quest without rebuild and redeploy. 

Initially I tried Godot 4.2, but looks like it does not yet support baked lights in "Compatibility" backend, which is the only one that can be used in WebGL. And quality of new GPU lightmapper is not yet there. Here is a comparison:


This one is a medium quality output from GPU lightmapper with denoiser on (bug?). And here is a Godot 3.5 version with high quality baked lights baked by old, CPU lightmapper (same speed on M1 Pro BTW):

Looks pretty impressive and runs 80-90 FPS in WebGL with GLES2 backend.

This is it for now, I'll be back with a new version, where I plan to focus more on gameplay:

  • Gameplay: Maze exit object
  • Gameplay: Player start position and rotation
  • Gameplay: Level complete scene
  • Gameplay: Main menu / start game scene

Leave a comment

Log in with itch.io to leave a comment.