找回密码
 立即注册
搜索
查看: 4527|回复: 40

[其他] 求助,请问对于网状任务架构的rpg游戏开发,使用哪种引擎较好?有合适的插件吗?

[复制链接]
     
发表于 2024-4-3 17:38 来自手机 | 显示全部楼层 |阅读模式
1.想做这样的游戏:
crpg,网状任务架构。任务本身有多种完成方式,npc之间也有着不同的关系。完成一个任务的情况、方式会影响npc 的看法,进而影响其他任务的流程或对话。
可以预见,每个npc 身上都可能有较多的变量,用来描述彼此之间的关系变化、对玩家态度、对话内容等。
2d视角,进入战斗后以走格子战棋形式展开,类似轨迹。战斗系统不专注与各种+xx%数值的buffdebuff猴戏,强调角色定位和技能机制。

2.现状:
花了一段时间学习c#语言和unity,目前用基本语句没问题,但看不懂稍微高级一点的东西,比如继承之类的。缺少实践。
可以完成很简单的游戏,其实游戏中的一切无非都是变量而已,可能代码的架构和设计思路更重要。在看一些较大的战斗系统设计的教程时,深感以我当前的代码水平可能在完成上面那个构想时会写出充满bug的屎山。

3.当前困惑:
①据说godot更加轻量化,我没有深入接触只是简单学习了一下,感觉跟unity思路差不多,现在夸两边的都有,unity去年做大死的收费动作今年也轻飘飘过去了,只看我的需求,是否需要更改为更轻量化但是缺少教程和社区的godot?
②发现unity有一些现成的插件,调用现成的对象然后填数就行了,有没有类似的傻瓜化插件推荐?以下是我目前对unity一些高评分插件的见解:

rpg builder:技能系统做的不错,可惜只能做3d的。
Turn Based Strategy Framework:回合制rpg。看上去不错,但不知道能不能帮助我实现上面的网状系统架构。

4.总结:我的目的不是成为编程大佬,任何手段都可以,做出我想要的游戏。我现在的问题由大到小如下排序:
问题1:我是应该转换为godot,还是继续死磕unity?
问题2:如果是unity,有没有推荐的傻瓜化插件,让我不用重复造轮子?
问题3:都在说可视化编程插件可以制作简单的游戏,但具有大量npc的互动、关系变量的网状结构的rpg,是否合适?

写的啰啰嗦嗦的,感谢大家不吝指教。

评分

参与人数 1战斗力 +1 收起 理由
Byooon + 1

查看全部评分

回复

使用道具 举报

     
发表于 2024-4-3 17:43 | 显示全部楼层
这个和引擎没关系吧.........主要看你后台的游戏设计和玩法的具体实现,你功夫够多,学老crpg那套一个事件一个事件,一个flag一个flag纯手搓都是理论上可行的。
回复

使用道具 举报

     
 楼主| 发表于 2024-4-3 17:44 来自手机 | 显示全部楼层
blackll7 发表于 2024-4-3 17:43
这个和引擎没关系吧.........主要看你后台的游戏设计和玩法的具体实现,你功夫够多,学老crpg那套一 ...

问题是我功夫不够。所以想尽可能偷懒,把时间消耗到脚本写作而不是琢磨引擎使用上。
回复

使用道具 举报

     
发表于 2024-4-3 17:44 | 显示全部楼层
这个和引擎关系不大,你可以玩玩猫头猫的那几个crpg游戏,比如正义之怒和行商浪人,然后开toybox,里面就能看到系统的整个事件和flag设计,很有参考价值
回复

使用道具 举报

     
 楼主| 发表于 2024-4-3 17:45 来自手机 | 显示全部楼层
blackll7 发表于 2024-4-3 17:43
这个和引擎没关系吧.........主要看你后台的游戏设计和玩法的具体实现,你功夫够多,学老crpg那套一 ...

而且那样的话,我怕很容易出现bug。或许还是在每个npc上绑一大堆变量然后让变量之间互相调用和改写更好。
回复

使用道具 举报

     
发表于 2024-4-3 17:48 | 显示全部楼层
建议直接去翻GDC的开发者分享里有没有人分享过类似的开发资料
回复

使用道具 举报

     
发表于 2024-4-3 17:48 | 显示全部楼层
本帖最后由 blackll7 于 2024-4-3 17:50 编辑
水狷 发表于 2024-4-3 17:45
而且那样的话,我怕很容易出现bug。或许还是在每个npc上绑一大堆变量然后让变量之间互相调用和改写更好。 ...

