This member has provided no bio about themself...

  • View media
  • View media
  • View media
  • View media
  • View media
  • View media
RSS My Blogs
Unreal Development Kit Game Programming with UnrealScript
By: Rachel Cordone

Review:

The first and most important thing you should consider when deciding if a book will be worth your time is determining the author's credibility. In this case, you will be very happy to note that Rachel Cordone's own indie studio (Stubborn Horse Studios) is the producer of the award winning Prometheus, a game commonly showcased when demonstrating UDK's capabilities. If you've seen or played a UDK tech demo, chances are it was Prometheus.

Immediately after investigating the table of contents, I had a feeling this book would suit me, for the following reason: I have trouble learning when material is presented to me in puzzle pieces, but a picture of the end result fails to be displayed. In the first chapter of this book alone: the UDK composition and structure is comprehensively explained, your integrated development environment (IDE) is installed and configured, and your first game is compiled and tested. Now that's giving me the whole picture! After reading chapter one, I was eager to manipulate this game into my own.

The next portion of this book does exactly what any good programming book should do: explain the fundamentals of programming, and in this case, object-oriented programming (OOP). One common misconception beginner programmers often make, is that there is only one "correct" choice when choosing a language. The reality is that all OOP languages (C, C++, C#, Python, etc) behave the same, and by learning one and becoming proficient in it, you will most certainly be able to easily interpret the rest. Fortunately UnrealScript, being an OOP itself, behaves no differently than other OOP languages. After reading the next two chapters filled with programming fundamentals like variables, data types (strings, integer, arrays, etc), operators, classes, functions, actors and more, I can honestly say that any first time programmer will be well suited and ready to adapt to any language, be it C++ or any other.

Let's take a brief look at an excerpt from this part of the book, to give you an idea of the simple level of understanding this book demonstrates:


uscript code:
If it's raining I'll take an umbrella.
Using an if statement, that sentence would be written like this:


<em>if(bRaining) </em>
<em>{ </em>


<em>bUmbrella = true; </em>


<em>} </em>


We could also add an else statement to it:
If it's raining I'll take an umbrella, otherwise I'll wear short sleeves.
That would be written like this:


<em>if(bRaining) </em>
<em>{ </em>


<em>bUmbrella = true; </em>


<em>}</em>
<em>else </em>
<em>{ </em>


<em>bShortSleeves = true; </em>

...this book actually contains a better entry-point and overview of object-oriented programming than any how-to programming book...

-Alex Crawford



So now that your comfortable with programming terminology and UnrealScript's syntax, the next few portions of the book have you getting down and dirty with the code. You'll experiment with inheritance by creating your own custom weapon, use function overrides to modify the player's camera, and use typecasting to apply an invisibility modifier to your player. Once your had plenty of practice manipulating the code, the next portion of the book has you creating your own classes from scratch. Some highlights taught while creating classes are collision detection, even more camera modification, and implementing a HUD!

The book doesn't slow down there; next your hit with functions. Functions are extremely powerful blocks of code that preform tasks. Let's take another look at a piece of code from the book:


uscript code:
<em>function UpgradeWeapon() </em>
<em>{ </em>


<em>if(CurrentWeaponLevel < MAX_LEVEL) </em>


<em>CurrentWeaponLevel++; </em>
<em>FireInterval[0] = FireRates[CurrentWeaponLevel - 1]; </em>


<em>if(IsInState('WeaponFiring')) </em>
<em>{ </em>


<em>ClearTimer(nameof(RefireCheckTimer)); </em>
<em>TimeWeaponFiring(CurrentFireMode); </em>


<em>} </em>
<em>AddAmmo(MaxAmmoCount);</em>
 

You'll be creating and expanding upon very powerful blocks of code in this manner to provide your game instructions.

Just as soon as you think you've learned enough to expand upon and create your own game, you realize your only half way through the book. The book then ventures into programming what is often thought to be (and can be) overly-complicated artificial intelligence (AI). After that, you get a (very) short break from programming, and learn about UDK's very powerful Kismet editor. Kismet can be used to provide powerful action and event procedures visually through UDK's intuitive editor. Right after you learn to use Kismet's editor, your back to programming and creating your own Kismet actions that can be used by your non-programming companions (told you it was a short break)!

Next, and very fortunately covered in this book, is what is often thought to be the most exciting feature in any game: multiplayer. The book teaches you all about the server-client relationship and setting up and connecting to a server. This chapter of the book is actually extremely extensive, and provides more knowledge about UDK multiplayer than you will ever likely accumulate by any other means.


Summary:

A common concern of entry-level game developers when choosing a game engine or programming language, is whether the skills they gain will be future-proof. In the case of game engines, developers should feel confident in choosing UDK with its extremely proven track record both in products created, and consistent monthly updates. As for UnrealScript, it is incredibly versatile and, for all practical purposes, offers the same depth of manipulation that modifying the engine's source code would, without the trouble.

Rachel Cordone never fails to provide a satisfactory entry-level explanation for everything, as well as in depth coverage for advanced usage. Overall, this book actually contains a better entry-point and overview of object-oriented programming than any how-to programming books I've read!

I confidently believe that anyone who studies this book will not only gain a firm knowledge of programming that can be carried into various languages, but also be able to put forth a quality production using Unreal Development Kit.


Start a group Groups
Level Design Group

Level Design Group

655 members Hobbies & Interests

Are you a Level Designer? Are you looking for help/support or other level designers? Then this is the group for you! Doesn't matter what you map for...

CryENGINE  Developers

CryENGINE Developers

418 members Fans & Clans

Welcome to the "CryENGINE 3 Developers" group . The CryENGINE 3 Developers group is all about creating levels, mod, Total modifications, addon's, machinima...

Blackout Studios

Blackout Studios

6 members Developer & Publisher

Blackout Studios is a contemporary Development Team, currently working on an upcoming mod title for Half Life 2. At this point in time, the modification...

Post comment Comments
gene1234
gene1234

Yo I am finished i need your help with coding it will be relased in 2 weeks for Beta

right after u get coding done its Pre-Beta public Testing

Reply Good karma Bad karma+1 vote
Helmlock
Helmlock

Hey Mate,
I was wondering what are you skilled in :)
I saw you around the forums and was hoping to add you to our dev team if youre interested that is :)
We're looking for :
Level Builders
Character Modelers
Animators
Programmers

Hope to hear from you soon

Reply Good karma Bad karma+1 vote
YamahaAlex37 Creator
YamahaAlex37

Im interested. SteamID? Mine is YamahaAlex37.

Most of my skill is in Source engine, but I have some modeling, texturing, C# and Java (learning C++) experience. Also extremely proficient web developer.

Reply Good karma+1 vote
BetaNium
BetaNium

Hey thanks for commenting our game Bob the Blob!

Reply Good karma Bad karma+1 vote
BigBird
BigBird

Your two mods requested for deletion have been archived instead of deleted for historical / linking / recording reasons.

PM me with any issues with this you may have.

Reply Good karma Bad karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account:

X