Cogito, ergo sum

Difference between revisions of "User:00zX"

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
m
(Proposal - Replication: - bleh cleanin up/beletin)
Line 261: Line 261:
 
===Replication===
 
===Replication===
 
====Status: On Hold====
 
====Status: On Hold====
-[[User:00zX|00zX]] 20:49, 3 April 2009 (UTC)<br>
+
--[[User:00zX|00zX]] 22:06, 20 April 2010 (UTC)<br>
 
:[[Replication]] / [[Replication_(computer_science)]]
 
:[[Replication]] / [[Replication_(computer_science)]]
 
:Concept of servers and clients.(NetMode/Relevancy/Reliability)
 
:Concept of servers and clients.(NetMode/Relevancy/Reliability)
::*''Declaring Replication'' using the [[Legacy:Replication_Block|Replication Block]]
 
 
::*''Function Replication'' using the replication block?
 
::*''Function Replication'' using the replication block?
 
::* Booleans Declared in actor that are useful in replication
 
::* Booleans Declared in actor that are useful in replication
http://wiki.beyondunreal.com/Introduction_to_replication#
 
<br>
 
 
*NetMode (concept)
 
*NetMode (concept)
 
*Replication Block
 
*Replication Block
Line 279: Line 276:
 
*Relevance (actor replication??)
 
*Relevance (actor replication??)
 
**Role and RemoteRole
 
**Role and RemoteRole
*Info
+
*ReplicationInfo
**ReplicationInfo
+
**GameReplicationInfo (GRI)
***GameReplicationInfo (GRI)
+
**PlayerReplicationInfo (PRI)
***PlayerReplicationInfo (PRI)
+
**LinkedReplicationInfo (LRI)
***LinkedReplicationInfo (LRI)
+
 
<div class="hidden-block"><span class="hint"></span><div class="hidden">
 
<div class="hidden-block"><span class="hint"></span><div class="hidden">
===Replication Block===
 
[[UE3:Actor_(UT3)]] - link to replication block<br>
 
Previously in UT200x '''Reliable''' and '''Unreliable''' were used as part of the [[Legacy:Replication_Block|replication block]] as of [[Unreal Engine 3]] this is no longer the case with the keywords becoming [[Functions#Network_modifiers|function modifiers]].
 
 
'''UT200x'''
 
 
'''replication'''
 
'''{'''
 
  ''reliable/unreliable'' '''if (''' ''replication condition'' ''')'''
 
    ''identifiers'';
 
'''}'''
 
 
'''UT3'''
 
 
'''replication'''
 
'''{'''
 
    '''if (''' ''replication condition'' ''')'''
 
    ''identifiers'';
 
'''}'''
 
 
: ''Identifiers'' can be of many types, certain types however arnt allowed like dynamic arrays.
 
 
'''Explain Why'''
 
can loose sync! it is possible to crosscheck dynamic arrays but it would come at a cost.
 
 
[[http://wiki.beyondunreal.com/Dynamic_array|Dynamic Array]]
 
'''Unlike any other data type in UnrealScript, dynamic arrays have absolutely no support for replication. Attempting to replicate a dynamic array variable will have no effect on the remote instance of that variable. Attempting to use a dynamic array as parameter of a [[replicated function]] will result in the parameter being empty when the function is executed on the remote side.'''
 
<br>
 
 
====Actor Replication====
 
====Actor Replication====
 
<br>
 
<br>
Line 388: Line 356:
 
'''Unreliable'''
 
'''Unreliable'''
  
=====Client=====
+
======Client======
 
<uscript>
 
<uscript>
 
/** Sets the clients weapon to use the replicated variables */
 
/** Sets the clients weapon to use the replicated variables */
Line 397: Line 365:
 
}</uscript>
 
}</uscript>
  
=====Server=====
+
======Server======
 
<uscript>
 
<uscript>
 
/** Gets the times from the weapons and sets them to the replicated variables */
 
/** Gets the times from the weapons and sets them to the replicated variables */
Line 411: Line 379:
  
 
Definition
 
Definition
:The [[Actor]] class defines the NetRole enumeration and two variables, [[Role and RemoteRole]], as follows:
+
:The [[Actor]] class defines the {{classgames|ENetRole}} enumeration and two variables, [[Role]] and [[RemoteRole]], as follows:
  
:*[[UE3:Actor_(UT3)#ENetRole]]
 
 
:*[[UE1:Actor_enums_(UT)#ENetMode]]
 
:*[[UE2:Actor_enums_(U2)#ENetRole]]
 
:*[[UE2:Actor_enums_(UT2003)#ENetRole]]
 
:*[[UE2:Actor_enums_(U2XMP)#ENetMode]]
 
:*[[UE2:Actor_enums_(UT2004)#ENetRole]]
 
<nowiki>{{category game enums|UT3|Unreal Tournament 3}}</nowiki>
 
 
<br>
 
<uscript>
 
enum ENetRole
 
{
 
ROLE_None, // No role at all.
 
ROLE_SimulatedProxy, // Locally simulated proxy of this actor.
 
ROLE_AutonomousProxy, // Locally autonomous proxy of this actor.
 
ROLE_Authority, // Authoritative control over the actor.
 
};
 
var ENetRole RemoteRole, Role;
 
</uscript>
 
<br>
 
====usage:====
 
Just like any other Enum really.
 
 
<uscript>
 
<uscript>
 
if (Role == ROLE_Authority)
 
if (Role == ROLE_Authority)
Line 458: Line 403:
 
===NetMode===
 
===NetMode===
 
Definition
 
Definition
:The [[UE3:WorldInfo_(UT3)|WorldInfo]] (previously Level Class [ut2kx]) class defines the [[UE3:WorldInfo_(UT3)#ENetMode|NetMode]] enumeration and two variables, [[Role and RemoteRole]], as follows:
+
:The [[UE3:WorldInfo_(UT3)|WorldInfo]] (previously [[LevelInfo]] for most Unreal Engine games pre UT3/GOW) defines the {{classgames|ENetMode}} enumeration and two variables, [[Role]] and [[RemoteRole]], as follows:
  
:*[[UE3:WorldInfo_(UT3)#ENetMode]]
 
:**[[UE3:WorldInfo_internal_variables_(UT3)]]
 
 
:*In [[LevelInfo]] for most Unreal Engine games pre UT3/GOW
 
:**[[UE1:LevelInfo_(UT)#ENetMode]]
 
:**[[UE2:LevelInfo_(U2)#ENetMode]]
 
:**[[UE2:LevelInfo_(UT2003)#ENetMode]]
 
:**[[UE2:LevelInfo_(U2XMP)#ENetMode]]
 
:**[[UE2:LevelInfo_(UT2004)#ENetMode]]
 
 
 
<uscript>
 
var enum ENetMode
 
{
 
NM_Standalone, // Standalone game.
 
NM_DedicatedServer, // Dedicated server, no local client.
 
NM_ListenServer, // Listen server, local client+server.
 
NM_Client // Client only, no local server.
 
} NetMode;
 
</uscript>
 
 
'''Standalone game'''
 
'''Dedicated server, no local client'''
 
'''Listen server, local client+server'''
 
'''Client only, no local server'''
 
 
=====Examples=====
 
====usage:====
 
Just like any other enum really.
 
 
<uscript>
 
<uscript>
 
simulated event PostBeginPlay()
 
simulated event PostBeginPlay()
Line 501: Line 417:
 
// Code here will only be executed on a server.
 
// Code here will only be executed on a server.
 
}
 
}
}</uscript>
+
}
or similarly like in the Role and RemoteRole example:<br>
+
 
<uscript>
+
 
simulated event PostBeginPlay()
 
simulated event PostBeginPlay()
 
{
 
{
Line 519: Line 434:
  
 
===Useful Replication Properties===
 
===Useful Replication Properties===
 
+
const bool{{classgames|bNetTemporary}} : Tear-off simulation in network play.<br>
 +
const bool{{classgames|bOnlyRelevantToOwner}} : this actor is only relevant to its owner. If this flag is changed during play, all non-owner channels would need to be explicitly closed.<br>
 
====UT3 actor.uc====
 
====UT3 actor.uc====
 
<uscript>
 
<uscript>
 
// Networking flags
 
// Networking flags
var   const bool bNetTemporary; // Tear-off simulation in network play.
 
var   const bool bOnlyRelevantToOwner; // this actor is only relevant to its owner. If this flag is changed during play, all non-owner channels would need to be explicitly closed.
 
 
var transient bool bNetDirty; // set when any attribute is assigned a value in unrealscript, reset when the actor is replicated
 
var transient bool bNetDirty; // set when any attribute is assigned a value in unrealscript, reset when the actor is replicated
 
var bool bAlwaysRelevant; // Always relevant for network.
 
var bool bAlwaysRelevant; // Always relevant for network.
Line 562: Line 476:
  
 
'''UT2004'''
 
'''UT2004'''
 
NetUpdateFrequency
 
  
 
NetUpdateFrequency is another variable useful in replication. It effectively causes an otherwise relevant (not useful when the actor is not relevant) actor to be relevant NetUpdateFrequency times per second. This is useful when the data changes frequently but you only want periodic updates. For example, PlayerReplicationInfo contains a lot of data about the client. Stuff like the various player's pings may change quite frequently, and having the client keep track of such information would be quite a network hog. But since PlayerReplicationInfo has a NetUpdateFrequency of 2, it is only updated twice a second, which is much nicer for that player's bandwidth. The list of the current NetUpdateFrequency's for all UT classes are listed below:
 
NetUpdateFrequency is another variable useful in replication. It effectively causes an otherwise relevant (not useful when the actor is not relevant) actor to be relevant NetUpdateFrequency times per second. This is useful when the data changes frequently but you only want periodic updates. For example, PlayerReplicationInfo contains a lot of data about the client. Stuff like the various player's pings may change quite frequently, and having the client keep track of such information would be quite a network hog. But since PlayerReplicationInfo has a NetUpdateFrequency of 2, it is only updated twice a second, which is much nicer for that player's bandwidth. The list of the current NetUpdateFrequency's for all UT classes are listed below:

Revision as of 16:06, 20 April 2010

Works in Progress

Unreal Development Kit

UDK: Project Silky - Status: Prototype
UDK: GameDex Framework - Status: Design

Unreal Tournament 3

UT3: GameDex Framework - Status: Beta
Newtators-v1.9e - Status: Point Release
Attrition-v0.5pb - Status: Public Beta

Visual Studio Express C#

UScriptIt

Highlighters

UnrealWiki - Code Noir Redex Theme

Monobook-noir-alpha3.gif

Status: Alpha 9 (testing)

To Install copy the contents of the following page into your own 'User:[name]/monobook.css' page.

User:00zX/monobook.css
| W3C CSS Validator


Features
  • Dark Theme
  • High Contrast
  • Improved Readability
  • Highlighter adjustments for UScript, CSS and XML
  • Different coloured borders per GameNameSpace
  • Curved Borders in supporting browsers



Known Issues
  • UnrealScript Reference box has incorrect background colours.
  • interwiki links are wrong blue colour and dont have hoverover colours. (incorrect offset and incorrect coloured links, pretty bad. fixed jumping but links overlap {line height})
  • Redlinks on Tabs dont work.
  • Navigation and toolbox background still blue on discussion pages. (not sure if this fixed itself or not, perhaps per namespace)
  • Edit/Input boxes are still black text on white.


Pastebin - Code Noir Redex Theme

Status: Alpha 1

[Stylish User theme]

Proposal - Setting Up jEdit for UScripting

Step by step process of installing, setting up jEdit for use with Uscript. From start to finish, using/commiting to repository's and building using Apache Ant. A major portion of this tutorial is dedicated to giving you the knowledge to editing/customizing your programming environment to your liking (I do feel this can help to improve workflow).

Tools required for this tutorial:

  • jEdit - Programmers text editor
  • GIT - Source/Build Repository
  • Uncodex - UScript Class Browser
  • NSIS - Installer/Packaging

Introduction to jEdit


Introduction to UnCodex


Introduction to Git


Compiling using a simple Batch - Windows

Commandline option links for each UE version.

UDK - Simple Compile batch

Drive:\UDK\{UDK-Version}\Binaries\UDK.exe make -debug -intermediate -log=CompileLog.log -full
pause


Introduction to Ant for jEdit

Using Ant to package a release, both compressed file and Nsis2.0. Online Manual

Ideas

Using Ant scripts to commit to git repository.

Introduction to NSIS

NSIS

Creating an NSIS package script

Using the UDK installer?

Proposal - Replication

Replication

Status: On Hold

--00zX 22:06, 20 April 2010 (UTC)

Replication / Replication_(computer_science)
Concept of servers and clients.(NetMode/Relevancy/Reliability)
  • Function Replication using the replication block?
  • Booleans Declared in actor that are useful in replication
  • NetMode (concept)
  • Replication Block
    • Actor Replication (bools bnetinitial eg)
    • Variable Value Replication (using block)
      • Repnotify / ReplicatedEvents
    • Function call replication(UT2004)
  • Function call replication(UT3)
  • Reliability
  • Relevance (actor replication??)
    • Role and RemoteRole
  • ReplicationInfo
    • GameReplicationInfo (GRI)
    • PlayerReplicationInfo (PRI)
    • LinkedReplicationInfo (LRI)


Wiki

Contributions

Contact Me

IRC

00zX on EnterTheGame

Other/Profiles

E-mail 00zX or on