Posted September 25, 2020 by void room
Quest 2 is coming. More powerful!
When I read specs for Quest (1), I thought that it's not going to be that much different than PC. It has 8 cores, right? Oh, 4 are weaker? That's still 8, let's say, 6. Oh, 4 are used for tracking? That's still free more powerful cores. No? One is for the system? Well, still 3. There's nothing else running, right? Oh, and the GPU. Its speed is just maybe half of my 970?
How naive was I.
When I run the game, it turned out, it will require lots of work and additional features that the PC version did not require.
I am going to cover things that I did to make Quest version work reasonably well. Some of these are general ideas, some heavily depend on my approach/engine.
GPU
CPU
I normal conditions, I used 1 thread/core for rendering and others for gameplay tasks. When a level was starting, I was using one of those additional cores/threads to generate a level. After that was done, all available cores were free for the gameplay code. And initially, there were lots of hiccups at the beginning of the level. That was kind of okay, as it was happening just for a few seconds. WAS. Right now the game is changing into an open-world and level generation takes place much more often, sometimes during intense moments. You don't want to encounter lag then. I had to do lots of things to be able to have, what I wanted. Seamless open-world, no loading screens.
I started with two cores occupied all the time. And had to get to using one core top. To still have some room for some extra expensive things that may happen randomly.
And that's all I think. At least when it comes to things that I already did. There are still things that require optimisation. Or breaking into multiple frames. Or just doing less of them. Etc.
If I had to cumulate all of that into a very short list of suggestions, it would look something like this:
What am I working on now? Implemented an open-world. The freedom you have with where you want to go to works quite well. Especially with the new gameplay loop that I am working on right now. It's getting simpler, more focused on what you're doing at the moment than "oh, I need to grind to unlock stuff" (which I initially wanted to avoid but implemented exactly opposite what I didn't want to).
If you want to check it out, there's a preview build available (join my discord server "void room" and check out "preview-builds" channel). And before I publish an official update with open-world and new gameplay loop, I will write about implementing open-world with impossible spaces for VR.