什么是moba游戏?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是moba游戏?相关的知识,希望对你有一定的参考价值。

参考技术A Multiplayer Online Battle Arena Games 的简写,意为多人联机在线竞技游戏。一般都会以MOBA GAMES一起书写。1998年,《星际争霸》横空出世,而当时还绑定了地图编辑器,利用这个功能强大的地图编辑器,某个玩家制作出一张名为Aeon Of Strife的RPG地图(dota的前身),成为所有MOBA游戏的最初雏形。
尽管存在争议,但目前国内外都将MOBA类游戏与DOTA类游戏划等号

,大多数新闻报道包括电竞报道,都将DOTA类游戏改称为MOBA游戏,因为DOTA是具体的产品名称,且是注册商标。
国内较为流行的MOBA类游戏有:起凡游戏的群雄逐鹿、金戈铁马、三国争霸2;杭州电魂的梦三国;网易的英雄三国;圣光天翼的天翼决,中青宝的300英雄等。
国际较为流行的MOBA类游戏有:Dota(基于暴雪的魔兽争霸3,国内有起凡、浩方等多家对战平台运营),DOTA2(由Valve开发,国内代理为完美世界,中文名刀塔2),全球最火的网络游戏LoL(由Riot开发,国内代理为腾讯,中文名英雄联盟)
此外,国外游戏研发商仍在陆续公开一些MOBA类新作,其中部分已在国内有宣传(若干款被腾讯代理,如超神英雄),而MOBA缔造者暴雪的风暴英雄至今尚未公布上市时间

王者荣耀是怎样炼成的《王者荣耀》用什么开发,游戏入门,unity3D介绍

转载请注明出处:http://www.cnblogs.com/yuxiuyan/p/7533392.html

在国内,如果你没有听说过《王者荣耀》,那你一定是古董级的人物了。

 

《王者荣耀》(以下简称“农药”),专注于移动端(Android、IOS)的MOBA游戏。笔者看到这么火爆,就萌生了了解一下这类游戏的开发历程,本专栏的目标是做一个类MOBA的Demo。

俗话说,不去瞎琢磨的程序员,不是好司机。

好的,直接进入正题。

一.农药用什么语言和软件开发

小伙伴看到农药运行在Android和IOS平台上,估计第一个想到的就是 java / kotlin 和 Object-C / swift 了。其实不然,原生游戏的开发是非常耗时耗力的,并且在一些细节问题上不容易处理。现在的大部分游戏都是利用“游戏引擎”来处理的。比较著名的游戏引擎如unity3D,在处理农药这种3D游戏时有着非常便利的管理和编码功能。unity在5.x版本后支持C#和JavaScript两种语言实现游戏中的脚本(在4.x还支持Boo)。据不完全统计,unity程序员大约80%都是用C#,所以这次笔者也是用C#(随大流,不挨揍,haha)。而且如果你有java或者C基础,那么C#使用起来还是相当舒服不坑爹的。在微软的大树下正在茁壮成长。

准确验证:

下载王者荣耀的apk文件,解压,发现了如下文件:

 

可以断定,有unity的功劳。

有的小伙伴可能会有疑问,为啥不用JavaScript呢?现在JavaScript这么火爆?

其实unity使用的JavaScript和我们做web开发使用的JavaScript非常不同,或者我们干脆分别称呼为unityScript和JavaScript也不为过。

这里在segmentfault的看到的一段:

  1. unity中的js与其说是js,不如说是Unity Script。unity中的js是会经过编译的,其性能和本地速度差不多。在官方教材《unity 4.x从入门到精通》中unity称C#,Boo,JS的性能是差不多的。
  2. unity中的js脚本是可以和C#脚本等值替换的,所以自然也有一大堆数据类型,对象继承等传统语言及OOP的概念。不过var speed = 5这么写也是可以的,因为编译器会自动理解成var speed:int = 5。但是其他数据类型比如GameObjectTransform就不行了,必须在声明变量时指定数据类型。
  3. 自然,很多标准js中的特性在unity中也不支持,比如高阶函数,闭包等。
  4. Unity3D中的Math对象叫做Mathf。
  5. Unity中的js可以直接调用Mono,C#封装的dll等。
  6. Unity中的调试语句用Debug.Log。
  7. 每行后面必须有分号。

总之,Unity中的js是会在运行前被编译成本地代码的。和标准js仅是写法比较相似,内在是完全不同的。比如js是非阻塞的,而unity中的js是阻塞的;js是动态语言,而unity中的js则是不折不扣的静态语言。

总之,使用unity + C#来进行开发。

二.游戏入门

关于游戏,有以下几个特点:

  1. 把游戏想象成一个动画片,它是一帧一帧播放的
  2. 它的逻辑是可以变化
  3. 你的程序控制它的画面

综合来看,游戏包括两大要素:逻辑、显示

(一)什么是逻辑

简单来说,就是游戏是怎么控制的,玩法是什么样的。

  1. 游戏逻辑:游戏的玩法,用户的输入等。
  2. AI:NPC,自动寻路,追逐敌人等。
  3. 物理运算:碰撞,速度,加速度,重力等物理计算。

(二)什么是显示

顾名思义,显示就是把游戏的画面、内容展现给玩家。

  1. 动画系统:控制游戏动画的播放。
  2. 底层渲染:告诉硬件该怎么样把图像显示(渲染)出来。

用一幅图归纳:

三.游戏团队的角色

粗略可以分为三种角色:策划、美工、程序员。

  1. 策划:负责设计游戏的玩法。
  2. 美工:负责设计游戏的资源素材。
  3. 程序员:负责游戏的编码。

四.unity介绍

上面说过,原生开发游戏耗时耗力,想象一下,整个游戏从底层的渲染,一直到上层的动画声音,简直要了命。而且有一点,原生开发不利于组件的重用。

有些东西,在A游戏上可以用,在B游戏上也可以使用。那么我们为什么不把这些可以重用的部分提取出来,到时候再开发其他游戏的时候直接调用就可以了啊。

基于这么一种“偷懒”的思想,Duang~,游戏引擎就诞生了。

游戏引擎减少了重复开发,降低了技术门槛,对于那些游戏开发者简直是“神器”。现在优秀的游戏引擎有很多非常有用的模块。

ok,今天就先到这里。

 

以上是关于什么是moba游戏?的主要内容,如果未能解决你的问题,请参考以下文章

为什么MOBA“吃鸡”游戏不推荐用tcp协议——实测数据

MOBA游戏的术语都有哪些?

谈一款MOBA类游戏《码神联盟》的服务端架构设计与实现

MOBA 游戏技能系统设计 2.0

谈一款MOBA类游戏《码神联盟》的服务端架构设计与实现

springboot基于vue的MOBA类游戏攻略分享平台游戏资讯分享平台,附源码+数据库+lw文档+PPT,包运行