My Portfolio

Tuesday, August 3, 2021

August 3rd 2021 - VR Game Jam 2021


This was my first game jam and it was an intense 3 days of programming. It was announced by two prominent VR YouTube channels, VR with Andrew and Valem, so I scheduled time specifically to be able to participate. I joined their discord channels to see if there were any people open to collaborating as a part of a team but ultimately ended up doing this jam solo. 

This blog post is going to be about my strategy for the game jam, the challenges I faced and what I learned from the experience.

My Strategy - Scope Restriction and MVG

My strategy for tackling this game jam was that I would keep the scope restricted by trying to utilize what I've done in the past and interactive elements I'm familiar with. Basically, it was to make sure that my project scope didn't include too many new things I would have to learn for the first time. 

I didn't jump into coding right away and spent a good half to full hour just brainstorming and trying to get a project concept before starting. 

My final idea was a VR game where you created small worlds like a cook in a kitchen. You sprinkle the right elements in a specific order to create the completed worlds. 

Here's some pics from the brainstorming. I never really meant for others to see it so its a bit of a mess.

MVG - (Minimum Viable Game)

I don't remember which game development talk I originally heard about the MVG concept from but the imagery stuck and it was the framework I used for dividing up tasks. I used the concept to prioritize what I would focus on each day of the game jam project. 

My interpretation of MVG it is that you want to produce a usable product as early as possible and iterate over it in such a way that it an improving and mostly importantly usable on each version.

Here's my rough outline :

Phase 1 - Basic core systems 

Trying to build the very basic player controls and game manager for the VR game to work. My immediate goal was to create a VR game player where you only had to do one action to complete the game. For this project it was for the player to pick up an interactable element box and use it on the small world. 

Phase 2 - Basic UI implementation. 

Once this was done I would have a MVG in my opinion. The player would now be able to hit "Start" to play the game and afterwards a end level UI would pop up with the option to "Quit" or "Play again".

It's definitely not a good game at this point but it would work.

Phase 3 - Add gameplay complexity

This is where I started implementing additional gameplay. I tried to add it in an incremental fashion where I could build and export the game in a playable state with each addition.

 Phase 4 - Visual improvements

This phase was about adding visual polish to the game to make it more appealing. Most of it was spent on creating and tuning the particle system effects for the player tools. I did use shader graph to create the growth effect on the small world where you see the tree's sprout and found a good YouTube tutorial for it. 

Sound was also implemented during this stage as well.

Phase 5 - Levels

I decided to put in levels because I figured that it would be too difficult to expect the player to be able to use each of the elemental tools in the right order quickly. Set it up so that each level adds an additional layer of difficulty.

Game Jam Challenges and Learning

Reducing set-up time

I could have saved a lot of time prior to the game jam if I had created a basic VR project ahead of time. For example, I knew I would be using Unity's XR interaction toolkit. I could have created a game project with all the basic player controls set up in advance with most of the low poly environment packs, effects and etc that I like to use. If I did this it would have saved me several hours which I could have used to further polish the game.

Version Control - Github

I should save to Github more frequently. Thank god I decided from the start that I should save my project on Github even though it was a solo project. Half way through the project I decided to try out some recommended optimization tips for my project and some settings changes I made totally messed it up. Specifically I tried changing the graphics API in the player settings for the project and switched it to OpenGL. This resulted in an error dealing with how only DirectX is compatible with some of the stuff I had in the project. Unfortunately the moment I switched to OpenGL the previous setting option completely disappeared with no obvious way to revert. I wasted over an hour troubleshooting this issue with zero progress on the game jam project.

Thankfully, I had made a commit a few hours prior to screw up and was able to revert to it and only had to redo some scripting without the need to waste my time rebuilding a new Unity project and transferring files over. 

After this mishap I made a dedicated effort to start committing after every major change, addition or fix. 

Character Animation

There was a part of the game jam where I tried adding a character with animations. My goal was to add a story element to the project but ultimately I cut this out. However, I did spend over an hour trying to make this work on the last day. My current feelings is that adding character and animations requires quite a bit of time if you want to do it well. If I were a part of a team I would probably want someone to mostly focus on this. However, I think for anyone doing a solo game jam project with 3 days it would be best to try and come up with a project where you don't need characters.

Game Levels and Tutorials

I underestimated how time consuming adding game levels could be. The main issue here is that to really make sure they work it requires testing. Depending on how long it takes you to test a build or play a level this can take up a lot of time. It is important to do the testing though. If I were to do this project again I would not save it for the final phase. It would be better to make sure the game levels work and sacrifice visual appeal.

Good Experience

It was a good experience and I'm glad I participated even though it led to quite a bit of sleep deprivation. I'm happy that I was able to create a playable game within 3-days. I've spent most of this year working on different VR learning projects and this was a great way to test myself on putting it all together.

No comments:

Post a Comment