让"世界最速开发"成为可能!承担【生化危机7】开发任务的卡普空新引擎【RE ENGINE】

前言:最近在读游戏引擎架构,然后读到了这篇去年的文章,深有感触,书中提到的很多东西在这里都有呈现,于是翻译一下,做个记录。

原文载于:https://cgworld.jp/feature/201702-cgw222T2-bio.html

2017年1月26日发售的生化7。用来开发这个游戏的是卡普空社内研发的引擎[RE ENGINE]。融入浓厚的卡普空游戏哲学的最先进的本引擎,待我们来详细了解。

※本文从 月刊「CGWORLD + digital video」vol. 222(2017年2月号)转载

EDIT_藤井紀明 / Noriaki Fujii(CGWORLD)、山田桃子 / Momoko Yamada
?CAPCOM CO., LTD. 2017 ALL RIGHTS RESERVED.

可以制作3A游戏的新引擎

游戏引擎正如其名是用来驱动和推进游戏开发,现在引擎这一工具,已经被当今世代很多游戏的开发所使用。卡普空也不列外,至今为止开发的游戏,都是长期以来使用被称为【MT FRAMEWORK】的社内研发游戏引擎所开发。然而,在卡普空代表作之一的「biohazard」系列的最新作「biohazard7 resident evil」(以下简称「生化7」)开发的时候,开发组希望能有一个能够提供更高表现力,提高开发效率的游戏引擎。「于是卡普空以“能够制作社内3A游戏的引擎”为目标,开始了名为「RE ENGINE」引擎的开发」(制作人 川田将央氏)。

于是RE ENGINE和「生化7」并行开发,于2014年4月开始启动。然而开发的道路却似乎并不平坦。「2014年末「生化7」Vertical slice(※一种在场景内塞入游戏的主要功能的试作品)完成。在这里设下了目标有必要让RE ENGINE以某种程度的形式呈现」(Lead Programer 石田智史氏)。非常严格的日程表和极高的目标,为了实现两者,以当时作为RE ENGINE的总经理的田原武文氏和石田氏为首的3人的少人数团队进行了引擎的基本部分的设计。那之后,增加了4~5名如图形程序师三嶋仁氏等核心成员,现在以大约50人的规模继续开发。

以世界最快速为目标的「快速迭代(Rapid Iteration)」

RE ENGINE主要的特征为,其开发迭代的快速。虽然在MT FRAMEWORK时代的卡普空在游戏开发效率上也非常重视,到了当今时代,asset的数量,整体容量等,伴随游戏规模爆发性的增大,到现在为止的引擎已经无法满足的情况增多了。比方说,游戏代码的一部分修改后的编译生成要花大概15分钟,从根本上进行游戏引擎的重新设计的必要性已经迫在眉睫。于是,RE ENGINE全部的架构已经焕然一新。以迭代速度为重点,进行各种功能的增加。

首当其冲的,是以C#作为游戏代码的描述(A-1)。RE ENGINE的全部游戏逻辑由C++转为用C#进行coding,于是从C++时代的让人烦恼的长时间编译生成中解放出来。虽然用C#开发被泛用引擎Unity等所采用,伴随着开发效率的提高,在大规模化上的性能问题也经常被提到。于是卡普空为了使RE ENGINE能够承担3A游戏的制作,开发了独立的虚拟机「REVM」。于是即使使用C#开发,也和C++开发并无差异,根据不同场景,甚至实现了比C++更高的性能。「使用C#,因为有了自动内存管理,不但减少了内存泄漏、经常性的程序崩溃,程序的开发速度也获得了极大的提升」

