如龙高产的秘密

【本文由小黑盒作者@强化胶囊于04月05日发布,转载请标明出处!】

作为《如龙》系列的研发工作室,Ryu Ga Gotoku Studio(下文简称RGG)以其高产在业内闻名。近日,在美国旧金山举行的2025年GDC会议期间,堀井亮佑(《如龙》系列总监督)、滨津英二(Eiji Hamatsu,世嘉第一业务部设计经理)主持了一场小组座谈会,分享了工作室如何在极短周期内开发游戏,持续推出故事丰富、视觉效果出色的RPG。

5年拿出4款游戏,《如龙》开发商为何如此高产?

5年拿出4款游戏,《如龙》开发商为何如此高产?

滨津英二长期在RGG担任设计负责人,加入世嘉后参与开发的首款游戏就是初代《如龙》。座谈会中,滨津英二聊了聊RGG在为游戏构建世界观和背景美术方面的一些经验心得,从而让现场听众更好地了解了RGG如何在发挥创造力,与提升效率之间把握平衡。

5年拿出4款游戏,《如龙》开发商为何如此高产?

5年拿出4款游戏,《如龙》开发商为何如此高产?

叙事是一套系统,而非一份剧本

首先,堀井亮佑驳斥了许多游戏从业者的一种普遍误解:叙事并不等同于故事。RGG将叙事视为完整的体验,即玩家畅玩游戏时感受到的情感节奏。堀井亮佑在为演讲准备的一份PPT文件中写道:“故事是主菜,但当一场宴席结束后,好的主菜并不足以保证宾客获得最大的满足感。”

5年拿出4款游戏,《如龙》开发商为何如此高产?

5年拿出4款游戏,《如龙》开发商为何如此高产?

“我们不是在写小说或电影(剧本),而是通过游戏玩法来创造体验。”堀井亮佑说。

在RGG,开发团队不会将故事或玩法强行塞入彼此分开的孤岛,而是将两者一起开发。按照堀井亮佑的说法,故事节奏和游戏的玩法机制相互影响。他还强调了“余地”的重要性——在游戏开发期间,团队应当保持充裕的灵活性,从而确保编剧和设计师能够调整,或者拓展他们的想法。

《如龙7:光与暗的去向》(2020年)就是个典型例子。《如龙7》讲述了一名前黑帮成员东山再起的故事,以白手起家的背景影响了游戏里的许多内容,包括职业机制、支线任务等。“游戏的叙事主题——从底层崛起——既有助于开发团队构建独特的角色发展(系统)、故事节奏,又能够引起玩家的情感共鸣。”堀井亮佑解释道。

5年拿出4款游戏,《如龙》开发商为何如此高产?

5年拿出4款游戏,《如龙》开发商为何如此高产?

与此同时,RGG还非常聪明地使用了支线内容。堀井亮佑指出,《如龙》系列的开发团队擅长使用支线故事来推进角色的发展,平衡情感节奏,有时还会探索对主线剧情而言过于冒险的主题。这种模块化结构使开发团队能够更加容易地快速制作量大管饱、引人入胜的内容,并避免了核心开发流程陷入超负荷的困境。

如何有效地缩短游戏开发周期?

从某种意义上讲,RGG快速开发游戏的秘诀可以归纳为三个核心理念:并行开发、注重资产/素材使用的效率,以及注重现实世界的连续性。

1. 并行开发

滨津英二解释称,在RGG,开发团队不会等所有细节都敲定后才动手制作游戏。相反,一旦掌握了最低限度的信息(比如知道Boss战将会在某个区域发生),团队就会开始为环境、战斗流程,甚至迷你游戏的框架构建原型。

这种被称为“同时并行开发”的做法存在风险,但效果相当不错:美术、设计师和编剧们同时工作,分享某个初略的愿景,并在开发过程中不断完善。正如滨津英二所说,如果RGG采用另一种选择——等待上级批准——那么游戏的开发周期将会被“大幅延长”。

5年拿出4款游戏,《如龙》开发商为何如此高产?

5年拿出4款游戏,《如龙》开发商为何如此高产?

滨津英二补充说:“这个术语(并行开发)的意思是在团队内部,让不同部门或职位的成员同时开展工作,以便更快速地完成项目。”但他承认,如果其他游戏工作室采用这种做法,项目负责人持续不断的监督至关重要。“哪怕是最轻微的错误,也有可能造成混乱,导致团队不得不面临无法按时完成部分内容开发的风险。”

滨津英二举了个例子。当RGG开始为Dragon引擎(注:被用于开发《如龙》系列游戏的主要引擎)设计一家便利店时,所有叙事细节尚未就绪。“我们的目标是为试玩版本准备好这个区域,因为这有助于团队尽早测试图形基准,并建立内部标准。”

2. 实时的世界进程

与许多其他系列不同,《如龙》让游戏世界与玩家一起成长。角色会变老,城市的面貌会略有变化……这意味着开发团队可以重复使用东京神室町、Sotenbori等场景,同时又不会让玩家觉得它们一成不变。对《如龙》系列来说,熟悉感成为了一种特点而非缺陷。

豆包PC版_操作便捷_免费下载安装

广告

豆包PC版_操作便捷_免费下载安装

豆包客户端

立即开始

“为《如龙》系列制作新游戏时,我们不必每次都重新塑造主角、角色和世界观。”堀井亮佑解释说,“当玩家在阔别许久后看到熟悉的场景,感觉就像回到了家乡,会觉得非常舒服。”

