When I started working with the Zibra Liquids package in AR my goal was to final try out some of my liquids physics game ideas I had from 2018.
I wanted to prototype a game idea that required building and placing objects, and interacting with the fluid directly with my hands. So one of the first directions I decided to go was a Incredible Machine style puzzle game with the goal being to move liquid into a bucket:
The hand interface and block placement was based on the UltraLeap marble sample app. I knew early on that the UI needed to be on the back side of the hands rather than in the world – since it needs to always be easily accessible wherever you are in your play space.
A lot of the assets here are just from a Unity Physics Sample (which was a ‘marble run’ style game), using Zibra’s SDF mesh collider. Zibra liquids physics can only work with colliders already in the scene – so this just used pooled colliders to allow building them at runtime.
The game concept at this point was called ‘Hydrolab’, and I was imagining it would be a series of puzzles mixing chemical liquids together (which is why the liquid above is in a beaker). Each puzzle would be a different fake chemical name with different recipe – then the puzzle would be how to get the liquids together with the right mix. It could then incorporate the Zibra Smoke and Fire physics for mixing effects (chemical reaction causing explosion), or maybe as a tool (heat water to make steam). It wasn’t possible at this point to combine liquids and fire/smoke however – also the VR renderer wasn’t able to render multiple types of liquids mixing together.
A long long time ago when I first started VR dev I tested out portals in VR. Since then I always had a portal VR game in mind. Unlike Valve’s Portal series it wouldn’t be about going through the Portal with your entire FPS body, it would be VR tabletop portals that you could throw objects through (and maybe put your hands inside). I had the name ‘Interdimensional Beer Pong’ in mind – you’d be throwing ping pong balls on a table through portals trying to get them in a beer cup (with maybe frat boy aliens cheering you on around you to go with the theme).
One night I thought about how Portals could work in AR. I of course couldn’t show the actual real environment in the portal – but then I realized I could just show the same skybox I had made for liquid reflections in the portal. I then also realized this could also work with my hand models – I could display the virtual model version of my tracked hands only in the portal.
I then tested some game mechanics of the portals – trying out differently scaled portals (put a object in a small portal, comes out scaled up in the other portal).
What I wanted to do at this point was combine my liquid physics puzzle game with the portals. To get the liquid to the bucket you’d have to position portals (or ramps to go through them):
The hard part about this was detecting the liquid particles in the portal, then moving them keeping their velocity. You can see though the portal effect isn’t seamless – the way the waters meshing works (Marching cubes I am assuming) I am not sure if I can seamlessly mesh between the portals. Hopefully if Zibra does add their raymarching liquid renderer to VR that won’t have the same issue.