浅谈如何做一个游戏服务器

浅谈如何做一个游戏服务器,第1张

首先要知道游戏类型是什么,然后知道承载人数是多少,以及开发周期多少。需要根据这些来决定游戏架构和技术选型。

对于gameplay来说,本身就是个大循环,一定频率进行tick,接收来客户端或者其他服务器的rpc,处理逻辑,然后数据落地以及发送数据给客户端或者其他服务器,一般gameplay来说在同一个进程里都是同步的方式去编写,同步的实现大多数是单线程的,或者使用coroutine来实现actor这种模式。大部分游戏交互都是比较多,所以不论service和service之间的交互还是玩家和玩家之间的交互,如果考虑多线程的同步的问题,会非常复杂以及很容易做错,所以一个service内同一个时刻都是在一个线程中执行的。

针对mmo或者一些竞技类游戏往往有场景管理的概念,就是游戏AOI,比如一个玩家移动,需要告诉周围所有的玩家,复杂度在n*n,如果减少这个n,就有了AOI算法,比如九宫格,十字链表等,如果刚开服的时候很多人挤到一个主城中,就算采用九宫格和十字链表等AOI等算法,往往同屏内玩家数量还是很大,客户端渲染的单位数量比服务器少一个数量级的,所以场景管理这里还可以有个分线的做法,玩家多的时候,不同线不可见,玩家少的时候进行合并。

如果做帧同步一些关键点为表现要和逻辑分离,随机算法和随机种子的一致性,数学库浮点换定点,三角函数采用泰勒展开或者查表法,需要保序的容器,timer不能基于钟表时间而需要帧timer,以及防作弊(一般都是投票法,或者服务器跑个验证端)

现在很多游戏在线更新bug甚至不停服更新慢慢变成一种强需求了,实现这种方式主要使用脚本热更新,热重启+逻辑内存以及ab服切换来实现。

游戏中的服务器,如果是官服指的就是游戏官方的服务器,相对于官服,其他任何人建的服务器都是私服。

官服为了游戏的公平,所有游戏参数都是经过测试后给出的(包括金币的获得,道具的掉落,抽奖的概率等等……),而私服是个人修改的,没有经过大量用户的测试,也没有经过内测,所以相对来说比较夸张。

另外既然提到了内测,游戏官网在游戏正式发布之前还会搭建一个内测服务器,用于让一部分玩家来内测,内测就是为了找出游戏的BUG用于完善游戏公平和体验。有时候内测服也叫体验服。再有,某些游戏由于开发的公司是国际化的,可能还会分国服和国际服,字面上来说国服就是国内用户可以玩的,国际服就是国际玩家可以一起玩的。

游戏服务器通俗讲法:

你去参加婚宴,以圆桌为例,人围着桌子坐,如果100人都做一个桌子上,那么你想吃一个菜的时候,需要转很久才能吃到这个菜如果分开10个桌子,一个桌子上10个人,那么你很快就能吃到想吃的那个菜。这里的桌子,就是所谓的服务器,它是承载你“吃的菜”的一个载体。多个服务器的作用就是把这个吃饭的人分开,让他们都能快速的“吃菜”。

当然你了解了服务器是干什么用的后,可能自己也想要开设一个自己的服务器用来玩游戏。但这比较复杂,这里面包括空间。域名。源码。备案。大概步骤如下

域名:网站的地址,一个虚拟主机会对应一个网站IP地址。一般IP地址不容易记住。所以用域名。一个网站的域名最好是比较短,朗朗上口,方便记忆。同时可以和自己网站结合起来。.cn域名是中国的特色域名。

空间:用来存储程序的。比如那些需要显示的页面信息

虚拟主机:是由一台服务器分支出来的多个具有服务器资源功能的、不需要硬件的虚拟的主机。

其实空间和虚拟主机是差不多的,只是存储的方式不一样。

域名解析\dns:门牌号-单位名称 对应数据库、查询服务,就是输入域名。

这一系列的现在都有专人去做,而且价格非常便宜。如果你非得想尝试一下怎么自己建个网站,想知道服务器是干什么用的?你在优酷里面随便搜一下——建网站的视频。如果说你域名不想不备案的话,直接买一个香港空间或者美国空间。然后呢,下个模板导进去,照着,别人的自己学学,这是一个很简单的。

互联数据游戏服务器支持用户可根据不同需求,自由选择主机CPU、内存、数据盘、带宽等配置,满足不同游戏服务器需求,还可随时不停机升级带宽,支撑业务的持续发展。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/744710.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-14
下一篇2023-08-14

发表评论

登录后才能评论

评论列表(0条)

    保存