[找不到就问]游戏开发中的 ECS 经验请教? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lights
V2EX    问与答

[找不到就问]游戏开发中的 ECS 经验请教?

  •  
  •   lights 2021-01-04 16:29:40 +08:00 1966 次点击
    这是一个创建于 1748 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前是游戏开发,公司采用 ECS 思想做架构,但参考 Entitas 与云风大佬的博客,会觉得我或者我所在的公司对 ECS 的理解有些不够
    云风大佬的博客分享的干货不少,但想问问还有没有更多的经验分享呀

    我遇到的具体问题:

    • Entity A 产生 Entity B,其中 EntityB 中的参数动态的收到 EntityA 中的参数影响,这个时候是应当做一个专门的 System 处理这种参数的影响么?然后夹在 A 的 System 与 B 的 System 中间调用?
    • ECS 中的订阅、分发消息机制应不应该有?(而不是更改 Component 的状态,再让 System 去执行)
    • ECS 编写后,策划是如何参与到 ECS 系统的构筑的?

    我所在的公司是 ECS 与 OOP 混合的做法,所以会有一些混乱

    *游戏开发的 ECS 与 ECS 云服务重名,spam 严重,很难在 V 站搜到,所以我特意加了 游戏 ECS *有没有专门的 ECS 开发交流群呀

    11 条回复    2021-01-05 11:56:26 +08:00
    opengps
        1
    opengps  
       2021-01-04 16:34:21 +08:00
    先往简单里理解,ECS 只是一台虚拟机。
    然后再往架构里理解,ECS 可以轻松的横向拷贝机器数量,来实现负载均衡下的动态增加承载量。
    云弹性架构,往简单里去理解,也就这么点东西,往复杂里理解,还可以延伸出很多云产品,这类问题可以跟我聊聊,上云的入门级问题我应该能答上来不少
    opengps
        2
    opengps  
       2021-01-04 16:35:39 +08:00
    看博客介绍,ECS 一词似乎有些歧义,对于 ECS 游戏框架和 ECS 云服务器,建议区分下
    lights
        3
    lights  
    OP
       2021-01-04 16:36:50 +08:00
    @opengps #2 标题中有游戏开发呀
    opengps
        4
    opengps  
       2021-01-04 16:43:56 +08:00
    @lights 好吧,无视我的 1#2#回复,我对游戏开发不在行,如果是 socket 通信层那么会有一点共同话题
    ryV60s
        5
    ryV60s  
       2021-01-04 17:19:04 +08:00
    1. 你说的参数应该是个单独的 Component,只需要一个单独处理这个 Component 的 System 就行
    2. ECS 的 System 就有点类似订阅和分发了,有它自己的执行顺序
    3. 策划不懂 ECS
    lights
        6
    lights  
    OP
       2021-01-04 17:46:26 +08:00
    @ryV60s #5
    策划的部分,主要是我们是做 roguelike 游戏,需要策划调整数值和编排玩法,但 ECS 设计下的系统,不知道要在哪一部分让策划介入

    只是管理数值的话(表格管理 component数值),太简单了,不够 rogue,而让策划编排 system,又感觉哪里不太对
    ryV60s
        7
    ryV60s  
       2021-01-04 18:15:52 +08:00
    @lights #6 策划只提需求,只配表,不会关心你们的具体实现,更不会去了解什么 System 。

    程序要做的只是把策划的需求细分,整理出不同的模块,做到能让策划随意组合起来用。
    (至于是配表组合还是单独写编辑器组合看策划需求了)
    Go1c
        8
    Go1c  
       2021-01-04 18:31:23 +08:00
    不说引擎的吗? unity 可以单独使用部分 dots 技术,逻辑 UI 还是面向对象要香。如果全套 ecs 的话 有点痛苦
    lights
        9
    lights  
    OP
       2021-01-05 09:33:51 +08:00
    @Go1c #8
    ECS 与游戏引擎是独立的呀
    levelworm
        10
    levelworm  
       2021-01-05 10:12:27 +08:00 via Android
    Google 里头一大把呀,搜 ECS game programming 好了
    lights
        11
    lights  
    OP
       2021-01-05 11:56:26 +08:00
    @levelworm #10
    啊,忘了这茬,我也搜一搜,感谢
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2547 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 02:19 PVG 10:19 LAX 19:19 JFK 22:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86