主流游戏引擎有哪些?主流的游戏是用什么开发

主流游戏引擎有哪些?主流的游戏是用什么开发

游戏本身会运行在不同的平台上,平台也会影响所使用的语言。 平台主要有两大类,PC(即常用的电脑)和手机。 两者都可以使用网页来运行游戏,所以我们把运行在网页浏览器上的称为WEB客户端。 对于以上三种平台类型。 下面我们就来说说这些平台上常见的游戏都是用什么来开发的。

电脑版。 大多数游戏都是用 C/C++ 开发的。 这主要是因为我们使用的window、mac等底层操作系统都是c的。 使用C/C++可以极大地利用性能。 例如下面的NBA2K18主要是使用C/C++开发的。

移动终端。 手机上的游戏称为手机游戏。 手机上的操作系统主要是ios和android,即苹果系统和安卓系统。 过去,Android 上的大多数游戏都是用 Java 开发的。 这是因为android系统本身主要是用Java开发的。 iOS上的大部分游戏都是使用object c开发的,这也是系统本身的原因。 最近,swift语言已经在ios上发布了。 但随着技术的发展,程序员发现将一款游戏部署到各个平台的成本太高了。 因此,目前的主流技术是采用跨平台的游戏引擎开发,然后发布到不同的平台。 因此,语言的选择从平台依赖变成了游戏引擎依赖。 那我们就来看看主流的游戏引擎有哪些? 主流游戏引擎包括:unity、cocos、unreal等游戏开发主流语言,Unity主要使用C#语言。 Cocos使用C++、lua、js等开发语言。 unreal主要基于C++。 从上面你会发现语言有很多,使用的也很多。 在商业项目和当前主流技术中,大多数高级游戏都是使用C++结合Lua进行开发。 C++处理高性能部分,Lua处理逻辑部分,以加快开发速度。 即使使用unity引擎游戏开发主流语言,大多数厂商也会选择C#结合Lua进行开发。 C#负责核心部分,Lua处理逻辑部分。

我们再来说一下WEB端。 WEB端以前都是基于flash的,4399的很多小游戏都是flash常见的。 WEB端主要是html和js的解释器。 目前国内WEB开发主要有三个引擎:Bailu、laya、cocos-js。 他们的主要开发语言是TypeScript音乐音效,主要是因为TypeScript可以提供非常快的开发速度(就像Lua一样),而且还具有提前暴露问题的能力。

其实上面部分主要讲的是游戏客户端。 在游戏领域,其实分为服务器端和客户端。 客户端是指外部玩家可以看到的屏幕表现。 服务器运行在厂商自有的服务器上,支持玩家之间的可见性、同步、聊天等各种逻辑。 服务器端语言,目前有C++结合lua以及C#、java、php等,这些都是常用的,主流大型游戏仍然以C++为主。 可用于各种中小型游戏。 PHP常用于网络要求不高的游戏中进行简单的数据处理。

以上主要是一些理论。 下面我们练习几个问题,稍后再总结。

1.王者荣耀是用什么开发的? 王者荣耀采用的是Unity引擎,这种通用级别的游戏非常注重性能。 所以它使用C++和C#相结合。 核心使用C++,逻辑使用C#。 为什么不像我们之前提到的那样将 C# 与 lua 结合起来呢? 因为腾讯有这个技术实力,所以他们整体采用的语言开发更有性能优势。

2、微信里的小游戏是用来开发什么的? 小游戏本质上是一个WEB执行环境。 所以上面的游戏很多都是用typescript或者js开发的。 Typescript之所以还没有流行起来,是因为它的社区不够活跃。

3. 如何猜测游戏是用什么语言开发的? 首先在网上搜索它的开发引擎。 如果找到了3D植物,检查它是否有很高的性能要求来推导它的语言。 如果你在搜索中找不到它,那么它很可能是一个自行开发的引擎。 大部分自研引擎都是用C++实现的。

最后总结一下。 目前国内大部分游戏主要采用C++/C#结合Lua实现。 随着小游戏的兴起,也催生了一些js/typescript开发的游戏。 为什么C++结合Lua是主要实现方式? 因为现在网络游戏是最赚钱的。 一款游戏的月收入超过千万甚至亿,就催生了这个行业。 这个行业注重两点:性能稳定,所以是C++。 它可以进行各种修改,具有各种支出活动,所以它就是Lua。 C++的性能非常高,腾讯内部大部分代码其实都是C++的。 Lua 是一种脚本语言。 招聘门槛很低,简单易学。 所以,很多语言的选择其实都是受到大环境的影响。 另一方面,服务端也可以使用C++结合Lua进行开发,形成两端(服务端和客户端)使用同一种语言的高速开发模式。

我猜提问者想选择一门语言来学习。 首先这个问题主要看你未来的发展方向。 你想做大项目还是小项目? 如果要做大型项目,目前无疑推荐C++和lua。 如果是小游戏之类的推荐使用typescript。 我大胆预测未来的一个趋势可能是 C++ 与 Typescript 的结合。 我认识的一些技术专家已经开始实践这一点。 推荐的Lua语言开发书籍如下:

推荐的C++书籍如下:

目前没有适合typescript阅读的书籍,主要是typescript的官方文档。

小游戏开发相关书籍推荐如下:

大型游戏其实需要大量的学习和知识积累。 远不是仅仅几本书就能完全理解的。 这里推荐一本关于unity3引擎的书,以增加大家的入门兴趣:

特别提醒:基于目前互联网的发展速度,阅读已经不再是获取知识最快的方式。 所以建议优先学习互联网内容,找到一个引擎来玩。 学习编程就是玩玩具最快乐的方式。 然后尝试加入一线研发团队积累经验,这将帮助你最快成长。 纸质书籍落后实际技术3-5年以上。

作者背景:前迅雷员工/前游戏公司双端主程序

文章来源:https://www.yzktw.com.cn/post/60337.html