mekiwi porting 7 vr platforms

How MeKiwi ported Cave Digger to 7 different VR platforms

MeKiwi is a very interesting indie studio in Finland: they have published a very popular VR game like Cave Digger, and they have also experimented with something artistic with ArtPulse. Recently, they also made something quite unique in the ecosystem: they have ported their VR game Cave Digger back to flat-screen Desktop PC. This is very rare because the approach usually is the opposite one, where games get ported to VR, not from VR!

For this reason, I have decided to interview Jaakko Asikainen, CTO of the company, and ask him about this unusual porting and about the very large compatibility with 7 VR platforms they have guaranteed for their game!

(Disclaimer: I published in the past some sponsored content fo MeKiwi, but this is actually a standard post)

Hello Jaakko, introduce yourself to my readers!

Hello, I’m Jaakko, the team leader of a Finnish indie VR company called MeKiwi. I’m the director and designer of Cave Digger.

Tell me something more about Cave Digger…

Cave Digger is a weird west mining adventure in VR. It’s my first VR game and I love it, warts and all. It all started in November 2017 with the pre-production for a demo of Cave Digger. We released the demo on Steam in May 2018. The demo got more than 100k downloads on Steam so we decided to push on and now it’s available on Steam, Oculus, VivePort, WMR, PSVR, Pico Neo2, Nolo X1.

You have made your game compatible with 7 platforms! Wow, it is quite a record… how have you managed to do that?

It is a lot of work porting and optimizing the performance and the controls for each different platform. Some are easy like VivePort, which is basically a Steam build with the Steam stuff removed, but then on the other hand you have Sony’s eldritch submission process and things like Quest performance optimizations. We are using Unity3D with VRTK, which made things easier.

You mentioned about VRTK. Online there are many people both liking and disliking this library. Can you tell us your opinion? Why is it good and why is it bad?

Using VRTK gave us a kickstart at the beginning to get things like teleport and grabbing easily working. Also, it made things easier getting the other platforms working. On the other hand, our version of VRTK wasn’t maintained properly and some of the platform SDKs for it were fairly broken. So that caused some extra work.

Porting between PC headsets is easy, but then you also worked on Quest, and that is pretty hard. How have you managed to reduce and optimize your experience? What has been your workflow?

You’re right, the Quest porting was the real challenge. With the game optimized for PCVR, we had a real problem on our hands – how to get it to run and also look good on the Quest.

We had to reduce draw call counts from 1000+ to 150, vertex count from a million to 200k and optimize CPU load to have the game running at constant 72fps. So lots of profiling of single-game sections, coming up with creative and not so creative solutions, and staying up late. OVRMetrics was really useful in realtime A/B testing on the device.

Also, we had lots of problems with RAM usage… we were using around 1 GB and found out that Android’s Low memory killer was randomly killing our foreground app, especially during scene reloads. That was lots of fun. After weeks of optimizing and profiling memory usage, we ended using an empty loading scene between the reloads so that some memory would be freed and the OS wouldn’t kill us.

cave digger vr
This glove with gems reminds me something… (Image by MeKiwi)
Going deeply technical, how you managed your workflow for handling so many different Unity projects? I mean Git, the build process for every bug fix, etc…?

Git is of course a god-send. We tried to keep things in the same branch and same scene as much as possible just for the reason of back-porting. We did all the PCVR releases from a single branch, using the same scene. PSVR and Quest had a branch of their own because the optimizations needed for both platforms were similar. Then the bug fixes need to be committed to both branches, which sometimes can be nasty because of the delta.

Also, the flat version has a branch of its own. There’s been so many fixes and improvements on it that it would probably be easier to implement VR on the flat branch than back-port all that stuff to the old branches.

You have decided to go back from VR to flatscreen. Usually, companies take the opposite route. Why did you take this decision?

The fans asked for it basically. Also as we’re into publishing as well, so we thought it could have been useful to release the experience on all possible platforms.

cave digger pc 2d
PC version of Cave Digger. Notice the classical FPS interface (Image by MeKiwi)
From a UX standpoint, what have been the difficulties of porting an interface made for VR to pancake mode?

Well, creating an interface in the first place! Cave Digger VR was very minimalistic in that regard, having only a few in-world options. So this time we actually have a menu with the usual quality and customization settings.

But yes, the controls, the UI, the 1st person view, the animations… all had to be (re)designed. The biggest problems were around tool usage: now that we had the tools “stuck” to the screen as opposed to being in the VR player’s hands, how to make sure they were satisfying and practical to use? That required lots of testing and tuning.

We avoided changes to the content and concentrated on the actual 1st person experience. Of course, we needed to add some basic FPS mechanics like running, jumping, and crouching. Since VRTK was so deeply ingrained in the game, we ended up cloning the VRTK Simulator mode and creating a separate First Person SDK based on it.

cave digger pc desktop screenshot
All the tools had to be rethought for the Desktop PC version (Image by MeKiwi)
Let’s talk about stats! What are the platforms where you have sold the most? And how is the feedback of the game on PC?

PSVR and Quest by far, both having a rating of 4 out of 5 stars. Quest for example has sold more than 5 times than PCVR put together. The next milestones are 100,000 copies and 1 million $ in revenue. Both VR and flat games have very positive ratings on PC.

What was your favorite dev platform?

Personally PSVR because I did it myself. Not that is was easy or smooth, but gratifying in the end, as it took 7 months going through all the hoops in Sony submission and testing. It was a valuable experience and the next release will go much more smoothly.

Tell me one big lesson that you’ve learned in all this process and that you want to share with my readers!

Game dev isn’t a bed of roses. Persist, trust in your idea and even us indies can make it. Also, finish your projects.

What are your future plans?

Making more games! There’s a big announcement coming from us soon, perhaps related to a sequel.

Something else to add to this interview?

Thanks for having me. Hit me up on linkedin if you have a game idea or an idea for a Varjo XR experience!

Varjo XR experience created by MeKiwi

I thank a lot Jaakko for the insights he has provided us in this interview. I also invite you to check out Cave Digger on the platform you prefer, like Quest or Desktop PC (it’s around 15-20€).

And if you are a game developer and you have already developed some cross-platform experiences, share here below in the comments what are your pieces of advice on how to develop an effective cross-platform solution, so that to help the other members of the community!

I’ll start myself: Work from Day 1 on the cross-compatibility of your project. Even if you’re developing only for one platform like Steam in the beginning, don’t make the code dependent on that platform, but already create some abstractions for everything. Otherwise, when you want to port the game, you’re going to have a hard time.

(Header image by MeKiwi)


Disclaimer: this blog contains advertisement and affiliate links to sustain itself. If you click on an affiliate link, I'll be very happy because I'll earn a small commission on your purchase. You can find my boring full disclosure here.

Releated

playstation vr 2

The XR Week Peek (2024.03.26): Sony halts production of PSVR 2, Meta slashes the price of Quest 2, and more!

This has been the week of GDC and of the NVIDIA GTC, so we have a bit more pieces of news than the usual because there have been some interesting things announced there. Oh yes, also IEEE VR had its show. Actually, a lot of things happened for tech people in the US, which is […]

We need camera access to unleash the full potential of Mixed Reality

These days I’m carrying on some experiments with XR and other technologies. I had some wonderful ideas of Mixed Reality applications I would like to prototype, but most of them are impossible to do in this moment because of a decision that almost all VR/MR headset manufacturers have taken: preventing developers from accessing camera data. […]