回合制棋类游戏开发思路(附案例源码)

发表于2018-10-12
评论5 9.7k浏览

棋类游戏是一种斗智的艺术,同时也是不少人喜闻乐见的娱乐活动。本次以《斗兽棋》举例,为大家讲述回合制棋类游戏的开发思路。《斗兽棋》的玩法是双方各拥八种棋子,棋子间相互吞食,玩家不同的吞食策略决定游戏结果。所以可以将整个游戏抽象成一个资源消耗的过程。玩家走的每步棋就可以成为一个回合,随着游戏进行,回合数不断增加,回合开始时,程序中可按回合数的奇偶决定哪一方该行动,回合结束计算资源消耗情况,紧接着进行下一个回合,直到游戏结束。


游戏主要功能实现

准备工具与文档

1.Cocos Creator

2.Matchvs JavaScript SDK


用户连接

如果要把用户连接在一起,我们需要借助互联网,登录服务器。先用CC的可视化界面编辑器拖动控件,创建一个供玩家交互的游戏登录场景。

使用matchvs联网服务中的匹配接口(joinRandomRoom),在两个玩家之间建立一条连接通道,使用CC创建大厅场景,使得玩家可以开始对战。

实现游戏交互

按照之前整理的设计思路,借助CC绘制一个棋盘,再在程序中申明一个16格的数组。以标记玩家手中的棋子在棋盘中的位置, 同时借助Matchvs的房间内玩家通信sendEvent。

(当玩家在同一个房间时,即可互相通信。开发者可用该接口将数据发送给其他玩家,Matchvs默认将数据广播给当前房间内除自己以外的所有用户。完成每个游戏回合中对这个数组的计算. 最终实现游戏中你来我往的对弈过程。)

默认广播数据:


具体步骤可分解为:

1.定义一个16格的数组和一个回合数计数器

2.判断当前回合数是否为0来发牌,即回合开始前,可以选一个userID较大的玩家进行随机发牌,给数组2和3赋值,并同步给另一个玩家,回合数+1

4.开始回合,监听玩家动作

5.依据每回合玩家的动作,在回合结束时,计算数组中每格的值,同步后结束此回合,同时回合数+1

6.循环3,4过程,直到满足游戏结束条件

小结

通过阅读上述的内容,相信大家对如何开发联网回合制棋类游戏有了一定的理解,虽然实际游戏中有很多细节还需要开发者完善,但借助Cococs Creator和Matchv游戏云的这两套解决方案,让游戏的开发变得更简单。

 附:《斗兽棋》github源码地址:https://github.com/matchvs/AnimalChecker 

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引