generated from daviwil/guile-hoot-starter
|
ci/woodpecker/push/woodpecker Pipeline was successful
Details
|
||
|---|---|---|
| assets | ||
| scripts | ||
| .gitignore | ||
| .woodpecker.yml | ||
| LICENSE | ||
| README.org | ||
| index.html | ||
| main.js | ||
| main.scm | ||
| manifest.scm | ||
| site.css | ||
README.org
CyberSol
Check out the game here: https://fluxharmonic.codeberg.page/algj2023-cybersol/
NOTE: This game requires a Chrome Unstable (Dev) build because it uses pre-release WebAssembly features!
Goals
- Create a simple Solitaire game in the browser with Scheme via Guile Hoot!
Plan
- Get basic HTML canvas rendering working on the JavaScript side to draw cards
- Implement basic game state and logic in the Scheme side to represent the stacks of cards
- On the JS side, call into the Scheme side to get the game state to be rendered
- On the Scheme side, expose functions to perform actions against the game state
- Implement new game mechanics to introduce the cyberpunk theme
Design
This game will be implemented in both JavaScript and Scheme. The JavaScript side will handle both rendering of the game and input, but none of the real game logic. The Scheme side will handle all of the game logic by exposing functions that the JavaScript code can call.
The challenge will be to come up with a reasonable protocol for communicating game state between the two languages because we can't really send whole Scheme objects across to be processed.
Notes
To run Google Chrome Unstable in Wayland move, try this command:
guix shell google-chrome-unstable -- google-chrome-unstable --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-features=WebRTCPipeWireCapturer