Skip to content

开发计划 #1

@woct0rdho

Description

@woct0rdho

框架使用语言:C#

演出脚本使用语言:GDScript

NovaScript(流程图定义+剧情文本+演出脚本)格式:就用原来的,但是把演出脚本的Lua替换成GDScript

  • NovaScript parser
    • 可以先不parse演出脚本
    • 由于Godot不能分割asm,第三方插件可能无法使用?
    • 演出脚本使用gdscript
    • 所有C#类需要继承GodotObject才能被gdscript使用(直接继承RefCounted即可)
    • 如果是struct之类的东西需要从Godot.Collections.Dictionary转换
  • 基本的GameState
    • 标题界面+开始游戏按钮
    • 对话框
    • GameState
    • Godot不需要Unity的DontDestroyOnLoad,所以不需要写一个NovaCreator然后用它加载NovaController
      • NovaController直接改成单独的Node即可
      • 不考虑Scene切换的问题
    • GameState之类的东西可以不做成Godot的node,而是直接让NovaController拿着引用
      • 所有的Singleton都改成从NovaController初始化
      • 如果某个Singleton需要被演出脚本使用,需要继承RefCounted
  • 选项
  • 演出脚本
    • 可以先用print来测试
  • AssetLoader
  • 图片
    • 从做第一个前端组件开始,考虑把前端(view)和后端(model)分离,演出脚本操作的是model,存档存的也是model,这样跳转和快进等功能会更方便
  • 立绘合成系统
    • Godot支持给不是power of two的图片加mipmap吗,支持的话很多东西就好办了
    • qiankanglai在群里说过,如果立绘的图层先画前面再画后面,并且只有最后一层允许有透明,可以减少overdraw,但是不知道会不会影响mipmap https://github.com/qiankanglai/Nova/tree/sprite_comp
  • 头像
  • BGM
    • Godot可以设置音乐的loop begin point,我们不用自己写了
  • 音效
  • 语音
  • 动画系统
    • 最好不要自己写,看看能用什么包
  • 对话框的文字动画
  • CameraController
  • VFX
    • 如果能用Godot现有的功能实现我们需要的shader variant和metadata,就不要自己写
    • 转换shader名字的格式现在应该不用了
  • 转场
  • 加载场景(相当于PrefabLoader
  • TimelineController
  • 视频
  • 变量
  • 脚本热加载

一个小目标:【下一部长篇作品】开始做演出之前,把演出系统基本做完,然后慢慢做UI


  • 预加载系统
  • 随意缩放窗口
  • 对话框的完整功能
    • 隐藏对话框
    • 用脚本控制对话框位置、皮肤
    • 对话结束图标
    • 对话框动画?
    • 多个对话框的支持等做完机械恋心应该就知道怎么做了
  • 鼠标菜单
    • 按照机械恋心的13个按钮来做
  • 警告框
    • 我感觉目前的Alert系统太over engineer了,可以直接把Alert和Notification拆成两个类,我们不会再加更多种类的Alert了(除非先重写窗口管理系统。。)
    • 实践证明警告框的标题是不需要的,可以删了
  • 通知框
    • Nova里用了VerticalLayoutGroup来控制通知框的竖直位置,但是它也会控制通知框的水平位置,可能会跟通知框水平移动的动画冲突,可以按机械恋心来做
  • 存档系统
    • 考虑重写CheckpointSerializer,把全局存档分成三个文件,相当于不要自己搞链表,交给文件系统来搞
  • 存档界面
    • 先按机械恋心来做,对触摸屏和手柄的支持比青箱好
  • 文本回顾界面
    • 我们把LogController的名字改成BacklogViewController吧,因为log这个词在其他地方用得太多了
  • ViewManager

存档界面和文本回跳做完之后,调试演出会更方便


  • UI动画
  • 设置界面
    • 考虑手柄支持,可以把所有设置排列得比较整齐,像很多主机游戏一样
  • 快捷键系统
  • 图片鉴赏
    • 机械恋心做完之后,我们可能会把图片鉴赏改成跳转到游戏里特殊的node
  • 音乐鉴赏
  • 手柄支持
  • 立绘裁剪工具
  • 自动语音
  • 小游戏
    • 有需求再做,没需求的话先把GameState里的那些东西照搬过来
  • I18n
    • 有需求再做,【下一部长篇作品】估计没有需求

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions