sto*_*ist 17 language-agnostic programming-languages
你经常会看到一款新游戏将在Xbox 360,PS3和Windows PC上发布.
游戏公司如何做到这一点?它是使用不同编译器编译的常见源代码吗?是否需要实际不同的源代码?
示例新闻文章宣布:http: //www.gameranx.com/updates/id/502/article/dungeon-siege-3-announced-to-be-developed-by-obsidian/
Uri*_*Uri 14
一般来说,绝大多数多平台"AAA"标题是在Unreal,Source或其他较小引擎等引擎上实现的.这些引擎中的每一个都是针对每个平台自定义实现和优化的,并且可以使用较低级别的API,例如DirectX/OpenGL,后者又使用控制台.这些引擎中的每一个还具有用于与硬件的官方驱动程序或API交互的平台特定内容(例如,运动控件)的插件.
其中许多引擎支持自己的脚本语言或许多东西的钩子,所以它只写一次.
例如,看看虚幻引擎:http: //www.unrealtechnology.com/technology.php
大多数最大的引擎,如虚幻引擎都非常灵活和强大,它们允许开发人员编写各种类型的游戏.例如,虚幻引擎不仅用于射击游戏,还用于射击游戏RPG,如质量效应.
请记住,制作游戏的大部分人力都集中在图形,设计师,音频设计,关卡设计等方面,并且所有这些都有自定义编辑器.许多固定部分通常通过脚本语言编程.游戏公司中只有一小部分人真正用C等低级语言编写代码.
引擎通过提供平台独立层来处理这个问题.平台之间的情况因图形库而异.线程,时钟和文件系统等; 为游戏引擎中的每个平台实现.
我可以调用引擎来渲染由三角形组成的3D模型.该引擎反过来通过调用平台独立层来呈现该模型,该平台独立层使用当前使用的平台的实现.