此外,RE ENGINE的远程实机编辑也成为可能(A-3).RE ENGINE实现了Runtime和工具组件(Tool)的完全分离。基于TCP/IP的同步,工具在PC上,Runtime在PS4上的分离成为可能。于是,在此之前为了在PS4等进行实机运行调试,必须要专门打个包,在实机上展开(deploy),而RE ENGINE则完全省略了这一过程。开发作业中能够进行实时(realtime)的实机调试确认。此外,也提供被称为Widget的Runtime上运行的工具,承担了一部分的作业效率化。VR等开发手法还未确立的领域,实机确认无论怎么实现,因为能和质量(Quality)直接联系,说这些功能是非常重要的应该是无可否认的。此外,基于Tool和Runtime的分离,MT FRAMEWORK时代的问题如运行时崩溃(runtime crash)导致的数据丢失也可以得到预防。

A-1 基于C#的实时编码(realtime coding)

RE ENGINE以迭代速度为优先,开发的时候,实现了把C#代码从IL(中间语言)向独立的微代码(micro code)的转换。由于这一点,无需重启即可实时呈现代码变更。

RE ENGINE 编辑器上进行游戏

增加了控制手材质(material)的C#代码

游戏运行无需中断,即可实时呈现。可以了解材质是否替换

A-2 基于REVM的性能比较

REVM的benchmark结果(PS4)。绿色的是C#(REVM),红色的是C#排除了其他功能(REVM),蓝色为C++。数值越小速度越快,REVM的性能并不比C++差,基于不同场景有时甚至会更好。

REVM开发时和发布(Release)时的性能比较。发布时实行以性能优先,C#代码由IL向C++转换。结果脚本的运行速度为原来的2~3倍

A-3 基于REVM性能比较

和PS4远程连接后,可直接在实机上进行编辑。画面左侧是RE ENGINE,右侧为PS4的实机画面。RE ENGINE上编辑的内容通过远程对象(remote object)即刻反应在PS4上。

待续。。。

原文地址:https://www.cnblogs.com/kira-trash-can/p/8290356.html

时间: 2024-11-09 03:19:17

让"世界最速开发"成为可能!承担【生化危机7】开发任务的卡普空新引擎【RE ENGINE】的相关文章

夺金农场游戏开发 夺金农场系统哪里开发好

夺金农场模式开发,夺金农场系统开发,夺金农场平台开发??找黄经理 185-2946-0381 夺金农场系统开发渠道 夺金农场系统搭建开发 一个企业的创新能力体现在很多方面,包括产品的创新.服务的创新,当然也包括营销模式的创新. 淘金果园,可玩性比较高,有的人是为了赚钱,有的人是为了乐趣,有的是来薅羊毛,但是无论如何,总要产生交易,而且很多玩了淘金农场后都会喜欢这个游戏,并不是单单为了赚钱,这个游戏以后会开发更多的功能. 推广产生的收益,比如2就2元,1就是1元,0.789就是7角89. 一.首先

iOS开发中使用宏定义提高开发效率

iOS开发中使用宏定义提高开发效率 (2013-07-10 10:47:33) 转载▼ iOS开发中,巧妙的使用宏定义,可以提高开发效率,本篇简单介绍一下宏的定义,设置,应用,并在未来实践中不断追加一些常用的宏定义. 调试Log iPhone应用程序开发调试的时候,在代码中加入NSLog的暴力调试方法是很频繁的,但是在release的时候要删除这些调试代码,那工作量是烦躁,这样的情况下,试用宏就会显得非常的方便. 看下面的例子: #ifdef DEBUG #define LOG(...) NSL

使用svn开发,目录的约定与开发流程

Subversion有一个很标准的目录结构,是这样的.比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是 svn://proj/ | +-trunk +-branches +-tags 这是一个标准的布局,trunk为主开发目录,branches为分支开发目录,tags为tag存档目录(不允许修改).但是具体这几个目录应该如何使用,svn并没有明确的规范,更多的还是用户自己的习惯. 对于这几个开发目录,一般的使用方法有两种.我更多的是从软件产品的角度出发(比如free

深圳区块链商城开发,深圳区块链开发,深圳区块链商城开发技术

