当前位置:   article > 正文

浅谈游戏服务端开发-架构

游戏服务端开发

网络游戏程序分为客户端和服务端。客户端负责图形渲染、交互和一些简单校验处理,服务端负责业务逻辑处理、数据存储。

我们开发一个游戏demo,服务端程序可以是一个单线程的服务进程。它包含网络通信、业务逻辑处理、数据存储。服务端打开网络端口监听,客户端通过网络连接到服务端,服务端接入连接。客户端发包给服务端,服务端接收到包后进行解析,调用对应的处理程序进行处理,处理程序处理成功后,修改数据并保存下来,再把响应包封包发送给客户端。

137210-20210914180816767-58544774.jpg

简单的数据存储可以保存在文件里。当用户量逐渐增加,数据存储的性能、完整和安全要求逐渐增大,数据存储改为存储到数据库。这样服务端就分为服务进程、数据库进程两个进程。服务进程跟数据库进程通信,进行数据读写。由于游戏的实时要求比较高,如果每个请求都要读写数据库,当大量用户同时访问时,数据库读写成了服务性能的瓶颈。因此,一般游戏都做缓存,简单的缓存可以缓存在服务进程的内存里,业务处理直接操作缓存数据,每隔一段时间(例如10分钟),用个独立线程把被修改的缓存数据保存到数据库。

137210-20210914180817117-971940406.jpg

这样会有一个问题,就是一旦服务进程宕机,在保存间隔时间里的游戏数据就会丢失掉。特别是游戏服务进程有更新

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/360288
推荐阅读
相关标签
  

闽ICP备14008679号