Skip to content

inferrinizzard/nabla-game

Repository files navigation

image

Nabla Operator Game ナブラ演算子ゲーム

This project is a web version of the physical card game created by UTokyo students here: https://nablagame.com/.

The live version of the game is available here: https://nabla-game.netlify.app.

The source code is written is Rust + WASM, bootstrapped from here: https://github.com/rustwasm/rust-webpack-template.

Additionally, the math engine implements a custom Computer Algebra System (CAS) to calculate arbitrary Derivatives and Integrals, in additional to other algebraic functions such as Mult, Div, Sqrt, Log, etc.

Packages used:

  • KaTeX for LaTeX typesetting
  • web-sys for js DOM structs in Rust
  • wasm-bindgen for Rust ↔ js ABI communication and build tools
  • gloo for better js Event Listener ABIs in Rust

Future Plans

  • Adding a Japanese language mode
  • Adding WebAudio for browser sounds
  • Size optimisation of the final WASM bundle
  • Improving responsiveness, currently only mostly supports landscape browsers
  • Using WebGL + custom models for the game scene
  • Polishing the Menu UI
  • Fleshing out the tutorial section
  • Eventually improving the custom CAS
  • Adding an min-max AI that the user can play against

Known Issues / Incomplete:

  • Integration
    • Integrals don't have full support yet for Complexe Coefficients (log(n), n^(a/b), e^n)
    • Log, Limit operators don't have full support for Integrals
  • Inverses
    • Inverses don't support complex integrals
    • Limit operators don't have full support for complex Inverse functions
  • Distributive Property (FOIL) is not fully implemented for polynomial x polynomial calculations

References

About

Online version of Nabla Operator Game (https://nablagame.com/) - made with Rust/WASM

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published