游戏服务器设计 Unity3d + photon + grpc + nodejs + postgis/postgresql
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了游戏服务器设计 Unity3d + photon + grpc + nodejs + postgis/postgresql,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2719字,纯文字阅读大概需要4分钟。
内容图文
此文转载自:https://blog.csdn.net/qq_43505432/article/details/110221366unity3d + photon + grpc + nodejs + postgis/postgresql 游戏服务器设计
游戏类型:MMORPG
如果想使用grpc替换photon完成通信(长链接替换成短连接),可参考此博客:
Unity + Grpc + protobuf + C# 使用流程详解
团队由于缺少游戏网络层的设计经验,于是就采用市面上比效常用的服务器 photon 来做。
具体到语言:unity3d 使用 c# , android 使用 java,photon 使用 c# 。
做技术选型的时候,想了很久,想统一技术的基础,也就是说服务器端也采用 c#, 尝试 c# 写了几个小 demo,觉得自己还是缺少必要的技能,于是还是选择了熟悉的工具 node.js。
由于 photon 是 c# 为主要核心的,所以还要选择 photon 与 node.js 的网络层协议,在网上找了一圈,发现 grpc 不错,然后写了一个 demo 互相能调通,就决定以 node.js + grpc 做为构建项面的核心来做。
规划一下项目的整体结构如下图所示:
pikachu-net,就是以 photon 为核心的游戏服务器,它管理所有的 unity3d 客户端的连接,长连接的形式,是有状态的。会把所有的业务相关的请求转发到 pikachu-node,如登录,注册等。
pikachu-node, 主要是业务处理逻辑,能游戏的登录等。pikachu-net 与 pikachu-node 之间用 grpc 进行连接。pikachu-node 做成了没有状态服务,所以可以部署成集群的形式。
下面详细说说 pikachu-node 的实现:
由于游戏跟地理位置有关,所以使用了 postgis/postgresql,node.js 下面就使用 knex.js 做为连接工具。
市面上也没有对 grpc 的多个服务的集成使用经验,所以参考 express 的中间件设计理念,自己设计一个 node.js 的 grpc 框架用来组织代码的结构。
在node.js 中 grpc 没有使用 静态编绎模式,而是直接把 proto 文件进行载入的形式进行处理。
代码管理使用 oschina git 的私库。服务器使用 阿里云,系统是 windows 的,没有办法 photon 只能布在 windows 上。
部署代码开始一段时间,是使用 ftp 进行拷贝,发现太难受了。于是用 oschina git 的 webhook 和 express 写了一个发布服务,当我的代码推到 git 上时,就自动更新代码,重启服务,事实证明,这项工作太明智了,省了很多的时间。
node.js 的代码服务都是使用 pm2 进行管理的。
之后日志的查看也是一个问题,因为windows 上没有 ssh,只能用远程登录来查看,当前win只有一个用户,所以不能两个人同时在线,新的会把旧的踢下线,这是多烦,每次查看日志只能叫我来看,于是用 express + socket.io 开发了一个简单的网页版的日志查看页面。这下世界都安静了。
pikachu-net,每次都是在本地编绎好,然后上传到服务器,后来我也把这个加入到发布服务,之后就能推上代码直接重启服务。
之后的规划:
数据库管理要做起来,因为目前数据库字段都是手工建立,如果要布一个测试环境,就很难受。
如果想使用grpc替换photon完成通信,可参考此博客:
Unity + Grpc + protobuf + C# 使用流程详解
游戏服务器设计 Unity3d + photon + grpc + nodejs + postgis/postgresql
标签:核心 之间 实现 类型 text grpc 选择 protobuf 代码
本文系统来源:https://www.cnblogs.com/phyger/p/14073398.html
内容总结
以上是互联网集市为您收集整理的游戏服务器设计 Unity3d + photon + grpc + nodejs + postgis/postgresql全部内容,希望文章能够帮你解决游戏服务器设计 Unity3d + photon + grpc + nodejs + postgis/postgresql所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。