The King of Fighters 97 Dapp

1、团队成员介绍

  • 组长、DAPP产品及UI设计:谢导
  • 智能合约开发与设计:一杰、成标
  • 前端开发:Burce

2、比赛游戏简介

每一轮对抗赛中,由两位玩家各自指派三位英雄出征,作为一个整体进行对抗,每位英雄的出场顺序由玩家决定,每英雄相互可出拳、腿、必杀、防御四种招数,每次出招情况均为随机,每次攻击均为会扣减英雄的生命值,防御可抵消或者保护生命值。当一方玩家的一位英雄在对抗中生命值为零后,该玩家的第二位英雄自动跟对方玩家胜出的英雄继续战斗,直到两位玩家中有一位玩家中三位英雄的生命值全部为零时,其中一方玩家获胜,该轮对战游戏结束。

3、比赛进度介绍

10月12日,周五晚上 小姐姐公布了比赛题目和C战队小组成员,面临的第一个问题就是,我们基于哪个平台进行开发?一杰首先提出组内成员是否有用过layer2技术,可以评估一下大家上手的难度。从我之前使用nervos appchain 开发dapp的经验看,虽然nervos兼容以太坊,但是合约的部署、前端与合约交互等方面还是有些不同,组内成员上手成本较高。当天晚上基本确定基于以太坊平台进行游戏开发。

10月13日,上午9点多 我组织召开了小组内第一次语音会议,会议的主要目的是解读比赛要求和规则,确定小组游戏主题及成员分工。通过解读比赛要求得知,合约实现分命题和自由部分。

  • 1)命题部分要求实现基于ERC721资产的交易系统,可以是卡牌,宠物、装备等。游戏中需定义一种ERC20代币,用来购买ERC721资产。购买ERC721资产的形式是通过支付ERC20代币购买类似礼包形式随机产生,随机数的发生要求使用rOracleize服务。同时要求ERC721资产的发行需具有稀有度层次,并且要求支持ERC721资产的转让。
  • 2)自由部分就考验我们的脑洞了,比如为游戏设计丰富的世界观背景,丰富ERC721资产的属性,以及对抗系统、实现Web前端。

通过对比赛要求的解读,我们明确了本次游戏开发需要实现的基本功能。后续待解决的一个问题就是,确定游戏的世界观和主题。所以接着我们就主要围绕着卡牌、合成、对战类的游戏展开了讨论和思考。

大概讨论到11点40的时候,根据一杰所描述的常见对战类游戏的玩法,让我想到了“拳皇97” 这个对抗性游戏。“拳皇”也算大部分人可能玩过的比较经典的游戏。接着我、一杰、成标三人的讨论和设计就聚焦到了以“拳皇97”为主题的卡牌类游戏上。成标的思维很活跃,首先就给游戏取了一个名字,DKOF,我们觉得挺不错。后续我们大概持续讨论了两个小时左右,也没吃饭,边讨论我们边用思维导图整理我们设计的游戏功能、英雄基本属性、英雄对战规则、英雄交易规则等,到两点多,游戏的基本雏形设计完毕。

10月13日,下午2点多,基于游戏设计的基本雏形,我们进一步梳理了合约的大致数据结构和游戏前端的功能,游戏前后端交互的接口。然后确定了团队内成员的分工,一杰和成标进行智能合约的开发和设计,徐斌负责前端开发,我负责游戏的交互设计和UI设计、合约审计,然后我们就各自开始我们的任务了。

10月13日晚上~ 10月14日凌晨 ,成标产出了前后端接口文档的第一版和一个杀手锏Excel文档,excel中详细描述了我们游戏中30个人拳皇角色人物的参数设定,包括各稀有度英雄的攻击力、防御能力、拳、腿、必杀技攻击权重系数、出招概率、能力升级上限、伤害值和战斗回合局数的关系等等。晚上,一杰这边也在疯狂的撸代码,到凌晨时候,第一版代码完成了合约基本功能和前端交互接口的框架 ,我这边的游戏交互和UI设计也基本完成。

10月14日 全天 ,主要是开发合约开发、前端页面开发、合约优化。Bruce当天完成了前端页面的视觉交互和页面跳转。数据逻辑交互部分本由我负责,但因合约还没完全开发完成,暂时还没好。合约开发过程中遇到比较大的难题在于ERC20和ERC721合约的交互,怎么使用ERC20 TOKEN购买ERC721资产,成标和一杰最终找到了一个解决办法,使用approveandcall以及receiveApproval函数。
参考资料:https://segmentfault.com/a/1190000015934040

我的心得 ,关于ERC20和ERC721的代码开发和场景,仍需要多加熟悉和练习。此次DAPP游戏的开发比赛,能很好的考验我们在以太坊进阶课程学习的效果和实际编程能力。智能合约的开发,只有多练习、多写、多思考,在项目实际开发中才能得到比较好的锻炼。接下来会继续完成合约部署、测试及前端交互功能开发工作。

合约主要代码结构如下图:

图片发自简书App
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容