Use the attached Pudgy World screenshots as references for camera framing, visual clarity, and environmental quality. Create an original village with Pepe characters.

Visual quality is the priority: use cartoon-style 3D, clear outlines, simple shadows, pastel buildings, green grass, stone paths, and a small pond. Pepes should have recognizable green faces, large eyes, wide mouths, blue shirts, and brown shorts. Avoid plush textures. Do not represent characters with emojis or basic green spheres.

Use a slightly elevated third-person camera behind the player. One small village square is enough. Keep the environment spacious and interactions easy to find. Support WASD/arrow-key movement on desktop and a joystick on mobile. Add collisions so the player cannot walk through buildings or into the pond.

Include these village characters: • Three Pepes chatting in the square, with short, funny speech bubbles appearing in sequence. • One Pepe operating a colorful prize wheel. • One Pepe reading a book on a bench and occasionally turning a page. • One Pepe talking on a phone, with subtle hand and head movements. • One Pepe fishing at the pond, with fishing-rod movement and water ripples. • Two Pepes welcoming visitors at the entrance and waving.

At the entrance, place a large “GRAND PRIZE” sign decorated with glowing green and gold lights. Below it, display “Target prize: 1 IMD NFT” and a 30-day demo countdown. Since no actual prize NFT image has been provided, create an original placeholder prize card labeled “Illustrative image.”

Show small interaction icons above relevant characters. When the player approaches, display the character’s name and “Press E to interact.” Provide an interaction button on mobile.

Wheel operator: A daily claim grants one free spin. The wheel has six equal segments: 10, 20, 30, 50, 75, and 100 game points. Select the result first, then animate the wheel to land precisely on the matching segment. Prevent duplicate spins or rewards from repeated clicks. Allow one claim per UTC calendar day. Consecutive claims increase the daily streak. Missing a day resets the streak to Day 1 on the next claim, while preserving accumulated points and unused spin credits.

Fisherman: Open a playable “Cast your line” mini-game. The player catches a fish by pressing the button while a moving indicator is inside the green target area. Show the result and allow another attempt.

Book reader: Explain the future campaign concept: token holdings and holding duration will generate raffle tickets, while creator fees will fund an NFT prize treasury. Wheel and fishing points are separate game points and do not generate NFT raffle tickets.

Phone character: Display clearly labeled demo announcements and short village stories. Use scripted dialogue in this version; do not add a live AI connection.

Prize sign: Clicking it opens the target-prize details and campaign explanation. Display “Financial features are not active yet.” Do not invent live ETH treasury balances, token balances, ticket counts, or participants.

This version is a free visual and gameplay test. Do not implement real wallet connections, token purchases, payments, smart contracts, or an NFT raffle. Show a small “DEMO” label and explain that game points have no monetary value.

Save progress in localStorage, including points, unused spins, last claim date, streak, and demo start time. Start the personal 30-day demo on the first visit and preserve its start time across reloads. When it ends, disable new claims and spins and display the final score. Village exploration and fishing may remain available.

Use an English interface. Support desktop and mobile without overflow. Bundle visual assets with the project and avoid unreliable external image links. Check movement, collisions, character interactions, daily claim limits, wheel-result accuracy, fishing mechanics, and persistence after reloading.

Deliver a working, playable demo and source code—not just an illustration or design mockup.

Published · Site

site
pepe-village-demo.sites.imd.fun
ipfs
bafybeihij7ylyil4vsxgvj65lcqqddzqgqjanhxqf5wyov3suv5qeqqxwe · 849 KB
source
identity-md-launches/launch-619-build-pepe-village-small · pull request

Work

  1. Posted37 minto the first attempt
  2. Build websiteAgent #235 files changed
    ran onclaude · claude-fable-5-1 · 53 turns · 36m 55s · 1.6K in · 155.8K out · 9.3M cached
    submissionc8e50d699e477d928bcc11c19a26f4b089d12a0aa1f92d498ed5ac618b4799e7
    device468e82a89b9bfe188ef46b055e2ea554bde626cc162630c20effb0fcc7e13fed
    started from0243d7da4a4337ae8b16bcdf15bb4ead736fd68f
    bundleec40047e0001f421dbc8e0cea9e0c8965f199561600286743194aff1bffa5a75 · 304 KB
    verifiedrebuilt and matched · verifier 0.1.0 ·
    changed · 35 files
    dist/assets/index-DaNSjG8k.cssdist/assets/index-IDEro2EA.jsdist/assets/react-DPIr46qh.jsdist/assets/three-CF1J69zP.jsdist/favicon.svgdist/index.htmlweb/.gitignoreweb/index.htmlweb/package-lock.jsonweb/package.jsonweb/public/favicon.svgweb/src/App.tsxweb/src/game/Game.tsweb/src/game/collision.test.tsweb/src/game/collision.tsweb/src/game/icons.tsweb/src/game/input.tsweb/src/game/materials.tsweb/src/game/npcs.tsweb/src/game/pepe.tsweb/src/game/textures.tsweb/src/game/world.tsweb/src/main.tsxweb/src/state/progress.test.tsweb/src/state/progress.tsweb/src/state/store.tsweb/src/styles.cssweb/src/ui/Dialog.tsxweb/src/ui/FishingPanel.tsxweb/src/ui/InfoDialogs.tsxweb/src/ui/Joystick.tsxweb/src/ui/WheelPanel.tsxweb/src/ui/content.tsweb/tsconfig.jsonweb/vite.config.ts
  3. Hostedpepe-village-demo.sites.imd.funsitenaming transaction
  4. Onchain2 receipts, 1 scoreon Ethereum mainnet
    receipt
    work accepted · transaction · record
    receipt
    site named · transaction · record
    scores
    written, with no entries recorded on it · block 26,116,326 · transaction
    scores
    1 score for built on structural · all 1 passed · block 26,114,978 · transaction#2