WebXR can indeed be hit and miss, it depends a lot on the browser and on your graphics card. Godot requires multiview support and that isn't working properly everywhere.
As for the windows defender error, it's likely a false positive but I highly recommend scanning your HD just to be safe.
Bastiaan Olij
Creator of
Recent community posts
If I understand, this is an open source project that was in the work for a little while, the game jam part is just the record and replay mechanic. So skirting the rules.
I don't know if the dev of the open source project is also the game jammer however it's a port of Neosparks old beepsaber implementation:
https://github.com/arpruss/OpenSaberPlus
Mental note for the future to create a topic beforehand where people can post links to their streams while developing their entries (for those that do).
For those of you here who are planning on playing games on stream, or are planning on uploading videos of you playing any of the game jam games, please feel free to comment in this thread for links to your streams/videos.
I'll kick it off with a stream I plan to start in a few minutes:
That's the sound library I still have on my list of things to check out too. Glad it worked well for you :)
Building from source is so polished with Godot, so much work has gone into making it a good solution. Just need to install the required toolset and it just works (tm). Only Android can be a PITA but thats not something we can do much about.
On the camera thing, check out the work I'm doing here: https://github.com/godotengine/godot/pull/116424
It's not done yet but hopefully that's something that will finally pass the muster.
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.
Great to hear Kasper, love it when people provide feedback on their experience because there is so much to learn from it.
Just some quick things that may help people around this:
- Shaders are easier than most people think, it's just daunting to get started and when targeting standalone VR there are performance limitations. AI is great to quickly get going but it doesn't teach you much and often doesn't understand the nuisances of platform requirements. Also highly recommend trying out Godots visual shaders, they work similar to shader nodes in Blender. Also check out: https://godotshaders.com/
- The add child node thing is a PITA. Its the best feature Godot has added in Godot 4.0, it's also the most dangerous one for us plugin builders because we can't restrict it (yet). Something that is being looked into and hopefully will be improved in a future version.
- Godots 3D audio works really well for basic stuff, the main thing to be aware off is making sure your viewport is set as a 3d listener. It is by default but this is something that trips up people who add spectator views. That said, I really want to try out steam audio and similar libraries soon which can do proper sound progression.
- One of the best things game jams teach IMHO is teaching you about scope and how much you can do in a week. The point isn't for people to crunch to a finish line, it's to focus on a single goal and try and build something around it you can do in a couple of days.
We've made it to the submission deadline!
Thanks everyone for participating. I'm likely going to do a stream later today where I'll try and get through a number of the entries and show them off.
If for some reason you missed the deadline, timezones got you mixed up, or you had some problems exporting, we're not super fussy for the next hour or so, just leave a message and we'll organise a late submission link.
Ok everyone, I hope you're all excited to get started. We have one more week to go!
Just a reminder that many of us hang out in the XR channel on the official Godot Discord. It's a great place to interact with other jammers.
I will be keeping an eye out on questions asked here during the jam as well.
Fun little game, one thing I missed which I think we don't have an option for yet is telling the Quest this is a full passthrough game that doesn't need a boundary, I couldn't fully explore my room. Also the roomsetup when the game was running didn't work well, I had to exit and do a room setup from the settings menu so it was all there before the game began. I got a feeling the Meta UI was clashing with the game.
Sadly it was late here so couldn't find the hamburger for fear I'd disturb the neighbours :)
Audio wasn't working for us, not sure if that was a problem at our side. Game itself was decent fun and well executed. Bit unclear sometimes what needed to be done, and could have used some more safeguards, for instance I tried to kill the player by opening all doors, but it didn't do anything.
All in all a great attempt!



