售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
Unreal Development Kit Game Programming with UnrealScript
Table of Contents
Unreal Development Kit Game Programming with UnrealScript
Credits
About the Author
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why Subscribe?
Free Access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Time for action – heading
What just happened?
Pop quiz – heading
Have a go hero – heading
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. Project Setup and Test Environments
System requirements
Minimum requirements:
Time for action – Installing the UDK
What just happened?
Directory overview
Binaries
Development
Engine
UDKGame
Using external programs to code
ConTEXT
Time for action – Installing ConTEXT
What just happened?
Time for action – Configuring ConTEXT
What just happened?
UnCodeX
Time for action – Installing UnCo
What just happened?
Time for action – Configuring UnCodeX
What just happened?
nFringe
WOTgreal
Setting up a project
Time for action – Setting up AwesomeGame
What just happened?
Have a go hero – More editing of ini files
Compiling and testing
Time for action – Compiling and testing AwesomeActor
A quick note about comments
Pop quiz – Files and directories
Summary
2. Storing and Manipulating Data
Variables and arrays
Booleans
Time for action – Using booleans
What just happened?
Integers and floats
Time for action – Using integers
What just happened?
Time for action – Using floats
What just happened?
Strings
Time for action – Using strings
What just happened?
Enums
Time for action – Using enums
What just happened?
Arrays
Time for action – Using arrays
What just happened?
Dynamic arrays
Time for action – Using dynamic arrays
What just happened?
Have a go hero – Copy an array
Structs
Time for action – Using structs
What just happened?
Vectors
Time for action – Using vectors
What just happened?
Rotators
Time for action – Using rotators
What just happened?
Variable properties
Default properties
Time for action – Using the default properties block
What just happened?
Editable variables
Time for action – Editable variables
What just happened?
Config variables
Time for action – Creating config variables
Have a go hero – Editable configurable variable?
What just happened?
Common operators
Standard arithmetic
Time for action – Math!
What just happened?
Modulo
Time for action – Using modulo
What just happened?
Comparisons
Time for action – Comparisons
What just happened?
Logical operators
Time for action – Using logical operators
What just happened?
Have a go hero – Writing logical statements
Concatenation
Time for action – Concatenation
What just happened?
Variable functions
Ints
Floats
Strings
Vectors
Rotators
Flow control
If else
Time for action – Using if/else
What just happened?
For
Time for action – Using the for statement
What just happened?
While
Time for action – Something
What just happened?
Do until
Switch
Time for action – Using switches
What just happened?
Return
Goto
Pop quiz – Variable madness!
Summary
3. Understanding the Class Tree
What is a class?
Time for action – All classes are created equally
What just happened?
Inheritance
Time for action – Examining inheritance
What just happened?
Time for action – Making a custom weapon
What just happened?
Time for action – Experiments with inheritance
What just happened?
Function overriding
Time for action – Creating a custom GameInfo and PlayerController
What just happened?
Time for action – Experiments with function overriding
What just happened?
Actors as variables
Time for action – Experiments with Actors as variables
What just happened?
Have a go hero – Keeping references to spawned actors
Casting
Time for action – Casting Actor variables
What just happened?
Time for action – A practical example of casting for our game
What just happened?
Pop quiz – Chopping down the class tree
Summary
4. Making Custom Classes
Creating a class
Awesome Game quicky design document
Class breakdown
Time for action – Creating the weapon branch
What just happened?
Class modifiers
Placeable
Notplaceable
Abstract
Time for action – Using abstract
What just happened?
Native
Config
Hidecategories
Time for action – Hidecategories
What just happened?
Hidedropdown
Actors versus objects
Common UnrealScript classes
The GameInfo
Time for action – Expanding AwesomeGame
What just happened?
Time for action – SHOOT NOW!
What just happened?
Time for action – Customizing the Pawn class
What just happened?
Have a go hero – A different end condition
The Controller
Time for action – Expanding the Controller
What just happened?
Time for action – No, my left!
What just happened?
The Pawn
Time for action – Detecting collisions to give our Pawn damage
What just happened?
Time for action – Making the TestEnemies move
What just happened?
The HUD
Time for action – Using the HUD
What just happened?
Have a go hero – Kills on the HUD
Pop quiz – Figuring out Functions
Summary
5. Using Functions
What's your function?
Creating and calling functions
Time for action – Writing a function
What just happened?
Time for action – Calling custom functions
What just happened?
Time for action – What's your malfunction?
What just happened?
Local versus instance variables
Local Variables
Time for action – Using local variables
What just happened?
Actors as local variables
Time for action – Using Actors as local variables
What just happened?
Time for action – Modifying the projectile
What just happened?
Function parameters and modifiers
Function parameters
Time for action – Using function parameters
What just happened?
Time for action – Out parameters
What just happened?
Return values
Time for action – I'd like to return this please
What just happened?
Function modifiers
Native
Const, NoExport, latent, and iterator
Event
Simulated, server, client, reliable, and unreliable
Singular
Exec
Time for action – Filthy cheater
What just happened?
Static
Time for action – Using static functions
What just happened?
The super
Using timers
Time for action – Just five more minutes mom
What just happened?
Putting it all together
Time for action – Expanding Awesome Game
What just happened?
Have a go hero – Displaying a timer
Pop quiz – All about functions
Summary
6. Using States to Control Behavior
It's a state of mind
Creating a state
Time for action – Writing a state
What just happened?
Switching between states
Time for action – Switching states
What just happened?
Function overriding in states
Red state, blue state, no state, new state?
Time for action – Multiple personalities
What just happened?
Non-state functions
Time for action – Calling non-state functions
What just happened?
Time for action – Non-state functions from inside a state
What just happened?
State changes and detection
BeginState
Time for action – BeginState
What just happened?
EndState
Time for action – EndState
What just happened?
State detection
Time for action – Using state detection functions
What just happened?
Have a go hero – Rewriting the SetMaterial calls
Subclassing states
Time for action – Subclassing the Seeking state
What just happened?
Keywords, labels, and latent functions
Keywords
Time for action – Using ignores
What just happened?
Labels and latent functions
Time for action – Do we really need to give labels to everything?
What just happened?
Like a boss
The cleanup job
Time for action – Reverting our code
What just happened?
Attack of Schellenberg
Time for action – Creating the abstract base class
What just happened?
Time for action – Creating and spawning the boss
What just happened?
Time for action – I like you, I kill you last
What just happened?
Time for action – Rage mode activate
What just happened?
Have a go hero – Subclassing
Pop quiz – Using states
Summary
7. Working with Kismet
Overview of Kismet
A simple introduction
Time for action – Using Kismet
What just happened?
Building complexity
Time for action – A more complex Kismet sequence
What just happened?
Time for action – Bug fixing time!
What just happened?
Kismet actions
Creating Kismet actions
Time for action – Creating Kismet actions
What just happened?
Using variables in Kismet actions
Time for action – Using variables in Kismet
What just happened?
Kismet handler functions
Time for action – Using handler functions
What just happened?
Time for action – Differentiating Kismet inputs
What just happened?
Have a go hero – The toggle input
Kismet conditions
Time for action – What condition my condition was in
What just happened?
Kismet events
Time for action – The cleanup job
What just happened?
Creating and triggering a Kismet event
Time for action – Our first Kismet event
What just happened?
Giving the event some meaning
Time for action – Moving functionality into Kismet
What just happened?
Further expanding our Kismet
Time for action – Setting the wave size
What just happened?
Have a go hero – Expanding the Kismet
Supported events
Time for action – Using SupportedEvents
What just happened?
Time for action – Creating a custom SupportedEvent
What just happened?
Latent actions
Time for action – Creating a latent action
What just happened?
Pop quiz – Kismet craziness!
Summary
8. Creating Multiplayer Games
The server-client relationship
One state to bind us all
Testing network code
Setting up the server
Time for action – The server batch file
What just happened?
Setting up the client
Time for action – The client batch file
What just happened?
Fixing Awesome Game
Time for action – Unbreaking the player
What just happened?
Time for action – Unbreaking the game
What just happened?
The GameReplicationInfo class
Time for action – Making the GameReplicationInfo
What just happened?
Fixing enemy fleeing
Time for action – RUN AWAY!
What just happened?
Time for action – Bossing around
What just happened?
Replicating function calls
Replication function modifiers
Reliable versus Unreliable
Client functions
Time for action – Setting up for the client function
What just happened?
Time for action – Using the client function
What just happened?
Server functions
Time for action – Using a server function
What just happened?
Simulated functions
Time for action – Setting up the map
What just happened?
Time for action – Using simulated functions
What just happened?
Time for action – COMBO BREAKER!
What just happened?
Role and authority
Role and RemoteRole
Time for action – Examining Role and RemoteRole
What just happened?
Time for action – Respect my authority!
What just happened?
NetMode
Time for action – Checking the level's NetMode.
What just happened?
Replicating variables
The replication block
Time for action – Replicating a variable
What just happened?
Replication variables
ReplicatedEvent
Time for action – Using ReplicatedEvent
What just happened?
Have a go hero – The Replication, The!
Pop quiz – Replication
Summary
9. Debugging and Optimization
Compiler errors
Time for action – Preparing for brokenness
What just happened?
Time for action – A new script package
What just happened?
Time for action – Breaking the class itself
What just happened?
Time for action – Breaking some more code
What just happened?
Time for action – Misleading errors
What just happened?
Time for action – Captain obvious to the rescue!
What just happened?
Time for action – Setting up a twofer
What just happened?
Time for action – Mal-function
What just happened?
Time for action – Taking care of other function errors.
What just happened?
Time for action – Actor variable errors
What just happened?
Time for action – Other variable errors
What just happened?
Debugging
Accessed none
Time for action – Dealing with Accessed None
What just happened?
Time for action – Fixing an Accessed None
What just happened?
Time for action – Accessed None in function parameters
What just happened?
Using the log
Time for action – Setting up a scenario
What just happened?
Time for action – Debugging using the log
What just happened?
Optimization
The profiler
Time for action – Using the profiler
What just happened?
Clock / UnClock
Time for action – Using Clock and UnClock
What just happened?
Best practices
Pop quiz – Errors and conditions
Summary
10. Odds and Ends
Using Components
Time for action – Adding a Component to an Actor
What just happened?
Time for action – Component compiler error
What just happened?
Interacting with Components
Time for action – Components as variables
What just happened?
Have a go hero – Using SetStaticMesh
A practical example
Time for action – Creating a toggleable flashlight
What just happened?
DLLBind
Time for action – Using DLLBind
What just happened?
Final Thoughts
Other Resources
Pop quiz – Components and DLLBind
Summary
A. Pop Quiz Answers
Chapter 1, Project Setup and Test Environments
Chapter 2, Storing and Manipulating Data
Chapter 3, Understanding the Class Tree
Chapter 4, Making Custom Classes
Chapter 5, Using Functions
Chapter 6, Using States to Control Behavior
Chapter 7, Working with Kismet
Chapter 8, Creating Multiplayer Games
Chapter 9, Debugging and Optimization
Chapter 10, Odds and Ends
Index
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