UE5¶àÈËÔÚÏß¿ª·ÅÊÀ½çÄ£°å£º¼Ü¹¹²ð½âÓë¸´ÖÆÏµÍ³ÊµÕ½ÅäÖÃ

À´Ô´£º ×÷Õߣº µã»÷£º
UE5¶àÈËÔÚÏß¿ª·ÅÊÀ½çÄ£°åµÄºËÐļܹ¹Î§ÈÆ·þÎñÆ÷ȨÍþÄ£ÐÍ¡¢World PartitionÁ÷ËÍÓëReplication GraphÍø¸ñ¿Õ¼ä»¯Èý²ã½á¹¹´î½¨¡£ÕâÌ××éºÏÖ§³Å´ó¹æÄ£Íæ¼ÒͬʱÔÚÏßµÄÍøÂçÓÎÏ·¿ª·¢£¬´Óµ×²ã¸´ÖÆ»úÖÆµ½ÉϲãÍæ·¨¿ò¼Ü¾ùÓÐÃ÷È·µÄʵÏÖ·¾¶¡£

·þÎñÆ÷ȨÍþÄ£ÐÍÊǶàÈ˼ܹ¹µÄ»ù´¡¡£UE5ÍøÂç²ÉÓÿͻ§¶Ë·¢ËÍÊäÈë¡¢·þÎñÆ÷´¦ÀíÂß¼­¡¢·þÎñÆ÷Ïò¿Í»§¶Ë¸´ÖÆ×´Ì¬±ä¸üµÄ±Õ»·¡£ÕâһģÐÍÌìÈ»·ÀÖ¹±¾µØÊý¾Ý´Û¸Ä£¬µ«ÒýÈëÑÓ³ÙÎÊÌ⣬Ðèͨ¹ý¿Í»§¶ËÔ¤²âÓëУÕý»úÖÆÃÖ²¹¡£·þÎñÆ÷ÀàÐÍÑ¡Ôñ¾ö¶¨ÏîÄ¿²¿Êð·½Ïò£º×¨Ó÷þÎñÆ÷ÊʺϾº¼¼Àà»ò³Ö¾ÃÊÀ½ç£¬ÎÞäÖȾ¿ªÏú£¬Ðè¶ÀÁ¢Íйܣ»¼àÌý·þÎñÆ÷ÊʺϺÏ×÷Àà»ò¾ÖÓòÍøÄ£Ê½£¬Ò»ÃûÍæ¼Ò³äµ±Ö÷»ú£¬ÁãÍйܳɱ¾¡£

¸´ÖÆÏµÍ³µÄʵÏÖ´ÓActor¼¶ÊôÐÔ¿ªÊ¼¡£ÔÚ¹¹Ô캯ÊýÖÐÉèÖÃ`bReplicates = true`±ê¼ÇActor¿É¸´ÖÆ£¬`NetUpdateFrequency`¿ØÖÆÃ¿Ãë¸üÐÂÆµÂÊ£¬`MinNetUpdateFrequency`É趨ÏÐÖÃʱ×îµÍË¢ÐÂÂÊ¡£ÊôÐÔ¸´ÖÆÊ¹ÓÃ`UPROPERTY(ReplicatedUsing=OnRep_FunctionName)`ÉùÃ÷£¬ÔÚ`GetLifetimeReplicatedProps`ÖÐͨ¹ý`DOREPLIFETIME`ºê×¢²á¸´ÖÆÊôÐÔ¡£Ìõ¼þ¸´Öư´³¡¾°µ÷Õû£º`COND_OwnerOnly`ÏÞÖÆ½öͬ²½¸øÓµÓÐÕߣ¬ÊÊÓÃÓÚµ¯Ò©¡¢±³°üµÈ˽ÓÐÊý¾Ý£»`COND_InitialOnly`½öÉú³Éʱͬ²½Ò»´Î£¬ÓÃÓÚ¶ÓÎéID¡¢Íâ¹ÛµÈ¹Ì¶¨ÐÅÏ¢¡£Ô¶³Ì¹ý³Ìµ÷Ó÷ÖΪÈýÀࣺ`Server`±ê¼ÇµÄRPCÓɿͻ§¶ËÇëÇó·þÎñÆ÷Ö´ÐйؼüÂß¼­£¬Ðè´îÅä`WithValidation`УÑé·À×÷±×£»`NetMulticast`ÏòËùÓпͻ§¶Ë¹ã²¥±íÏÖЧ¹û£»`Client`½ö֪ͨӵÓÐÕ߿ͻ§¶Ë¡£

