Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: VRWorkout – A VR calisthenics rhythm game made with Godot (vrworkout.at)
119 points by blensor on Feb 2, 2020 | hide | past | favorite | 34 comments

Developer here. I built this for my own daily workout but it may be useful for others as well, so I decided to make it open source.

It was built using Godot 3.2 [1] and uses the Oculus Quest hand tracking to free up your hands which is especially important for the pushups.

[1] godotengine.org

Oh wow, didn't realize Quest has hand tracking now. I'm going to give your game a spin!

You have to be on the 12.x firmware and enable it under Experimental features. I just realized that I should probably mention that in the instructions.

Definitely do mention this in the README!

From the title I thought you made a calisthenics VR game where the trainer/competitor was Gal Gadot lol.

My modeling/animation skill wouldn't be up to that task. I am already more than glad that the Wolverine claws came out half decent.

Is there a YouTube video or something I can check out before downloading?

The last two images in the README are links to YouTube videos. Here's the one for the latest version: https://www.youtube.com/watch?v=6TnzuIsVT6o

Thanks, I should probably make it a bit clearer that those are videos.

After several questions if this would work on other headsets as well I made some changes and the master branch currently runs on OpenVR as well, which means it will work on platforms that have SteamVR.

Is it within the realm of possibility to use this with a Rift S?

I've pushed some changes today that will make it run on SteamVR, so it should run on a Rift S as well. There is no precompiled binary yet because I still have issues with one of the two controllers not being recognized, but you can try it out if you want.

I think so, there is nothing really stopping it from running on a Rift S. I think Godot does support it but I don't have one so I can't try to make it work myself

If you want to give it a try. Godot does support OpenVR so it should be possible to just use the OpenVR plugin instead of the Godot Oculus Mobile plugin

This is awesome. I wish someone would put vive trackers[0] on bowflex selectable dumbbells [1] and do something similar.

IMHO VR for lifting will be an easier place to start than VR for cardio or calisthenics because you're not moving around as much and sweating the same, so the HMD size is less of an issue.

[0] https://www.vive.com/us/vive-tracker/

[1] https://www.bowflex.com/selecttech/560/100581.html

I can attest to sweating. If you really get into it you can expect to change all your clothing afterwards.

For those who are curious what score the dev reaches. I've just done the full workout (all 6 songs in a row, each on hard to get the most points) and im soaked now.

The total time is ~20 minutes (1172.86 seconds) The final score was 306080 points

After struggling with Unreal for a while, I wholeheartedly thank you for open sourcing this! I'm a Godot lover and it's incredible that you can make such a fun game as a solo dev with it

Personal opinion: Beating Beat Saber as a workout program (as much of “not a workout program” as it is) is going to be really tough - Beat Saber is fun. Most workout programs, be they games or with a trainer... aren’t.

Have you tried Synth Riders? It's similar but the aesthetic is different, the music is different, and rather than chopping at things you have to dance through them. The more energetic and accurate your dance is, the better your score. I find it more fun than Beat Saber.

Both are beat games. The most obvious way to see the difference between them is to watch someone else playing each. One game looks like someone dancing around and trying to look cool, the other looks like a robot being short circuited.

If you have experience with Beat Saber you can go straight in at expert modes in Synth Rider (e.g. level 4 or 5).

SR is also more like a puzzle game for me, there are certain songs where you have to figure out what kind of dance moves would make it physically possible to complete the track perfectly, how you could modify them to get more points etc.

No connection to the developers of either game, and both are worth owning.

I fully agree with you, Beat Saber is incredibly well designed and makes a lot of fun. But after playing it for a while (and also Box VR), I felt I was missing something if I wanted to use it as a workout.

That's why I started this, to try and create something that does the maximum of physical workout (in terms of body parts that are used) that I could squeeze out of the VR gameplay while still making it entertaining.

So I am coming at it from the opposite direction beat saber does.

Fun music game that is also physically engaging <-vs-> Physically intensive game that is also somewhat fun

I just added jumping as the fifth type of exercise. I am not sure how it will be received by the players, but I think with all the different movements the game currently has it could also be a fun party game where people can make fun of themselves for jumping around like mad, not just an exercise game.

Is there an option for non-oculus vr gear?

At the moment it will only run on the Oculus Quest. There is nothing really keeping it from working on other 6DOF headsets as well, the Initialization code may need to be tweaked a bit but I don't plan to at the moment.

You could take the source and check the Godot VR tutorial (https://docs.godotengine.org/en/3.1/tutorials/vr/vr_starter_...) to see if you can modify it for your own headset.

And without hand tracking it may be a bit uncomfortable to do push ups. But maybe the knuckles controller will be comfortable enough.

How did you get hand tracking working?

That depends on where you are coming from. If you are using Godot 3.2 stable then you just need to set "Hand Tracking" to "optional" in the Android export settings.

As for the code for using it there are a initialization steps you have to do in your main scene. I suggest you take a look at the hand tracking demo in the godot_oculus_mobile plugin (https://github.com/GodotVR/godot_oculus_mobile)

However, if you are using an older beta release of 3.2 then I suggest upgrading to 3.2-stable because the packaged apk in the export templates does not have to correct permissions to support hand tracking.

Will this also check my form?

It does the usual point counting how many and how accurately you hit the cues. This is somehow an indicator how in shape you are but, apart from that there is no measurement of body properties

Please make something that checks form! You will corner the home trainer market!

Why use Godot vs Unity3D? I don't know much about it. Is it easy to get something running for the Quest? Where do you get the assets?

I am developing on a linux laptop with a mediocre graphics card.

Godot is a ~500MB Download (including the export templates), and that's it. It's fast, and does not take much space (disk and ram). Once started it takes up 0.8% of my RAM (about 256MB).

Oculus Quest support is currently only semi official. You have to compile the godot_oculus_mobile plugin yourself but that is really easy and in the future it will be available as an asset from the assetlibrary.

As for assets I used, you can import fbx, obj and gltf that should be sufficient enough for most basic things.

Mostly my workflow is to download something from sketchfab or blendswap pepare it in Blender, export it as gltf and import it in Godot.

Or for simpler stuff like the claws or the head cues I just do it in Blender myself.

The plugin was added to the asset library a few days ago actually: https://godotengine.org/asset-library/asset/500

I can now confirm that this works. So no more compiling the plugin required.

Thanks I will try that immediately

> Why use Godot vs Unity3D?

To me, in part, it's that all licenses are source licenses. :- )

Also, I'm still having trouble cancelling my Unity billing, they are absolute scumbags and I will never ever do business with them again by choice. I think they rely on people giving up on cancelling billing, and they should be ashamed of themselves whether that effect is intentional or not.

If you absolutely must get a Unity license, I must recommend not getting the license on your account's "default project", because you can not delete it, nor can you simply cancel the license, and contrary to their documentation, you can not switch which one is the default.

> Is it easy to get something running for the Quest?

It is very straightforward.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact