游戏服务器需要什么样的引擎?

本文探讨了游戏服务器引擎从经典时代的演变,如mudos,到现代面对的复杂性和稳定性问题。作者提出了‘one object do something’的设计模式,旨在简化开发、提高稳定性和扩展性。文章还讨论了数据安全性和分布式系统中的数据一致性问题,以及应对服务器崩溃的策略。通过限制社交频率和人数,实现了服务器承载能力的线性扩展。最后,文章介绍了理想的服务器引擎目标和数据安全的可重入机制。
摘要由CSDN通过智能技术生成

弹指一挥间从事游戏相关的开发工作已经十多年。在开发了六年多几经波折差点放弃的

starrydb.com项目也迎来了1.0版本的上线。虽然演示版本以及集群功能早在17年1月份就

开发完毕但修改和完善计划目前仍然排的满满当当,导致1.0上线一推再推至今仍然不甚满

意。

         说起最初开发这个项目的初衷就像那盏迷雾中的绿光让人兴奋不已,在此也希望因为我

的执著而被伤害的人幸福。以下引至《thegreat gatsby》

     “Gatsby believed in the green light, the orgastic future that year byyear

recedes before us.It eluded us then, but that's no matter--tomorrow we will run

faster, stretch outour arms farther.... And one fine morning---- So we beat on,

boats against thecurrent, borne back ceaselessly into the past.

 

    或许人们还没有意识到,游戏服务器将是继计算机操作系统之后,现代软件工程中最复

杂的计算系统。经过wow和无数游戏公司的崛起让这个系统得到了飞速发展。最初的游戏服

务器引擎可以追述到1992年的mudos。这是一个简单的文字对话系统,但可以多人在线。

因为交互简单对性能要求不高,普通的服务器就可以支持上千人同时在线。在接下来的很多

年时间内,mudos代表着游戏服务器引擎的经典原形。我们可以把这类服务器引擎统称为经

典游戏服务器引擎。

    经典的游戏服务器引擎的核心构建就逻辑服务器,所谓逻辑服务器就是对用户的输入数

据进行处理,产生输出数据返回给用户。见图1


因为游戏逻辑服务器的崩溃问题和内存使用量不稳定,出现服务器不稳定进而导致数据

丢失。服务器急需一个稳定的硬盘存储服务。Mysql出现在了逻辑服务器后面替代逻辑服务

器的硬盘。见下图2


因为mysql数据库写入和读取得速度不快,数据操作需要等待时间的过长,在硬盘数据

库之前又加入了内存数据库作为快速读取的缓存服务器。

也许你看出了其中的问题,为了解决逻辑服务器不稳定丢失数据的问题,引入了缓存服

务器和数据存储服务器,但增加了系统的复杂性,导致开发难度增加进而导致逻辑服务器更

加复杂更加容易崩溃。人们花了很长的时间和想了很多的办法提高逻辑服务器的稳定性。见

下图3



因为服务器崩溃的主要原因是内存指针的泄漏,为了解决崩溃的问题产生了各种脚本语

言替代指针型语言。可服务器功能越来越多,越来越复杂,崩溃&#

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值