---
title: "CampAdventure: A Oculus Quest 2 Virtual Travel Game"
description: A virtual travel game built for the Oculus Quest 2 using Unreal Engine 5.
image: https://www.nelsonlyx.com/hubfs/CampAdv/campadv_gif.gif
---

# Nelson Lee

### Camp Adventure

A Virtual Travel Game on the Oculus Quest 2

# Gameplay Trailer

## Overview

- Platform: Oculus Quest 2 ([apk file link](https://drive.google.com/drive/folders/11HQGAoOGYvdFgcIRY7d-KfV9w-dVgCO9?usp=sharing))
- Timespan: 5 weeks
- Playtime: 5-15 minutes
- Engine: Unreal Engine 5.0.3 C++
- Tools: Blender, Substance Painter 3D
- Role: Level Design, Technical Design (C++ & Blueprints), 3D modeling and texturing

 

# Non-Linear Virtual Travel Game

Virtual reality travel games tend to be visually stunning but lack interactivity and the freedom to move about. Camp Adventure aims to be a playground set within the surroundings of an actual landmark - the Camp Adventure tower in Denmark - where users are free to explore different activities while charting their own path to the tower.

Layout sketch of the entire level

Level flowchart - players can switch lanes midway through the journey

Gradual reveal of the tower for all 3 lanes

# Framing the Objective

The Tower is gradually revealed as the player gets closer

Lane 1: Tower is obstructed by fog and landscape to encourage exploration

Lane 1: Obstacle course is partially visible after walking on the boardwalk to tempt players into taking a different path

Lane 1: Tower is fully revealed after a long walk

Lane 2: On the obstacle course, monkey bars provide an elevated vantage point of the tower and the routes leading to it

Lane 3: Path ahead of rock climbing wall on the right lane is more heavily obscured to encourage players to explore other paths first

Lane 3: Players are rewarded with a clear view after a challenging climb to the top of the rock climbing wall

After taking one of the ziplines, players will be near the tower

# Level Walkthrough

# Gameplay Mechanics

 

Camp Adventure's climbing park and boardwalk was the inspiration behind the gameplay features. As I wanted to design for non-VR veterans, I picked features that work with VR hand controllers (as opposed to full-body tracking) and are not too physically demanding.

While I hoped that all users would try climbing and ziplining, I was mindful of players who want to stick to walking. For these players, it's important to provide enough variation in their journey - this led to the different lanes that you saw earlier. 

I wrote most of the game in C++, starting with reusing snippets from this [Git project](https://github.com/UnrealVR/1_Architecture_Explorer) that I was learning from in this [Unreal Engine C++ course for VR by GameDev.Tv](https://www.udemy.com/course/unrealvr/). See [Git](https://github.com/Nelsonlyx/CampAdv503_V2) (this repo is incomplete as I quickly ran out of space).

## Climbing & Dismount

## Rock Climbing Dyno (Vaulting)

 

## Ziplining

# Process

![ptovrdd](https://www.nelsonlyx.com/hs-fs/hubfs/ptovrdd.jpg?width=1152&height=648&name=ptovrdd.jpg)

# Iterations after Playtests

Most players charged towards the tower; fog and landscape mass were added to encourage exploration of the 3 lanes to the tower

Unlike the actual place, the tower is placed east relative to the start location to allow a consistent line of sight for all 3 lanes

As expected, the size of the real-world location (400m x 1200m)  was too big. The final scale is 1/5th. The landscape didn't look too sparse at this scale and the walking speed could be lowered to prevent motion sickness

Metrics of ladders, trees and even the ramps have to be increased by 40% for VR

The initial plan for the zipline involved a harness and carabiner so that players feel safe to fly. To prevent scope bloat, a simpler design was chosen after seeing playtesters activating the zipline without hesitation.

 

#   Annex - 3D Models

Using Blender and Substance Painter, I created the following assets:

- Forest Tower
- All modular boardwalk-related assets, including the Spiral and the Loop
- Ladder
- Zipline Button

# ![](https://www.nelsonlyx.com/hubfs/baseoftower-jpg.jpeg)

 

 

#  Annex - Game documentation  

1. Google Sheet [here](https://docs.google.com/spreadsheets/d/1g7GjuIgBN8zAoxbYnDCfamLlwVZ59vp2cenRSU9aDlo/edit?usp=sharing).
2. Git Repo [https://github.com/Nelsonlyx/CampAdv503_V2](https://github.com/Nelsonlyx/CampAdv503_V2)
3. Git Repo (old) [https://github.com/Nelsonlyx/CampAdv503](https://github.com/Nelsonlyx/CampAdv503) 

 

 

#   Annex - Assets used  

1. Sound - [https://freesound.org/people/chris_dagorne/sounds/563152/](https://freesound.org/people/chris_dagorne/sounds/563152/)
2. Hand Model and Animation - YouTube [link](https://www.youtube.com/watch?v=mee_6vlWZ8c)
3. Blockout Materials - [https://www.unrealengine.com/marketplace/en-US/item/23ac0fdf017f4ff4858b9be22dbbff93](https://www.unrealengine.com/marketplace/en-US/item/23ac0fdf017f4ff4858b9be22dbbff93) 
4. Blockout Spline - [https://www.unrealengine.com/marketplace/en-US/item/633526c21acb4ef6a4456c90ce96f387](https://www.unrealengine.com/marketplace/en-US/item/633526c21acb4ef6a4456c90ce96f387) 
5. Tree models - [https://www.unrealengine.com/marketplace/en-US/item/d68b8eae94a648a68659d1204b8934a8](https://www.unrealengine.com/marketplace/en-US/item/d68b8eae94a648a68659d1204b8934a8) 
6. Fog and Water Plane Materials - [https://www.unrealengine.com/marketplace/en-US/item/5564f2886deb49d58dd1a71332da49a5](https://www.unrealengine.com/marketplace/en-US/item/5564f2886deb49d58dd1a71332da49a5) 
7. Landscape Material & HDRI - [https://www.unrealengine.com/marketplace/en-US/item/13d49c4b77e344bfaf3187bbd62f2d3f](https://www.unrealengine.com/marketplace/en-US/item/13d49c4b77e344bfaf3187bbd62f2d3f) 
8. Gameplay trailer music - [Walking at forest](https://pixabay.com/music/beats-vangare-walking-at-forest-22075/) by VANGARE via Pixabay
9. Icons used in image, "Process": 
     1. [Maps icons created by Freepik - Flaticon](https://www.flaticon.com/free-icons/maps)
     2. [Drag icons created by pojok d - Flaticon](https://www.flaticon.com/free-icons/drag)
     3. [Brainstorm icons created by Freepik - Flaticon](https://www.flaticon.com/free-icons/brainstorm)
     4. [Priority icons created by Freepik - Flaticon](https://www.flaticon.com/free-icons/priority)
     5. [Scope icons created by manshagraphics - Flaticon](https://www.flaticon.com/free-icons/scope)
     6. [Interaction icons created by smashingstocks - Flaticon](https://www.flaticon.com/free-icons/interaction)
     7. [Exam icons created by Freepik - Flaticon](https://www.flaticon.com/free-icons/exam)
     8. [Repeat icons created by Pavel Kozlov - Flaticon](https://www.flaticon.com/free-icons/repeat)

```json
{
  "@context" : "https://schema.org",
  "@type" : "VideoObject",
  "contentUrl" : "https://1616559.fs1.hubspotusercontent-na1.net/hubfs/1616559/CampAdv/Videos/campadv_trimmed.mp4",
  "dateModified" : "2023-01-24T11:14:50.288Z",
  "duration" : "PT6M22S",
  "height" : 1024,
  "name" : "campadv_trimmed",
  "thumbnailUrl" : "https://api-na1.hubapi.com/filemanager/api/v3/files/thumbnail-redirect/99688495917?portalId=1616559&size=medium",
  "uploadDate" : "2023-01-24T11:13:22.309Z",
  "width" : 1024
}
```

```json
{
  "@context" : "https://schema.org",
  "@type" : "VideoObject",
  "contentUrl" : "https://1616559.fs1.hubspotusercontent-na1.net/hubfs/1616559/CampAdv/Videos/LaddersMonkeyBars.mp4",
  "dateModified" : "2023-01-24T10:46:56.302Z",
  "duration" : "PT40S",
  "height" : 1024,
  "name" : "LaddersMonkeyBars",
  "thumbnailUrl" : "https://api-na1.hubapi.com/filemanager/api/v3/files/thumbnail-redirect/99683696978?portalId=1616559&size=medium",
  "uploadDate" : "2023-01-24T10:42:00.064Z",
  "width" : 1024
}
```

```json
{
  "@context" : "https://schema.org",
  "@type" : "VideoObject",
  "contentUrl" : "https://1616559.fs1.hubspotusercontent-na1.net/hubfs/1616559/CampAdv/Videos/rockclimbing.mp4",
  "dateModified" : "2023-01-24T10:46:41.502Z",
  "duration" : "PT35.546S",
  "height" : 1024,
  "name" : "rockclimbing",
  "thumbnailUrl" : "https://api-na1.hubapi.com/filemanager/api/v3/files/thumbnail-redirect/99683420965?portalId=1616559&size=medium",
  "uploadDate" : "2023-01-24T10:44:37.198Z",
  "width" : 1024
}
```

```json
{
  "@context" : "https://schema.org",
  "@type" : "VideoObject",
  "contentUrl" : "https://1616559.fs1.hubspotusercontent-na1.net/hubfs/1616559/CampAdv/Videos/Zipline.mp4",
  "dateModified" : "2023-01-24T10:46:29.202Z",
  "duration" : "PT40.954S",
  "height" : 1024,
  "name" : "Zipline",
  "thumbnailUrl" : "https://api-na1.hubapi.com/filemanager/api/v3/files/thumbnail-redirect/99683422512?portalId=1616559&size=medium",
  "uploadDate" : "2023-01-24T10:46:06.336Z",
  "width" : 1024
}
```