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

Rust rewrite #12

Draft
wants to merge 59 commits into
base: master
Choose a base branch
from
Draft

Rust rewrite #12

wants to merge 59 commits into from

Conversation

sharkdp
Copy link
Owner

@sharkdp sharkdp commented Jul 10, 2024

This is a complete rewrite of the Yinsh implementation in Rust, using the Bevy game engine. I'm doing this for multiple reasons:

  1. I can not modify the current frontend anymore since it was written in Haste and that language has since been abandoned. I didn't even manage to compile it with an old compiler last time I tried.
  2. I wanted a version of the game without a backend. No need for an extra server. The game can now run on the user PC (either natively or in the browser)
  3. I wanted to have animations in the frontend.
  4. I want to be able to optimize the performance of the game, in order to make the AI more powerful.

To do:

  • Scale grid for smaller/larger monitors
  • Nicer graphics
  • WASM version
  • Check if (ring removal) works if opponent creates run for you
  • https://bevy-cheatbook.github.io/platforms/wasm/size-opt.html
  • Touch support
  • Remove information display / make nicer
  • Indicator for ring removal
  • History (undo, redo, load-from-file) implementation
  • Detect draws
  • Sounds(?)
  • Settings:
    • AI strength
    • Theme
    • Information display (what kind of information should be shown?)
    • Fullscreen/windowed
  • AI
    • Still seems to play extremely weak in some situations.
    • Add heuristic for ring moves
    • Compute both marker placement + ring move in one go (compute principal variation and take action 1 and 3, if 2 is a wait-action for the human player)
    • Search in two different depths? One for immediate threats, one for general gameplay with a more expensive heuristic.
  • Choose playing mode (human-AI, AI-human, human-human, AI-AI)
  • Cool AI features (tutorial mode; get notified when making blunders)
  • New README

Issues

Eye candy

image

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