itch.io is community of indie game creators and players

Devlogs

Optimisations

Tea For God
A downloadable game for Windows

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:

  1. Allow skipping doing things that are not visible.
  2. Check if there are things done every frame that might be done every few frames or that don't do anything anyway - drop/skip them.
  3. Check if some of the bottlenecks come from particular assets - fix those assets.
  4. It's better to have a slightly worse looking game but running smoothly. Especially when it comes to VR.

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.

Download Tea For God
Read comments (5)