Professional Documents
Culture Documents
Contents
Welcome..................................................................................................................... 3
Why Torque 3D?.......................................................................................................... 3
Why use an FPS Tutorial?............................................................................................ 5
Motivating your Students with a Long-term Mechanic................................................5
Create a game as a group project...........................................................................5
Run a mock studio................................................................................................... 6
Build a portfolio....................................................................................................... 7
Hold a Game Competition....................................................................................... 7
Make Money............................................................................................................ 8
Tips and Tricks............................................................................................................ 9
Tip #1 The Five-step Model for Structured Training..............................................9
Tip #2 The Five-minute Rule...............................................................................11
Tip #3 The Tourist without a Camera..................................................................12
Tip #4 Analogies................................................................................................. 12
Tip #5 Anyone? Anyone?................................................................................... 13
Tip #6 Enlist Teachers Assistants.......................................................................14
Resources................................................................................................................. 14
Answer Key............................................................................................................... 15
Welcome
The Torque 3D 1.2 Documentation Team has created this teachers guide to help
you make the most out of the other educational materials found at
http://demos.garagegames.com/education. The educational materials are free to
use, modify, and freely distribute, with no restrictions or attribution necessary.
This guide is for educators for class preparation and in class guidance. The guide is
particularly useful for those teachers who are new to teaching Torque 3D or game
design. The guide includes suggestions for ways to motivate and engage students,
ideas on how to teach specific concepts, and includes a list of resources and an
answer key.
After youve reviewed this teachers guide and the other educational materials,
wed love to get your feedback at the Torque in Education forum. Additionally, any
educators who want to get more involved as an Associate to GarageGames should
email dexterchow@garagegames.com.
To request an instructor evaluation license for the full version of Torque 3D 1.2,
Torsion, or the other tools, genre kits, and art packs, use one of the following
methods:
See http://www.garagegames.com/education .
Email education@garagegames.com.
Call 702-727-1915.
Before considering the advantages of Torque 3D, you could tell them that learning
how to script gameplay is the important thing to focus on. Scripting is how you
make something happen in a game. Its how you make the behavior of your game
unique.
Learning how to use the features of a tool like the Torque 3D World Editor (or any
other tools editor) is a finite task, and gets you only so far. In the World Editor, you
design the look and feel of your game. You can also change the behavior of some
objects by setting their properties, but the World Editor deals mostly with the
appearance of your game and the layout of your levels.
Learning the syntax of a scripting language is also a finite task. After you
understand the structure of script files, how they are executed, the key words that
you can use, and the functions you can call, youre all set.
However, learning how to code a game type and game mechanics is infinite!
Building on your scripting skills results in the ability to create an infinite number of
possibilities for things that you can do in your game, and those skills are
transferrable between game engines.
Say it took you 100 hours to learn how to use the tools of the Torque 3D World
Editor, and 50 hours to learn the syntax of TorqueScript. Then, say you began the
long journey of learning how to code game types, code game mechanics, and solve
design problems in script. If you wanted to switch to another engine, youd spend
another 100 hours learning the new tool (probably less because you wouldnt have
to relearn common concepts), another 50 hours learning the syntax and structure of
the new scripting language (probably much less, because scripting languages are
very similar). After that, youd be good to go because you would already know how
to design game mechanics with code.
All of that aside, what are the specific advantages of using Torque 3D? You could
offer your students the following reasons:
The demo version of Torque 3D is free to use, without an expiration date. The
demo is missing only a few advanced features (such as source code access).
Most of the game mechanics you might want to implement can be done by
using script in the free demo version.
Torque is very popular among game companies. See the Best of Torque page.
Game companies place a lot of value on obtaining and customizing engine
source code. The cost of the Torque 3D engine that includes source code
access is much lower than most engines.
There is a strong, cooperative, and vocal community.
Its fast and easy to get your questions answered by the Torque team.
Theres a chat window at the bottom of the tutorial pages at
http://www.garagegames.com/products/torque-3d/fps#/1-setup/1. During the
week, you can chat with someone if you have a problem, or leave a message
if the chat service is offline. You can also get answers via the forums. The
team has a Community Power Hour every Friday when they answer questions
in the forums.
The tutorial suite provides a fast and thorough introduction to Torque 3D.
Features are encapsulated into individual editors. For example, you add
objects to your world using the Object Editor, and you modify terrain using
the Terrain Editor. Your work is protected because when youre in one editor
(for example, the Object Editor), you cant accidentally modify the work
youve done in another editor (such as your terrain).
There are so many features encapsulated in individual editors: Object Editor,
Terrain Editor, Terrain Painter, Material Editor, Sketch Tool, Datablock Editor,
Decal Editor, Forest Editor, Mesh Road Editor, Mission Area Editor, Particle
Editor, River Editor, Road and Path Editor, Shape Editor, and the GUI Editor
(for creating menus and HUDs). The Object Editor is the most powerful, with
tools that help you create sun, sky, clouds, water, precipitation, and ground
cover.
The documentation includes overviews and how-tos for each of the editors
and features of the Object Editor. The documentation also includes tutorials
about scripting common tasks.
Its easy to attach code to objects, to make things happen in the game.
Its easy to swap code packages for different game types/genres. If you dont
want to start scripting a genre from scratch, there are genre packages
available at http://www.garagegames.com/products/torque-3d/add-
ons#/genre-kits.
The scripting model is very clean and robust. It supports both event-driven
and state-driven design.
There are many art, sound, model, scripting, and code add-ons that are
available from http://www.garagegames.com/products/torque-3d/add-ons.
Many are created by long-time customers of Torque 3D. Eventually, if you
create a set of assets or script files that you think other game designers
would like to use, you could submit them for review and then sell them on the
Add-On page.
The FPS game type showcases all of the features of a game engine, thus providing
complete examples of level design, script code, and source code; all contained
within the same project. This means that if a student wants to see an example of
script that uses a particular scripting object that they looked up in the Scripting
Manual, they can search for an example in the Chinatown project. (There is a link to
the Scripting Manual in the Start Menu after you install Torque 3D.)
Additionally, the FPS game type allows students to playtest their work right away
due to the small learning curve of an FPS game.
To work around these issues, you could ask the group to choose a theme or aspect
of gameplay. Then each student would select a single task that depends as little as
possible on any other students work. For example, the theme could be a bumper-
car game, and the game mechanic could be that a player has to cross four
boundaries to win the game. Here are the possible roles of the students in the
group:
1) One student could be responsible for changing the player model into a
character seated in a bumper car, optionally with no player animations.
2) Another student could choose to design the HUD that displays taunting
messages during the game, and displays a value in a Score property.
3) Another student could create the game world with objects that identify the
boundaries. They could put customized triggers at the locations of the
objects.
4) Another student could create the script code for the triggers onEnterTrigger
callback function that would increment the Score property of the player that
crossed the boundary.
5) Another student could script the win/loss conditions, and perhaps a timer.
Alternatively, you could break up the roles by specialization, and try to balance each
team so that there were enough artists, designers, scripters, and a producer for
each team. For example:
All of these tasks could be easily graded on their own. For example, you could
grade the models or the textures or the script code by themselves. You could give
extra marks only to those students who coordinated to get their content to work
together. For example, getting the textured character models spawned into the
game at different locations would require coordination between almost all of the
students.
Note: The tutorial suite and the education materials provide an introduction
to all of the topics involved in making a game with Torque 3D. If a student
wants to specialize for a specific role, the instructor can modify the syllabus
or add to it.
Take a look at people walking into a classroom. They act like passengers
boarding an airplane. They have revved down their own intellect. They are
in passive mode. [But,] Simulations will be challenging. They cause
frustration. They will cause some mulling. They should be exhilarating.
Approaching a simulation is more like being late for a meeting and having a
car that wont start. Passivity isnt an option. 1
Simulations can better prepare a student for a job with a real game studio, and give
them an edge over other candidates by providing the following benefits:
Students learn how to portion up work so that one persons work doesnt rely so
heavily on another persons, but it also makes students aware that there will be
people depending upon them and expecting them to meet deadlines.
1
Clark Aldrich, The Complete Guide to Simulations and Serious Games (California: Pfeiffer,
2009).
A savvy student learns how to scale back on their feature in subtle ways, if they
have to, in order to meet a deadline. Sadly, this happens a lot in the software
industry.
It encourages students to cooperate, because if they do, the reward is that they
see their features in action.
It allows students to build skills in the areas of leadership and negotiation. For
example, consider a brainstorming meeting where the team discusses game
feature ideas or troubleshoots scheduling problems. Even if some headstrong
personalities emerge and need to be reined in, its still a realistic and valuable
learning experience.
Build a Portfolio
Students can create portfolio show pieces by taking a lesson from the tutorial suite
and tweaking it. For example, they could design a new weapon, script its behavior,
and then capture video of the weapon in action. After adding some titles and music
to the video, they would have a great showpiece. The group project is also a great
portfolio showpiece, as long as they add credits to identify what they were
responsible for creating.
With a challenge like this, you could even connect two classes from different
schools.
Make Money
Show your students the blog entry at
http://www.garagegames.com/community/blogs/view/21463. A Torque 3D user
created art assets, packaged them up, put them in a level, and created a video
showcasing the assets. In his blog post, he said:
The idea is to package all this stuff up, along with several PDF format art
asset creation tutorials I wrote while doing all of this and sell it for around
$30 in the store (Should Garage Games deem it worthy).
In the comments at the end of the blog post, many people deemed the assets very
worthy, and expressed their interest in purchasing the art pack once it is added to
the Add-ons page.
As a group project, students in your class could work towards creating something
they could eventually sell (if your school allows that). Examples are linked below:
The benefits of these add-on packs are that they are Torque-ready. For example,
animation packs contain animation sequences that are already named using the
names that Torque 3D expects for characters and vehicles. Art assets (objects,
textures, etc.) are already in the correct format. As a group project, students could
choose one aspect of game production and create some resources for other people.
They could even encapsulate win/loss scenarios in script files. Apart from making
money, having a published pack looks great to prospective employers.
Note If youre not a Torque 3D expert, you can prepare for each class by
going through the corresponding tutorial lesson. If you do that on a weekday
between 9:00 and 17:00 PST, you can use the chat/message window at the
bottom of the Tutorial pages to ask questions of the GarageGames team.
Alternatively, you can post questions in the forums. The GarageGames team
spends most Fridays answering forum questions.
By following this model in every class or for individual concepts, you provide the
framework on which the students can hang everything they learn through the
repetition of the content (presentation, lab exercises, homework, and feedback).
Repetition is a great tool to increase comprehension and retention.
Rationale Whats a game? Players interact with a game. Their results are
rewarding or challenging. If you want your game to be more than just
an un-scored FPS, it has to do something when players interact with the
objects in the game world.
The good news is, to cover 80% of the scripting tasks youll want to do
with your game, you only need to understand two related concepts:
How to attach code to an object in your game so that the code
gets called when something happens.
How to call code that already belongs to an object (i.e., a pre-
defined function that belongs to an object).
By using these two concepts in multiple combinations, with the same
game object or across objects, you can create 80% of an engaging,
beginner game.
What are some interactions that you can think of in games youve
played? In Sonic the Hedgehog, when Sonic collides with a coin, it
disappears, and your score increases. The something that happens
(or event) is Sonic colliding with a coin. The code that gets called
might be a disappear function that belongs to the coin object, and an
increase function that belongs to the score. You can break down many
2
Harold Stolovitch, Telling Aint Training (Virginia: ASTD Press, 2002).
gameplay elements like this.
Objective Were going to do an exercise that shows you how to attach code to an
s object, and how to call code that already belongs to another object.
Were going to do this using a trigger and a bubble emitter. When a
player moves into (or collides with) the physical space of the trigger,
the bubble emitter will start spewing bubbles. In other words, the
something that happens (or event) is the player colliding with the
invisible trigger space. The code that gets called will be the function
that starts the bubble emitter.
Well attach code to the trigger by finding out which callback functions
belong to the TriggerData class, and choosing the one that the game
engine looks for when a player enters the trigger space. Its easy to
identify because its called onEnterTrigger. (Show the documentation
page for the TriggerData class.) In that callback function, well add
code that calls a function that already exists on the bubble emitter, to
make it start emitting bubbles. This function is a little more versatile.
Instead of being called Start, or Emit, its called setActive. You set the
active state of the bubble emitter to true to make the bubbles start.
(Show the documentation page for the ParticleEmitterNode class.)
The end result is, when a player walks through the trigger space, the
game engine looks for any onEnterTrigger function that youve created
for that trigger, and runs your code. The bubble emitter will start
because your code makes it activate.
(The instructor could run through the exercise quickly on the big screen,
pausing everywhere there is a Game Design Tip or other note, in order
to explain those notes and allow for discussion. Then the students
could then do the full exercise on their own.)
Evaluatio Ask the students if they understand what they just did, and how they
n could use these two tasks in the future.
Feedback Ask the students questions that allow for confirming or corrective
feedback. For example, in the Sonic the Hedgehog coin-collection
example, ask them how might it be done in Torque 3D using the two
tasks they just learned?
You can also use the five-step model to get students on board regarding the bigger-
picture issues. For example, to answer a question like, Why use the FPS game type
for the tutorial?, you could use the rationale that The FPS game type showcases
all of the features of a game engine (thus providing complete examples), while
allowing students to playtest their work right away due to the small learning curve
of an FPS.
Look for some suggestions for Rationale and Objectives in the notes of the slides.
For example, the Rationale and Objectives in the preceding table are included in the
notes for slide 67. In the notes for slide 21, there are suggestions for the rationale
and objectives that support learning the exercises in Lesson 2: World Building.
To support this, a good general rule is to lecture for no more than 5 minutes before
walking through an exercise and then having the class do the same exercise
themselves.
You can see evidence of the 5-minute rule in Lesson 2: World Building, Exercise 2:
Move around in the World Editor by changing camera settings. The introduction
paragraph is short. Instead of listing all of the camera types and how they are used,
the student is immediately thrown into an exercise where they can experiment for
themselves. In this way, for any camera they select, they experience the results of
using that camera, and connect the camera name to the results. Another example
is in Lesson 3: Scripting, Exercise 1: Step through the game. In some scripting
books, pages and pages of front-matter are dedicated to describing how the game
engine looks for, and executes, code. Instead, Torsion is used to allow the student
3
Clark Aldrich, Unschooling Rules: 55 Ways to Unlearn What We Know About Schools and
Rediscover Education (Texas: Greenleaf Book Group, 2011).
to experience the code the same way as the engine sees it, giving a deeper
understanding.
There is always a way to turn front-matter into exercises, or even debates. The
benefit of using exercises is to increase the hands-on time that the students have
with the tool, each time making them feel more and more at comfortable with it.
The biggest obstacle to some students will be fear of the unknown or feeling
incapable, so the more time they use the tool, the better. The hands-on exercises in
the tutorial suite slowly increase in complexity, to reduce the dread factor.
Making students watch instead of follow along the first time they are introduced to a
concept is like being a tourist without a camera. Its still an active exercise, but
without the extra responsibility of having to capture each moment by taking notes
or following along. Instead, the students are free to absorb and puzzle over what
theyre seeing (activating the cognitive centers of the brain).
The PowerPoint presentation in the educational materials packet includes slides that
support some of the more complicated exercises in the tutorial lessons. The notes
for the slides identify which exercise it is on the GarageGames website. You can use
those slides as a stopping point before switching to the Torque 3D World Editor to
walk through an exercise.
Tip #4 Analogies
You can use analogies to convey unfamiliar or difficult concepts.
For some concepts, you can use examples from games that the students might
have already played. For example, the Sonic the Hedgehog coin-collection example
is used in Tip #1 The Five-step Model for Structured Training.
For other concepts, you might need to use an analogy from the real world. For
example, in the notes for slide 98, the following analogy is used to introduce the
concept of events and callback functions, in preparation for doing Lesson 3:
Scripting, Exercise 3: Making something happen in the game.
The EnterTrigger event will always occur when a player walks through the
trigger space. Nothing will happen when that event occurs unless you make
use of a special function that the game engine will look for when the event
occurs. In other words, if theres no function defined (by you), nothing
happens. By creating script for the function, you ensure that your script will
be called when a player walks through the trigger space.
Most game objects have functions available that the game engine will look
for when an event happens to the object. These special functions are called
callback functions, because the engine calls back to the object to say, Hey,
do you have anything for me to do here? This is how you make things
happenby deciding which events you care about, and then defining the
corresponding callback function and adding script to the function to do
something.
For an analogy, consider a hotel where theres a message box for each
room. If someone leaves you a message, the concierge writes it down and
puts it in the box for your room.
The event is: you check at the front desk for your messages. The event will
always cause the concierge to check your message box. (Just like how the
EnterTrigger event will always cause the game engine to look for an
onEnterTrigger callback function.)
The callback function is: the box. Its available, but it might never contain a
message.
The script inside a callback function is: the message, if one exists. If theres
nothing in your message box, nothing happens. If theres a message in your
box, you act on it, just like the game engine would act on the script code you
put inside the callback function that you define.
Allow students to offer opinions, or offer examples from their favorite games.
Allow students to cooperate or provide support for each other. For example,
if one student has a bug they cant decipher, you could ask for a couple
volunteers to go with you to their computer to try and troubleshoot. It will
build camaraderie as well as expose the volunteers to ways that code can go
wrong.
Allow students to come up with analogies, such as the one in Tip #4
Analogies. You can use this as a tool to see if any misunderstandings persist,
or to confirm that students correctly understand the material.
Encourage debate or encourage brainstorming. For example, you could ask
the students how fast a player should be allowed to run, and what problems a
fast speed might cause. Or, you could trigger a spontaneous game
idea/design session with a question like, Hey, if you had a bumper car game,
how could you score it? How could you make it more fun? Should there be
multiple speeds? Is there such a thing as too fast?
Resources
The following is a list of resources for you and your students. These resources are
also listed in the Pre-Class slides of the PowerPoint slide deck.
Q: What is Torsion?
A: Computer Acrobatics Torque Script Editor Computer Game
Q: In Torsion, what is the correct version of the tutorial project do you run?
A: Release Debug The Right One
Q: What Command switches from game playing mode to World Editor mode?
A: Genie Switch F11 Space Bar Return Key
Q: Which camera view do you see your character from behind (the camera is placed behind
the character on screen)?
A: Orbit Camera 1st Person 3rd Person
Lesson 2
Q: In top-down view, which direction represents North in a level?
A: Top Right Left Bottom
Q: Which section in the Object Editor includes every object in the scene?
A: World Editor Scene Tab Torsion
Q: What command do you use to help locate objects in the search function?
A: Filter Open Sesame Super Search
Q: What is a new object called or named when you create it in Torque 3D?
A: Neutralone MyObject TSStatic UltimateGift
Q: What is the name of the main page where projects in Torque 3D are launched?
A: Command Central The Beginning Toolbox Google
Q: Which setting is the correct setting in Torsion to run the Chinatown project?
A: Debug Release The Super Version
Lesson 3 Part 2
Q: Concatenation means:
A: Code is Concentrated in One Area Code is Combined Name of a New Kind of
Fruit
Q: What is a common source of errors in programming given noted in the lesson example?
A: Installing Windows Programs on a Mac Giving an Incorrect Path Falling Asleep
Q: What are the Two Main Ways to Edit an Object in Torque 3D?
A: In the World Editor Loading Level into StarCraft II Editing Scripts
Lesson 3 Part 3
Q: Does Torque3D use Relative or Absolute paths to locate where data resides in a
programming statement?
A: Relative Absolute Neither
Q: What is the shape of the trigger gizmo in the bubble effect example?
A: Cube Triangle Circle Star
Q: In Torque 3D, if you want to move an object up and down in the scene, what axis is that?
A: X Axis Y Axis Z Axis A Axis
Lesson 4
Q: When your camera rotates around the character in a circular fashion while moving the
camera, what camera mode is this called?
A: Circle Merry Go Around Orbit Surround Video
Q: What is the area called where players and objects enter or re-enter the game?
A: Door Teleport Spawn Magic Gate
Q: When a Class starts with a bunch of functionality and properties, this is called what?
A: Lucky Torque Starter Kit Inheritance
Q: Datablocks are a way for objects to store data, does the server know about this data?
A: Yes No
Q: Is this True? The Shape Editor is designed to replace your 3D program like 3D Studio Max.
A: True False
Q: Which map highlights the light and dark areas where extra shading appears?
A: Unique Map Diffuse Map Normal Map Spec Map
Q: Datablocks are controlled by the server, when is the data loaded into the computer?
A: At the Beginning of Loading In the Middle of Game Play Upon Exiting the Level
Q: Typically, how many instances of a server are there running at one time in one game?
A: One Two Three
Q: Do you need to tell the clients or the server when objects need updating?
A: Client Server
Q: Which file is one of the first files executed when a game runs and hold key information?
A: TorqueStart.cs Important.cs Main.cs
Q: Which one do you select when you EXPECT properties to CHANGE in the game?
A: Datablock Properties Object Properties
Q: What must you do for all your changes in order to ensure they are entered into Torque
3D?
A: Comments Save Cast Spells
Q: Which one of these commands is called automatically after an event in Torque 3D?
A: Properties Trigger Callback
Copyright Information:
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.
Torque 3D is a trademark and GarageGames is a registered trademark of GarageGames, LLC. All other
trademarks or registered trademarks belong to their respective owners.