Skip to content

๐ŸŒพ FlutterFarm - Blockchain Farming Game โ€‹

FlutterFarm์€ FlutterDev Chain์—์„œ ์‹คํ–‰๋˜๋Š” ๋ธ”๋ก์ฒด์ธ ๊ธฐ๋ฐ˜ ๋†์žฅ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฒŒ์ž„์ž…๋‹ˆ๋‹ค.

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ โ€‹

  • ๊ฐ€์Šค๋ฆฌ์Šค ํŠธ๋žœ์žญ์…˜ - ๊ฐ€์Šค๋น„ ์—†์ด ํ”Œ๋ ˆ์ด
  • 100 FARM ์—์–ด๋“œ๋ž - ์‹ ๊ทœ ํ”Œ๋ ˆ์ด์–ด ํ™˜์˜ ๋ณด๋„ˆ์Šค
  • ์ž‘๋ฌผ ์žฌ๋ฐฐ - ์ž‘๋ฌผ์„ ํ‚ค์›Œ FARM ํ† ํฐ ํš๋“
  • ์˜จ์ฒด์ธ ๊ฒŒ์ž„ ์ƒํƒœ - ๋ชจ๋“  ์ง„ํ–‰์ƒํ™ฉ์ด ๋ธ”๋ก์ฒด์ธ์— ์ €์žฅ

๐Ÿ”— ๋งํฌ โ€‹

์„œ๋น„์ŠคURL
๊ฒŒ์ž„game.flutterdev.online
์ง€๊ฐ‘wallet.flutterdev.online
์ต์Šคํ”Œ๋กœ๋Ÿฌscan.flutterdev.online

๐Ÿ—๏ธ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜ โ€‹

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Frontend      โ”‚     โ”‚   Gas Relay     โ”‚     โ”‚   Blockchain    โ”‚
โ”‚   (Next.js)     โ”‚โ”€โ”€โ”€โ”€โ–ถโ”‚   (Express)     โ”‚โ”€โ”€โ”€โ”€โ–ถโ”‚   (FlutterDev)  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
        โ”‚                                               โ”‚
        โ”‚                                               โ–ผ
        โ”‚                                       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
        โ”‚                                       โ”‚  FarmGame.sol โ”‚
        โ”‚                                       โ”‚  FARM Token   โ”‚
        โ”‚                                       โ”‚  GameItems    โ”‚
        โ”‚                                       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
        โ”‚
        โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Backend API   โ”‚
โ”‚   (Express)     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

์ปดํฌ๋„ŒํŠธ โ€‹

์ปดํฌ๋„ŒํŠธ๊ฒฝ๋กœ์„ค๋ช…๊ธฐ์ˆ 
Smart Contractscontracts/FarmGame, FARM Token, GameItems NFTSolidity, Hardhat
Frontendfrontend/Next.js ๊ฒŒ์ž„ ์ธํ„ฐํŽ˜์ด์ŠคNext.js, TypeScript
Backend APIbackend/์˜คํ”„์ฒด์ธ ๊ธฐ๋Šฅ ์„œ๋ฒ„Node.js, Express
Gas Relayfaucet/๊ฐ€์Šค๋ฆฌ์Šค ํŠธ๋žœ์žญ์…˜ ๋ฆด๋ ˆ์ดNode.js, ethers.js

๐Ÿ“œ ์Šค๋งˆํŠธ ์ปจํŠธ๋ž™ํŠธ โ€‹

๋ฐฐํฌ๋œ ์ปจํŠธ๋ž™ํŠธ โ€‹

์ด๋ฆ„์ฃผ์†Œ์„ค๋ช…
FarmGame0xd1Fbb0C9403705094d6FBE9007C35c0f811AE93B๋ฉ”์ธ ๊ฒŒ์ž„ ๋กœ์ง
FARM Token0xe5a8F6fF531734be23DF8CaCB63aF154730EF777ERC20 ๋ณด์ƒ ํ† ํฐ
GameItems0x8708A7399BAb2D118619372349747E4bc1d7aac3ERC1155 NFT ์•„์ดํ…œ

์ฃผ์š” ํ•จ์ˆ˜ โ€‹

solidity
// ๋†์žฅ ์ƒ์„ฑ (100 FARM ์—์–ด๋“œ๋ž)
createFarm()

// ์ž‘๋ฌผ ์‹ฌ๊ธฐ
plant(uint256 plotIndex, uint8 cropType)

// ๋ฌผ ์ฃผ๊ธฐ (์„ฑ์žฅ ๊ฐ€์†)
water(uint256 plotIndex)

// ์ˆ˜ํ™•
harvest(uint256 plotIndex)
harvestAll()

// ๋ณด์ƒ ์ฒญ๊ตฌ
claimRewards()

// ๋†์žฅ ํ™•์žฅ
buyPlot()

์ž‘๋ฌผ ์ข…๋ฅ˜ โ€‹

์ด๋ชจ์ง€์ด๋ฆ„ID์„ฑ์žฅ์‹œ๊ฐ„๋ณด์ƒ
๐ŸŒพWheat12๋ถ„10 FARM
๐Ÿฅ•Carrot25๋ถ„25 FARM
๐Ÿ…Tomato310๋ถ„50 FARM
๐ŸŒฝCorn415๋ถ„100 FARM

๐ŸŽฎ ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด โ€‹

์‹œ์ž‘ํ•˜๊ธฐ โ€‹

  1. ์ง€๊ฐ‘ ์—ฐ๊ฒฐ - FlutterWallet๋กœ ์—ฐ๊ฒฐ
  2. ๋†์žฅ ์ƒ์„ฑ - "Create Farm" ๋ฒ„ํŠผ ํด๋ฆญ
  3. ์—์–ด๋“œ๋ž ์ˆ˜๋ น - ์ž๋™์œผ๋กœ 100 FARM ์ง€๊ธ‰ ๐ŸŽ

