网络对战五子棋(来一起PK鸭)
一、本地调用和RPC调用的区别
首先了解一下RPC~
RPC主要是解决了两个问题:
- 解决了分布式系统中,服务之间的调用问题
- 尤其是在远程调用的时候,可以让调用者感受不到远程调用的过程,调用者就感觉是自己在调用本地的接口
本地调用: 函数的实现在本地,当去调用函数时,就会跳转至本地的对应接口
RPC调用: 实现的方法在远端,调用函数时会跳转至远端进行调用,但是调用者本身感受不到远程调用的过程,就像使用本地调用一样简单。
二、前期环境配置
写这个网络对战的五子棋环境一定要提前配置好咯( ̄▽ ̄)~*
博主当时搞了一天╭(╯^╰)╮
环境配好很重要的,配置环境的时候一定不能焦躁!!
1.高版本的gcc
因为要使用C++的一些新特性,所以就要升级你的gcc
具体戳这里---->使用新版的gcc - Developer Toolset 7
2.安装cmake
需要使用cmake3.7以上的版本进行Makefile的自动化生成
具体戳这里---->cmake升级到cmake-3.9.2版本
3.安装boost库
这个安装起来炒鸡麻烦!!!!!
安装boost库,具体编译的时候,错误提示信息会告诉你
具体戳这里---->CentOS 7下编译安装Boost_1_57_0
4.最后!下载一个REST_RPC
因为我们如果自己实现一个RPC会非常复杂,我们用别人已经写好的RPC框架就最好辽!所以博主找到了一个开源的RPC框架----REST_RPC,我们就用这个来完成网络调用逻辑。我们关注游戏本身~
附上源码链接,阔以自行下载:https://github.com/qicosmos/rest_rpc
三、进入写游戏环节(开始鸡冻了!!!)
网络对战五子棋的主要思路
对于客户端来说,也就是玩家,我肯定要能进行注册,登录,进行匹配,开始游戏(下棋,下棋的节奏),一轮游戏结束我就得知道自己赢了没。这些我们都是通过调用RPC接口,去调用服务器上的相关操作函数。
但是对于客户端我们有两个,这两个客户端的要对一个棋盘进行操作,所以相关的游戏信息都要放在服务器上。比如棋盘信息,玩家的相关基本信息(账号,密码,游戏id),玩家的状态,玩家匹配房间的房间信息,游戏大厅等等。
两个玩家进行游戏的整个过程都是对服务器上的数据进行操作,我只需要把我想要的信息拿到即可。游戏的本质就是