Millet Porridge

English version of https://corvo.myseu.cn

0%

VR Canyon Preview and Getting Started with Unity

Background

Last year I bought a Meta Quest 3; after playing a few times it just collected dust. Every time I recorded pentakill videos, I wanted to observe the canyon battles in VR first-person — unfortunately there’s no way to hack the game client.

So I thought of writing a VR version of the game directly, putting Summoner’s Rift into it. This Thunderdome happened to give the chance to realize it. I’d never done any game development before; I chose Unity purely because its VR demo was good. In the whole three days, the work I actually did was limited — basically modifying the VR Demo to implement my own logic. I’m throwing a brick to attract jade here; hope the experts won’t laugh, haha.

I put the final gameplay video on Bilibili; you can watch it directly:

Learning Unity

When I knew nothing about Unity, I first found some videos on youtube to ensure I had a reasonably normal understanding — mainly learning C# and model usage.

These are some videos I watched, mainly about:

cameras, object movement, and keyboard/mouse interaction

rigidbody collisions

Before Thunderdome I hands-on made a simple 3D whack-a-mole. Only when it officially started did I begin rewriting with the VR demo. Something like this:

Models and Animations

All my models come from here:

https://modelviewer.lol/model-viewer?id=142001

Last time I also used these models to make a web-based Zoe.

Moreover, the downloaded glb format actually has animations; in Unity I can import the model and directly add animation effects.

1726576122927.png

Take Aatrox as an example: after dragging the model directly into the scene, just add an Animator bound to the model.

1726583523512.png

Collisions and Rigidbodies

Shamefully, I’ve only figured out the rigidbody concept and the collision principle so far; how to use them in Unity still completely baffles me. This Aatrox sword — I fixed it onto a gun that already existed in the demo, then added a Mesh collider so it can interact with other models.

1726584573687.png

VR Debugging and Dual-Project Compilation

VR debugging

In VR project development, I can’t burn every small code change to the machine for debugging. So during development, most debugging operations happen in the development process itself; I use the XR Device Simulator for this. Although not that easy to use, it already saves a lot of time. Actually I think the optimal solution would be using the real controller directly.

1726583897573.png

When compiling to generate the apk, just manually uncheck this class; or I used another approach — git pull --autostash can directly turn this class off.

Dual-project compilation

Compiling a project in Unity blocks development of the whole project. I originally planned to use the command line, then thought better of it — no mood to research further. So I opened another project; this project only pulls code.

1726583582235.png

After pulling, I manually trigger the compile button. In the end I got this many apk packages; the ones running stably I marked “stable”.

1726583897573.png

Learning C#

I’d never written C# code before, but with ChatGPT’s support I could have it generate part of the content for me, like writing Python code. The parts I organized myself were really only the scene concepts and such.

1726584937545.png

Summary

Whether Thunderdome or a hackathon, I think both are great fun. But when participating you should consider what can be done within the allotted time and what preparation is needed in advance. I think the prerequisite is ensuring you can produce something within the limited time. If I hadn’t made that simple 3D project at the start — or rather, hadn’t gained a preliminary understanding of Unity — these two TD days might have been spent entirely on getting started, with no chance of producing anything.