Giter Club home page Giter Club logo

nova2's People

Contributors

gyf1214 avatar soryu-ryouji avatar woct0rdho avatar

Stargazers

 avatar Linsy avatar  avatar  avatar Solicey avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

linsyking sepcnt

nova2's Issues

开发计划

框架使用语言: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
    • 有需求再做,【下一部长篇作品】估计没有需求

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.