Dev Blog

23. Making stuff look good with Oculus Quest

23. Making stuff look good with Oculus Quest

This week our guest writer is Justus, our code guru and shader wizard. Take it away Justus! Why bother making cool shaders? Why don’t you just go crazy with post-processing like everyone else? Because we can’t. With Cave Digger 2 our first target platform is Oculus...

22. Early Access, what’s that?

22. Early Access, what’s that?

Early Access (EA). How would you define it? Think about creating your game. Naturally it’s the best game you’ll ever make. Always the next one, as it should be.   But you don’t have the resources to complete your vision and do everything in 10 months. Not...

21. The Need for Cheat

21. The Need for Cheat

At every game development there comes a point where some kind of development or cheat menu is needed. Cheats and/or development tools makes testing a lot easier and makes the bug reporting process a lot easier, which usually takes a huge chunk of development time....

20. The Digger Emerging

20. The Digger Emerging

I love this part of the development process. You've done your pre-prod, created the pipelines, implemented the basic design and the core gameplay loop has taken shape. Now you're playing the actual game and discovering that hey, this is a thing and this is really fun!...

19. Stuck in a cave send help

19. Stuck in a cave send help

Hello? Is there someone there? It’s me, AMP. I’m all alone here. They dropped me in a rocky cave and told me I wouldn’t get out until I had decorated all of it with these rocks and roots and other stuff... I think I’m going a little nuts, I’m sure I saw some of those...

18. Blooper reel

18. Blooper reel

  Thanks Jammu for the multiplayer odyssey! This time let's have some fun with a blooper reel of funny and or interesting development videos so far.    Starting off with Jammu working on crank mechanics. He clearly has a handle on the situation.Moving on...

17. Finishing the Multiplayer

17. Finishing the Multiplayer

  Hello again! Jammu here. In my previous 2 posts I have already achieved multiplayer functionality on both Steam and Oculus platforms. So far we haven’t had any functionality to add those players together though.   To add cross platform support, we need a...

16. Life in the mines part 4

16. Life in the mines part 4

These are interesting times in the Valley! All the separate pieces are finally coming together, creating not a full game, but a suggestion of one. The basic gameplay is there, the tools are online (if not all very usable), the monsters are threatening and the stones...

15. Life in the mines part 3

15. Life in the mines part 3

Thanks Jammu! Let's give you a breather before the next Multiplayer blog.   Let me tell you about what’s been happening with Cave Digger 2.   First of all, we got our continuous integration working. This has already made some of our lives easier - no need to...

14. Making the Multiplayer part 2

14. Making the Multiplayer part 2

Hello, it’s me again, you friendly neighborhood spiderman/programmer Jammu. Today we will continue our technical saga with the friend invite system. I will be using Unity 2019.4 LTS, Oculus 23.1 and PUN 2.22   Oculus’s side of the friend inviting was interesting...

MeKiwi Oy

Njetwork Inn
Isokatu 56
90100 OULU

VRkiwi is a trademark owned by MeKiwi Oy

MeKiwi Oy

Njetwork Inn
Isokatu 56
90100 OULU

VRkiwi is a trademark owned by MeKiwi Oy

This week our guest writer is Justus, our code guru and shader wizard. Take it away Justus!

Why bother making cool shaders? Why don’t you just go crazy with post-processing like everyone else?

Because we can’t. With Cave Digger 2 our first target platform is Oculus Quest. Quest is a standalone mobile device, and as such, it uses a rendering type called Tiled Rendering, which is really efficient for most rendering, but causes full screen effects like post-processing to be really slow. These effects will add significant fill-rate overhead and should almost always be avoided. Find out more about how Quest does Tiled Rendering here.

So in order to make fancy looking effects like custom fog, color grading or bloom, while maintaining stable 72 fps on Oculus Quest, we have to make the effects with shaders and particle effects.

But shaders are hard to make 🙁

 

It’s true that writing shaders can be annoying even if you’re an experience programmer. Cg/HLSL syntax is different from most programming languages. However there is a easier way. The trick is to use a node based editor like Amplify Shader or Shader Graph. You can find plenty of helpful guides and tutorials online. Also Amplify Shader has lots of good example shaders for you to learn from. This allows you to make shaders much faster, however the catch is that the shaders might not be as optimized as they would be if programmed by an experienced graphics programmer

Amplify Shader view of CD2 Gem shader. Cel Shaded lighting and Custom Fog are is done in a custom functions, which makes them more easy to reuse.

So what does it do?

*Slaps the roof of Cave Digger 2 Lit shader*

This bad boy has a custom fog that uses a cubemap for color. It uses a cell shaded lighting that’s similar to Breath of the Wild. It can do triplanar texturing and stochastic texturing.

Also we have a custom Gem Shader for making those loots look shiny and tasty.

 

How to make it work

To handle controlling the shader settings I created a scriptable object called Atmosphere and also created Atmosphere Manager to manage them

A scriptable object helps to quickly make different atmospheres for different areas. It currently controls the ambient lighting color and fog density.