游戏开发服务器选型的横向对比

这篇具有很好参考价值的文章主要介绍了游戏开发服务器选型的横向对比。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

来源一个某乎的作者,各服务器对比貌似来自台湾

个人锐评论一下,总结服务器入门

最后分享一个Pomelo入门-详细

这个服务器选型也说得不错

评价来源X3

pomelo实战1

pomelo实战案例2


来源一个某乎的作者,各服务器对比貌似来自台湾

上篇介绍了go版本的游戏服务器,这篇介绍下其它语言版本:

Skynet kbengine NoahGameFrame Pomelo Pinus ET
使用的语言 C/Lua C++ C++ Nodejs TypeScript C#
概述 云风前辈开源的框架 mmo框架server 一个快速的、可扩展的、分布式的C++游戏服务器引擎/框架 网易开源的游戏框架 但不再维护 Pomelo的TS版本 基于事件机制的框架 模块可在客户端和服务器双端使用
是否跨平台 否(Linux不需要跨平台) 否(Linux都不能用?)
文档情况 较多(云风会写文档? 较多(民间几乎没有(国内) 较少 较少(官方少,民间多) 较少 较少
是否支持热更 是(框架这么臃肿,能热更表示怀疑)

游戏开发服务器选型的横向对比,服务器,运维,游戏服务器,skynet,pemolo

skynet框架

skynet网上介绍文章比较多,最大特色是使用lua来完成逻辑开发,代码级别的可热更。

游戏开发服务器选型的横向对比,服务器,运维,游戏服务器,skynet,pemolo

kbengine and NoahGameFrame

游戏开发服务器选型的横向对比,服务器,运维,游戏服务器,skynet,pemolo

Pomelo,Pinus,ET

总结:

1、从开发效率和速度来说,skynet和pomelo,pinus是最快的

2、从开发成本来说,ET可以双端执行,对独立开发者来说是很友好的

3、大型点的项目还是推荐skynet和kbengine,文档和issue都还在持续更新

(个人不是很认同,台湾同胞估计对国内形势不是很了解,对自身的境遇的估计不足)

个人锐评论一下,总结服务器入门

总结补充

  • 其实还有被遗忘的Erlang,Erlang最大的好处就是不依赖系统,本身就是为了专用机器E瑷玛斯开发的,所以在windows单机版本也跑的很好,无需迁就Linux(我能说是做私服很好么,但其实就是没有很多人用,这行业我其实也不懂)
  • skynet和pomelo的开发效率最快,那还用说的么,lua或者js,本身就不是编译语言(却是非常现代的现代语言,也是学校不会教的语言)
  • ET框架其实比较搞笑,我就不展开说的,个人不是不建议用,是不建议你碰,见到就绕路走就好了,虽然我还是个c#博主
  • 大型项目kbengine 还不错是因为作为c++的例子很多,比较适合愿意从头学习c++,闭关学习2~3年。总体来说也是很搞笑的,游戏战场现在都一片红海,快打到外太空了,它还在更新Issue是不是搞笑?
  • Pomelo 网上内容多,适合学;Pinus 几乎没有内容,只有一个非常简陋的文档;
  • 服务器硬件,搭建还是需要很多基础知识的
  • 易学难精,先甜后苦,知易行难,从来都是如此
  • Pomelo是网易2012年开源的服务器架构,如果懂得云风,丁丁和网易得恩怨刚好就是从那时候开始得,网易是不可能主推skynet框架的,如果云风使用js 的服务器框架也不可能存活到现在,毕竟竞争激烈,Pomelo也不容易
  • 说了这么多skynet和Pemolo,大概你懂我意思?就是他两个是独一档的,比较底层,比较通用,和其他所谓的服务器”引擎“不是一回事,
  • 说了这么多,真没说具体服务器如何开发;外行真的很难懂这些,但行内随便一个小公司就都用的还是这些,就是实在不行,进个厂吧,比自己摸索靠谱

最后分享一个Pomelo入门-详细

pomelo使用笔记_pomelo request_IT 哈的博客-CSDN博客

这个服务器选型也说得不错

高性能分布式游戏服务器框架-蒲公英云 (dandelioncloud.cn)

评价来源X3

https://www.cnblogs.com/dwjaissk/p/4494174.html

  • skynet
  • pomelo(node.js)
  • elixir(erlang)

周末研究总结 手游这两年发展来看,感觉对实时性要求越来越高,有同事在研究Elixir开发,google得知这东西是基于erlang搞出来的,语法类似ruby;

公司现在客户端采用全cocos2d + c++ + lua,新项目unity3d + c# + lua, lua在产品开发中使用比较频繁,同事了解程度也比较深;

完美情况下自然最好是服务端也使用lua开发,之前就经常发生在服务端ruby代码中写lua的囧像。

周末花了两天时间做了下研究,关于高性能服务器架构的知识;无非就是

  • 高性能io处理,
  • 多进程多线程模型,
  • 透明化分布式,
  • 脚本热更新

etc 这些东西;

关于io处理 epoll和windows的iocp,对比select模型,效率对比就是轮询一堆端口:o(n)跟直接注册回调:o(1)的差别;

pomelo: 内部使用websocket或者socket.io的实现,内部也是使用epoll实现

skynet: 同样使用epoll/kqueue实现,代码在socket_epoll.c socket_kqueue.c

erlang:同skynet 据说erlang 处理1百万个空tcp链接很轻松,

这块几个研究对象区别不是特别大;

关于进程线程

pomelo:单进程单线程模型,具体原因是node.js的实现就是这样的;

skynet: 多进程多线程模型;

erlang: 单进程多线程模型;

pomelo进程之间通信是通过socket完成(包括同机),每个进程中都有一个消息循环,rpc都是异步完成,可见效率一般;

skynet是单进程内预制n个线程,每个服务有自己的消息循环,没消息的时候挂起,有消息的时候,选择一个线程来跑服务,消息队列的消息投 递使用原子锁;处于同进程内的服务间,消息通信效率还是比较高的,消息可以拷贝也可以不拷贝,建议拷贝;

erlang封装了自己的进程概念,实际上类似skynet(其实是skynet借鉴了erlang vm),每个进程对应的是操作系统线程,

综上,erlang的设计很好,所以skynet也借鉴了设计,但是介于lua开发的方便性,个人更倾向于skynet; 关于透明化cluster: 这点做的最好的是erlang,因为它在语言层面上就不需要关心物理机器,进程这些东西;skynet在这方面跟pomelo差不多,还是需要关心物 理机; 关于热更新 erlang和skynet都是可以实现热更新,pomelo新版本中能实现某些逻辑关系不复杂的模块热更新;

其他:lua的coroutine的方便之处,在异步的操作过程中,一般做法就是调用-》回调-》调用-》回调…,这种嵌套的调用代码书写很麻烦,使用协程可以方便的在一个函数内实现异步调用,挂起等待结果回调的同步效果;

写了这么多还是自己赶紧动手搞个例子比较靠谱,否则就变得纸上谈兵了

你们赶紧去练

我再多说两句,有人说Pemolo是单进程多现成,要真是这么利害,网易官方也不会不维护了现在js的特性决定的,要不是nodejs阵型的分裂还做不了服务器呢,Pemolo应该早就一统天下了,其实从诞生之初可能就是几个网易的实习生捣鼓出来,各种Lib,rpc概念封装一下,路由不错,扩展还行,就是现在pomelo半红不黑的样子

而云风的skynet就不多说了,虽然我吐槽他很多,但是巅峰时期的巅峰作品,神作

最后Erlang是1990年代诞生的产物,论架构,方法论都是顶尖,就是很难用,国内一手资料几乎没有(或者某高校计算机专业里有流传,但是不是研究生,不是博士,很难了)

//上世界90年代( •̀ ω •́ )y

pomelo实战1

Nodejs学习笔记(十六)--- Pomelo介绍&入门 - porschev - 博客园 (cnblogs.com)

pomelo实战案例2

treasures实战 · Pomelo 中文文档 (gitbooks.io)文章来源地址https://www.toymoban.com/news/detail-678171.html

到了这里,关于游戏开发服务器选型的横向对比的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 运维:硬件服务器BMC介绍

    BMC(Baseboard Management Controller)是硬件服务器上的一个专用子系统,它允许管理员通过独立于主操作系统、CPU和主内存的远程管理工具来监视和管理服务器的硬件状态。这种接口通常用于远程监控和管理服务器,特别是在数据中心和大规模服务器部署环境中。 BMC接口规格: 接

    2024年04月12日
    浏览(51)
  • 物理服务器与云服务器的租用对比

    ​ 物理服务器:每个基于 Web 的应用程序都依赖于一个服务器,该服务器提供网络中的数据存储,并可根据请求提供给客户端。例如,用户使用浏览器访问 Web 应用程序。服务器可确保托管客户端可以使用该硬件组件。与其他托管可能性相比,它涉及提供商的数据中心中的物

    2024年04月10日
    浏览(50)
  • 运维——ssh无法登录云服务器

    一般来讲,无法登录ssh的原因挺多,如果无法登录云服务器,则除了要检查ssh端口是否放行,防火墙状态外,还需要检查云服务器web控制台入站规则是否开放了对应端口。如果你前面检查都是正常,那么还需要注意云服务器运营商。某些奇葩的运营商,例如TY云,限定了80,

    2024年02月01日
    浏览(63)
  • 【云服务器】对比传统服务器,为什么说云服务器更具优势?

    个人主页:【😊个人主页】 系列专栏:【❤️其他领域】 2006年搜索引擎大会上,“云服务器”的概念孕育而生,时至今日云服务器与传统服务器的优劣对比仍在各大论坛进行着激烈论争。但我们不可否认的是云服务器早已正式走入公众视野,渗透到了我们工作和生活的各个

    2024年02月05日
    浏览(61)
  • 运维 | 查看 Linux 服务器 IP 地址

    大多数在操作 Linux 系统时,我们经常需要知道服务器的 IP 比便于后续的一系列操作,这时候有快速查看主机 IP 的命令行操作,能够有效的帮助我们 本章节主要记录一些常用查看服务器 IP 的命令,希望对大家有所帮助。 查看 Linux 服务器的 IP 地址的命令大体上有以下几种。

    2024年04月27日
    浏览(76)
  • 运维:mysql常用的服务器状态命令

    目录 1、查询当前服务器运行的进程 2、查询最大链接数 3、查询当前链接数 4、展示当前正在执行的sql语句 5、查询当前MySQL当中记录的慢查询条数 6、展示Mysql服务器从启动到现在持续运行的时间 7、查询数据库存储占用情况 8、查询服务器启动以来的执行查询的总次数 9、查询

    2024年02月08日
    浏览(49)
  • 运维记录 会产生无用日志的服务器

    创建linux定时任务 crontab -e cron表达式 文件名.sh 查看linux定时任务 crontab -l 确认创建完成后重启cron service crond restart

    2024年04月11日
    浏览(44)
  • 腾讯云服务器CVM和轻量应用服务器区别全方位对比

     腾讯云轻量服务器和云服务器有什么区别?轻量应用服务器和云服务器CVM哪个更好?抛开价格及使用门槛,云服务器CVM更好;从性价比及易用性角度考虑,轻量应用服务器更好,轻量服务器性价比高,这个配置这个价格是云服务器CVM所不及的。下面来详细说下 腾讯云轻量应

    2024年02月07日
    浏览(54)
  • 建站为什么需要服务器?(Web服务器与计算机对比)

    ​ 在部署网站时,底层基础设施在确保最佳性能、可靠性和可扩展性方面发挥着至关重要的作用。虽然大多数人都熟悉个人计算机 (PC) 作为日常工作和个人任务的设备,但 PC 和 Web 服务器之间存在显著差异。在这篇文章中,我们将讨论这些差异是什么,并解释为什么服务器对

    2024年01月20日
    浏览(69)
  • 【运维】Linux 跨服务器复制文件文件夹

    如果是云服务 建议用内网ip scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来

    2024年02月08日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包