3. 聪明地复用资产/素材

滨津英二表示,《如龙》开发团队在构建神室町等场景时坚持“少即是多”的原则,常常想方设法用较少的资源来实现想要的效果。一栋建筑可能会容纳卡拉OK酒吧、贷款办公室,以及光照阴暗的俱乐部;为了改变玩家游玩时的流程和感受,团队甚至还会在楼梯间之类的场所添加一些细节。

对RGG来说,重复使用地图并不意味着偷懒。相反,开发团队每次都会对旧地图进行改进,让它们变得更加精致。“我们会改变资产/素材、改变灯光,设计新的玩法流程,目的是确保《如龙》系列的每部作品都能够为玩家带来新鲜感。”与此同时,这也使得开发团队可以将更多资源投入到创造新内容上——比如设计Boss遭遇战,或者过场动画。

在《如龙7外传:无名之龙》(2023年)中,开发团队就在少许调整的基础上使用了前一部作品的主地图,从而能够集中资源设计城堡区域,提升场景细节。

领导力和基于品味的决策(流程)

在RGG,堀井亮佑需要对工作室的在研项目随时保持关注。堀井亮佑透露,他每天都得做出数十次判断。堀井亮佑也承认,当他制定决策时,并不是每次都有明确的理由。某些时候,他会依赖于作为创作者的“艺术直觉”。

5年拿出4款游戏,《如龙》开发商为何如此高产?

5年拿出4款游戏,《如龙》开发商为何如此高产?

“如果逻辑不够用,你得相信自己的品味。”堀井亮佑的这种心态,对团队优势和短板的诚实理解,以及团队内部清晰、透明的沟通,都有助于RGG保持敏捷性,避免项目脱轨。

堀井亮佑强调,开发团队需要对游戏产品的定位有清晰的理解。“这意味着在《如龙》系列的背景下,我们需要清楚地了解(开发)哪些内容是合适,或者重要的。”一旦开发团队偏离正确的方向,那么最终的产品就很有可能让玩家觉得不对劲。

当然,从过往经历中学习,总结经验教训也很重要。“我们了解成功和不成功的实践……这有助于我们规避风险,防止类似的失败再次发生。”

在 VS Code 中编写包含 `#include <ros/ros.h>` 的 ROS 代码时,可能会遇到多种问题,以下是一些常见问题及对应的代码错误分析: ### 头文件包含问题 1. **头文件找不到**:若 VS Code 无法找到 `ros/ros.h` 头文件,会在该包含语句下出现红色波浪线。这通常是由于编译器的包含路径未正确配置,导致无法定位 ROS 相关的头文件。 ```cpp // 这里可能会出现红色波浪线 #include <ros/ros.h> ``` 解决方法是在 `c_cpp_properties.json` 文件中添加 ROS 头文件的路径。示例配置如下: ```json { "configurations": [ { "name": "ROS", "includePath": [ "${workspaceFolder}/**", "/opt/ros/<ros_distribution>/include" ], "defines": [], "compilerPath": "/usr/bin/gcc", "cStandard": "c11", "cppStandard": "c++17", "intelliSenseMode": "gcc-x64" } ], "version": 4 } ``` 其中 `<ros_distribution>` 需要替换为实际使用的 ROS 版本,如 `melodic` 或 `noetic`。 2. **依赖头文件缺失**:`ros/ros.h` 可能依赖其他头文件,若这些依赖头文件缺失,也会导致编译问题。需要确保所有依赖的 ROS 包都已正确安装。 ### 命名空间和符号问题 1. **命名空间冲突**:ROS 代码中可能会使用大量的命名空间,若出现命名空间冲突,会导致符号无法正确解析,出现红色波浪线。例如: ```cpp #include <ros/ros.h> // 假设这里有命名空间冲突 // some_name::SomeClass obj; ``` 解决方法是明确指定命名空间,或者使用 `using` 语句引入特定的命名空间。 2. **符号未定义**:若使用了未定义的符号,如函数、类或变量,会出现红色波浪线。这可能是由于忘记包含必要的头文件,或者代码逻辑错误导致的。 ### 编译器和环境配置问题 1. **编译器配置错误**:VS Code 需要正确配置编译器才能进行代码检查和编译。若编译器配置错误,会导致错误的代码检查结果。确保 `tasks.json` 文件中配置了正确的编译命令。示例配置如下: ```json { "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "catkin_make", "group": { "kind": "build", "isDefault": true } } ] } ``` 2. **ROS 环境变量未设置**:在 VS Code 中运行 ROS 代码时,需要确保 ROS 环境变量已正确设置。可以在终端中运行 `source /opt/ros/<ros_distribution>/setup.bash` 来设置环境变量。 ### 代码逻辑错误 1. **语法错误**:代码中可能存在语法错误,如括号不匹配、分号缺失等,会导致编译器无法正确解析代码,出现红色波浪线。 ```cpp #include <ros/ros.h> int main(int argc, char** argv) { ros::init(argc, argv, "node_name" // 缺少右括号,会出现红色波浪线 ros::NodeHandle nh; return 0; } ``` 2. **逻辑错误**:代码逻辑可能存在错误,如变量未初始化、函数调用参数错误等,虽然不会直接导致红色波浪线,但会影响代码的正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值