-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
请求解答一些疑惑 #77
Comments
From: Berrysoft Strawberry_Str@hotmail.com LJL 同学你好: Ayaka 作为一个还在开发初期的项目,能够得到关注,还有这样多的问题提出,我感到非常开心。在回答这些问题之前,我想有必要先简单说明一下这个项目的背景。 Ayaka 是一个 OSPP 2022 的项目。这个项目的题目即为《使用 Rust 开发的视觉小说引擎》。之所以在项目要求中就提出使用 Rust,我想可能是基于两方面考虑:其一,Rust 的用户大多数喜欢 RIIR,即将许多软件用 Rust 重写,期望能够提高效率的同时保证安全性;其二,Rust 大多数时间用于系统开发,但是作为一门新兴的语言,也不应自作清高,如果能够在一些看似寻常的领域拓展一些生态,也许是有益的。 作为项目的参加者,我开发 Ayaka 的动力,可以说更加私人一些:我想自己创作一本视觉小说,但是对于现有的引擎都不太满意。正好借着这个机会可以满足一些私人愿望。如果它能够给视觉小说引擎的生态提供一些帮助,那就更好了。 现在就下面几个问题来回答: 一, 为什么要引入新语言?这个新语言指的是什么呢?如果是说描述文件的 YAML 格式语言,那么一个引擎总要有一个自己定义的描述语言,不论是声明式的还是什么别的样子的。如果是说 Ayaka Script,可以去仓库看一看最新的动向。最近我们刚刚把它变成了插件,成为了一个可选项。如果有谁不想写这种非常简单的脚本,考虑到 python 已经在 WASM上编译成功,我们甚至可以引入一个 python 插件允许创作者写 python。其实创作初期我也考虑过引入成熟的脚本语言,比如Lua;Rust 的生态中也有一些别具一格的脚本语言。但是大部分都不太能定制。我希望脚本语言尽可能简单,让更复杂的功能放到插件中。如果去写 WASM 插件,Rust 的开发工具链允许你写单元测试,自然也可以调试。但是 Ayaka Script 现在还没有调试器,文档有一些,但是不全(在写了在写了)。 二, 引入 Web 并不是必须的。Ayaka 的一个特点是前后端分离,web 前端并不是必须的,它只是一个例子,去展示这个引擎都能做到什么。最近我也在认真考虑 Unity 的可行性,不过 interop 有点麻烦,最近时间也不太多,所以一直没做。当然 Unity 对 VCS 不友好也是一个原因。Web 的另一个原因的确是 Live2D,我想在尽可能短的时间内让这个引擎看起来更漂亮一些。如果有人有需求,可以和我们联系,一起搞一个 Unity 前端我想是可以的。如果没人联系的话,那我就可能慢慢造一个…… 三, 最近刚引入了打包功能。本身 media 插件以及国际化支持相关的功能,对于文件路径有着比较强的要求,基本上是利用路径管理资源,然后打包可以用 FRFS 的命令行(Ayaka 仓库的 Makefile 有例子)。至于场景调试,web 嘛……大家都懂。动画特效和转场效果在考虑,也许以后会引入。 四, 对话树我想是一个比较遗憾的事情。Ayaka 提供的描述文件实际上比较自由,它允许循环的出现,各种跳转是动态生成的,因此没办法做出来准确的树。但是如果有需求,也许我们可以在有限的条件下生成。至于简化设计的工具,我从一开始就是出于简化开发的考虑设计 Ayaka 的。最近自己也拿它尝试写了一些简单的剧本。虽然这个引擎也许还有这样那样的问题,但是它已经初步满足了我自己的要求。因此我也非常希望能够有更多的人提出自己的要求,也好让我们能够定下下一步的开发目标。 以上是我的答复。其实我觉得这样的问题最好去仓库那里提 issue,方便管理也方便解决。感谢你的提问,也感谢大家的关注! 祝好 |
From: ljlorljl ljlorljl@163.com 感谢您的回复,相信这个项目能够加快视觉小说专有引擎的更新变革。 |
From: ljlorljl ljlorljl@163.com 尊敬的王 宇逸 : 我是提问人,看了您的回复我觉得这一切疑问都变得可以理解。 我质疑引入新语言主要是针对Ayaka Script,毕竟引入新语言会带来问题,但是您看样子也是思考过这个问题。 诚然我的质疑有些粗浅,但是作者也给出了自己的回应和思考,期待您的成长。 Rust作为一个新兴的语言,在各方面都不是很完善,包括生态。而且跨平台会面临很多Interop的问题,可见作者也是已经有规划了。 不过我还是建议做场景管理,这会让一切工作变得轻松! 祝好 |
From: ljlorljl ljlorljl@163.com
Topic: 请求解答一些疑惑
尊敬的王 宇逸学长:
很高兴能看到您在2022年11月5日发表的演讲:使用Rust开发的视觉小说引擎,因为您的引擎开发项目能够促使下一代视觉小说引擎的开发(目前大多数视觉小说要么使用老旧的吉里吉里,要么使用大才小用的unity),我十分赞赏您开发的Ayaka。我将您的演讲实况转载到了哔哩哔哩(视频链接:https://www.bilibili.com/video/BV1wM411m7oN ),同时在评论当中b站用户提出的问题我想请您解答一下:
你们思路有大问题,,,,
“
你为什么要引入新语言,你们有专门的调试器吗?有专门的文档吗?如果我是视觉小说作者,我要考虑的是上手成本
为什么要引入Web?直接走DX或者Vulkan不好吗?一个视觉小说,最重要的是一定的效果表现力。如果说rust生态有局限,重写就没有意义,如果说课程要求,当我没说。live2d是个好选择,但有时候有没那么必要。
在我看来,视觉小说应该注重资产管理,你们有没有资产管理的工具?有没有场景调试的工具?有没有预制一些动画特效和转场效果?
视觉小说的对话树你们有吗?帮助大家简化设计的工具有吗?如果你是从根本上解决这些问题,拿熟悉的语言去重写一个引擎是有必要的,否则就是重复造轮子
“
期待您的答复!
此致
LJL
The text was updated successfully, but these errors were encountered: