Learning Experience
How Did We Get Started?
Like all good journies I was chatting with some friends and we were coming up with ideas on what would be something cool we are interested in, as well what is something we could learn? Tossing around a few ideas I realized I wanted to really challenge myself as I would really like to make a full VR game in the future. So I grab my Valve Index and made sure it still worked because for this Game jam I was going to do VR developement.
After ensuring my equipment was in working order I started watching a few videos by various people who have done VR development in godot. Majority of the development videos I found were in Godot 3 or early Godot 4. I did find that there was an add on in Godot 4 called XR tools. This addon seemed to be the official document for implimenting VR or AR in Godot games. I gave the documents a short over view
Day 1: Setup and Planning
On day one I started up my stream, opened up Godot, and the godot docs for [Setting up XR](https://docs.godotengine.org/en/stable/tutorials/xr/setting_up_xr.html) and started going through them step by step. I had no idea what kind of game we would even make, or even if I would have something that could run. To say I was nervous would be an understatemnt. Thankfully TinyDevilGames was hanging out in my chat and we were talking outloud through the examples, and understanding how things were connecting. After reading the docs, following the instructions, re-reading the docs, and then fixing how things were connected we were able to get the VR headset to see inside the game. There wasn't anything to see, so we hadded a few colored boxes to make sure. They came through clearly, and it was super exciting to see a box. It felt even more real to create even a box in virtual reality.
Once we placed cubes on our hands and started moving them around we realized we did the hard part. Now we just had to come up with some kind of game or idea that we wanted to build around. While on stream talking about rail like games including `House of the Dead`, `Pokemon Snap`, and `Time Crisis` we realized could make a rail game like that. Then we some how got on the topic of Indiana Jones and the the mine cart chase scene. TinyDevil mentioned they wanted to practice building 3D assets, and insisted on preparing some basic cave assets and a mine cart. I accept and thus our team was born.
Day 1: Learnings
Going to put them in bullet point format for those just looking for a summary.
- How to setup the XR server in godot to pickup the headset and controllers
Day 2: Creating the Rails
On the second day TinyDevil got me a simple minecart, the rails, and some cave walls for us to travel down. Surprisingly bringing in custom blender objects was quite easy. This was anothing things i had not done before. I am glad it was as simple as drag and drop. Though it did take a moment to get things aligned correctly. We placed the vr space in the minecart and moved the minecart onto a node that was then moved along the path of the track. Honestly this part was pretty easy since it was something I was familiar with.
To describe how the cart was moving we made the mine cart its own object, and gave it various characteristics such as speed. Then we wrote a function that took an input and adjusted the carts speed and let it progress through the cave. I decided that we needed a lever for the player to grab and control the speed that way. This was going to be a task for the next day.
Day 2: Learnings
- Having a day job really limits how much you can work on a game jam.
- Finding time to also work on my primary game(Clover) is extremely difficult.
Day 3: Speed Controller
This was a reletaively short day, as we had already learned so much in just a few days it was beggining tobecome tiring. However our cart needed a speed controller this way people could go at what ever speed they were most comfortable at. This is done easily enough by creating a few functions and signals such that when a signal is fired with a given angle mine cart accelerates to the new speed. Next all we had to do was making it so that the player could grab our lever. This proved to be very difficult to get working and understand.
The basic introduction tutorials on godots website stopped at getting the camera setup, and having hands. They didn't give any explination on how to really interact with the world. Atleast not that I could decifer. Supposedley the XR Tools library had everything build in so that it would be as easy as dragging and dropping in nodes. Unfortunately that was not the case, and I was off to read the docs, and see how other people were implimenting grabbing things in VR.
TinyDevil made us a shovel today to bring into the cave. We are hoping to be able to use it for something. I am honestly kind of nervous as this was meant to be a long weekend project, and I am not sure if we will get a functioning game out there.
Day 3: Learnings
- The [Godot OpenXR plugin](https://github.com/GodotVR/godot_openxr?tab=readme-ov-file) has some amazingly details documentation
- VR is still extremely difficult to understand even with such a great plugin.
- Making something in VR can easily make someone motion sick as you go back and forth between views often
Day 4: A Lever to Control our Speed
So I spent a large amount of time trying to figure out how the demo for the OpenXR plugin worked in Godot. There were so many things built into the demo scenes it was obvious godot had a ton of features ready to be used in VR. I began working on replicating one of the lever arms in the demo. After building out the lever and giving it a quick test we quickly discovered it didn't work. This is a classic case of things not working, but the real question was why didnt it work. I checked it over and over again for several hours. It took several hours to just replicate the thing, and here I am several hours later with my duplicate and it just was not working. So I start copying over pieces bit by bit to see what peice is the broken one, or which peice I was missing.
After a few hours of digging and re-reading, and recreating the lever I finally replaced each piece of it. It for some unkown reason started to work. I am not sure what was broken because it seems like my lever is a 1 to 1 replica of the lever from the demo. I will need to investigate this further as I would like to actually understand why one works but the other doesn't.
Day 4: Learnings
- Sometimes things in the demo project just don't work as advertised.
- Reading the documentation can get you really far, but there are sometimes gaps in that documentation.
- Copying something and re-creating it is a good way to learn, and you should not be ashamed of it.
Day 5: Touching up the Cave
This is actually the last day I am able to work on the Cave Adventure game. I know I didn't have the full time of the jam to work on the project, but I am glad we were able to get as far as we did. We went from having zero VR experience to having a cart that carried the player around a cave. I spent the day cleaning up the cave, and giving it a few extra twists and turns. I also updated the speed lever so that it traveled at a much more maintainable speed. We realize that motion sickness is a common problem for VR games, and this type of game likely would exagerate that.
While touching up the game we talked about how these skills we learned can translate into other games we want to make. I know VR is definately something I want to build more for. I am glad to learn that the basics are much easier than I expected. This means that I can atleast focus on learning the more complex thing. Even though what we built is definately a concept experience more than a game I still learned alot. Even though the shovel does not currently dig through the dirt, we know that there are plenty of game ideas hidden in VR just waiting for us to explore them.
Day 5: Learnings
- Having limited time really helps you to learn to focus on core conepts and topics.
- Exporting a VR game and getting it to run is surprisingly simple.
- Just building a concept of a game tells you alot about what to expect from the whole process.
Files
Get Cave Journey VR
Cave Journey VR
A virtual reality experience of riding a minecart through a cave while holding a shovel.
Status | Prototype |
Author | RiverWolfGames |
Genre | Simulation |
Tags | Virtual Reality (VR) |
Leave a comment
Log in with itch.io to leave a comment.