你不如再狠一点,学太吾绘卷和矮人要塞搞伪仿真那种每个NPC独立一个data file算了,就是人物一多就太吃cpu。
回复

使用道具 举报

     
发表于 2024-4-3 17:48 | 显示全部楼层
也许你可以试试老滚5的mod,我还真见过一些试图网状叙事的mod
回复

使用道具 举报

     
发表于 2024-4-3 17:49 | 显示全部楼层
这个和引擎、插件关系不大,你可能需要一些写游戏脚本(代码,不是剧本)的经验
回复

使用道具 举报

     
发表于 2024-4-3 17:56 | 显示全部楼层
你要考虑的不是游戏引擎而是写作的叙事设计工具,最简单的是Twine这种,复杂点的是Yarn和inkle,专业级别的是articy:draft
回复

使用道具 举报

     
发表于 2024-4-3 17:56 | 显示全部楼层
本帖最后由 zris 于 2024-4-3 18:00 编辑

如果按照你的要求,应该只有黑曜石的一款叙事工具了,但是那是他们自己开发的,没用商用版

但是你要找替代的也不是没用,估计没黑曜石那套那么好用罢了

具体不了解,但是曾经看过unity或者unreal都有类似的,在这两引擎的商店关键词搜搜Dialogue 或者 Narrative
或者也可以看看一些讲座  
OEI Tools Talk for Pentiment (ad hoc) (youtube.com)
这是sawyer讲怎用工具编写对话的演讲

(407) Technical Tools for Authoring Branching Dialogue - YouTube
还有一个gdc的讲座,也是黑曜石讲他们那个引擎来编写分支



回复

使用道具 举报

     
发表于 2024-4-3 18:01 | 显示全部楼层
马一下,我也有这个需求

我目前的思路是,没有什么普适性的中间件能完美的契合自己的需求,所以肯定要自己搓,别人的插件顶多拿来看看写法参考一下

事先规划好体量,然后去设计结构,因为可能网状本身并不是重点,具体的数量才是重点,先明确下来有多少个npc,多少种任务相关的变量,多少个任务,多少种解决方式,先把上限定死,然后根据这个数量写一个原型出来,一步迈到扩展度极高的系统反正我觉得我是没那个胆子,作工程就要根据需求来!
回复

使用道具 举报

头像被屏蔽
     
发表于 2024-4-3 18:12 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2024-4-3 18:13 | 显示全部楼层
我觉得和网装任务结构比较相似的计算机技术是关系数据库

如果用一个数字编号做任务进行时的状态,那用来描述这个状态的状态不就是关系数据库
回复

使用道具 举报

头像被屏蔽
     
发表于 2024-4-3 18:13 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2024-4-3 18:27 | 显示全部楼层
问题1:我是应该转换为godot,还是继续死磕unity?
还是推荐unity,模板够多,教程够多,更适合新手学习。
问题2:如果是unity,有没有推荐的傻瓜化插件,让我不用重复造轮子?
2d rpg kit ,top down 2d rpg 之类的,可以先下学习试下大概功能再决定是否购买
问题3:都在说可视化编程插件可以制作简单的游戏,但具有大量npc的互动、关系变量的网状结构的rpg,是否合适?
跟可视化编程没关系,网状RPG只要你的变量够多就行,任何RPG引擎都有类似的功能,RPGmaker都可以实现,跟引擎和编程插件关系不大,甚至你的需求我觉得RPGmaker就能做的七七八八了。
回复

使用道具 举报

     
发表于 2024-4-3 18:50 来自手机 | 显示全部楼层
本帖最后由 Tring 于 2024-4-3 18:54 编辑
zyz9408 发表于 2024-4-3 18:27
问题1:我是应该转换为godot,还是继续死磕unity?
还是推荐unity,模板够多,教程够多,更适合新手学习。
问 ...

用啥引擎见仁见智。但是但凡你有一点代码基础,那码代码一定比纯粹的可视化编程方便百倍有余。Godot自己的可视化编程都处于一个爱管不管的状态,就是因为大家都不太想用。可视化编程也不是0门槛,花时间学这还不如正经学点代码基础。

至于只说能否做到,那RM可以实现任何规模有限的静态任务结构,毕竟flag逻辑也是图灵完备的。但是RM最大的短板就是动态生成内容极为难以实现,因为flag系统是全局的没有作用域,任意局部过程都会产生无可避免的边缘效应。但也不是不可能,毕竟你还能自己用js写插件。
回复

