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

Parry testbed exploration #281

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

Vrixyz
Copy link
Contributor

@Vrixyz Vrixyz commented Oct 18, 2024

  • based on Add comments to common_macroquad* files #275

  • makes common_macroquad its own crate, it's the best solution to be able to use it from another example + reduces some warnings naturally. I think this changes is for the best and I can set this up in a different PR if need be.

  • explores solution for a parry testbed, we have quite a lot of options, and an "RFC" might be best before starting to work on that, but c3cd122 starts to explore a "minimum effort testbed".

Minimum effort testbed

Reuse code from examples as-is, with no modifications.

We can fork our process, have 1 controller and 1 demo ; the controller can kill the demo and spawn a new one.

  • advantages:
    • no modification to existing examples 🎉 ; that reduces a lot of cognitive load for the user.
    • simple to implement for native, not much code.
  • disadvantages:
    • wasm compatibility is not totally trivial to make
    • result is 2 windows, which is arguably not as pretty as an integrated controller.

Modular macroquad

With minimal changes to the examples, we could make them expose a function to draw their own frame, and probably pass them their own state.

Reusing egui to have something comparable to rapier / bevy_rapier seems possible through https://github.com/optozorax/egui-macroquad ; but will likely need maintenance/updating efforts.

  • advantages:
    • easier wasm integration (only 1 canvas needed)
    • comparable experience to other rapier ecosystems testbeds.
  • disadvantages
    • small modifications to examples needed
    • maintaining a egui / testbed using another dependency than the rest of rapier ecosystem.

Using bevy

Using bevy can be interesting by isolating each example to their own plugin.

  • advantages:
    • benefiting bevy ecosystem, easier to move camera, or use 3d features.
    • same dependencies as rapier testbed
  • disadvantages

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant