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

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

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

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

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

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

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

家庭局域网视频共享,能在各种平台上播放同一视频即点即播而不要做任何预处理的,这样的服务器才是真正的家庭中所需要的服务器!

我要求的服务器必须要满足如下条件:

1、低功耗,如intel u类结尾的cpu,最好核显硬转码。

2、能转码播放蓝光iso和大部分4k视频。

3、在线下载字幕。

4、靓丽的可自动更新电影资料库。

5、播放时能大幅跳跃反应敏捷,而不用漫长的缓冲时间。

6、最好免费!(free)

根据上述6点要求,我试过了vidon server2,emby,wild media server,universal media server,qloud server,plex,play on等十几款软件,

最后能留下的仅剩国产的威动服务器(vidon server2)和国外的cloud server,另一款emby继续观察!

我曾经做过实验,用一台山寨intel z8300cpu主机。单通道内存4G,ssd 64g,vga,hdmi。(该机竟然不能进入bios设置,否则就要返厂解决!真让人无语!)

系统win10,安装vidon,外接12t usb3.0移动硬盘盒,硬转码4k无压力!但突发码流高的1080p反而有卡顿的短暂现象,可能与单通道内存有关系。该机不适合做威动服务器,电源管理比较怪癖且不能修改,毕竟其tdp才2w,总功耗只有4w,最适合做kodi终端!。

目前我的服务器主机是:intel i7 4500u,16g双通道内存,核显hd4400,主板2个sata接口,mini-pcie扩充两个sata,主机配了240g msata硬盘安装win10,1t 2.5寸硬盘做从盘(下载用)。另3个sata接8t硬盘,diy单独供电电源,远程遥控硬盘电源,用时热挂硬盘!整机待机12w以下,最高不超过30w。 系统安装威动服务器核显硬转码,cpu 占用很少,移动端4M wifi下连接十分流畅,特别是大幅度跳跃,几乎无等待时间。与海美迪q5完能完美配合,实现了wdyy-2.0.0.8-dangbei.apk(vidon TV版)的全部功能!

只有用过的人才能体会到其硬转码的优良特性!甩其它国内外同类软件几条街!但很可惜威动服务器与2016年8月停止了开发,转而发展专门的影院点播系统。留下了韩国的plex大行其道!


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存