Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Beat Saber example #69

Closed
10 of 12 tasks
Tracked by #64
kanerogers opened this issue Aug 31, 2021 · 8 comments · Fixed by #113
Closed
10 of 12 tasks
Tracked by #64

Beat Saber example #69

kanerogers opened this issue Aug 31, 2021 · 8 comments · Fixed by #113
Assignees
Labels
maintenance A maintenance task!

Comments

@kanerogers
Copy link
Collaborator

kanerogers commented Aug 31, 2021

Description

One of the most important things when releasing complex software is providing examples. Not only does it provide users with a transparent way to see "how" to do things with the software, it gives users confidence in "what" can be done with the software.

Since Hotham is first and foremost a VR game engine, we need to prove that we can make VR games with it. What better game to make than Beat Saber?

This will require careful planning - it'd be very easy to get derailed and stuck in the weeds here. Beat Saber is a big and complex game, but there should be a way to cut it down to its simplest elements and recreate them.

TODO

Research

  • Play the game and break down all its elements systematically
  • Look for other examples of people cloning the game - what did they leave in, what did they out?

Assets

  • Create a "bill of materials" - what will need to be included in the game?
  • Acquire/build assets

Programming

@kanerogers kanerogers mentioned this issue Aug 31, 2021
33 tasks
@kanerogers kanerogers self-assigned this Aug 31, 2021
@kanerogers kanerogers added the maintenance A maintenance task! label Aug 31, 2021
@kanerogers kanerogers changed the title Beat Saber Beat Saber example Aug 31, 2021
@kanerogers kanerogers added this to 19/8/2021 in 0.1 Release Roadmap Sep 15, 2021
@kanerogers kanerogers moved this from 19/8/2021 to 26/9/2021 in 0.1 Release Roadmap Sep 21, 2021
@kanerogers
Copy link
Collaborator Author

kanerogers commented Sep 28, 2021

Programming

After a bit of thinking, the game loop will look something like this.

for_each(cube) {
  if cube.hit_correctly {
    score += 1
  }
  if cube.missed {
    score -= 1
  }
}
if score <= 0 {
  end_game()
}

That should probably do it. I see a couple challenges here:

  • How do we correctly determine if the cube was hit? We'd need some way of knowing how the saber passed through the cube.
  • We need music playing in the background that starts and stops with the game. This'll need Implement first version of Hotham audio API #52.
  • As much as I've tried to avoid it, we'll absolutely need a UI. This will be a lot of work. Added Basic UI support #93 to track this

@kanerogers kanerogers moved this from 26/9/2021 to In progress in 0.1 Release Roadmap Sep 28, 2021
@kanerogers
Copy link
Collaborator Author

kanerogers commented Sep 28, 2021

Assets

Let's keep the assets very, very simple. Ideally we could use something like KHR_materials_variants for our "red cube/blue cube" but glTF-rs doesn't support that.

Assets required

  • Red / blue saber
  • Red / blue cube
  • "Bench" environment thing
  • A music track

All of these and more are available in this asset. Awesome!

Found a reasonable HARDCORE song on YouTube to use: Spence - Right Here Beside You

@kanerogers
Copy link
Collaborator Author

beat saber wip
Hooo hoo yeah.

@kanerogers
Copy link
Collaborator Author

rust beat_saber_example-20211008-094119
Looking weird on the headset. RenderDoc time..

@kanerogers
Copy link
Collaborator Author

BeatSaber
Well this is fun,

@kanerogers
Copy link
Collaborator Author

Okay, we've got some sabers going!

@kanerogers
Copy link
Collaborator Author

Beat Saber

Looking good!

@kanerogers kanerogers mentioned this issue Nov 18, 2021
15 tasks
@kanerogers
Copy link
Collaborator Author

Main issue we're having now is that we're not seeing correct collision detection

@kanerogers kanerogers moved this from In progress to 10/10/2021 in 0.1 Release Roadmap Dec 15, 2021
0.1 Release Roadmap automation moved this from 10/10/2021 to Done Dec 16, 2021
@kanerogers kanerogers reopened this Dec 16, 2021
0.1 Release Roadmap automation moved this from Done to In progress Dec 16, 2021
0.1 Release Roadmap automation moved this from In progress to Done Dec 20, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
maintenance A maintenance task!
Projects
No open projects
Status: Done
Development

Successfully merging a pull request may close this issue.

1 participant