Skip to content

add turf#295

Closed
Shyaar wants to merge 1 commit into
dojoengine:mainfrom
Shyaar:turf
Closed

add turf#295
Shyaar wants to merge 1 commit into
dojoengine:mainfrom
Shyaar:turf

Conversation

@Shyaar
Copy link
Copy Markdown

@Shyaar Shyaar commented Mar 8, 2026

No description provided.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 9, 2026

Submission Screening

🚨 Flagged for Manual Review

Project: Turf (Monopoly on Starknet)
Repository: https://github.com/Shyaar/turf

Dojo Usage: Solid Dojo integration — #[dojo::contract] and #[dojo::event] annotations present in contract/src/systems/actions.cairo with 33+ functions and 32 event types. Dojo 1.8 declared as a dependency in Scarb.toml, and @dojoengine/sdk is imported and initialized from the frontend entry point.

Client-Contract Integration: Flagged — the Socket.IO server is the authoritative game engine, and contract calls are explicitly fire-and-forget recording. contractBridge.ts documents this directly: contractCall() is a "Fire-and-forget contract call — game engine doesn't block on chain," and a comment notes // on-chain recording != game state. Contract errors such as NOT_IN_JAIL and NOT_PLAYER_TURN are silenced as "benign state mismatches," meaning the game advances regardless of what the contracts compute. Core functions like roll_dice(die1, die2) accept caller-reported values with no on-chain randomness. The authoritative state lives in the Node.js + Socket.IO server ("Full authoritative game engine mirrored from frontend") — removing the contracts would not break the game.

Cartridge Controller: Properly integrated — ControllerConnector from @cartridge/connector/controller is instantiated in StarknetProvider.tsx with a full set of session key policies covering all 33 game entrypoints, chain configuration, and paymaster setup.

Timeline: 100% jam ratio — all 31 commits were pushed on 2026-03-08 (within the jam window March 6–8), consistent with local development followed by a single bulk push on the final day. Full submission.

Frontmatter: None found.


Flag reason: The core game loop runs entirely on an authoritative Socket.IO server with a mirrored game engine. Contract calls are fire-and-forget side effects that record state the server has already determined — the contractBridge.ts file explicitly labels them as such and treats contract errors as benign. The contracts are not the source of truth: if they were removed or replaced with no-ops, the game would continue to function normally. This is the "off-chain server manages real game state, contracts called as a side effect" pattern described in the screening spec.

A maintainer should assess whether the on-chain recording layer constitutes meaningful Dojo usage in the context of this jam's requirements.


Automated screening — a maintainer will perform final review.

@kronosapiens
Copy link
Copy Markdown
Collaborator

Hi @Shyaar, can you explain why the repo has a script which creates artificial commits?

https://github.com/Shyaar/turf/blob/main/init-repo.sh

@kronosapiens
Copy link
Copy Markdown
Collaborator

There are enough issues with this submission for us to reject it for now. Please feel free to submit another entry to a future game jam -- try to ensure it is clearly original work done during the game jam, with meaningful onchain game logic.

@Shyaar
Copy link
Copy Markdown
Author

Shyaar commented Mar 12, 2026

Hello @kronosapiens
i was actually in a haste to finish up my project, and for that skipped to commit my changes… so the init-repo.sh helped me create multiple commits from the project whole features

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.

2 participants