游戏开发中有必要做到逻辑与显示分离吗?如果有,如何做呢?

0 条评论


  • 3

    琪露诺游戏喜好偏软。

    wanziShitake电视VS电脑 赞同

    我觉得逻辑也会根据具体内容的不同而分成很多层。不一定是明确的“逻辑一部分显示一部分”,而是每一层有每一层的逻辑。哪怕是显示层,也会有一些轻量级的逻辑,比如多帧动画播放的控制、常用特效的shader(哪怕它们涉及到“攻击判定”之类偏向逻辑的概念)、三维人物的蒙皮动画。

    显示的东西和逻辑分离确实是个好方向,但具体要分离到哪一步却值得每个游戏各自讨论。因为纯粹的显示是不存在的。抽象本身不能带来有效信息,如果觉得某些画面要素和逻辑要素强烈关联,那么把它们合起来,哪怕是纯程序员的角度,也是一种合理设计。

    另一个小要点是有些数据可能需要序列化(存档、中断),这些就需要用单独的逻辑对象来处理;相反能包含在画面中的,往往是不需要保存状态、不需要序列化的东西;哪怕需要保存,也可以通过其他数据间接恢复。

    发布于 2019-08-11 19:18:08 2 条评论


  • 0

    Shitake自赞臭,友赞跛,别人赞,响当当

    听完描述给我一种你也没写过什么复杂点的web应用的感觉

    要是写复杂点的单页应用也不会这么想啊


    能严格mvc单分一层就完事了的 大概得十几年前的web应用

    发布于 2019-08-13 21:23:15 1 条评论


  • 0

    HarrixMischief managed

    其实就一句话:

    他们这么做是为的就是照顾到不懂代码,甚至不懂计算机工作原理的人。

    在他们看来一个游戏中的物体包括形状,材质其实和他们的血量,魔法值一样都是属于某个物体的属性,它们就是一体的。

    并非说哪个对,哪个错。前者更方便维护是以工程角度来看的好处。但后者更方便非专业人员理解是从设计角度出发。


    顺便补充一下,我以前自己用SFML库做过一个2D小游戏。出于和题主一样的考虑我定义了一个人物的类只包含逻辑功能,然后他的成员中引用一个sprite实例来实现显示功能。后来拿到老外的论坛上,很多大佬都纠结我“为什么不把sprite继承出来,建立一个人物子类”。显然逻辑和显示不分离是一种很常见的设计方式。

    更新于 2019-08-11 00:58:37 0 条评论


  • 0

    菠萝面包我要做一辈子游戏

    显示用于逻辑验证 OwO
    属于外围
    不推荐外围影响核心逻辑

    发布于 2019-08-06 14:37:51 0 条评论

  • 登录奶牛关账号即可参与讨论

{{question['follower_count']}} 个玩家关注

...

相关元素

相关问题

如何评价Stem 引擎?

3人关注 1个回答

如何使自己的游戏支持编辑器以及mod?

16人关注 1个回答

请问这些2d游戏里的水面倒影效果是如何实现的?

30人关注 3个回答