Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

I learnt:

  • godot can't play audio backwards, so you need two imported copies (one reversed) of every file if you want to do that
  • about auto-step up character controllers to avoid getting caught on steps in level geometry
  • about the importance of playtesting, again
  • a lot about shaders from a teammate
  • how to bulk change materials on an imported scene by changing the import settings to save them externally, then using `sed`
(1 edit)

Hmm interesting. I know Godot can do reverse playback in a loop, so I would have assumed it would be able to reverse play a single sample. But guess not :)

I'm starting to abandon the normal "pill as a character controller" approach, having something that detects elevation changes so you can walk up stairs, so nice. I'm not sure I'm happy about the solution in XR Tools v2 yet but that one has a solution build in.

Playtesting 100% Especially people playing on other headsets than you developed on

Shaders, see my replyto Kasper :)

Saving materials to tres files is a top tip on some many levels. It also helps promote material re-use so you don't accidentally end up creating double materials with the same settings. While Godot does a decent  job behind the scenes to ensure as many resources are shared, the renderer knowing that meshes are using the same material allows it to prevent unnecessary state changes.

The other tip I'd recommend to anyone targeting standalone VR, while it is a PITA, is to use ShaderMaterial whenever possible. You can right click on a StandardMaterial3D and convert it to a shader material, and then save the shader code to a gdshader file. First it's a great way to learn about shader code, but also it teaches you what settings are exposed as uniforms and are thus save to change during runtime, and which settings change the shader code and should NEVER be changed in runtime. Finally converting to shader allows you to remove unnecessary bits, especially unnecessary texture loads, which can be detrimental to performance.