Skip to content

tycoon#298

Closed
aji70 wants to merge 1 commit into
dojoengine:mainfrom
aji70:main
Closed

tycoon#298
aji70 wants to merge 1 commit into
dojoengine:mainfrom
aji70:main

Conversation

@aji70
Copy link
Copy Markdown
Contributor

@aji70 aji70 commented Mar 8, 2026

Add TYCOON.md — Project overview and contract addresses

Summary

Introduces TYCOON.md as the main project documentation for Tycoon, following the Token Defense README format.

What's included

  • Project overview — High-level description of Tycoon as a Monopoly-style on-chain game on StarkNet
  • Features — Multiplayer rooms, AI opponents, guest mode, perk shop, EGS integration, Cartridge auth, room codes, stakes
  • Links — Source code, live demo, gameplay video
  • Contract addresses (Starknet Sepolia) — Dojo World, tycoon-game, tycoon-player, tycoon-reward, tycoon-token
  • How to Play — Step-by-step flow for create/join, gameplay, exit, AI mode + tips
  • Architecture — Models, systems, EGS flow, client stack, toolchain, tests
  • Team & social links

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 9, 2026

Submission Screening

🚨 Flagged for Manual Review

Project: Tycoon
Repository: https://github.com/aji70/Tyc

Dojo Usage: Solid Dojo 1.8.0 usage — Cairo models (Game, GamePlayer, GameSettings, CodeToGame, User, etc.) all annotated with #[dojo::model], and four Dojo systems (game, player, reward, token) are deployed to Starknet Sepolia at real world address 0x41167a2e9f249d46e52079a9eee47f75389801dd7e06fe933e275fde8fe742b. The frontend imports and calls @dojoengine/sdk and @dojoengine/core via a proper DojoSdkProvider and generated contracts.gen.ts bindings.

Client-Contract Integration: The contracts handle player registration, game creation/joining, stake distribution on exit, and a reward/voucher system — and these calls are real (not dead code). However, the core Monopoly gameplay loop (dice rolls, player positions, property purchases, rent calculations, building houses) is managed entirely by an off-chain Node.js/Express + Socket.IO backend. The contracts expose no roll_dice, buy_property, pay_rent, or move_player entrypoints. Critically, end_ai_game accepts caller-provided final_position, final_balance, and is_win — the on-chain result is self-reported, not computed from on-chain state. The game is fully playable without the contracts; removing them would only break registration, lobby creation, stake management, and reward minting, not the actual Monopoly mechanics.

Cartridge Controller: Properly integrated — ControllerConnector from @cartridge/connector is instantiated in config/starknet-provider.tsx with session key policies (TYCOON_SESSION_POLICIES) for gasless UX, and wired into StarknetConfig as the sole connector. The DojoProvider wraps the full app via layout-body.tsx.

Timeline: 100/100 commits fall within the jam window (2026-03-06 → 2026-03-08), 100% jam ratio — Full submission. All work was done during the 72-hour jam.

Frontmatter: None found.

Filename: TYCOON.md is not kebab-case; the enrichment agent will normalize it after merge.


Flag reason: The core game loop runs off-chain. The contracts manage lobby lifecycle and stake payouts, but positions, property ownership, balances, rent, and dice results are tracked in the backend database and synchronized over Socket.IO. end_ai_game takes self-reported is_win / final_position / final_balance with no on-chain verification. Per the screening criteria, when the core game state lives on an off-chain server and contracts are called as a side effect, this warrants manual review. A maintainer should judge whether the stake management and EGS integration are substantial enough on-chain contributions for the jam's requirements.


Automated screening — a maintainer will perform final review.

@kronosapiens
Copy link
Copy Markdown
Collaborator

Hi, this seems to be a duplicate of a game submitted in the last game jam: https://github.com/dojoengine/game-jams/blob/main/gj7/tycoon.md

Can you clarify?

@aji70
Copy link
Copy Markdown
Contributor Author

aji70 commented Mar 10, 2026

it's an updated game we added an internal AI agent that gives users tips and represent AI which was formally functions, added a backend to support the contract revamped our board from a 2d board to a 3d board all during the 72 hour window @kronosapiens

@kronosapiens
Copy link
Copy Markdown
Collaborator

Manual Review Findings

Codebase Overlap with GJ7

This submission (aji70/Tyc) shares ~78% of its files (370 of 476) with the GJ7 submission (aji70/Tycoon). The GJ8 repo is a separate copy (not a git fork) with 39 pre-jam commits from Oct-Nov 2025 that mirror the GJ7 repo.

The submitter claimed three new features built during the jam:

Claimed feature Actually added to GJ7 repo
AI agent for tips Feb 9, 2026
3D board Feb 28, 2026
Backend Feb 27, 2026

Actual jam work (130 commits, Mar 6-8): Porting Solidity/Foundry contracts to Cairo/Dojo (~30 files) and building Dojo SDK integration hooks (~20 files). The game UI, AI agent, 3D board, and game logic were all carried over from GJ7.

On-Chain vs Off-Chain

The screening bot's assessment is confirmed. The contracts handle lobby and financial operations only (game creation, staking, payouts, reward minting). The core Monopoly gameplay loop (dice rolls, movement, property purchases, rent, building, trading, AI decisions) runs on an external hosted backend at base-monopoly-production.up.railway.app — not included in this repo.

Key evidence:

  • No roll_dice, buy_property, pay_rent, or move_player entrypoints exist on-chain
  • end_ai_game accepts self-reported final_position, final_balance, and is_win with no verification
  • The client's api.ts makes REST calls to the Railway backend for all gameplay
  • Game state is polled from the backend every 8 seconds

Summary

This is a platform port (Solidity → Cairo) of a pre-existing game, with the gameplay loop still running off-chain on an external server. The new feature claims are not supported by the commit history.

@kronosapiens
Copy link
Copy Markdown
Collaborator

@aji70 there are enough problems with this submission that we're going to reject it for now. You're welcome to submit another entry to a future game jam -- but please try to ensure that it's clearly original work with meaningful onchain game logic.

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