erlang游戏开发基本流程

erlang游戏开发基本流程

本人入坑erlang也就1年多,希望大家一起学习,写得有不好,请多指教。

客户端和服务端的通讯

客户端和服务端的通讯是通过协议进行的,而协议的封包和解包格式可以参考该网址
https://www.cnblogs.com/bicowang/p/4263227.html
每个功能都有对应的协议,比如背包功能中的查看背包,客户端发请求协议给服务端,服务端通过查询数据,将物品Id,数量等数据通过协议返回给客户端,客户端进行显示。

游戏配置生成data文件

将策划配置的excel文件通过脚本语言,转化生成erlang的函数格式,然后通过key进行查询数据,后端的大部分初始数据都是读取配置的。

服务器的内存查询

玩家在线时,则将数据存在ets,进程字段,进程状态等内存中,然后下线刷库和定时刷库,但对于一些操作不是很频繁的,则可以实时刷库,比如活动领取奖励等功能,这样就不需要下线刷库了。

服务器网关

网关的主要功能有:

消息解析
与客户端保持连接
消息合法性验证
转发消息到业务服务
流量限制
版本验证等。
可扩展性
请求信息转发
详细请看https://www.cnblogs.com/wgslucky/p/9093149.html

服务器进程

基本的游戏框架,每个玩家都是一个进程,简称人物进程,然后其他功能再新建进程,比如帮派进程,副本进程,活动进程,场景进程等等,erlang的面向并发,所以进程的创建比较廉价。

服务器节点

erlang 的分布式比较强大,所以比较适合做跨服的功能,而跨服的设计,是一个中央服节点,管理其他游戏节点,每个服务器游戏都创建一个节点,然后连接中央服节点,而功能进程创建在中央服节点上,数据保存在中央服节点的进程上,然后再通过协议向其他节点进行通讯。

如果哪里写得有问题,请指出,谢谢。

猜你喜欢

转载自blog.csdn.net/qq_25167619/article/details/86610239