Book Image

Unreal Development Kit Game Programming with UnrealScript: Beginner's Guide

By : Rachel Cordone
Book Image

Unreal Development Kit Game Programming with UnrealScript: Beginner's Guide

By: Rachel Cordone

Overview of this book

Unreal Development Kit is the free edition of Unreal Engine—the largest game engine in existence with hundreds of shipped commercial titles. The Unreal Engine is a very powerful tool for game development but with something so complex it's hard to know where to start.This book will teach you how to use the UnrealScript language to create your own games with the Unreal Development Kit by using an example game that you can create and play for yourself. It breaks down the UnrealScript language into easy to follow chapters that will quickly bring you up to speed with UnrealScript game programming.Unreal Development Kit Game Programming with UnrealScript takes you through the UnrealScript language for the Unreal Development Kit. It starts by walking through a project setup and setting up programs to write and browse code. It then takes you through using variables, functions, and custom classes to alter the game's behavior and create our own functionality. The use and creation of Kismet is also covered. Later, using replication to create and test multiplayer games is discussed. The book closes with code optimization and error handling as well as a few of the less common but useful features of UnrealScript.
Table of Contents (18 chapters)
Unreal Development Kit Game Programming with UnrealScript
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Time for action – Replicating a variable


Let's keep working with AwesomeWeaponUpgrade, and add in some variable replication.

  1. First let's add a new variable to the class:

    var int TestInt;
  2. Now let's write the replication block. We've already discussed bNetDirty, which we'll be using here. If any replicated property is changed, bNetDirty will be set to true. We need to let the game know that our variable needs to be replicated in that case.

    replication
    {
        if(bNetDirty)
            TestInt;
    }
  3. Now for PostBeginPlay. We'll leave it as simulated, but we'll call different functions for the client and the server.

    simulated function PostBeginPlay()
    {
        if(Role == ROLE_Authority)
            SetTimer(1.0, true, 'ServerTest');
        else
            SetTimer(1.0, true, 'ClientTest');
    }
  4. Now for ServerTest :

    function ServerTest()
    {
        TestInt++;
        `log("ServerTest:" @ TestInt);
    }
  5. And ClientTest :

    simulated function ClientTest()
    {
        `log("ClientTest:" @ TestInt);
    }
  6. Now compile the code.

  7. ServerTest will only be called...