- web3://outlawvoyage.w3q:3334
- https://outlawvoyage.w3q.w3q-g.w3link.io/
- https://outlaw-voyage.vercel.app/
- 游戏名称:Outlaw Voyage 逆境无赖
- 项目背景:项目的灵感来源于《赌博默示录》(Kaiji),这是一部日本动漫。在这部作品中,有一个高度策略性的“石头剪刀布”的游戏。
- 目标用户:在这部动漫中可以看到:囚徒困境/联合坐庄/抢庄/黑吃黑/预判敌人的预判等处境或策略,可以说堪称web3入门教材。我们相信在web3中喜欢这样智斗游戏的朋友,都是我们的目标用户。
- 游戏规则:简单的说,每位玩家起始有石头剪刀布3种手牌各4张,共12张牌,以及代表credit的星星3颗。在有限时间内,玩家通过使用卡牌来进行传统的石头剪刀布的游戏。通过每轮check-set-open的流程来判断输赢。赢方会获得输方下注的星星。
- 游戏目标:玩家在有限时间内,用掉所有手牌,并持有3颗或更多星星。没有其他规则限定。
- 特色机制:
- 区块链平台:首发Web3URL
- 智能合约:hardhat
- 前端技术栈:React, Next.js, Shadcn-ui, Tailwind CSS, Wagmi
- 游戏界面:描述游戏的主要界面和用户交互设计。 - 待更新
- 游戏流程:从玩家进入游戏到游戏结束的完整流程描述。 - 待更新
- 奖励与激励:DEMO中的奖池分配
-
开发进度:当前项目的开发进度和重要里程碑。- 更新完贴过来
-
测试计划:- 待更新
- 核心成员 - 更新完贴过来
- 扩展计划:
- 社区建设:希望可以从web3url开始吸引更多感兴趣的玩家
《赌博默示录》(Kaiji)是一部日本漫画,由福本伸行创作,后来被改编成动画和电影。在这部作品中,有一个非常著名的游戏叫做“石头剪刀布”(E-Card),这是一个高度策略性的游戏,规则如下:
- 卡牌种类:游戏使用三种卡牌,分别代表“石头”、“剪刀”和“布”。
- 卡牌数量:每种卡牌各有4张,总共12张。
- 游戏目标:玩家需要在有限的回合内赢得尽可能多的回合。
- 出牌方式:玩家在每个回合同时出示一张卡牌,决定使用“石头”、“剪刀”还是“布”。使用过的牌进入废牌堆,不可再次使用。
- 胜负判定:根据“石头剪刀布”的传统规则判定胜负。
- 公开信息:全场每种卡牌的余量和剩余时间。
- 信用点:玩家在游戏开始时3个信用点(Credits),每个回合的胜负会影响信用点的增减。
- 加倍卡:游戏中还有一种特殊的“加倍卡”(Doubler),使用这张卡可以在一个回合中将胜负的信用点翻倍。
- 最终胜利:信用点大于3,且手牌必须全部用完。
- 允许交易:卡牌和星星可以私下进行买卖和交换。
- 准备阶段:玩家检查自己的卡牌,决定初始策略。
- 出牌阶段:玩家在每个回合同时出示一张卡牌。
- 判定阶段:根据出牌结果判定胜负,并计算信用点的增减。
- 策略调整:玩家根据前一回合的结果调整策略,准备下一回合的出牌。
- 结束阶段:当所有回合结束后,手牌数量为0且信用点大于3的玩家们完成了游戏任务。
- 为了实现游戏中玩家的牌不会在合约中暴露,所有牌采取线下本地存储,链上验证。
- 为了实现游戏中玩家可以自由交易卡牌和星星,添加telegram id,使得玩家可以私聊并交易。
- 为了使得作弊多开的成本大于收益,设定入场金的部分需要交给庄家,或者滚入下场牌局。
- 为了隐藏玩家手牌,采取线下生成文件+hash验证的方式
- 开局记录玩家的所有手牌hash,并登记归属,结尾的时候再验证玩家的牌是(4石4剪4布)
- 交换牌需要通过交易所确认,登记归属的交换。
- 如果有人骗牌,可能出现双花,需要验证每个hash只被用了一次。用过之后牌就无效了。
- 玩家列表只有昵称和TG ID,星星数量是点开玩家才能看到的。这是为了避免星最多和星最少的玩家成为活靶子。
- demo版只有1艘船(1个船班)
- demo版的这艘船不用计时开始,只需要写一个开始游戏的按钮
- demo版的换牌全都在tg上,链下传输,可防止偷看
- 未来应升级ethStorage的pocket,类似每个玩家有独立的w3drive
- demo版的明文暂定txt文件,卡牌类型+随机码
- 升级pocket之后不需要时间戳,demo版只有一艘船,也暂时不加时间戳
- demo版的换牌交易页面暂时只考虑1张牌换1张牌的情况
- demo版暂定【交易页面】无法防止玩家骗牌(说换剪刀,实际传锤子)
- 这个功能待定,实际情况应该确实是可以骗牌的
- 实际升级玩家口袋pocket之后,这个问题也不复存在了
- demo版暂时只设单牌互换
- 暂时不设星星与牌的交换/交易
- 暂时不设关于星星的交换/交易
30%庄家奖池,70%赢家奖池。赢家奖池按星星数量比例。庄家奖池先累计后期再定。赢家定义:只有星星大于等于三颗,且无手牌的玩家满足赢家定义。任何不满足的玩家的星星作废。
*举例:*
假如在一个船班上有100个玩家参与游戏,入场金10元。
- 总奖池1000元
- 庄家奖池300元
- 赢家奖池700元
- 全场星星总数300颗
假如有40个玩家满足赢家定义,他们总共有200颗星星,另外100颗星星随输家作废。
每个赢家所得=赢家拥有的星星数/200*赢家奖池的700元
缘起:
目前版本的设计是玩家的牌和星星在玩家本地磁盘储存并用HASH验证
这样做的弊端是每回合游戏需要先上传HASH,再上传TXT,形成两次交互,体验不好
同时所有牌在本地,玩家容易混淆自己用过的牌和没用过的牌
且在游戏结尾无法保证所有玩家都愿意把手中剩余的牌TXT上传给游戏,会产生流局
方案:
可能会需要ZK等知识技术才能解决
船只建议
暂定三艘船:新手号/希望号/复活号
暂定船班等大家玩几把之后再决定船班/游戏时长怎么定
新手号:
- 更低入场金
- 更短游戏时间
- 可以加入instruction
- 每轮发船,编号递增1
希望号:
- 开司所在的船
- 适合熟手
- 每轮发船,编号递增1
复活号:
- 复活号成立条件
- 需统计流局奖池,前期当流局奖池金额大于历史奖池时开启复活号
- 未来升级后应不存在流局,可考虑从庄家奖池中取固定金额回馈输家
- 可选入围标准
- 总胜率太低
- 总损失入场金太大
- 犯规出局次数小于2
- 满足条件的玩家可进入复活号
- 复活号不需要另外缴纳入场金,可以瓜分流局入场金奖池或部分庄家奖池
目前暂定:
- 1%的总奖池进入DEX流动池,增加深度
- 关于比例的建议:基数小的时候比例大,等基数大了再比例小
- 29%的总奖池为庄家奖池
- 70%的总奖池为赢家奖池
- 赢家奖池按星星占比分配给赢家
- 庄家奖池的钱总是质押3个月,利息归项目方,每3个月开启复活号
- 此处以3个月为例,随实际情况缩短
- 可能太复杂了,待定
- 庄家奖池的70%进入复活号奖池
- 庄家奖池的20%进入希望号加码船班
- 庄家奖池的10%进入新手号加码船班