有人知道 factorio 怎么实现的吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Game Engines
Unreal Engine
MyCryENGINE
pabupa
V2EX    游戏开发

有人知道 factorio 怎么实现的吗?

  •  
  •   pabupa 2021-01-03 12:30:32 +08:00 via Android 5178 次点击
    这是一个创建于 1794 天前的主题,其中的信息可能已经有所发展或是发生改变。
    玩到后面每一帧至少都要有几十万几百万次的计算吧,,,它是怎么做到的?
    18 条回复    2021-01-04 11:06:19 +08:00
    pabupa
        1
    pabupa  
    OP
       2021-01-03 12:53:17 +08:00 via Android
    而且最神奇的是 cpu 和 gpu 的负载都不大。而同类型的游戏 anno1800 ( 3d 的),不仅负载高,而且内存和显存全都占满。
    cest
        2
    cest  
       2021-01-03 13:07:42 +08:00
    负载不大?

    1 核有难,15 核围观吧
    另外 dev 认为最大 bottleneck 是 ram 频宽
    改 multithread 收益也不大
    VZikl1
        3
    VZikl1  
       2021-01-03 13:08:14 +08:00 via Android
    factorio 用的 allegro 引擎吧
    fuxiuyin
        4
    fuxiuyin  
       2021-01-03 13:27:09 +08:00
    感觉异星工厂应该是基于物品的,每一帧应该是先计算物品移动,然后就能知道有多少机械爪需要计算,之后就知道有哪些制造工厂需要更新,这样想算下来每一帧的计算量也不大。物品也不是每一帧都需要计算全部的,有些物品在传送带上卡着,前面的不动就肯定不会动。
    himself65
        5
    himself65  
       2021-01-03 13:33:49 +08:00   1
    多看看官方 blog,里面写了很多优化的文章。

    说白了就是优化做的好,没别的……

    https://www.factorio.com/blog/
    himself65
        6
    himself65  
       2021-01-03 13:37:28 +08:00   3
    补充#2 的多线程
    https://www.factorio.com/blog/post/fff-215 这篇文章里说了多线程互相窃取 cache 甚至会让程序跑的更慢,最后说有良好的数据结构再用多线程会更好
    secondwtq
        7
    secondwtq  
       2021-01-03 13:44:33 +08:00 via iPhone
    Anno 1800 和 Factorio 是”同类型”的么……
    himself65
        8
    himself65  
       2021-01-03 13:52:16 +08:00
    @pabupa 和 Factorio 同类型的游戏应该是 Rimworld 和 Prison Architect 这种(从开发角度),不过 Prison Architect 明显已经放弃治疗了
    Girlphobia
        9
    Girlphobia  
       2021-01-03 13:52:46 +08:00 via Android
    @secondwtq Factorio 和 Anno 系列的流水线一定程度上是同一类型的,不过总体游戏性上两个差距还是有些大的。

    @pabupa
    Anno 1800 的画面全部拉满跟 Factorio 也不是一个量级的。不过 Anno 1800 20 万人口的档玩上两个小时能占用接近 30 GB 的内存也是很令人无语。
    secondwtq
        11
    secondwtq  
       2021-01-03 14:04:19 +08:00   1
    @himself65 #6 我怎么看怎么感觉他说的是 false sharing,然后说祖传引擎不好改,干脆就弃疗了
    说白了还是一核有难七核围观 ...
    learningman
        12
    learningman  
       2021-01-03 14:06:53 +08:00
    有人跟我说过,现代 CPU 近似认为每秒执行一亿次运算
    Revenant
        13
    Revenant  
       2021-01-03 17:15:24 +08:00
    之前就一直听说异星工厂的多核优化不好,很吃 CPU 主频
    千瓶流水线和万瓶流水线是两个世界
    mchong
        14
    mchong  
       2021-01-03 20:25:42 +08:00
    @secondwtq 确实是。在我的 5900x 上是一核有难二十三核围观。。。没多少东西,但是帧率就降低到不到 40 了。
    chenyu8674
        15
    chenyu8674  
       2021-01-03 20:26:08 +08:00
    居然没人提到 Mindustry……
    开源,玩法跟 Factorio 差不多,不知道有没有可供 LZ 参考的
    https://github.com/Anuken/Mindustry
    honjow
        16
    honjow  
       2021-01-03 21:08:19 +08:00 via iPhone
    单核游戏
    shad0walk
        17
    shad0walk  
       2021-01-04 09:52:23 +08:00
    实例化吧,一个 mesh,N 个 instances
    levelworm
        18
    levelworm  
       2021-01-04 11:06:19 +08:00
    @VZikl1 我去居然是这个上古引擎。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3546 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 05:05 PVG 13:05 LAX 21:05 JFK 00:05
    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