Torque3D
  • General
    • Welcome!
    • Features
    • Release Notes
      • Version 4.0.3
      • Version 4.0.2
      • Version 4.0.1
      • Version 4.0
      • Version 3.10.1
      • Version 3.10
      • Version 3.9
      • Version 3.8
      • Version 3.7
      • Version 3.6.2
      • Version 3.6.1
      • Version 3.6
  • Getting Started
    • Introduction
      • What's the Torque3D Engine?
    • Getting Familiar
      • Getting a Copy
        • Torque Project Manager
        • Downloading it Yourself
      • Getting Ready for Launch
        • Running Pre-Built Binaries
        • Building the Engine Yourself
      • Launching the Game
        • Opening the Example Level
        • Launching the Editors
      • Your First Game
        • Introduction To The Engine
        • The Module System
        • Creating an empty gamemode
        • Adding a Player
        • Adding a Coin
        • Adding a win-condition
        • Custom coin asset
        • Counting coins
        • Adding some effects
        • Supporting multiplayer
        • Adding a Scoreboard GUI
        • Keeping the scoreboard up-to-date
      • Deep Dive: BaseGame Directory Structure
    • Best Practices
    • Porting a Legacy Project
  • For Artists
    • Assets
      • What are Assets?
      • How to Create a New Asset
      • Working With Assets
      • Deep Dive: Creating a New Asset Type
    • Art
      • File Formats
      • 3D Art
        • Shape Specifications
        • Coordinates System
        • Mounting Shapes
        • Animation
        • Player Setup
        • Blender -> Torque3D Pipeline
      • 2D Art
        • Working with Adobe Substance
    • Animation
    • GUI
      • Loading and Initializing a GUI
      • Expanding a GUI via Script
      • How to Network GUIs
    • Materials
      • Material Mapping
      • Material Animation
    • Terrain
    • Shaders
    • Lighting
    • Audio
  • For Designers
    • Base Classes
      • SimObject
      • SimGroup
      • SceneObject
      • Scene
      • Datablocks
    • Game Classes
      • Creating an Object
      • Destroying an Object
      • Gameplay Scripting
        • Spawning an Object from Gameplay Code
    • Modules
      • What are Modules?
      • How to Create a New Module?
      • Making a Module do Things
      • Installing Existing Modules
        • Where to Get More Modules
    • Scenes and Levels
      • How to Create a New Level
      • How to Load a Level
        • Deep Dive: Level Loading Scripts
      • How to Edit Levels
        • Opening a Level in the Editor
        • Spawning Objects from the Asset Browser
        • Working with Scenes
        • Using SimGroups
        • Changing a Level's PostEffects
        • Deep Dive: LevelAsset Companion Files
    • Game Modes
      • Creating a New GameMode
      • Making a Level Use Your GameMode
      • Adding Gameplay Code to Your GameMode
    • AI
      • Navmesh
      • Objects
      • Scripting
    • Inputs
      • Inputs and Keybinds
        • ActionMap
        • Bind Functions
        • ActionMap Stack
    • Localization
    • Editors
      • Changing Editor Settings
      • World Editor
        • Scene Editor
        • ConvexShape Editor
        • Terrain Editor
        • Terrain Painter
        • Material Editor
        • Spline-Based Tools
          • Mesh Road Editor
          • River Editor
          • Decal Road Editor
        • Datablock Editor
        • Particle Editor
        • Decal Editor
        • Forest Editor
        • Navmesh Editor
        • Deep Dive: Creating Your Own Editor
        • Shape Editor
      • GUI Editor
        • Interface Details
  • For Programmers
    • Compiling the Engine
      • Setup Development Environment
        • SDK and Library Installation
        • Git
        • Cmake
        • Creating a Fork on Github
      • Create a Project
        • Creating a Project With CMake
        • Creating a Project With the Project Manager
      • Compiling
        • Compiling in Windows
        • Compiling in Linux
        • Compiling in MacOS
      • Building the Project Manager
    • Introduction
    • Code Style Guidelines
    • Expanding the Engine
      • Creating a New Object Class
      • Exposing Object Classes to Script
        • addProtectedField
      • Adding a New Library to the Engine
    • Major Components of the Engine
      • Core
        • Console
        • Platform
      • Audio
        • SFX
      • Rendering
        • GFX
        • Render Bins
      • Physics
        • Stock T3D Physics
        • Physics Wrapper
          • PhysX
          • Bullet
        • Classes
    • Rendering
    • Math
    • Networking
      • Client and Server Commands
    • Physics
    • Collision
    • Scripting
      • TorqueScript
        • What is TorqueScript?
        • Basic Syntax
        • Variables
        • Types
        • Operators
        • Control Structures
        • Functions
        • Objects
        • Module Interop
          • QueueExec
          • RegisterDatablock
          • CallOnModules
          • ModuleExec
        • API Reference
      • Other Languages
        • C-Interface
    • File Inputs/Outputs(I/O)
    • API Reference
