hanxi / blog

涵曦的博客
https://blog.hanxi.cc
56 stars 5 forks source link

一年工作总结 #58

Open hanxi opened 3 years ago

hanxi commented 3 years ago

工作已经满一年了。。。记得还是去年十月多的时候来广州找工作的,找了大概一个星期左右,然后找到这家公司后就一直待到现在。今年毕业的时候回了趟学校,到现在工作时间大概有一年了。第一个手游项目已经上线有一段时间了,还不知道盈利情况怎么样,又开始了一个新的卡牌游戏。工作一直挺充实的,第一个项目的从零开始我就加入了项目组,从头至尾参与了项目的研发,感觉收获还是有点的,但一时又想不到怎么说。现在新的卡牌游戏用的是上一个项目的框架。既然不知道总结什么,我就把游戏服务端框架说一说吧。

gameserver

对着上面的框架图来说,首先是网关FGGateway,作为一个连接服务器,处理服务端和客户端的连接,对应的数据分配。我公司是用libevent实现的。代码量很少,方便移植。

逻辑服务器FGServer和FGClient所使用的网络使用select实现的,同一套代码,从网络的角度这逻辑服务器也是一个客户端。

FGClient连接FGServer的过程图上没说到FGGateway的中转过程,这里简单说下流程:

FGServer和FGShmDB的交互,FGShmDB是用共享内存实现的内存数据库,只是简单的实现数据库的数据加载到内存,不支持数据从内存中移除,只是将用到的数据库中的数据按需加载到内存中,这样一来读取数据的速度会加快(第一次是从数据库中加载出来放到内存中,之后都是直接操作内存)。然后FGServer就是操作FGShmDB分享出来的内存。

FGLogin 是比较简单的一个http服务。主要是接收客户端的url请求,返回服务器列表给客户端。用于集合服务器。现在是直接用libevent的http实现的,用lua包装了一下。主要实现了用户注册,修改密码,用户登录,获取服务器列表等操作。其实可以用php实现它的,不知为啥会选用c。

AvlTreeQL commented 3 years ago

用issues写blog也是奇葩了(没用贬低的意思,逃)

hanxi commented 3 years ago

哈哈哈😁,以前用的是 jekyll 一类的,后面看到别人也用 issues 写,于是我就自己写了一套,纯属折腾,折腾完了就不想换了。