open menuclose menu

Game Development Sr (VR Beginner)

In this bootcamp, Galileo students will create VR projects from scratch, while being introduced to the Unity Game Engine.
By Kristen Montesano - Educator

 


In this bootcamp, Galileo students will create VR projects from scratch, while being introduced to the Unity Game Engine. Students will set up the Unity environment for development on the Oculus Quest and will create a VR world with interactable games/objects which they can test out on their VR headsets.

Goal

This bootcamp serves as an introduction to developing in the world of VR, it will include a limited amount of coding, though some coding in C# will be involved.

Requirements

This bootcamp is recommended for students 12-18 years of age. No prior coding experience is required, but it is recommended.

For students younger than 12 who would like to join the bootcamp, they may request to join and will be evaluated on a case-by-case basis.

All students joining this bootcamp must have:

  • An Oculus Quest headset AND a cable that works for Oculus Link (tested and working prior to the bootcamp)
  • The Oculus app on a phone or mobile device
  • A VR-capable laptop or computer running Windows with the following:
  • Unity Game Engine (including the Unity Hub and the Unity Editor with 2020.1, 2020.2, or 2019.4 installed)
  • Visual Studio downloaded and working (must be tested prior to the bootcamp)
  • Create a Unity ID for using Unity Personal
  • The Oculus computer application downloaded (tested prior to bootcamp)
  • A mouse (not a trackpad on laptops)

Plan per Week (Meeting 2x/week):

Week 1 - Introduction to the topic

Basic concepts

  • Enable Developer Mode in Oculus mobile app FOR VR COMPUTERS: Open Oculus Desktop app (every session) and connect headset
  • Intro to the Unity Editor
  • Go over windows (Hierarchy, Inspector, etc) and tools (move, scale, etc)
  • Prototype Room: Adding interactable objects and teleportation
  • How to get your Unity Project to launch on the Quest
  • Switch between scenes to Escape Room; complete it as weekly assignment

Week 2 - Set up VR World

  • New Project (URP)
  • Packages

    • Package Manager → Advanced→ Enable preview packages
    • Install ‘XR Interaction Toolkit’ Unity’s universal XR package
    • Edit → Project Settings
    • XR Plugin Management → Install → Checkbox ‘Oculus’ in both desktop and android
    • In ‘Player’ for android settings -‘Other Settings’
    • Set Minimum API Level to Android 6.0 Marshmallow (API Level 23)
  • Setting up your own Unity VR world/project

    • Add 3D Object ‘Plane’ and reset Transform, add Material
  • Set up VR Rig and hands using XR Interaction Toolkit

    • In Project Settings → Player → Other Settings, scroll down to ‘Active Input Handling’ and make sure it is set to New
    • Add XR Object → Roomscale XR Rig (Action Based)
    • Open and view things inside
    • Hand actions are not mapped
    • Map hand actions
    • Open Package Manager → XR Interaction Toolkit again
    • Open Samples and import ‘Default Input Actions’
    • In Assets, view these new input actions Click the default right and left controllers At top of inspector click ‘add to action based controller’ for both Open Project Settings → Preset Manager and name controllers right and left
  • Delete XR Rig from scene and add it again

    • Now controller actions will be mapped
    • On VR Camera, make sure Near Clipping Plane is set to 0.1
    • On XR Rig, add component ‘Input Action Manager’
    • In Action assets add ‘XRI default input actions’
  • Create a cube in front of camera and test on Quest
  • Create Hands

    • Create hand prefabs
    • Empty object ‘Controller’ (Make sure transform has been reset!!)
    • Create sphere as child of empty (also reset transform, give it material and scale it down to about .1 xyz)
    • Create prefabs folder in assets
    • Drag ‘Controller’ into prefabs
    • Delete the original
    • Drag into Left and Right Hands ‘Model Prefab’
    • Test!
  • Turn cube into table beside VR Rig
  • 1 grabbable object

    • Bowling ball
    • Scale, place on table, give it material
    • Add ‘Rigidbody’ and ‘XR Grab Interactable’
    • Test!
  • Add Skyboxes… Asset store → ‘Fantasy Skybox FREE’ → Import to Unity project (may need to open the Package Manager and import it from there

    • In assets find the skybox you want and drag it into the scene

Week 3 - VR Bowling/Bean bag Toss

  • Set up VR Bowling

    • Create cube and scale to a bowling lane
    • Create a cylinder and scale to bowling pin size
    • Name it bowling pin
    • White material
    • Add RB
    • Duplicate for 6 or 10 pins (Ctrl+D)
    • Change bowling ball mass (in RB) - 7
    • Give lane a physics material, slippery
    • Test!
  • Intro to creating prefabs

    • Turn bowling pin, ball, table, lane into prefabs (should all be named and tested first)
  • Set up VR Bean Bag toss

    • Download object and import into Unity
    • Add mesh collider
    • Add material color and slick physics
    • Create bean bags from capsules
    • RB (use gravity), XR Grab, and slick physics, color
    • Test!
    • Modify physics of both games to feel good
    • Bowling ball mass (7)
    • Bean bags
    • Mass 2.5, Drag 0.2, XR Grab throw velocity scale 2.7 Optional assignment: find assets to use for VR bowling and bean bags

Week 4 - Teleportation/Movement

  • Setting up teleportation
  • Create teleport visuals
  • Player turn and movement

Week 5 - Tower building blocks (color changing)

  • Set up VR Building Blocks/sandbox
  • Intro to scripting in C#: Color changing on select/release objects

Week 6 - Target shooting (scripting)

  • Importing assets
  • Setting up gun grab area and projectile
  • Scripting, shooting
  • Create and script targe

Week 7 - Student unique games

  • Students come up with their own game creation ideas for their game room (at least 1, ideally 2+)
  • Students creating their unique game ideas with support
  • Helpdesk/support
  • Ideas: Hockey, golf, climbing wall, tee ball, paintball gun
  • Encourage students with coding experience to code

Week 8 - Student VR Game Room Presentation/Reflection, Next Projects/Build to Play Standalone

Students present their game room on zoom by sharing screen while in play mode on their Quest Students learn to build their project directly to the Quest so they can play it standalone without their PC Reflect on bootcamp and students share ideas for future Game Dev Sr VR Bootcamps

About the Facilitator:

Kristen Montesano is the Director of Tech Education for Galileo and has been teaching STEAM skills for more than 3 years in various self-directed learning environments, summer camps, and makerspaces. She enjoys playing and creating games as well as making 3D animations in her spare time and is always exploring new technologies. Kristen has a B.S. in Child Learning and Development and believes that the most important feature of any course is that the students leave feeling accomplished and inspired to explore the topic more on their own.

Glenn Kachmar is the VR Club facilitator for Galileo and is passionate about virtual reality and emerging technologies. Glenn has been teaching coding and game design to primary and intermediate students for ten years and is looking forward to helping students create new worlds and games in virtual reality with Unity.

Join the Learning Network

Join hundreds of families interested in self-directed learning and get access to tons of resources for your children. Every week, we are accepting new Galileo students. Your children don't have to wait until the next school year to start their personalized learning journeys.