MMO只是一个泛指,现在很多游戏表现形式不是MMO实际上都是MMO。除了梦幻大话剑侠情缘这种的一看就是MMO的之外,像COK这种的实际上也都是MMO。

弱交互游戏同样是一个泛指,在几年前的时候特指异步交互的卡牌游戏,现在可以用来指一切交互有限的手游,比如所有围绕推图做的arpg/动作卡牌,以及社交游戏。

那这两大类游戏的游戏服务端在哪些方面区别呢?

简单地说就是逻辑的复杂度。

我们对游戏服务端的最简单的认知就是将其看作一个状态机。

就状态机的复杂度(状态的数量级)而言,MMO游戏(特别是端游MMO)的场景服务器的逻辑复杂度是弱交互游戏(包括社交页游和一切服务端不维护场景状态的手游)无法比拟的。

列举几个具体的:

  • 移动同步

移动同步相关的逻辑是许多MMO端游程序员的优越感之一,君不见各种媒体上发声的业内大佬们特别喜欢说MMO手游具有技术门槛,没技术的团队做不了。其实他们如果真的不是指场景制作流程上的难度,那就是在说移动同步小团队做不了。

实际上,移动同步除了各种自以为是的猥琐得不能再猥琐的(猥琐部分的代码量相当大)特殊的优化表现的技巧之外,再无技术可言。

  • 场景状态同步

MMO游戏与其他游戏服务端的一个显著不同就是大部分场景状态是在服务端维护的,因此会有一个时间驱动的主逻辑在这里。场景状态包括各种怪的逻辑,玩家的定时器等等。而且由于MMO的一个场景中会有复数个玩家,场景的状态需要同步给玩家,但是不能每帧都全同步。于是就有了MMO特定的一些优化技巧,比如AOI。

这部分要说有技术含量吧,确实也有。但是原理简单,需要的人天也少。因此大多数MMO程序员是接触不到的。

  • 切进程

MMO游戏最典型的一种需求是玩家从一个地方移动到另一个地方,这两个地方假设在服务端属于不同的场景,那就需要服务端处理一下将玩家的上下文从一个场景迁移到另一个场景的逻辑。这部分逻辑算是比较复杂的了,也会涉及一些包序列、包过期的问题,虽然大概想想不是特别难,但是具体实现上坑比较多。也是MMO的一个特点了。


然后我们再回头来看弱交互游戏,处理循环基本可以简化为:一个request上来,经过一定节点路由,路由到一个逻辑节点,逻辑节点从一个地方(可以是进程内,可以是从缓存)取一下玩家数据,处理一下,存回玩家数据。

这就是两者大概的区别了。

但是,相信各位跟小说君一样,在很多jd中看到指明需要大型端游开发经验,这样一想,做弱交互游戏的服务端程序想转型去做MMO游戏的服务端程序岂不是非常艰难?

实际上,写出这种jd是一方面,还是要具体看招聘方对候选者的需求是什么。

MMO游戏的战斗逻辑是非常复杂的。比如技能逻辑、怪逻辑、结算逻辑,策划面向程序的需求迭代最频繁的部分基本都是围绕这些点展开的,而这些点说实话还是比较业务逻辑狗的,通常有经验有追求的干一段时间这个就不想维护了,要么想走人找更好的岗位要么想培养接盘侠,所以社招的时候肯定需求有过相关经验的程序。但是这一块经验往往需要做过MMO游戏,所以如果想招做战斗模块的服务端这样写并没太大问题。

但是对于另一种招聘需求,就是做服务端的性能优化相关的,或者说维护一些比较独立的全局系统,其实跟做什么游戏类型是没太大关系的。要求无非就是操作系统网络什么的老几样。当然最重要的是定位问题、解决问题的能力。

而且MMO游戏的服务端由于重点关注的是逻辑复杂度,其实分布式这个方向上发展的不如弱交互游戏,后者的服务端转过来理论上讲应该不会特别适应。当然两边都是写逻辑的话,转来转去没什么本质区别。


个人订阅号:gamedev101「说给开发游戏的你」,聊聊服务端,聊聊游戏开发。