Powered by GitBook
On this page
Edit on GitHub
Export as PDF
  1. General

Features

This page provides a listing(and where applicable, cross-linking to other docs pages) of all the major features of the Torque3D Game Engine

PreviousWelcome!NextRelease Notes

Last updated 2 years ago

Rendering

Torque3D includes both a high-performance forward-rendering basic lighting engine, and a deferred-rendering advanced lighting mode so you can tailor your game to meet the needs of different customers. The modern rendering system includes per-pixel lighting, normal and parallax mapping, and materials generated by a high-level editor, or written from scratch in GLSL/HLSL. The engine comes with shaders for water, sky and sun, and many common material types.

The engine also has a powerful PostFX system allowing you to create custom post-processing effects. It ships with buit-in effects including:

  • HDR/light adaptation

  • Depth of field

  • Lens flare and sun rays

  • Screen-space ambient occlusion and FXAA

  • Refraction, reflection and glow

Editors

Torque3D comes with everything you need to construct environments and levels from your assets. Shapes are imported in Collada DAE format and placed in the in-game editor. Switch to playing through your level with one press of a button.

  • Powerful terrain editor that allows you to import terrains or sculpt them by hand.

  • The shape editor provides tools for previewing and touching up your shapes after import.

  • The road and river editor modes make it simple to place paths that become solid roads, flowing rivers or decal tracks across the terrain.

  • A fully-featured material editor means you don't have to touch a line of shader code to create great-looking visuals.

  • The GUI editor lets you place HUD and menu elements in an easy-to-use WYSIWYG environment.

  • Torque3D will automatically reload assets that are changed outside the editing environment, enabling speedy development iteration.

  • Editor modes are implemented as plugins, so you can add your own custom modes.

Networking

Since its inception as the engine behind the online shooter Tribes 2, Torque has consistently provided high performance, reliable networking for fast-paced online games. The engine has networking built into its core, allowing you to quickly get up and running with networked games.

Torque uses a server authoritative networking model that helps you to reduce cheating and exploitation. At the same time, the game state is predicted and interpolated locally so each client experiences a smooth view of the action. Time-invarying data is transferred via datablocks at client join time, reducing the amount of data that needs to be networked during gameplay.

Physics

Torque3D provides a plugin system for physics. There is a simple built-in implementation which can be easily swapped out for PhysX or Bullet libraries. They enable features like:

  • Cloth dynamics

  • Rigid body dynamics

  • Destructible objects

  • Destroyable joints

  • Fluid buoyancy

Scripts and source code

When you get Torque, you get everything. The entire source code is yours to modify under the permissive MIT license. The codebase is mature and extensible with a plugin system, allowing you to easily add features of your own, or from other libraries, to each project.

If you're not the recompiling type, Torque provides a scripting engine using a custom C-like language called TorqueScript. You can create whole games without touching a line of C++. Check this out:

$minion = new AIPlayer(Fubar) {
   datablock = MinionData;
};
$minion.setMoveDestination("50 0 0");

function Fubar::onReachDestination(%self) {
   echo("I made it! Says" SPC %self.name);
}