Documente Academic
Documente Profesional
Documente Cultură
Letter to Educators
Letter to Educators:
Letter to Educators
To provide feedback on the educational materials, contact
Dexter Chow at dexterchow@garagegames.com or post at
http://www.garagegames.com/community/forums/34. Dexter
Chow is the lead writer and is a former game design instructor at
the Art Institute. He is currently on the advisory committees of the
Art Institute and International Academy of Design and
Technology.
All documentation and educational materials associated with
Torque 3D 1.2 are free to use, modify, and distribute. Educators
are encouraged to use these educational materials for their own
classes.
GarageGames Associates
Become a GarageGames Associate if youre an educator who
wants to:
Assist in the development of curriculum materials.
Get an advanced peek at upcoming education initiatives.
Help steer future game pedagogies and curricula.
You can also direct students to search on the internet for third-
party tutorials and videos about Torque products.
Class 1
Class 1
Introduction to Game
Development: Lecture
1. Introduction to the Course
Teacher and class overview
Class administration
Syllabus review
Teacher and student introductions
What are class expectations?
Introduction to Game
Development: Lecture
3. How will students be graded?
Midterm and Final Tests 25%
Homework and Quizzes 25%
Labs and Final Project 25%
Participation and Presentations 25%
Class Materials:
What is This Class About?
Game Design Level Design
Class 1
Class Materials:
What is This Class About?
Art Scripting and Programming
Class 1
Class Materials:
Introduction Torque 3D
Class 1
Introduction to Game
Development: Conclusion
1. Lab:
Do a one-page description of a favorite game and a
memorable moment in that game
2. Presentation:
Take 5 minutes to describe your game and memorable
moment
Tell the class what you want to accomplish in taking this
class and in future game classes
3. Homework:
Read Lesson 1 and review class materials including the
Class Syllabus
Class 2
Class 2
Class Materials:
Jobs in the Games Industry
Programming and Art
Class 2
Class Materials:
Jobs in the Games Industry
Design
Class 2
Class Materials:
Game and Level Design
Class 2
Class Materials:
3D Technology Resources
Class 2
3. Quiz: Lesson 1
Developing an FPS in a 3D
World: Lecture
1. Basics of World Building in 3D
Cover Terminology while pointing out features of the
editor including scripting, datablocks, spawn points,
geometry and materials
Show characters and talk about collision, animation
and the differences between properties and
datablocks
Show weapon fire and weapon changes, describe
the concept of properties attached to objects
Class 3
Camera Features
Changing Views 1st and 3rd Free and Orbit
Class 3
Defensive Cover
Class 3
Choke Point
Class 3
Sniper Point
Class 3
Add Dumpster
Class 3
Developing an FPS in a 3D
World: Conclusion
1. Lab:
Create a checklist of items for the team to complete the
examples in the lab
Lab work will be verified. For example, the dumpster must
been added on each students computer
2. Quiz: Lesson 2
Documentation: Keyword
Search
Class 4
Datablock Editor
Copy Existing
Data and Set
Data Properties
Class 4
Shape Editor
Modify Your
Character Model
and Set Nodes
Class 4
Changing Models
Gideon Changing Materials
Class 4
3. Quiz: Lesson 4
Midterm
1. Lecture (part 1): Recap the first half of the course
Torsion
TorqueScript
TorqueScript is the name
of the scripting language
used by the Torque
game engines.
A scripting language is
like a programming
language, but a scripting
language is easier to
use.
Class 6
Functions
Canvas.setWindowTitle(getEngineName()@-@ $appName);
This line sets the title bar of the game window by concatenating
(or joining) three strings together:
The engine name
A hyphen
The value stored in the $appName variable.
Variables
Global variable A value that you will want to
access from any script file or any function. To
identify a variable as a global variable, put a
dollar sign ($) in front of the variable name.
Local variable A value that you will want to
access only in the scope of where the variable
was created. To identify a variable as a local
variable, put a percent sign (%) in front of the
variable name.
Class 7
Exec()
The exec() function is used to tell the game engine about other
script files.
exec(core/parseArgs.cs);
Breakpoints
Click in the grey area to the left of the line number to
identify this line as a breakpoint.
Class 7
Stepping
Line 68 is a call to the defaultParseArgs() function. Press
F11 to step into the function.
Class 7
Stepping
The core/parseArgs.cs file opens and the yellow arrow
stops at the first line being executed in the function
definition.
Class 7
Echo()
The echo() function is one of the logging functions that
prints information to the console window.
Class 7
exec("./myScriptingTests.cs");
When the game window appears, press the tilde key (~) to
open the console window, and look for the string that you
passed in the echo() function.
Class 7
function testArgs(%myString)
{
echo(">>>>> myString = " SPC %myString SPC
"<<<<<");
}
Class 7
testArgs(Hello);
Class 7
Function creatBarricades(%numBarricades,
%distanceApart, %startPos)
Class 7
testForLoop(5);
Class 7
Arrays
Arrays are variables that are used to store a set of values of
the same type (number, string, Boolean, and so on). To
access one of the values in the set, you use its index
number.
Class 7
function testArray()
{
// Create the array.
$dummyText[0] = "Lorum";
$dummyText[1] = "ipsum";
$dummyText[2] = "dolor";
$dummyText[3] = "sit";
$dummyText[4] = "amet";
testArray();
Class 7
While Loop
function testWhile(%myNumber)
{
while (%myNumber < 10)
{
echo("%myNumber =" SPC %myNumber);
Datablocks
A datablock is a set of properties that can be attached to an object.
Datablocks are a convenient way to set the same properties on
multiple objects of the same type. Additionally, datablocks only
contain properties that will not be modified during a game. This means
that the game engine can download datablocks once, before your
game starts, and then never need to download them again, which
saves network bandwidth during gameplay. In contrast, properties that
are expected to change during gameplay are set directly on objects.
Datablocks are like a suitcase that you travel with, that arrives at your
destination before you do.
For more information about datablocks, see Datablock Editor in the
online documentation. You also learned about datablocks in the
character lesson. In this lesson, the triggers datablock object is the
one that contains the callback function you will use.
Class 8
Datablocks
The panels on the right side of the World Editor change to the
Datablock Library and the Datablock properties panels.
Class 8
Shape Editor
Open the Shape Editor Load Soldier Model
Class 9
Shape Editor
Load Arms Load Weapon
Class 9
Key Terminology
EnvironmentAmbientLight is the lighting inside of
the Shape Editor. The bn_Gun_Root node is the top
node for the Weapon
mountPoint is where the weapon mounts to the
player so that they appear to be holding the
weapon
RetractionPoint is a combination of collision and
force. If the retraction point collides with an
object, it will retract the direction of movement
Muzzlepoint is the area of the muzzle where the
muzzle flash effect will occur
Class 9
Key Terminology
Ejectpoint is the node where the shell
casing will be ejected after firing
MuzzleFlash_LOD300 is the reference point
for a further muzzle flash on the soldier
gun at a specific level of detail (LOD)
The Eye node is the default camera
placement for the eye in first-person
The Bip001 nodes are the biped nodes
that correspond with the soldiers skeleton
Class 9
Weapon Sounds
In the
Datablock
Library, select
the New tab
and scroll down
to SFXProfile
Class 9
Weapon Sounds
Create New Datablock
dialog
Name your new datablock
RyderFireSound
Select
WeaponTemplateFireSound
in the Copy values from
dropdown
Press Create
Class 9
Weapon Sounds
Create another SFXProfile and name it
RyderReloadSound
Assign art/sound/weapons/wpn_ryder_reload.wav
to the fileName property
Create a third SFXProfile and name it
RyderSwitchinSound
Use the WeaponTemplateSwitchinSound from the
Copy values from dropdown
Assign
art/sound/weapons/wpn_ryder_switchin.wav for
the sound file
Class 9
Ammunition
In the New tab of the Datablock
Library double-click on
ItemData to make a new
datablock
Name it RyderClip
Select WeaponTemplateAmmo
from the Copy values from
dropdown and press Create
Scroll down to the Render
section and click the browse
button ( ) next to the shapeFile
property
Class 9
Ammunition
Scroll down to the Render
section and click the browse
button ( ) next to the shapeFile
property.
Find
art/shapes/weapons/
Ryder/TP_Ryder.DAE and
click Open . Ensure you
have the file type set to
COLLADA Files in the file
browser.
Class 9
Ammunition
Scroll down to the
Scripting section
Set the category to
AmmoClip by clicking in
the box to the right of
category and typing in
'AmmoClip'
In the Object section set
the class to AmmoClip
(it is case sensitive you
must use a capital A
and capital C)
Class 9
Ammunition
Scroll down to the Dynamic
Fields section and set
maxInventory to 10
Click the Add Dynamic Field
button ( ) to add a new field.
Name it pickUpName and set
the value to Ryder clip
Add another field called
count and set the value to 1
Class 9
Ammunition
In the Datablock Library
on the New tab, find
ItemData and double-
click it to make another
new ItemData
datablock
Name it RyderAmmo
Select
WeaponTemplateAmmo
from the Copy values
from dropdown
Class 9
Ammunition
In the Dynamic Fields
section set the
maxInventory Dynamic
Field to 8
Click the Add Dynamic
Field button ( ) to add a
new field
Name it clip and set the
value to RyderClip.
Create a Dynamic Field
called pickUpName and
set the value to Ryder
ammo
Class 9
Weapon
The type of datablock here is
ItemData again since it is an item.
This time, though, instead of an
ammunition item (picking up a clip in
the world, for example), it will be for
the handgun itself.
Weapon
On the New tab of the Datablock
Library, double-click the ItemData
entry to create a new datablock
Name it Ryder
Select WeaponTemplateItem from the
Copy values from dropdown
Scroll down to the Render section and
browse to
art/shapes/weapons/ryder/TP_Ryder.
DAE for the shapeFile property
Make sure that the file type filter is set
to COLLADA Files in the Open file
dialog
Click Open
Class 9
Weapon
Scroll down to the Dynamic Fields
section
Set the description to Ryder
Set image to RyderWeaponImage
Set pickUpName to Ryder pistol
Click the Add Dynamic Field button ( ),
name the new field PreviewImage, and
set the value to ryder.png
If you pop back into Torsion and peek
at your
art/datablocks/managedDatablocks.cs
file you'll see that it has continued to
keep pace with your work
Class 9
Scroll down to
stateSound and select
RyderSwitchinSound
from the dropdown list
of available SFXProfiles
Class 9
Scroll to the
stateSound and
stateEmitter properties
Select RyderFireSound
for the stateSound
Select
GunFireSmokeEmitter
for the stateEmitter
property
Class 9
Scrolldown to the
stateSound property
and select
RyderReloadSound
from the dropdown
list
Class 9
datablock ShapeBaseImageData(RyderWeaponImage :
WeaponTemplateImage)
{
emap = "1";
shapeFile =
"art/shapes/weapons/Ryder/TP_Ryder.DAE";
shapeFileFP =
"art/shapes/weapons/Ryder/FP_Ryder.DAE";
animateOnServer = "1";
projectile = BulletProjectile;
projectileType = Projectile;
lightType = "WeaponFireLight";
lightColor = "0.992126 0.992126 0.740157 1";
ammo = "RyderAmmo";
Item = "Ryder";
Class 9
Using a Weapon
Datablocks are
controlled by the
server side and are
created at server start,
so you can't actually
test any of this in the
game until you restart
it. Save the level and
then quit the World
Editor
Class 9
In order to get your new weapon set up so that the player can
actually equip and use it you'll need to edit two script files:
art/datablocks/player.cs and scripts/server/gameCore.cs.
You can edit these files in Torsion or another text editor.
mainWeapon = Lurker;
maxInv[Lurker] = 1;
maxInv[LurkerClip] = 20;
maxInv[LurkerGrenadeLauncher] = 1;
maxInv[LurkerGrenadeAmmo] = 20;
maxInv[DeployableTurret] = 5;
maxInv[ProxMine] = 5;
Class 9
maxInv[Ryder] = 1;
maxInv[RyderClip] = 10;
State Machine
Class 9
State Machine
The first thing to notice about the way the state system
works is that each action is represented by a number in
square brackets [ ]
These need to stay consistent with the states that you are
creating so that Torque 3D can figure out how you need
the weapon to perform
After the stateName field, each state section has several
stateTransition fields to account for various conditions. This
allows us to design our system to transition to other states
based on these conditions. Farther down there are several
fields that dictate various effects of the state such as
stateEnergyDrain for things like laser weapons, or
stateEjectShell to indicate that this state should cause the
weapon to eject a shell casing
Class 9
2. Quiz: Lesson 5
Synchronization
Synchronization such as this is built into Torque 3D games.
However, when you start adding custom gameplay features
to your game, you might also need to add custom
synchronization for those features
Client/Server
When multiple players are playing the same mission in a Torque 3D
game, each player sees the same game world, but on their own
computer. A change to the game world caused by one player is
sent, as data, to the other players. The part of the game that
passes data between players is called the server instance. The
part of the game that players interact with on their computers is
called the client instance. The server instance keeps track of the
state of the game and updates the clients on a need-to-know
basis
Class 10
Server Exercise
In this example, a welcome message is sent to the
client when the mission begins, and the message is
displayed in the client's game window
View the location of the core script files for the
server instance
In Windows Explorer, with a standard installation it
will be the folder C:\Torque\Torque 3D
1.2\My Projects\FPS Tutorial\game\core\scripts\
server
In Torsion, with the FPS Tutorial project open, the
path is FPS Tutorial\core\scripts\server
Open the message.cs file
Class 10
Server Exercise
Look for the following messageClient function definition:
function clientCmdServerMessage(%msgType,
%msgString, %a1, %a2, %a3, %a4, %a5, %a6, %a7, %a8, %a9, %a10)
{
// ...(code removed, partial example)
}
Server Exercise
View the location of the non-core script files for the
server instance
In Windows Explorer, with a standard installation it will
be the folder C:\Torque\Torque 3D
1.2\My Projects\FPS Tutorial\game\scripts\server.
In Torsion, with the FPS Tutorial project open, the path is
FPS Tutorial\scripts\server
Open the gameCore.cs file
Look for the following GameCore::onClientEnterGame
callback function
Class 10
%client.score,
%client.kills,
%client.deaths,
%client.isAiControlled(),
%client.isAdmin,
Server Exercise
Class 10
Server Exercise
Synchronization Exercise
View the location of the non-core script files for the
server instance.
In Windows Explorer, with a standard installation it will be
the folder C:\Torque\Torque 3D
1.2\My Projects\FPS Tutorial\game\scripts\server. In
Torsion, with the FPS Tutorial project open, the path is
FPS Tutorial\scripts\server.
function GameCore::onClientEnterGame(%game,
%client)
{
// ...(code removed to save space)
%client.playerName,
%client,
%client.sendGuid,
%client.team,
%client.score,
%client.kills,
%client.deaths,
%client.isAiControlled(),
%client.isAdmin,
%client.isSuperAdmin););
Class 10
Synchronization Exercise
Class 10
Synchronization Exercise
Synchronization Exercise
Save the file. If your
game is already
running, exit the game.
To see your new
message, start the
game.
Class 10
if(ClientGroup.getCount() > 1)
{
// --------------------------------------------------
// *** end add code ***
// --------------------------------------------------
// Inform all other clients of the new arrival
messageAllExcept(%client, -1, 'MsgClientJoin',
'%1 joined the game!',
%client.playerName);
Class 10
// --------------------------------------------------
// *** add this code ***
// --------------------------------------------------
Synchronization Exercise
The ClientGroup is a server object that keeps a list of all the
clients that are playing the game. The getCount method of
the ClientGroup object returns the number of clients in the
list. The if statement tests to see if there is more than one
client in the list
Save your file. Now if you play the game alone, you won't
see the message "Everyone has been informed that you
have arrived and they will be hunting you shortly." You will
only see the message if another player joins your game
Testing for the number of players is a common scripting
task. Also, you can obtain any client object by using the
clientGroup.getObject() function. For script examples that
do just that, see the topic "GameConnection Class
Reference" in the Torque 3D Script Manual, and search for
"ClientGroup.getObject"
Class 10
// ------------------------------------------------
// Define a function that will be called by the
// client
// instance (in the mission file) to set up
// teleporting.
// This function sends a command to the server
// instance
// to start teleporting the player in this client
// instance.
// -----------------------------------------------
function sendTeleportSignal()
{
Class 10
}
Class 10
View the location of the script files for the server instance. In
Windows Explorer, with a standard installation it will be the folder
C:\Torque\Torque 3D 1.2\My Projects\FPS
Tutorial\game\scripts\server. In Torsion, with the FPS Tutorial
project open, the path is FPS Tutorial\scripts\server.
Create a file in the server folder, named myServerCommands.cs
}
// ---------------------------------------------------------
// Define a function that is called after a delay.
// This function manually changes the position of the player
// on the server. The server then takes care of updating
// all the clients with the new position of the player.
// ---------------------------------------------------------
function beginTeleport(%cl)
{
Class 10
function beginTeleport(%cl)
{
// Generate a random distance by using the Torque 3D
// getRandom() function.
%dist = 5 + (getRandom() * 5);
Add the following script after the exec("./server/init.cs"); line. These lines will execute your script files
and load all of the functions into memory.
After the level loads, press TAB to switch from first-person view to third-person view so
that you can see all of your character.
Class 10
SendTeleportSignal();
After you press ENTER to confirm the function you typed in, press
tilde (~) to close the console window, quickly you should see
your character teleported into the air, and receive a message
on your screen that tells you how far.
Class 10
// ---------------------------------------------------------
// This function is called every tickPerioMS while a player
// is within the trigger space.
// ---------------------------------------------------------
function TeleportTriggerData::onTickTrigger( %this, %trigger )
{
// Print this string to the console window.
echo( "The player is still standing on the teleporter pad.");
}
Class 10
For the trigger you're using, the function declaration looks like this:
To the following:
// Call the beginTeleportToHiddenLocation() function
// to kick off the teleportation sequence to the rooftop.
beginTeleportToHiddenLocation(%client);
Now your new function will be called when the player enters the trigger space.
Start your game, enter the level, and move your character over the teleporter
pad.
Class 10
2. Quiz: Lesson 6
Multiplayer Experience:
Lecture
1. Lesson 7
Cover the server instance and client instance,
Client/Server architecture, different types of
FPS players
Client/Server, onConnect(), ServerMessage,
Host, Datablocks, Properties, callback function
Customize level by iterative testing and
modifications
Create a fun level with ammo points,
teleporters, and new spawn points
Class 11
Multiplayer Experience
This lesson uses the FPS Tutorial project that you created in
Lesson 1. The template for the FPS Tutorial project comes
with Torque 3D version 1.2.
Multiplayer Experience
Chinatown Sniper, Choke Points, and Kill zones
Class 11
Multiplayer Experience
While dragging with the right mouse button to steer, and using the
W, A, S, D or arrow keys to move, go to the location where you want
to add your first ammunition pickup. A good starting spot is the
choke point at the South West corner of the courtyard.
Class 11
Multiplayer Experience
Open the Object Editor by using one of the following methods:
Press F1.
Or in the Editors menu, click Object Editor.
Or click the Object Editor button.
Class 11
Multiplayer Experience
Double-click the Ammo folder to display
the type of ammunition that you can
place in your scene.
The types of
ammunition that you
see in this folder were
created and added
by the FPS Tutorial level
designers.
Class 11
Multiplayer Experience
Double-click the type of ammunition that
you would like to add to the level. For this
exercise, double-click LurkerAmmo to
add the ammunition pickup to your
scene.
Multiplayer Experience
The gizmo appears in the Object Editor when
you select one of the transformation tools.
In the Scene Tree, in the
Scene tab, scroll to the
bottom of the list, and then
select the last Item. The
LurkerAmmo that you just
added is considered an Item
object, and is listed last and
given a default name.
Class 11
Multiplayer Experience
Remember to press ENTER after you type in the name,
using either method.
Multiplayer Experience
Remember to press ENTER after you type in the name,
using either method.
Press F11 to switch from
the World Editor to Play
Game mode. You should
be equipped with the
Lurker gun by default, but
if not, press Q or roll the
mouse wheel until you
equip the Lurker gun. Fire
off a few shots.
Class 11
Multiplayer Experience
In this exercise, you will place ammunition clip pickups
in your scene.
Multiplayer Experience
Double-click the AmmoClip folder to display the type
of ammunition clips that you can place in your scene.
Multiplayer Experience
If you want to move the ammunition clip pickup, drag
one of the transformation handles.
In the Scene Tree, in the Scene
tab, scroll to the bottom of the list,
and then expand your
AmmoDrops folder. The LurkerClip
that you just added is considered
an Item object, and is listed last.
Multiplayer Experience
To rename the item, you can select it and change the name
property in the Inspector panel, or you can double-click the
item in the Scene tree, as shown in the following images:
Class 11
Multiplayer Experience
In the Project tab, navigate to the FPS Tutorial\scripts\server
folder, and then double-click the player.cs file to open it for
editing.
Multiplayer Experience
Type Armor::onDisabled into the Find box at the top of the editor,
and then press ENTER.
Multiplayer Experience
Multiplayer Experience
Multiplayer Experience
// -----------------------------------------------
// add this code
// -----------------------------------------------
// Toss current mounted weapon and ammo if any.
// First, check for a weapon by trying to get a weapon.
%item = %obj.getMountedImage($WeaponSlot).item;
Multiplayer Experience
Multiplayer Experience
// -----------------------------------------------
// end add code
// -----------------------------------------------
%obj.playDeathCry();
%obj.playDeathAnimation();
//%obj.setDamageFlash(0.75);
Multiplayer Experience
Select your server from the list (1), and then click Join Game (2).
Class 11
Multiplayer Experience
In the second instance of your game, move your
player to the courtyard to find the first player.
Class 11
Multiplayer Experience
The floating weapon is an ammunition pickup that is
created by the script you added to the player.cs file.
Class 11
Multiplayer Experience
Walking over the ammunition pickup will increase your
current ammunition if you have room in your inventory.
Class 11
Multiplayer Experience
To get a list of all of the objects for which you can create
these callback functions, look at the Script Manual topic
for the ShapeBaseData Class, and click the Inheritance
diagram link.
Class 11
Multiplayer Experience
All of the classes that point to ShapeBaseData have
access to the callback functions that are defined in
the ShapeBaseData class.
Class 11
Multiplayer Experience
In this exercise, you will add script that will send a boastful message to every
player when one player gets on a kill streak.
Multiplayer Experience
In the Project tab, navigate to the FPS Tutorial\scripts\server
folder, and then double-click the gameCore.cs file to open it for
editing.
Multiplayer Experience
The GameCore::incKills function header is located and
highlighted for you.
Class 11
Multiplayer Experience
Add the following script after the first line inside the function. It's only 6 lines of code.
The rest of the lines are comments to help you understand what's going on.
%client.lastKillCount += %kill;
Multiplayer Experience
{
// This player isn't in the running for a kill streak.
// So, reset the client's last death count to be the
// client's current death count, in preparation for the
// next time they kill someone and this function is
// called.
%client.lastKillDeathCount = %client.deaths;
Multiplayer Experience
Multiplayer Experience
// Info:
// The %client variable is pointing to the player who did
// the killing.
// The %kill variable contains the number of kills this
// player just made, typically no more than 1 or 2.
// The %client.deaths variable contains the number of times
// this player has died.
Multiplayer Experience
%client.lastKillCount = %kill;
}
// If they killed 2+ players this time, or 2+ total players
// last time and this time, the %client.lastKillCount will
// be greater than or equal to 2.
if (%client.lastKillCount >= 2)
{
// This player has had a kill streak! Send the victory
// message on the same channel as the killed message.
messageAll('MsgClientKilled',
'%1 is on a killing streak!',
%client.playerName);
}
if( !%dontMessageAll )
messageAll('MsgClientScoreChanged', "", %client.score, %client.kills,
%client.deaths, %client);
}
Class 11
Multiplayer Experience
Running the game to see the message:
Start the first instance of your game by double-clicking the FPS Tutorial.exe
file in your game folder. If you installed Torque on your C: drive, your game
folder might be in the path, C:\Torque\Torque 3D
1.2\My Projects\FPS Tutorial\game. Open Windows Explorer by pressing
Windows Key + E, navigate to your game folder, and then double-click the
FPS Tutorial.exe file
When the first instance of your game starts, click Multiplayer in the first
menu screen, and then click Host in the second menu screen
Multiplayer Experience
When the second instance of your game starts, click
Multiplayer in the first menu screen, and then click Join
in the second menu screen.
Class 11
Multiplayer Experience
In this exercise, you learned how to add code to an
existing function to display a victory message in a
specific situation.
Class 11
Multiplayer Experience
Class 11
Multiplayer Experience
While dragging with the right mouse button to steer, and using the
W, A, S, D or arrow keys to move, go to the location where you want to
add a new spawn point
In the Scene Tree panel, in the Library tab, select the Level subtab, and
then select the Level folder from the dropdown box
Class 11
Multiplayer Experience
Multiplayer Experience
You can make sure that all new items that you add to your scene will
be put in the PlayerSpawnPoints folder. To do that, right-click the
PlayerSpawnPoints folder, and then click Add New Objects Here.
Class 11
Multiplayer Experience
To place these spawn points quickly, use the
following abbreviated steps:
Multiplayer Experience:
Conclusion
1. Lab (2 hours):
Teleport player, teleport pad, work on team project
Add Ammo Pickup points, put down 4 more ammo pickup
points in strategically fun places
Put in Deathmatch Victory Conditions and add spawn points
2. Presentation:
Present (preview) a team level with custom teleporters and
weapon/ammo pickups
Give a preview of the level to get feedback from the class
Have team talk about the game play reasons for design of
the level
3. Quiz: Lesson 7
4. Homework: Finish Final Project
Class 12
Class 12
Finals
1. Finish Presentations
2. Lecture: Review course
3. Talk about the game industry, jobs and talk to the
students about the class. What did they get out of
it? What would they change? Did it meet their
expectations? Any recommendations on the
content or execution of the class?
4. Final Test: (2 hours)
Class 13
Copyright Info
Torque 3D 1.2 Educational Materials are provided free
of charge for educational purposes. All or part of
materials are freely distributable and use for any
individual, school, or workshop for learning and
educational purposes.