ShadowOfTheColossus-PC
Native Windows port of Shadow of the Colossus (PS4, CUSA08809) - bring your own game dump. Port nativo para PC.
A multiplayer market simulation where information is imperfect, trust is risky, and every decision has consequences.
GamesTypeScript · CSSGitHub @utkarsh3078OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A multiplayer market simulation where information is imperfect, trust is risky, and every decision has consequences.
Players trade five fictional assets with virtual credits, react to public headlines, and weigh a private clue that nobody else has. When the bell rings, a hidden event resolves, and the strongest portfolio wins. The results screen then explains what really happened.
Fictional educational simulation. Virtual credits only. Not financial advice.
Live demo: add your Vercel URL here
| Landing | Lobby |
|---|---|
| Trading | Results |
On a phone, the private clue is pinned to the top of the trading screen:
| Scenario | The question | What it teaches |
|---|---|---|
| The Energy Shock | Shipping lanes are jammed. Is the shortage real? | A temporary shock and a lasting change look the same on day one. |
| The Rate Shock | A big rate hike is rumored. Who wins if money gets expensive? | One event can push different sectors in opposite directions. |
| The Cloud Breach | CloudForge reports a security incident. How bad is it? | Scary headlines move prices before the facts arrive. |
| The Battery Hype | A "battery breakthrough" is teased. Future, or headline? | Hype against fundamentals: buy the rumor, sell the news. |
Rules in full: docs/game-rules.md.
pnpm install
pnpm dev # Next.js on :3000 + game server on :4000
Open http://localhost:3000, create a room, then open the invite link in a second browser window or tab and join. Each tab is its own player, and a refresh keeps your seat.
| Script | What it does |
|---|---|
pnpm dev | Web app and game server with hot reload |
pnpm demo:fast | Same, with a ~70 s trading phase for quick demos |
pnpm test | Engine, scenario-contract, balance, persistence and AI-summary tests, plus full multiplayer rounds over real sockets |
pnpm balance | Plays every scenario with three fixed strategies and prints the balance table |
pnpm typecheck / pnpm lint | TypeScript and ESLint |
pnpm build and pnpm start | Production web build |
pnpm start:server | Production game server |
To play from a phone on the same Wi-Fi, open http://<your-LAN-IP>:3000. The client connects to port 4000 on the same host automatically.
Everything in the blueprint's MVP scope:
sessionStorage)LOBBY → STARTING → ACTIVE → RESOLVING → FINISHEDapp/, components/, lib/ Next.js UI (client components), useGame socket hook
shared/ Types, event names, Zod schemas, assets and rules shared by both sides
server/
index.ts Env config (Zod) and boot
app.ts Express HTTP routes and Socket.IO handlers (validation, identity, rate limits)
game/Room.ts Room state machine, trading, ticking, scoring, results
game/RoomManager.ts Collision-checked room codes, idle-room cleanup
engine/ Pure functions: seeded RNG, price model, portfolio math, ranking
scenarios/ Scenario configs (hidden truth) and balance hints. Server-only.
balance/ Automated balance play-tests (`pnpm balance`)
persistence/ Optional PostgreSQL (Prisma) write queue
ai/ Optional Gemini round summary (narrates computed results only)
test/ node:test suites
docs/game-rules.md Player-facing rules and the price model
docs/scenario-authoring.md The scenario contract and how to add one
docs/qa-matrix.md Manual QA checklist for staging
docs/launch-checklist.md Production release and demo-day checklist
pitch/ Speaker notes and the demo script
Server-authoritative. The browser only sends intent (symbol, side, quantity, requestId, roundId). The server validates the payload with Zod, then checks membership, round state, deadline, cash and holdings. It sets the execution price and rejects duplicate request IDs. Cash, holdings, prices and scores never come from the client.
Money is stored as integer cents throughout, never floats.
| Route | Purpose |
|---|---|
GET /health | Health check |
GET /api/assets | Asset metadata and opening prices |
GET /api/rooms/:code | Public room snapshot |
GET /api/rooms/:code/results | Final results (409 until finished) |
This is the beginning of the README. Read the rest at the original. Read the full README ↗