深圳区块链商城开发,深圳区块链开发,深圳区块链商城开发技术是当前主流的技术,那么,区块链到底是什么呢?深圳区块链商城开发,深圳区块链开发,深圳区块链商城开发技术又是什么呢? 狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一 种链式数据结构, 并以 密码学方式保证的不可篡改和不可伪造的分布式账本. 广义来讲,区块链技术是利用块链式数据结构来验证与存储数据.利用分布式节点共识算法来生成和更新 数据.利用密码学的方式保证数据传输和访问的安全.利用由自动化脚本代码组成的智能合约来编

编程开发必读书籍:每个Web开发人员都应该阅读的10本书[图]

编程开发必读书籍:每个Web开发人员都应该阅读的10本书[图]:当开发人员问我他们应该阅读哪些书籍的时候,我通常都是告诉他们:让你读的下去的书.许多开发人员会阅读其他人的代码,实际上你提升自己最好的途径就是阅读,你的读书效率越高,那么你在日常工作中的效率也会越高.本文我们将来讨论:每个Web开发人员都应该阅读的10本书:1.<与爱因斯坦月球漫步>为什么推荐一本记忆力训练相关的书籍呢?因为现在的绝大多数开发人员都没有想过要提高自己的记忆能力,结果全部依赖于移动设备,实际上,现如今的程序员很难在脱

微控工具xp模块-开发版[微信(wechat)二次开发模块]

http://repo.xposed.info/module/com.easy.wtool 微控工具xp模块-开发版[微信(wechat)二次开发模块] 基于xposed框架的微信二次开发模块,方便开发者用微信做一些扩展功能(如微信群发.多群直播等...) 目前支持功能: 发文本消息 发图片消息 发语音消息 发视频消息 获取微信好友列表 群列表 支持群发消息 支持消息转发(目前支持文本.图片.语音.视频.图文消息转发) 群管理功能(建群.加人.踢人.设置公告.改群名.退群.解散群) [注:本模块

4412开发板三星cortex-A9四核开发板友坚科技

UT4412BV03开发板介绍 4412开发板三星cortex-A9四核开发板友坚科技 友坚恒天科技urbetter.net专注于三星平台产品的研发,是三星在中国最具实力的方案公司.公司主打的三星平板电脑方案销量,连续多年稳居第一.公司定位于中高端产品的研发,具有多年的嵌入式产品研发经验:基于三星 A15-Exynos 5250.A9-Exynos 4412.A8-S5PV210.ARM11-S3C6410.ARM9-S3C2416等处理器,开发了系列化的产品,为客户提供了全面的产品选择及专业化

开发环境——基于RHEL 6.8开发环境的搭建

开发环境--基于RHEL 6.8开发环境的搭建 本文讲述了基于RHEL 6.8操作系统搭建开发环境,主要安装了GCC 4.9.3.Qt 5.7.Apache 2.4.25.MySQL 5.6.35.本文同时适用于在Linux主机无互联网环境下搭建开发环境,只需要将所需安装包下载后拷贝到Linux主机即可. 一.RHEL6.8安装 1.RHEL 6.8下载 下载RHEL 6.8安装包:rhel-server-6.8-x86_64-dvd.iso 2.RHEL 6.8安装 安装过程中选择Develo

移动应用跨平台开发:《用PhoneGap来开发跨平台手机应用》

移动应用跨平台开发:<用PhoneGap来开发跨平台手机应用> 随着HTML5, CSS3, Javascript的发展,以及浏览器对这些特性的支持,使得手机跨平台成为一种趋势,跨平台意味着:开发一次,到处运行.基于(HTML5, CSS3, Javascript)的前端开发技术,可以通过PhoneGap(http://phonegap.com/)来生成对应设备的应用,如Android的APK, iOS设备的ipa等.相比原生态的应用来讲,PhoneGap开发出来的应用成本更低,甚至不需要会J