Replication GraphÊÇÖ§³Å°ÙÈËÒÔÉÏÍæ¼ÒµÄ¹Ø¼ü×é¼þ¡£Ä¬Èϸ´ÖÆÏµÍ³¶ÔËùÓÐActorÖð¸ö¼ì²éÏà¹ØÐÔ£¬³¬¹ý64ÃûÍæ¼ÒʱCPU¸ºÔض¸Ôö¡£Replication GraphÌæ»»Ä¬ÈÏÂß¼­£¬Í¨¹ýGrid Spatialization½«ÊÀ½ç»®·ÖÎªÍø¸ñµ¥Ôª£¬Ã¿¸ö¿Í»§¶Ë½ö½ÓÊÕ¸½½üµ¥ÔªÄÚµÄActor¸üС£ÆôÓò½Öè°üÀ¨£ºÔÚ²å¼þ´°¿Ú¹´Ñ¡Replication Graph²¢ÖØÆôÏîÄ¿£»´´½¨¼Ì³Ð×Ô`UReplicationGraph`µÄ×Ô¶¨ÒåC++ÀࣻÔÚ`DefaultEngine.ini`ÖÐÅäÖÃ`ReplicationDriverClassName`Ö¸Ïò×Ô¶¨ÒåÀࣻÔÚ`.Build.cs`ÖÐÌí¼Ó`ReplicationGraph`ÒÀÀµÄ£¿é¡£×Ô¶¨ÒåÀàÐèʵÏÖ`InitGlobalGraphNodes`³õʼ»¯È«¾Ö½ÚµãÓë`RouteAddNetworkActorToNodes`½«Actor·ÖÅäµ½¶ÔÓ¦Íø¸ñ½Úµã¡£

World PartitionÓë¹Ø¿¨Á÷ËÍÖ§³Å¿ª·ÅÊÀ½çµØÍ¼¡£2km x 2kmÒÔÉϵĵØÍ¼Í¨¹ýWorld Partition×Ô¶¯·Ö¸î³É¶à¸öµ¥Ôª£¬¸ù¾ÝÍæ¼ÒλÖö¯Ì¬¼ÓÔØÐ¶ÔØ¡£Ä¬ÈÏÓÎÏ·µØÍ¼`DefaultGameOpenWorld`×÷Ϊ¿É±à¼­µÄ¿ª·ÅÊÀ½çÈë¿Úµã£¬Íæ¼ÒÔÚÏàͬµØÍ¼ÖÐÁª»ú¼ÓÈë¡£µØÍ¼¹¹½¨Ê¹ÓÃWorld MachineÉú³É¸ß¶ÈͼÓëÎÆÀíͼµ¼ÈëUE5£¬µØÐβÄÖÊʹÓûùÓÚÎïÀíäÖȾ±íÏÖÑÒʯ¡¢²ÝµØµÈ±íÃæÖʸУ¬LODϵͳ¸ù¾ÝÊÓ¾àÇл»Ä£ÐÍϸ½ÚµÈ¼¶¡£

ÔÚÏß×Óϵͳ¼¯³ÉÌṩƥÅäÓëÁª»úͨµÀ¡£Epic Online ServicesÖ§³Ö¿çƽ̨»á»°¹ÜÀí£¬ÐèÔÚEOS¿ª·¢ÕßÃÅ»§´´½¨²úÆ·Óë¿Í»§¶Ë²ßÂÔ£¬ÅäÖÃË«ÒòËØÑéÖ¤µÄ×éÖ¯ÕË»§¡£Steamworks SDK¼¯³Éͨ¹ýOnlineSubsystem¿ò¼ÜÅäÖã¬ÔÚÏîÄ¿ÉèÖÃÖÐÒýÓÿâÎļþ·¾¶£¬ÀûÓÃSteam API´¦ÀíÍøÂçЭÒéÓë¼ÓÃÜÃÜÔ¿½»»»¡£NULL×ÓϵͳÓÃÓÚͬһ˽ÓÐÍøÂçÄڵı¾µØ²âÊÔ£¬¼ì²â»á»°¿É¼ûÐÔ¡£

´æµµÏµÍ³ÔÚ¶àÈËÔÚÏß»·¾³ÐèÖ§³Ö·þÎñÆ÷ȨÍþÓë¿Í»§¶Ëͬ²½¡£´æµµ×é¼þ±ê¼ÇΪSaveGameµÄ±äÁ¿ÓÉ·þÎñÆ÷дÈëÓë¶ÁÈ¡£¬¼ÓÔØºóµÄ״̬×Ô¶¯¾µÏñµ½ËùÓпͻ§¶Ë£¬°üÀ¨Íí¼ÓÈëµÄÍæ¼Ò¡£Ô­×ÓдÈë¡¢CRCУÑéÓë´æµµ°æ±¾Ç¨ÒÆÁ´±£ÕÏÊý¾ÝÍêÕûÐÔ¡£´óÐÍÊÀ½ç´æµµ°´µØÍ¼·Ö¿é£¬Ã¿ÕŵØÍ¼½ö¼ÓÔØ×ÔÉíÊý¾Ý£¬²»±äActor²»ÏûºÄ»¹Ô­³É±¾¡£

Iris¸´ÖÆÏµÍ³×÷ΪʵÑéÐÔÌæ´ú·½°¸£¬½è¼øFortnite°ÙÈËÕ½¾Ö¾­Ñ飬ͨ¹ý·ÖÀëÓÎÏ·Ïß³ÌÓë¸´ÖÆÏß³ÌÊý¾Ý¡¢Á¿»¯×´Ì¬¸±±¾¼õÉÙ°º¹óÔËË㣬ʵÏÖ¸ü¸ß²¢·¢Óë¸üµÍ·þÎñÆ÷³É±¾¡£ÏÖÓи´ÖÆÊôÐÔÓëRPC¶¨Ò徭С·ùÐ޸ļ´¿É¼æÈÝ£¬µ«µ±Ç°ÈÔΪ¿ÉÑ¡¹¦ÄÜ£¬Éú²ú»·¾³Ðè½÷É÷ÆÀ¹À¡£