FoMo3D游戏开发

FoMo3D合约部署以及常见问题解答

attachments-2018-03-9MDlTgOS5aa74ab46b850.png

作者:舒仁伟

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。



学习目标:
1. 掌握ganache-cli和remix的使用
2. fomo3d合约编译及调试

工具安装及启动

ganache-cli

attachments-2018-08-tcFuDv8m5b682a4b6ff92.png

这里有个属性很重要allowUnlimitedContractSize(Allows unlimited contract sizes while debugging)
attachments-2018-08-BYRIkLq05b682a9e40c4d.png

remix(建议用remix-ide)

attachments-2018-08-2GsULVmU5b682ac600e87.png

合约地址

FoMo3DWorld(精简版)


FoMo3DWorld:

PlayerBook:

FoMo3Dlong(原版)



为了方便,笔者这里使用精简版(原版需要进行合约拆分以及闭源合约的实现)

合约编译和部署

remix-ide配置

1. 打开remix-ide, 勾选Compile下的Autocompile
attachments-2018-08-EenelomP5b682b251c073.png
2. 将Run一栏下的Environment设置为Injected Web3(配合metamask使用)
attachments-2018-08-ExGMp7Mn5b682b7e3d7e8.png

拷贝合约
attachments-2018-08-9UhUOwk25b682be9a5d89.png

合约部署

1. 首先部署PlayerBook合约
attachments-2018-08-uNc2WIVW5b682f9ce8cc8.png
2. 将FoMo3DWorld中的PlayerBookInterface的合约地址替换为PlayerBook合约地址并部署
attachments-2018-08-rGZHcysX5b6830746dcfc.png

游戏激活

1. 首先调用PlayerBook合约下的addGame方法,形如:

attachments-2018-08-N1J0XXRl5b6831535aa46.png
==注意== _gameAddress不能以0x开头,所以这里改用去掉0x的FoMo3dWorld合约地址字符串,游戏名称就叫"f3dw",另外使用metamask的时候,适当提高本次交易的gas

2. 激活合约

调用FoMo3DWorld的active方法
attachments-2018-08-xGMuIAST5b6831ed479ea.png
到这里我们的合约就部署完成了

前端页面
1. 直接ctrl+s下载原版页面
2. 替换合约地址
3. 修改provider地址

常见问题及解答

1. out of gas 、Exceeds block gas limit和oversized data
这是由于合约太大,建议拆解合约、设置optimize(测试网的话,比如ganache-cli 可以设置allowUnlimitedContractSize属性)

2. remix调试合约,经常报错revert(特别是这个引用外部合约的合约,debugger难以定位准确)
这种情况建议将Remix-Run-Environment设置为JavaScript vm来进行调试(相信我,这绝对是个调试神器)


文章发布只为分享区块链技术内容,版权归原作者所有,观点仅代表作者本人,绝不代表区块链兄弟赞同其观点或证实其描述。

attachments-2018-02-kL1zBfXx5a7ffd0b78798.jpg

  • 发表于 2018-08-06 18:14
  • 阅读 ( 1500 )
  • 分类:以太坊

2 条评论

请先 登录 后评论
不写代码的码农
舒仁伟

程序员

4 篇文章

作家榜 »

  1. 社区运营-小以 621 文章
  2. 社区运营-小链 238 文章
  3. 于中阳Mercina-zy 79 文章
  4. 涂晶 74 文章
  5. 李晓琼 44 文章
  6. 兄弟连区块链培训 42 文章
  7. 吴寿鹤 36 文章
  8. 刘旷 28 文章