zoukankan      html  css  js  c++  java
  • 游戏性基础系统的组件(1)

    游戏引擎之间的重要差异,莫过于其游戏性组件设计与实现的差别。然而,不同引擎之间也有出奇多的共同模式。

    【一】单一庞大的类层次结构,如虚幻引擎

    这种风格使用OOP中的继承多于组合,这显然不符合现代OOP所倡导的多用组合原则。

    也会引发很多问题,如多重继承的致命钻石,冒泡效应(虚幻引擎中的Actor类)

    但是max-in类可以稍微缓解上面的问题

    【二】基于组件的模型

    类似unity的架构模型,游戏对象类GameObject只是一个容器,本身不具备任何行为和属性(Transform除外)

    游戏对象的各种行为和属性被分解到各种组件上。想要什么功能直接往GameObject上挂一个组件即可

    这种组合多于继承的风格现在很受欢迎啊,即使在游戏领域之外也是如此。

    【三】纯组件模型

    把组件模型发挥极致,连GameObject都不要了,但是组件本身要维护一个标识符,用来标记它现在是属于哪一个游戏对象的。

    但是组件和组件以及游戏对象之间的通信变得比较麻烦了。

    参考:《游戏引擎架构》

  • 相关阅读:
    python 文件操作
    高级函数
    运行cadence dpi例子出现的问题
    我对验证的一些理解【zz】
    archlinux 下挂载ntfs分区,显示"permission denied"
    vs2012安装SharePoint 2013的项目模版
    Iptables工具的使用
    webmin简介
    cassandra简介
    linux中端口扫描
  • 原文地址:https://www.cnblogs.com/dongerlei/p/6472572.html
Copyright © 2011-2022 走看看