Noob to Pro Using Torque3D

25 Jun 2016 . category: development .Comments
#devblog

Torque3D is a vision. It is an engine unlike any other in that it is driven by its community. Without community there is no Torque. Where many may view this as a weakness, it is indeed Torque’s greatest strength. When you have tech that’s been developed over years of time by a dedicated community, chances are you’re going to have a strong platform from which to build.

It’s no secret that Torque’s community has been active over the years. Given time and dedication, one can sniff out sample scripts or potential code to tackle most of the common problems that arise in new projects. More recently, a modern site dedicated to the Torque3D engine and community was launched at torque3d.org. The site is actively updated and maintained, where developers can find all the latest Torque development news or join discussions in the community forums.

Open Source

Implementing common functionality that most users expect from modern games can take a bit of work, although any gameplay worth developing should take a bit of work. When using Torque there is a well thought out, tried and true solution already framed up and ready to be built upon. The engine’s source code includes a ton of elegant solutions for many of the problems that crop up when developing games. There are classes for just about everything, ranging from virtual ArrayObjects for storing data to fully-fledged FlyingVehicles. It’s a great boon to the development process to have so many classes available right from the start of a new project.

The best part? It’s all open source, so regardless of what may or may not be valid for a project all of the code can be updated, edited, replaced, or removed altogether if need be. The engine is also on the cusp of supporting more modern rendering capabilities and an entity/component system. With a polish over file structure, extensions, and modules to boot, Torque continues to improve at a steady pace.

Networking

On the subject of features, let’s not overlook Torque’s extremely nice built in networking support. It’s a marvelous bit of tech to be quite honest. When used properly, the netcode can pass data very efficiently. The networking code includes classes to store string data and later reference those strings by index. Pretty much any data can be enumerated in some way before being sent across the wire. Furthermore, those updates can be configured by the developer be delivered only to specific clients as necessary. Now layer on top of this Torque’s datablock system and right out the gate the engine provides a secure client/server architecture.

Choosing an Engine

So why isn’t Torque considered the best of the best by the masses? Plain and simple, Torque is not user friendly right out the gate. A new user with no experience or close to no experience with the development process will find Torque very difficult to approach. Learning Torque’s engine-specific script is necessary, which isn’t overly difficult. Beyond that, though, when it’s time to develop core gameplay functionality be prepared to alter or create your own classes in C++. While it is true almost anything can technically be achieved using only TorqueScript, many resource intensive functions are much better implemented in C++(for performance purposes).

In addition, I’ve mentioned that Torque3D is “on the cusp” of supporting DX11. There are other engines that support DX12 already and depending on the project, that could be an important factor for the development team to consider. For the indie team or solo devs on tight schedules and even tighter budgets, however, chances are pretty high many of the updated features from one version of DX to another won’t be utilized to begin with.

Compare all of this to other engines maintained by paid teams, with shiny editors, and in some cases plug and play modules for purchase. It’s easy to see there is a difference in what’s on offer. One can potentially “develop” a prototype in a single weekend by purchasing pre-developed modules, piecing them together like a jigsaw puzzle, and calling it a new “game”. This is the point in the development cycle that, in my firm opinion, Torque pulls ahead of the competition. When a developer goes through the motions and ultimately commits to putting in “the hard work” that is required to truly create a game they will meet their full potential. While preconfigured or pre-developed modules can be useful, if used too liberally a project can be doomed to having a cookie-cutter or generic type of feel. More importantly, if a developer didn’t actually develop anything, debugging problems that arise can be a huge can of worms if the project actually reaches a stage where that is important.

Invest in Yourself

So what’s to gain from it all? Why work so diligently past Torque’s initial learning curve? Where is the pile of gold at the end of the rainbow? It is you. It is the sum of your experience, your drive and determination, your perseverance, your personal goals being achieved, and all of what you have researched and reached out for to better your understanding. When you develop using Torque, you will be tested, you will be tried, and you will be forced to develop not only your project but yourself. In any given project there will be problems that require solving. The sooner you put into practice the skills required to research new information or logical solutions to problems, the sooner you will find success developing any project(using Torque or otherwise).

Torque is an excellent teacher. Torque will offer just enough functionality to get a prototype off the ground, while simultaneously requiring all aspects of a new project to work in harmony with one another. What this means, in the long run, is that a scripter gets a glimpse into the art and coding world, an artist a glimpse into the scripting/coding world, and a coder can achieve a clear understanding of even the most complex of Torque’s features given enough dedication to researching the open source code. Ultimately, investing time into Torque is investing time into yourself. If one develops a piece of software with Torque, it is safe to say that individual has more than a few admirable qualities and marketable skills. Torque will offer an individual insight into unfamiliar areas of development, ultimately expanding his/her skillset.

There comes a time when you grasp what Torque is really offering you as a developer, and it’s like reaching the summit after a long hike. You can look back over everything you have just endured and experienced and truly be proud. Not only of what you have achieved, but of yourself for what you have become.

Torque3D is Copyright © 2012 GarageGames, LLC