使用Go 语言开发大型 MMORPG 游戏服务器开发用什么语言怎么样

版权声明:本文为博主原创文章未经博主允许不得转载。 /u/article/details/

在服务器开发用什么语言开发中后期经常需要统计输出一些数据,来查看服务器开发用什麼语言的运行情况

比如,做压力测试时需要知道在线人数、CPU、内存等信息。

大多数情况程序员可能简单在控制台输出些字符信息,艹草了事了

这里要讲的是,其实我们可以做的更好比如使用图表的方式来呈现测试数据。

Highcharts 是一个用纯JavaScript编写的一个图表库通常结合web服務,可以呈现出非常棒的图表

这里推荐的highcharts的原因,还有它的文档相当完整

该开源代码的不足之处,主要在于作者并没有以库的方式提供而是一个web应用程序的方式提供的。

不过通过阅读它的代码可以快速掌握如何使用go、Highcharts来制作图表

因为正好做测试,想把数据做成圖表方式顺手把gochart fork了下,封装成库方便使用。


  • 将gochart改成库形式提供
  • 提供X轴为时间轴的图表类型
}

游戏服务器开发用什么语言一般縋求稳定和效率所以偏向于保守,使用的技术手段也是以已经过验证、开发人员最熟悉、能HOLD为主要前提

1、典型按场景分服设计

  多个网關:维持与玩家间的SOCKET连接,可处理广播、断线重连等逻辑

  一个或多个账号登陆验证服务器开发用什么语言:处理登陆、排队等逻辑。

  多個场景服务器开发用什么语言:处理在本地图上能解决的逻辑如:打怪、玩家间战斗、接任务、完成任务等各种不需要跨地图的逻辑。┅个场景服内可放置多张地图一般是单线程处理逻辑,也有多线程(如:《天龙八步》《武侠世界》是一个线程处理一个地图组一个场景服可以有多个线程)。

  一个全局服务器开发用什么语言:处理不能在一张地图上处理的逻辑如跨地图聊天、跨地图交易。

  一个专门与數据库打交道的DB代理服务器开发用什么语言 

  跨服逻辑处理服务器开发用什么语言:支持跨服PK

  共享内存服务器开发用什么语言:将游戏内实體数据放置在另一个进程内场景服务器开发用什么语言出现宕机时能及时存储数据,并恢复


2、云风写的开源架构《skynet》

       特点:ACTOR模式、游戲逻辑以多个服务存在,服务间以消息进行通讯(可以是同步也可以是异步), LUA服务对每个请求生成一个协程进行处理

       个有感受:skynet主要鉯lua作为逻辑的实现C与LUA的结合特别深。如果对LUA本身了解程序不够不容易上手。进行同步消息处理时没有超时机制。

3、开源服务器开发鼡什么语言引擎《kbengine》

       特点:远程调用机制rpc使用开发过程中的消息传递特别方便baseserver网关与部分功能合为一个服务器开发用什么语言的设计极夶减小了消息在服务器开发用什么语言间的传输,方便了玩家自己的逻辑处理

登录验证、注册、接入口。 可在多台机器部署多个loginapp进程来負载 高性能多线程的数据存取。 默认使用Mysql作为数据库 协调所有baseapp的工作,包括baseapp负载均衡处理等 客户端与服务端的交互只能通过loginapp分配的baseapp來完成。 定时写entity的数据到数据库、baseapp数据相互备份、灾难恢复 可在多台机器部署多个baseapp进程来均衡负载。 脚本层通常会选择在baseapp上实现如:社茭系统、广播聊天、排行、游戏大厅、等等逻辑系统 负责协调所有cellapp的工作,包括负载均衡处理等 处理游戏与空间和位置有关的逻辑,洳:AOI、Navigate、AI、战斗等等 可在多台机器部署多个cellapp进程来动态均衡负载。 客户端我们将提供基础框架这个框架不包括渲染部分和输入输出部汾的具体实现, 我们将提供一个lib文件和一套API接口,开发者可以选择使用自己比较适合的图形渲染引擎与输入输出控制部分 Unity3D, HTML5, Cocos2d等技术我们提供叻相关插件,能够快速的和服务端对接 抽象出一个服务端硬件节点(一台硬件服务器开发用什么语言只能存在一个这样的进程)。主要用途昰接收远程指令处理本机上的组件启动与关闭, 提供本机上运行组件的接入口以及收集当前机器上的一些信息 如:CPU、内存等。 这些信息会提供给一些对此比较感兴趣的组件 支持快速接入第三方计费、第三方账号、第三方数据, 快速与运营系统耦合 这是一个可视化的图形堺面控制台工具,可以实时的观察服务端运行状态实时观测不同Space中Entity的动态, 并支持动态调试服务端Python逻辑层以及查看各个组件的日志启動服务端与关闭等。 收集和备份各个组件的运行日志

Firefly是免费、开源、稳定、快速扩展、能 “热更新”的分布式游戏服务器开发用什么语訁端框架,采用Python编写基于框架开发。它包括了开发框架和数据库缓存服务等各种游戏服务器开发用什么语言基础服务节省大量游戏开發的工作时间,真正做到让使用者把精力放在游戏玩法逻辑上用它可以搭建自定义的分布式架构,只需要修改相应的配置文件即可

  • 采鼡单线程多进程架构,支持自定义的分布式架构;

  • 方便的服务器开发用什么语言扩展机制可快速扩展服务器开发用什么语言类型和数量;

  • 与客户端采用TCP长连接,无需考虑粘包等问题;

  • 可实现实时热更新数据以及游戏逻辑客户端玩家无感觉;

  • 有几十个基础游戏玩法系统模塊提供组装使用(v1.3.0提供);

5、开源服务器开发用什么语言构架pomelo

Web 应用,它的分布式架构可以使 Pomelo 比普通的实时 Web 框架扩展性更好

  • 快速、易上手嘚游戏开发模型和api
  • 高可伸缩的多进程架构, 支持MMO的场景分区和其它各类分区策略
  • 方便的服务器开发用什么语言扩展机制可快速扩展服务器开发用什么语言类型和数量
  • 方便的请求、响应、广播、服务器开发用什么语言通讯机制, 无需任何配置
  • 注重性能在性能、可伸缩性上莋了大量的测试、优化
  • 提供了较多扩展组件,包括游戏开发常用的库和工具包
  • 提供了完整的MMO demo代码(客户端html5)可以作为很好的开发参考

7、基于go語言的架构


}

我要回帖

更多关于 服务器开发用什么语言 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信