• UE3客户端服务器GamePlay框架


    客户端(当前玩家)与服务器对应关系图:

    整体上看,UE3的GamePlay框架使用的是MVC架构

    橙色的Actor对象及橙色箭头相连的成员变量只会被同步给Owner客户端

    Controller:控制器,包括PlayerController和AIController

    InventoryManager:玩家武器管理器

    Inventory:玩家武器链表

    黄色的Actor对象及黄色箭头相连的成员变量会被同步给所有的客户端

    Actor的WorldInfo变量:指向地图的Main关卡实例

    a. 关卡ULevel的Actor数组索引为0的Actor对象为当前关卡的WorldInfo实例

    b. 游戏世界UWorld中存放着Main关卡和其他关卡(UWorld* GWorld为一个root类型的UObject全局变量)

        ULevel* PersistentLevel为Main关卡

       TArray<ULevel*> Levels为Main关卡和其他关卡的集合

    c. 在UGameEngine::LoadMap函数中载入新地图时,会释放上一个地图的Main关卡和其他关卡,然后创建新地图的Main关卡和其他关卡

    d. LevelStreaming只能用于释放和加载其他关卡Level,不能释放Main关卡

    e. 在游戏过程中Spawn出来的Actor,都会放在Main关卡中,并将其WorldInfo变量指向Main关卡实例

    f. 其他关卡Level中的Actor的WorldInfo变量也是指向Main关卡实例的

    Pawn:玩家和载具

    UTWeaponAttachment:武器3P

    该对象并不没有走同步机制,服务器通过同步class<UTWeaponAttachment>类型信息,让各个客户端独占创建UTWeaponAttachment

    GameReplicationInfo(GRI):用于保存游戏实例相关数据

    a. 在GameInfo的PreBeginPlay函数中被Spawn出来,并将其设置给WorldInfo.GRI

    PlayerReplicationInfo(PRI):用于保存各个玩家实例相关数据

    TeamInfo:队伍信息

    粉色的Actor对象只运行在服务器

    游戏实例(GameInfo)配置着当前玩法模式Pawn、Controller、GRI、PRI、HUD等类型信息

    AI控制器(AIController、UTBot)用于控制AI的行为

    绿色的为class类型

    灰色的为当前端自己创建出来的对象

    ⑥ 箭头说明

    (1)蓝色三角形箭头为直接派生关系,紫色三角形箭头为间接派生关系(即省略了中间的继承对象)

    (2)普通箭头为聚合关系(即为某个其成员变量)

    扩展阅读

    udn:游戏类型技术指南Gametype Technical Guide

    udn:入门指南: 游戏性元素Getting Started: Gameplay Elements

    udn:基础游戏快速入门Basic Game Quick Start

    udn:角色技术指南Characters Technical Guide

    udn:相机技术指南Camera Technical Guide

    udn:载具系统技术指南Vehicle System Technical Guide

    udn:武器系统技术指南Weapon System Technical Guide

    客户端(其他玩家)与服务器对应关系图:

    本地玩家的PlayerController的详细架构图:

  • 相关阅读:
    CRM详细介绍网址
    element上传多图片
    多图片上传WebForm
    MemCached原理
    Redis的原理
    Ninject用法详解
    SQLsugar和unity 的用法
    json中的转义字符的处理
    fiddler
    orm多表关系
  • 原文地址:https://www.cnblogs.com/kekec/p/9180879.html
Copyright © 2020-2023  润新知