找回密码
 立即注册
查看: 471|回复: 0

【GAMES104】14.引擎工具链高级概念与应用

[复制链接]
发表于 2022-9-22 18:40 | 显示全部楼层 |阅读模式
游戏制作一览

Genres 体裁
世界编辑器

世界编辑器窗口一览



  • Viewport窗口

    • 编辑器代码不要发布出去,之前项目就有出现过这样的乌龙,很尴尬。
    • 所有东西都是可编辑的

  • 对象窗口(根据用户方便,组织场景中的不同对象)

    • 组或者目录形式:

      • Layer
      • Levels

    • Tree view:Outliner(Unity 的Hierarchy)

  • 对象属性窗口(Unity的Inspector)
  • 文件浏览器(Unity的Project)
鼠标选取



    • Ray Casting(比较耗性能,没有缓存)
    • RTT(需要额外绘制一个高亮RTT)




鼠标选取


  • 对象移动编辑
地形编辑器



    • 高度图
    • 纹理图
    • 植被:树实例、装饰物分布图
    • 刷地形
    • 刷植被

  • 环境编辑器

    • 光源
    • 天空
    • 道路
    • 河流
    • 。。。
    • 规则系统

      • 描述一些比如树的生长规则、河流的生长规则,然后用程序化生成
      • 挑战:程序化生成后,如何进行局部修改不影响全局
      • 加条路,本来的树直接给干掉了


编辑器插件架构


  • Covered
  • Distributed
  • Pipeline
  • Onion rings




版本控制
版本号的必要性
设计叙事工具

现在很多游戏有点像交互电影了
TimeLine



线性叙事



反射和游戏逻辑

Java反射


使用反射生成代码


抽象语法树





Picoloo使用Clang
从抽象语法树生成Schema

  • 解析类名、字段名、字段类型等
  • 在内存中构建一个临时的Schema
实际使用的时候,通过添加Tag实现精准反射


通过添加宏定义来实现反射控制


反射访问器


代码渲染

  • 自动化生成代码
协同编辑

合并冲突

  • 资产分割

    • 分层(地形层、植被层、房屋层)
    • 分割世界(地图分块)

  • 一个对象一个文件(预制)

    • 小文件多,操作系统不友好

  • 实时编辑

    • 怎么解决Undo/redo?
    • 怎么解决Operation merge
    • 加锁(不能同时操作同一个对象)

作业


  • PA04:Tool Chains.pdf
  • 理解反射tag
  • 使用反射系统收集文件信息
  • 展示这些文件信息
  • 写文档

本帖子中包含更多资源

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

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-12-22 21:32 , Processed in 0.090530 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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