使用道具 举报

     
发表于 2024-4-3 19:06 | 显示全部楼层
目前最标准的网状任务游戏就是新维加斯,引擎是祖传Gamebryo
回复

使用道具 举报

     
发表于 2024-4-3 19:15 | 显示全部楼层
极乐迪斯科是用 Dialogue System for Unity 这个插件
回复

使用道具 举报

     
发表于 2024-4-3 19:41 | 显示全部楼层
跟引擎没啥关系,主要是跟你想要做到多深度和什么用着顺手比较有关系

如果实在搞不懂的话甚至可以给每一个你计划可以交互产生影响的npc身上都单独写脚本触发unity里的event trigger,当然大量的脚本带来的就是冗余的内存占用,加上后期如果单独调整一个的话,再去查询其他的涉及到的地方可能会很麻烦(除非你自己做好备注

其他的引擎之类,我用过unity和ue4,感觉就,都差不多,比较完善的rpg制作都是在别人的需求基础上进行的rpg制作,多少都要自己往里面添加一些自己定义的内容。所以我还是觉得你找一个自己用着习惯、比较多的包含自己需求的插件就好了,比如楼上推荐的几个

回复

使用道具 举报

     
发表于 2024-4-3 23:24 | 显示全部楼层
楼主几年前好像发过同样类型的主题
翻了下这几年的收藏夹,感觉这么几篇文章可能有点帮助:
* indienova:分支剧情创作中的挑战和工具(https://indienova.com/indie-game ... logs-and-narrative/),介绍了楼上大哥提到的articy:draft、ink等几个工具更加具体的一些内容;
* indienova:消失的箭头——一种创作(无)分支剧情的新思路(https://indienova.com/indie-game ... no-branching-plots/),不基于分支来设计任务,改用一种满足特定条件触发故事片段(storylet)的思路。我觉得可以作为“网状结构”的参考;
* indienova:开发经验分享:剧情管理的探索之路(https://indienova.com/indie-game ... oryline-management/),基于上文的某种实践。

没实践经验,纯属从收藏夹里面回忆了一下,不知道能否提供一些参考。
回复

使用道具 举报

     
发表于 2024-4-3 23:41 | 显示全部楼层
本帖最后由 dumplingpro 于 2024-4-4 00:16 编辑

会unity就unity,UNIYT市场里有不少现成的编辑器。https://www.bilibili.com/video/BV1fD4y1i7oX
实际上你就算用RPG Maker MV(搭配3D插件https://www.bilibili.com/video/BV1Ph4y1c7HX)或者RPG Developer Bakin(3D版 RPG大师)这种新手向的都可以。

主要还是写剧本,拼图拼起来。


回复

使用道具 举报

头像被屏蔽
     
发表于 2024-4-3 23:45 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2024-4-4 00:21 | 显示全部楼层
すぴぱら 发表于 2024-4-3 23:45
不想编程为什么要学习商业级引擎
rpg maker最方便最好用吧

rpg maker连改个自己的属性系统都没那么容易吧
回复

使用道具 举报

     
发表于 2024-4-4 00:23 来自手机 | 显示全部楼层
我觉得是图算法?
回复

使用道具 举报

头像被屏蔽
     
发表于 2024-4-4 00:32 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2024-4-4 00:34 | 显示全部楼层
本帖最后由 GuardHei 于 2024-4-4 00:37 编辑

厘清依赖复杂的系统最好的方法就是图,现在游戏里渲染管线都在推frame graph管理渲染资源,打包的时候用build graph类似的东西去判断资源依赖
我之前有过想法,对这种复杂的任务网,是不是也可以用一个quest graph这种东西去描述,从而自动化判断哪些情形漏判了。
但…想法是好的,做起来目前没有想到很好的办法。因为除开一些简单的npc状态判断方便设置(比如npc生死状态,位置,阵营),其他很多时候是合不合理是一个主观判断而不是纯机械式逻辑判断。比如一个人背叛了你,结果你发现还能触发指示他干活的对话。当然可以通过给每个行动对话设置各种条件来解决,但需求是复杂的,条件越多,越容易漏设错设,当你需要给一个对话选项加一堆条件的时候,本质还是人脑在判断了

所以chatgpt流行之后,我在想,可不可以通过图遍历当前npc在某个节点的所有状态上下文,把这个上下文输入给gpt ai,然后再输入所有对话选项,让他去判断有没有不太合理的对话选择。
肯定不可能百分百对,但是可以标记ai高度怀疑有问题的点,协助人工纠错

—— 来自 S1Fun

评分

参与人数 1战斗力 +1 收起 理由
t09mmc + 1 好评加鹅

查看全部评分

回复

使用道具 举报

     
发表于 2024-4-4 00:37 | 显示全部楼层
RTLordCaptain 发表于 2024-4-4 00:21
rpg maker连改个自己的属性系统都没那么容易吧

万事都往全局FLAG/变量里写就完事了。
其实很符合屎山代码风格。

只要是静态的功能,基本上没有实现不了的。
毕竟图灵机就是这回事,展平一切复用逻辑,拿空间堆性能。
回复

使用道具 举报

     
发表于 2024-4-4 00:44 | 显示全部楼层
我steam版的articy3使用时间超过500小时了。虽然绝大多数时长都是在挂机干别的(调试or写代码or摸鱼打别的游戏),没怎么写过对话,不过姑且还是分享一点使用经验吧。
articy的功能虽然很强,但用它制作大型项目前最好调查清楚它能做什么,以及会有哪些坑。它对crpg式对话的支持非常强,也可以作为一个一条龙式的策划工具,把各类数据有条理地配置在里面。

首先是收费策略和版本。steam有版本较老的单人买断版,如果确认是单人开发的话可以直接买这个,价格还算亲民。如果想兼顾多人协作的话,要么订阅它昂贵的多人版,要么干脆就换别的工具。我做过一点不严谨的研究。简单来说,articy对它的文件写有保护(每个条目都记录了哈希值),只有它的程序能合法地修改文件内容,你没法直接用git一类的外部工具合并不同分支上的修改。一旦这么做,articy会拒绝读取你修改后的文件。
articy的编辑器功能还算比较强,它的对话是层层嵌套的结点,支持比较复杂的跳转,拿来写对话很方便。写作完成后可以一键进入沉浸模式。比如crpg经典的对话树结构,你要做的就是写完对话节点,设置几个参数,然后就能直接在编辑器里以游戏的形式预览了。另外,我个人用得最多的是把它当做填表工具用。我的物品属性,合成表啥的全都用这个软件管理。它的属性自定义功能还算灵活。用到目前为止,它几乎能完全满足我的需要(但坑还是有的,就不细说了)。随便放一张截图:

本地化我稍微实验了一下,articy3是可以做的,不过实现方法有点丑陋。最新的订阅版支持更好。
另外编辑器本身有一些坑点,撤销键不好使,删错东西的时候就很尴尬。文本框有时会录入一些意料外的空白符号,要在游戏引擎那边处理一遍。
然后,现在假定你在编辑器里把你要写的文本,要改的数据都改好了。要把这些数据导入游戏,可以使用官方提供的插件,比较傻瓜式,数据会自动包装成可以直接访问的类。比如这是一个遍历并初始化所有物品模板的流程:





对话系统我在上一个烂尾的游戏里做过,没太搞明白。目前这个还没来得及做,就先不提了。
所有的这些数据也可以先一键导出为xml格式,再用别的方法加载到游戏里(运行效率自然更高点,也更灵活)。
但不管是哪种方法,都不是开箱即用的一条龙服务。如果你真的刚刚起步的话,我觉得光是数据导入这步就够折腾了。官方几乎没有提供文档,得翻他的demo学api的用法。然后像是物品的类要怎么写,对话系统要怎么实现,等等业务层面的东西,至少articy本身是不提供的,也别指望能全靠其他的插件。说实话,我完全不认为以你目前的水平能一个人搞定这么大的工程。你这步子太太太太大容易扯到蛋。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 1战斗力 +1 收起 理由
mintslime + 1 好评加鹅

查看全部评分

回复

使用道具 举报

发表于 2024-4-4 00:47 | 显示全部楼层
twine
回复

使用道具 举报

     
发表于 2024-4-4 01:03 | 显示全部楼层
105gun 发表于 2024-4-4 00:44
我steam版的articy3使用时间超过500小时了。虽然绝大多数时长都是在挂机干别的(调试or写代码or摸鱼打别的 ...

另外讲一个比较怪的现象。可能是ui配色和布局的原因,我开着这个软件的时候往往写不出东西。对话和长文本我一般是用word写完再复制黏贴进去。
回复

使用道具 举报

     
发表于 2024-4-4 04:27 | 显示全部楼层
GuardHei 发表于 2024-4-4 00:34
厘清依赖复杂的系统最好的方法就是图,现在游戏里渲染管线都在推frame graph管理渲染资源,打包的时候用bui ...

但是好像生成式AI就是不太能稳定地作判断吧,有时候它自己就会因为AI幻觉产生逆天逻辑
像你说的背叛这种如果没有定义一个人物关系的变量,那从程序代码上这层矛盾根本就没法体现,那其实任何自动分析都不可能找到问题。人能看到问题是因为人可以理解“这两个人关系变差了”这一层隐含的状况,而且对话上下文能不能直观地体现这点也是不一定的,如果写的不太直接那真人(事先不理解剧本的)也可能看不出来。理论上GPT可以试试但我不太看好它能理解过于复杂的隐含矛盾
回复

使用道具 举报

     
发表于 2024-4-4 04:28 | 显示全部楼层
Tring 发表于 2024-4-4 00:37
万事都往全局FLAG/变量里写就完事了。
其实很符合屎山代码风格。

很快就会变得连自己都看不懂吧
回复

使用道具 举报

     
发表于 2024-4-4 04:32 | 显示全部楼层
すぴぱら 发表于 2024-4-4 00:32
专注文案和任务就用固定的游戏框架往里面填字也没什么不好的

非程序员真的不要研究在代码上加花样没头的 ...

问题是非专业人士不代表对游戏系统没有想法啊,而且越是非专业人士,没有方便的自动功能辅助,单用flag管理事件不是更容易出错
RM想魔改官方的东西门槛其实挺高的因为基本没有文档
理论上既不需要专业编程又有自由定制空间的才是最好的
回复

使用道具 举报

     
发表于 2024-4-4 10:57 来自手机 | 显示全部楼层
本帖最后由 Tring 于 2024-4-4 10:58 编辑
RTLordCaptain 发表于 2024-4-4 04:32
问题是非专业人士不代表对游戏系统没有想法啊,而且越是非专业人士,没有方便的自动功能辅助,单用flag管 ...

理论上不存在无编程门槛又能高度定制的系统。高度定制是建立在高度抽象的基础上的,而抽象正是编程的基本素养。
越便捷的东西越具体,越具体的东西越缺乏定制空间。
回复

使用道具 举报

     
发表于 2024-4-4 12:04 | 显示全部楼层
RTLordCaptain 发表于 2024-4-4 04:27
但是好像生成式AI就是不太能稳定地作判断吧,有时候它自己就会因为AI幻觉产生逆天逻辑
像你说的背叛这种 ...

想要一步到位解决这个问题目前看来还是没希望,所以我只是想能不能慢慢逼近这个目标
ai肯定是不完全准的,就得看有没有训练特化的可能,只要有80%的准确度,我觉得作为助手就是有效率提高的意义的

—— 来自 S1Fun
回复

使用道具 举报

     
 楼主| 发表于 2024-4-4 22:54 来自手机 | 显示全部楼层
铁甲钢弹 发表于 2024-4-3 23:24
楼主几年前好像发过同样类型的主题
翻了下这几年的收藏夹,感觉这么几篇文章可能有点帮助:
* indie ...

是的,那时候只是有一个大概的想法,这几年在找到可以摸鱼稳定的工作结婚养宝宝考证之余,尽力抽空学习了一点编程,写了大量的脚本和文案,读了各种乱七八糟的书。
果然还是不能闭门造车,论坛上大手子好多,还是要多交流多学习,也感谢你发的文章
回复

使用道具 举报

     
 楼主| 发表于 2024-4-4 22:55 来自手机 | 显示全部楼层
感谢大家热情的建议和讨论,还是要多跟大家交流啊!不能闭门造车,我本来没对这个提问贴报多大希望来着……包括对网状任务结构设计的思考,楼上的大手子们也给我很多启发,谢谢大家!
回复

使用道具 举报

     
发表于 2024-4-4 23:11 来自手机 | 显示全部楼层
Tring 发表于 2024-4-4 10:57
理论上不存在无编程门槛又能高度定制的系统。高度定制是建立在高度抽象的基础上的,而抽象正是编程的基本 ...

理论上是这样但rm你不抠他那个基本没文档的js 代码基本就没啥定制性了...
回复

使用道具 举报

     
发表于 2024-4-4 23:12 来自手机 | 显示全部楼层
GuardHei 发表于 2024-4-4 12:04
想要一步到位解决这个问题目前看来还是没希望,所以我只是想能不能慢慢逼近这个目标
ai肯定是不完全准的 ...

问题是怎么才能针对一些未知的逻辑问题进行针对性训练呢...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-11-15 00:51 , Processed in 0.214444 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表