游戏夜读|怎么做联网五子棋?


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


    推荐阅读