๋†์‚ฌ์ง“๊ธฐ โ€‹

  1. ๐Ÿ›’ Shop ํด๋ฆญ โ†’ ์ž‘๋ฌผ ์„ ํƒ
  2. ๋นˆ ๋•… (๐ŸŸซ) ํด๋ฆญ โ†’ ์ž‘๋ฌผ ์‹ฌ๊ธฐ
  3. ์ž๋ผ๋Š” ์ž‘๋ฌผ ํด๋ฆญ โ†’ ๋ฌผ ์ฃผ๊ธฐ ๐Ÿ’ง
  4. ๋‹ค ์ž๋ž€ ์ž‘๋ฌผ ํด๋ฆญ โ†’ ์ˆ˜ํ™• ๐ŸŒพ

๋ณด์ƒ ๋ฐ›๊ธฐ โ€‹

  1. ์ˆ˜ํ™•ํ•  ๋•Œ๋งˆ๋‹ค pending rewards์— ์ถ”๊ฐ€
  2. "Claim" ๋ฒ„ํŠผ ํด๋ฆญ โ†’ FARM ํ† ํฐ ์ˆ˜๋ น
  3. ์ง€๊ฐ‘์—์„œ FARM ์ž”์•ก ํ™•์ธ

UI ๋ฒ„ํŠผ ๊ฐ€์ด๋“œ โ€‹

๋ฒ„ํŠผ๊ธฐ๋Šฅ
๐ŸŽ’์ธ๋ฒคํ† ๋ฆฌ ๋ณด๊ธฐ
๐Ÿ›’์ž‘๋ฌผ ์„ ํƒ (Shop)
๐Ÿฆ์Šคํ…Œ์ดํ‚น
โš’๏ธ์—…๊ทธ๋ ˆ์ด๋“œ
๐ŸŽ๊ฐ€์ฑ 
๐Ÿช๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค
๐Ÿ’ฌ์†Œ์…œ
โ“๋„์›€๋ง
๐Ÿšช๋กœ๊ทธ์•„์›ƒ

โš™๏ธ ๊ฐ€์Šค๋ฆฌ์Šค ์‹œ์Šคํ…œ โ€‹

FlutterFarm์€ Gas Relay๋ฅผ ํ†ตํ•ด ๊ฐ€์Šค๋น„ ์—†์ด ํ”Œ๋ ˆ์ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž‘๋™ ๋ฐฉ์‹ โ€‹

1. ์‚ฌ์šฉ์ž๊ฐ€ ํŠธ๋žœ์žญ์…˜ ์„œ๋ช…
2. ํ”„๋ก ํŠธ์—”๋“œ โ†’ Gas Relay๋กœ ์ „์†ก
3. Gas Relay๊ฐ€ ์„œ๋ช… ๊ฒ€์ฆ
4. createFarm() โ†’ createFarmFor(player) ๋ณ€ํ™˜
5. Relay ์ง€๊ฐ‘์ด ๊ฐ€์Šค๋น„ ๋Œ€๋‚ฉํ•˜์—ฌ ์‹คํ–‰

Relay ์„œ๋ฒ„ โ€‹

  • URL: https://faucet.flutterdev.online/api/relay
  • ์ง€์› ํ•จ์ˆ˜: createFarm, plant, water, harvest, claimRewards

๐Ÿ“Š ์ด๋ฒคํŠธ โ€‹

์ปจํŠธ๋ž™ํŠธ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ:

solidity
event FarmCreated(address indexed player);
event WelcomeAirdrop(address indexed player, uint256 amount);
event CropPlanted(address indexed player, uint256 indexed plotIndex, uint8 cropType);
event CropWatered(address indexed player, uint256 indexed plotIndex);
event CropHarvested(address indexed player, uint256 indexed plotIndex, uint256 reward);
event RewardsClaimed(address indexed player, uint256 amount);
event PlotPurchased(address indexed player, uint8 newPlotCount);

๐Ÿ› ๏ธ ๊ฐœ๋ฐœ ์ฐธ๊ณ  โ€‹

ํ”„๋ก ํŠธ์—”๋“œ ์ฃผ์š” ํŒŒ์ผ โ€‹

ํŒŒ์ผ์„ค๋ช…
frontend/components/GameCanvas.tsx๋ฉ”์ธ ๊ฒŒ์ž„ UI
frontend/config/contracts.ts์ปจํŠธ๋ž™ํŠธ ์ฃผ์†Œ ๋ฐ ABI
frontend/context/WalletContext.tsx์ง€๊ฐ‘ ์ƒํƒœ ๊ด€๋ฆฌ
frontend/lib/wallet-connector.tsFlutterWallet ์—ฐ๋™

์ปจํŠธ๋ž™ํŠธ ํŒŒ์ผ โ€‹

ํŒŒ์ผ์„ค๋ช…
contracts/contracts/FarmGame.sol๋ฉ”์ธ ๊ฒŒ์ž„ ์ปจํŠธ๋ž™ํŠธ
contracts/contracts/FarmToken.solFARM ERC20 ํ† ํฐ
contracts/contracts/GameItems.solERC1155 ์•„์ดํ…œ NFT

Docker ๋ฐฐํฌ โ€‹

bash
# ํ”„๋ก ํŠธ์—”๋“œ ๋นŒ๋“œ ๋ฐ ์žฌ์‹œ์ž‘
npm run build
docker restart farm-frontend

FlutterDev Private Blockchain Platform