Rooted Growth is a VR game running on Oculus Quest 2 that I created during the 2023 Global Game Jam. The idea of the event was to create a game over the weekend corresponding with the underlying theme, which for this year was simply ‘Roots’.
I had already decided on VR as a platform before the jam because I found it to be the most astonishing and the one I was most familiar with. First I simply lay down on my bed and let the ideas bounce around. Soon enough the idea took root (pun intended). What if the player is a tree?
I launched Unity and used the VR Interaction Framework (https://assetstore.unity.com/packages/templates/systems/vr-interaction-framework-161066) by Bearded Ninja Games as a foundation for my work. I was first planning for the player to land on the grassy field with teleportation enabled and once the player teleported somewhere, that would be the place where they would have to plant themselves and grow. As it often goes with programming, I ran into obstacles, and quickly realised that it wasn’t a necessary interaction for the gameplay. Instead, the player starts immediately at the location they’re planted in.
For the growing part, I initially thought of it as automatic. The player just stands around and slowly grows. Soon enough I realised that it’s not only an interaction I’d have to build from scratch, it is quite dull as well. Instead I went with the pole climbing mechanic. The player drags themselves up a growth pole and slowly pulls their tree trunk along with them.
The raindrop collection is another funny mechanic that was initially planned in a completely different way. My first approach was to use collision to make the raindrops disappear. However, it became apparent that the remote grabbing pointer itself caused collision with the raindrops, making the interaction quite unsatisfactory. In the end what worked best was to make the raindrops into breakable “targets” and add a hidden capsule “knife” into the player’s hands to make the targets break. The choice resulted in a better interaction than I had imagined.
Growing roots and branches was a challenge in many ways but they all stemmed from the same root (pun not intended). First, the appearance was difficult to get right. Somehow the tree creator element in Unity made the trunks and the branches awfully thin while I would have preferred thick branches. The leaves seemed to settle in a haphazard manner on the branches as well. The worst problem however was the constant motion. The tree was originally attached to the player, which made the branches follow the player’s vision in a rather uncomfortable manner, not to mention strange motions with the branches and leaves. After I detached the tree and added it as a static element, I still ran into problems with the motion. The branches and leaves would sway and twist in disturbing ways until I found out that it was due to the wind interaction within the tree element. Turning it off made the experience a lot more pleasant.
The choice of music was rather easy. I picked up one of my own unreleased tracks and slapped it on as game music. Since AI is all the rage, I generated the featured image with DeepAI.
In the end, I’m happy with how the game turned out. I’m also glad I took part in this jam, as finding the time or the nudge to create a game can sometimes be difficult. The Global Game Jam assured me I’d set the weekend aside and cook up a quick game in what time I had. Would join again!
Full description, source code, and playable download at Global Game Jam’s website.