一般的大型游戏开发不是单一用某一种软件语言的问题。一个大型游戏的开发需要非常大的团队用各种各样的语言和工具来完成。
总结一下主要有C/C++,汇编语言,着色器语言,脚本语言,高效的开发语言C#或Java。
首先一般的游戏开发架构(Windows平台)从底到顶一般是Direct X™——游戏引擎——游戏。
大型游戏开发的大部分工作其实都是在编写游戏脚本,脚本是大型游戏得以如此高速开发和发布的主要原因。脚本化的开发让游戏开发摆脱了硬编码的种种弊端,让游戏内容可以轻易的修改和调试。比如比较流行的语言。,然后编写脚本将其组织成一个游戏,不需要什么底层的编程语言。
Windows平台比较流行的方法是使用最新版本的Visual Studio,显卡厂商如NVIDIA也会为VS开发一些插件来简化显卡编程和调试。
扩展资料:
汇编语言
为了克服机器语言难读、难编、难记和易出错的缺点,人们就用与代码指令实际含义相近的英文缩写词、字母和数字等符号来取代指令代码(如用ADD表示运算符号“+”的机器代码),于是就产生了汇编语言。所以说,汇编语言是一种用助记符表示的仍然面向机器的计算机语言。汇编语言亦称符号语言。
汇编语言由于是采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码。而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。
汇编语言中由于使用了助记符号,用汇编语言编制的程序送入计算机,计算机不能象用机器语言编写的程序一样直接识别和执行,必须通过预先放入计算机的 “汇编程序“的加工和翻译,才能变成能够被计算机识别和处理的二进制代码程序。
用汇编语言等非机器语言书写好的符号程序称源程序,运行时汇编程序要将源程序翻译成目标程序。目标程序是机器语言程序,它一经被安置在内存的预定位置上,就能被计算机的CPU处理和执行。
汇编语言像机器指令一样,是硬件 *** 作的控制信息,因而仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性也差。汇编语言是低级语言。但是,汇编语言用来编制系统软件和过程控制软件,其目标程序占用内存空间少,运行速度快,有着高级语言不可替代的用途。
高级语言
不论是机器语言还是汇编语言都是面向硬件的具体 *** 作的,语言对机器的过分依赖,要求使用者必须对硬件结构及其工作原理都十分熟悉,这对非计算机专业人员是难以做到的,对于计算机的推广应用是不利的。计算机事业的发展,促使人们去寻求一些与人类自然语言相接近且能为计算机所接受的语意确定、规则明确、自然直观和通用易学的计算机语言。
这种与自然语言相近并为计算机所接受和执行的计算机语言称高级语言。高级语言是面向用户的语言。无论何种机型的计算机,只要配备上相应的高级语言的编译或解释程序,则用该高级语言编写的程序就可以通用。
如今被广泛使用的高级语言有BASIC、PASCAL、C、COBOL、FORTRAN、LOGO以及VC、VB等。这些语言都是属于系统软件。
计算机并不能直接地接受和执行用高级语言编写的源程序,源程序在输入计算机时,通过“翻译程序”翻译成机器语言形式的目标程序,计算机才能识别和执行。这种“翻译”通常有两种方式,即编译方式和解释方式。
编译方式是:事先编好一个称为编译程序的机器语言程序,作为系统软件存放在计算机内,当用户由高级语言编写的源程序输入计算机后,编译程序便把源程序整个地翻译成用机器语言表示的与之等价的目标程序,然后计算机再执行该目标程序,以完成源程序要处理的运算并取得结果。解释方式是:源程序进入计算机时,解释程序边扫描边解释作逐句输入逐句翻译,计算机一句句执行,并不产生目标程序。
PASCAL、 FORTRAN、COBOL等高级语言执行编译方式;BASIC语言则以执行解释方式为主;而PASCAL、C语言是能书写编译程序的高级程序设计语言。每一种高级(程序设计)语言,都有自己人为规定的专用符号、英文单词、语法规则和语句结构(书写格式)。高级语言与自然语言(英语)更接近,而与硬件功能相分离(彻底脱离了具体的指令系统),便于广大用户掌握和使用。高级语言的通用性强,兼容性好,便于移植
我觉得应该是3D是大势所趋吧,加上现在火热的VR,大部都是用U3D开发的,虽然cocos也有3D了,但还是太弱,和U3D没法比,所以大家都选U3D
2D也有它的优势,有它的市场。很多人不想玩3D游戏,玩着头晕,费电,安装包大。不过总的趋势还是朝着3D去的。
unity3D虽然也有2D功能,但毕竟不是专业的,没有cocos2dx好,3D这块没话说,就用它了
cocos2dx一般用来做2D游戏咯,开源的自己想怎么搞就怎么搞。虽然它也正在发展3D功能这块,但目前我觉得还不成熟
总的来说做3D游戏就用unity3D吧,做2D还是建议用cocos2dx吧
最后,不管2D还是3D游戏好不好玩主要看创意
各有优势。u3d这两年确实是比较火,不过cocos也不赖,毕竟老牌实力,特别是他们也增加了一些新的支持3D插件。 学u3d只要会c#就可以了,不过cocos需要精通C++。如果你想简单上手的话,可以学U3D,如果你想做C++大牛,那就学cocos (其实游戏引擎怎么换没关系,只要你精通C、C++之后,你再想自学其他的游戏引擎都很容易。)
TS兼容JS,是在JS的基础上做了扩展,大体上和ES保持一致,可以笼统的认为TS是JS未来的大部分样子,当然JS和TS都在发展,可能会出现一些细小的不同的地方,但是TS的目标是和JS保持一致
dts只是一个声明文件,相当于C++的头文件,有了这个文件,TS就可以和已有的JS库进行访问了,因此只需要提供dts文件,就可以用TS来开发cocos游戏了
另外TS对于C++,JAVA,C#,AS这类程序员非常亲切,很容易上手 !
·Web应用开发
Python常被用于Web开发,随着Python的Web开发框架逐渐成熟,如Django、flask等等,开发者们可以更轻松地开发和管理复杂的Web程序。通过mod_wsgi模块,Apache可以运行Python编写的Web程序,举个最直观的例子,全球最大的搜索引擎
Google,在其网络搜索系统中就广泛使用 Python 语言。另外,我们经常访问的集**、读书、音乐于一体的豆瓣网(如图 1 所示),也是使用 Python
实现的。不仅如此,全球最大的视频网站 Youtube 以及 Dropbox(一款网络文件同步工具)也都是用 Python 开发的。
·自动化运维
Python 是标准的系统组件,可以在终端下直接运行 Python。有一些 Linux 发行版的安装器使用 Python 语言编写,例如 Ubuntu 的
Ubiquity 安装器、Red Hat Linux 和 Fedora 的 Anaconda 安装器等等。另外,Python
标准库中包含了多个可用来调用 *** 作系统功能的库。例如,通过 pywin32 这个软件包,我们能访问 Windows 的 COM 服务以及其他 Windows
API;使用 IronPython,我们能够直接调用 Net Framework。
·人工智能领域
人工智能是现如今非常火的一个方向, Python
在人工智能领域内的机器学习、神经网络、深度学习等方面,都是主流的编程语言。可以这么说,基于大数据分析和深度学习发展而来的人工智能,其本质上已经无法离开
Python 的支持了。
·网络爬虫
Python语言很早就用来编写网络爬虫。Google 等搜索引擎公司大量地使用 Python 语言编写网络爬虫。从技术层面上将,Python
提供有很多服务于编写网络爬虫的工具,例如 urllib、Selenium 和 BeautifulSoup 等,还提供了一个网络爬虫框架 Scrapy。
·游戏开发
很多游戏都是使用C++编写图形显示等高性能的模块,使用Python或Lua编写游戏的逻辑,相比Python,Lua的功能更简单,体积也更小,但Python支持更多的特性和数据类型。除此之外,Python
可以直接调用 Open GL 实现 3D 绘制,这是高性能游戏引擎的技术基础。事实上,有很多 Python 语言实现的游戏引擎,例如 Pygame、Pyglet
以及 Cocos 2d 等。
跟其他讲解怎么使用Cocos2d-x游戏引擎及其API不同,这本书偏重于讲解Cocos2d-x引擎实现的一些原理,例如渲染器的设计,纹理的一些基础知识,内存管理,即便像脚本Lua这种完全偏应用的知识,作者却是在讲Lua脚本引擎的工作机制。
一部分读者对这种写作方式不是很买账,毕竟有些读者只是想找本书直接教他怎么快速开始做游戏。至于为什么会写出这种奇葩的书,根据在QQ群和其他一些场合作者的观点:
市面上已经大量存在入门教程类的书籍,没有必要再多一本类似的书坑读者
对于一个从事游戏开发或者图形学相关的程序员来讲,作者认为扎实的图形学基础非常重要,尤其对于希望为自己长期发展考虑的程序员
Cocos2d-x主要是一个渲染引擎,很多读者也想系统学习OpenGL等相关知识,作者认为以一个著名的游戏引擎为例,来讲解其中对OpenGL ES的应用,这是一个非常好的主意介绍OpenGL。
当然这样奇怪的内容结构对一部分读者来讲有些不习惯,这部分确实也不是给初级玩家看的,但是对于已经具备一些Cocos2d-x或者游戏开发经验的朋友来说,这部分至少可以让你获得或者强化以下知识:
C++内存管理的相关知识,这在第二章有大量的篇幅。
字体的渲染原理和机制,几乎全篇幅分析Freetype的实现原理,而不仅仅是Cocos2d-x的API怎么用,相信了解原理之后大部分字体的问题自己都会有思路去解决。
纹理的所有相关知识。并不是讲一些技巧怎么优化纹理,而是将纹理所有的知识分析出来,内存结构,压缩纹理,纹理格式,在OpenGL中的使用。
OpenGL ES着色器语言,当然这部分你可以很容易从其他资料学习
OpenGL ES的数据流传输方式,很多书讲GL都不会着重讲这些顶点,纹理,索引等其它数据怎么传输到GPU,怎么定义这些变量,以及这些变量怎么存储,SIMD数据机构及处理指令。
帧缓冲,详细分析GPU内存对象的结构,布局,绑定等等。学习这些的重要意义不仅仅在于可以从CPU取回渲染的图像结果,现代3D游戏渲染使用到的Deferred Shading技术更是需要对GPU内存对象有非常好的了解。
片段测试也是一项很有用的技术,它不仅仅是用来做裁剪的工具。GPU渲染每两帧之间都是独立的,不需要保存这种状态数据使得其可以高效渲染,但是有时候我们需要适当的数据来反映多帧之间的一种联系。这就是模板测试发挥威力的地方,比较著名的应用包括Shadow Volume的应用。
脚本引擎的原理。很多人经常遇到脚本相关的纹理,其实理解Lua脚本引擎与C++的关系及其原理,你还会遇到什么解决不了的问题呢
以上就是关于游戏一般用什么编程语言开发全部的内容,包括:游戏一般用什么编程语言开发、怎样看待越来越多cocos2dx程序员转unity3d,unity是否是大势所趋、unity怎样看待越来越多cocos2dx程序员转unity3d等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)