游戏夜读 | 怎么做联网五子棋?
五子棋是一个比较熟悉的游戏了。它既能跟井字棋一样,用纸和笔开始游戏。也可以拿围棋的一套装备,煞有介事地来玩。还可以自由发挥,在原有的简单规则上添油加醋。那怎么做联网的五子棋游戏呢?
首先,要联网,要建立端到端的通信。
这里要考虑两个问题,第一是“实现的手段是什么?”第二是“准备几个端之间的通信?”
第一个问题,实现的手段用 socket 通信技术,选一种叫 UDP 的连接——因为这种连接实现起来比较省事。第二个问题,采用一个服务器端,一个客户端,一共两个端——因为这样实现起来比较省事。
其次,是要分析五子棋的游戏机制。可以从下期的流程来看。
棋盘拿来!道具的准备,包括棋盘、棋子(黑色/白色)。
谁先开始?轮到谁了?下棋的秩序,包括双方:我方+对方。轮流下棋,这也是玩家之间通信的主要内容。
对方下在了哪里?我要怎么下?也是玩家之间通信的主要内容。
下哪里?落子的有效性。只能下在棋盘上空的位置上。
如何判断胜负?谁赢谁输?获胜的条件:一方率先完成五子连珠。
不玩了!道具的回收。退出游戏,关闭窗口。
经过一系列的设问,能更加熟悉五子棋的游戏机制,逐步明确要实现的核心逻辑是哪几个。
最后,还得进行交互设计要素察觉。
一方面,先确定交互内容,可以从以玩家为中心的输入输出(IO)信息汇总。例如,玩家从游戏系统咨询获取的信息可以有:现在轮到我了吗?刚才对方下在了哪个/哪些位置?刚才我下在了哪个/哪些位置?现在我可以下在这个位置吗?悔棋?现在我可以放弃/投降/直接退出游戏吗?现在谁胜谁负?再例如,玩家向游戏输入的信息有:我要开始玩了!我要落子在这个位置!我不玩了!我要退出/关闭游戏!
另一方面,根据上述筛选出的交互内容,可以选择出合适的交互方式。例如:鼠标左键,点击操作。点击棋盘进行落子的确认,点击按钮提交信息等。
接下来,是时候开始准备真正的排面了——各种素材!前面逐步确认的交互内容、交互方式,还只是逻辑框架,在具体的游戏制作过程里,这些都要被实实在在的“素材”填充起来!首要的,就是信息传递用途的素材,像交互主界面棋盘、交互主元素棋子、信息展示窗口、退出选项等。其次的,是影视听等素材,像动画、音乐等。
文/良宵听雨。授权“游戏夜读”发表。
版权声明: 本文为 InfoQ 作者【game1night】的原创文章。
原文链接:【http://xie.infoq.cn/article/366ddb941ef369c65cc5893b0】。未经作者许可,禁止转载。
评论