MMO与弱交互游戏的服务端技术区别相关推荐

  1. 谈一款MOBA类游戏的服务端架构设计

    一.前言 <码神联盟>是一款为技术人做的开源情怀游戏,每一种编程语言都是一位英雄.客户端和服务端均使用C#开发,客户端使用Unity3D引擎,数据库使用MySQL.这个MOBA类游戏是笔者 ...

  2. mysql修改游戏元宝_页游源码【武斗乾坤】自带安装启动教程+元宝游戏数据修改教程+自由一键游戏启动服务端...

    页游源码[武斗乾坤]自带安装启动教程+元宝游戏数据修改教程+自由一键游戏启动服务端_站长下载 资源说明: 1.本资源为一键启动服务端,只需要安装好所需组件一键启动即可运行. 2.资源默认为单机架设,无 ...

  3. 网页游戏mysql修改_大天使之剑奇迹网页游戏 一键服务端+架设教程+修改方法

    大天使之剑奇迹网页游戏 一键服务端+架设教程+修改方法 实施教程: 1.将user的ver和phpStudy文件夹等文件解压到磁盘上给你的目录中.示例:d 3360 \\ muser版本d: \\研究 ...

  4. 网维大师那个版本带虚拟盘服务器,网维大师游戏虚拟盘服务端

    请先安装好游戏虚拟盘,并启动游戏虚拟盘服务后,再添加游戏虚拟盘,否则无法完成游戏虚拟盘的添加配置操作. 网维大师游戏虚拟盘5.6.0.0及更高的版本已将游戏虚拟盘服务端与同步节点整合,因此只要您配置好 ...

  5. 【网单服务端】团队索尼克赛车PC端赛车类游戏单机服务端

    [网单服务端]团队索尼克赛车PC端赛车类游戏单机服务端,应该有人喜欢这类游戏 下载链接:https://pan.baidu.com/s/1ds_xFq1Rd1_xC4515BRGXw  提取码:soh ...

  6. 客户端、前端、后端、服务端的区别分别是什么?

    客户端.前端.后端.服务端的区别分别是什么? 客户端是指开发面向客户的程序,分很多平台,比如Windows 安卓 苹果,还有游戏客户端也算一类. 前端指的是通过浏览器和用户交互的那部分. 后端是在服务 ...

  7. 移动云计算服务端技术-课程总结1

    移动云计算服务端技术-课程总结 一.基础知识点 1.1云计算与移动云计算 1)定义:云计算 l  WIKI百科:云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算 ...

  8. FPS Sample服务端技术点

    FPS Sample服务端技术点 FPS Sample是一个由Unity官方出品的FPS类型的教程游戏,整个教程游戏的制作水准无论是从画质还是网络同步效果都是比较高的,并且完全开源.游戏中有3个大的技 ...

  9. 夏俊:深入网站服务端技术(一)——网站并发的问题

    编者按] 本文来自拥有十年IT从业经验.擅长网站架构设计.Web前端技术以及Java企业级开发的夏俊,此文也是<关于大型网站技术演进的思考>系列文章的最新出炉内容,首发于CSDN,各位技术 ...

  10. EJB3.0学习笔记---理解远程调用服务端和本地调用服务端的区别

    项目目的:理解远程调用服务端和本地调用服务端的区别 1.异常:       javax.ejb.EJBException: Local and Remote Interfaces cannot hav ...

最新文章

  1. iOS常用CGRect的交错,边缘,中心的检测
  2. 玩游戏4g计算机的内存不足,windows8.1玩游戏经常提示内存不足
  3. matlab::mex::ArgumentList outputs的创建
  4. 1_1 FactoryMode 工厂模式
  5. SAP UI5应用部署在tomcat上运行的部署路径问题,基于Eclipse
  6. csdn-markdown 编辑器
  7. html响应式布局_媒体查询
  8. 阿里 异构数据 mysql_异构数据库迁移
  9. 深入探索PowerPivot客户端和服务器端架构
  10. koa2异常处理_koa2 中的错误处理以及中间件设计原理
  11. springboot tomcat配置_Spring Boot项目如何同时支持HTTP和HTTPS协议
  12. 【Java Saves!】Session 2:我的意图
  13. html5 shiv
  14. 如何开始使用接口自动化测试脚本
  15. Elasticsearch密码设置及其后续问题解决
  16. 乾隆的“十常四勿”之道
  17. 水星MW300R无线路由器的设置方法
  18. ThreeJS - 直接设置Fbx模型的某个关节的位移和旋转值
  19. 【MidJourney】初体验——账号注册与基本操作
  20. 安卓APP开发发展趋势与前景

热门文章

  1. 《水浒传》108将的绰号(ZZ)
  2. 欧美游戏业者都挣多少钱
  3. MySQL约束和表的复杂查询操作
  4. 交互式电子白板的八种常用功能
  5. 基于Websocket协议的即时通讯系统设计与实现
  6. linux drwxr-xr-x 是什么意思
  7. python 将中文变为拼音_python如何使用pypinyin将中文转换为拼音 详细介绍
  8. Chromium网页CPU光栅化原理分析
  9. 电大管理英语4计算机期末考试,2021国家开放大学电大本科《管理英语4》期末试题及答案(试卷号:1389)...
  10. 达梦数据库在ZYJ环境上通过RPM打包注册服务的步骤