This member has provided no bio about themself...

Image RSS Feed Latest Screens
Forest Skyland Skyland
Blog RSS Feed Report abuse Latest Blog: Unreal Development Kit Game Programming with UnrealScript Book Review

0 comments by YamahaAlex37 on Mar 3rd, 2012

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. 


Groups
Blackout Studios

Blackout Studios

Developer & Publisher with 6 members, must apply to join

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...

CryENGINE  Developers

CryENGINE Developers

Fans & Clans group with 398 members, open to all members

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

Level Design Group

Level Design Group

Hobbies & Interests group with 581 members, open to all members

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...

Post comment Comments
gene1234
gene1234 Mar 6 2012, 1:46pm says:

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

+1 vote     reply to comment
moci
moci Oct 7 2011, 5:05pm says:

Hi, I thought I'd answer here because I didn't want to sidetrack your thread any longer.

I'm currently not in a position to begin modding or start/enter a project where others depend on me. Also my laptop would drop dead if it would tried to run the CE editor.

+1 vote     reply to comment
Helmlock
Helmlock Aug 24 2011, 10:47am says:

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

+1 vote     reply to comment
YamahaAlex37
YamahaAlex37 Aug 24 2011, 11:00am replied:

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.

+1 vote     reply to comment
BetaNium
BetaNium Mar 6 2011, 3:19pm says:

Hey thanks for commenting our game Bob the Blob!

+1 vote     reply to comment
BigBird
BigBird Aug 19 2006, 6:41am says:

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.

+1 vote     reply to comment
Post a Comment
click to sign in

You are not logged in, your comment will be anonymous unless you join the community today (totally free - or sign in with your social account on the right) which we encourage all contributors to do.

2000 characters limit; HTML formatting and smileys are not supported - text only

Level
Avatar
Avatar
Offline Since
Mar 18, 2012
Country
United States United States
Gender
Male
Member Watch
Track this member
Accolades
CryENGINE  Developers
Statistics
Activity Points
264
Rank
8,997 of 468,364
Watchers
3 members
Time Online
9 hours
Comments
50
Site Visits
1,686
Profile Visitors
4,354 (1 today)
Contact
Private Message
Send Now
Email
Members Only
Helmlock
Helmlock friends since Mar 5, 2012
fragfest2012
fragfest2012 friends since Oct 2, 2011
Duruk
Duruk friends since Sep 22, 2011
Mkilbride
Mkilbride friends since Oct 2, 2011
Setis
Setis friends since Feb 1, 2010
Angryfly
Angryfly friends since Dec 11, 2011
architectts
architectts friends since Aug 19, 2011
Noesis_Interactive
Noesis_Interactive friends since Nov 29, 2010
dataframe
dataframe friends since Nov 8, 2011
SonicTheHedgeTrimmer
SonicTheHedgeTrimmer friends since Sep 9, 2011