Please note that the *solutions* here are expert level engine code changes, these alternatives are not simple plugins to replace torquescript
For better or worse, TorqueScript is the language that Torque supports for scripting. Many people find that its performance does not meet their needs, or they are simply unhappy to have to use it as a language. This page attempts to collect the current state of TorqueScript alternatives, and the various discussions that have been had about replacing or improving TS as a scripting language.
Replacing TS
Many are in favour of removing the engine's dependency TS entirely, ideally allowing it as a plugin for those who wish to continue using it, but also providing plugins for more common scripting languages. Here are recent discussions:
- On GitHub
- Modular script thread
- Lua integration thread, which turned into a discussion of the engine's scripting architecture
The prevailing consensus is best summed up in James' comment:
Now here comes the deal breaker. Are you really going to get people using Lua instead of TorqueScript? Based on my experiences discussing TorqueScript and alternate languages on here…. probably not. For instance I know for a fact I wouldn't be able to get anyone else from mode7 using anything but TorqueScript for torque. Others may think differently however. I know for instance BeamNG really love lua.
I think the core problem is you're attempting to rip out a core part of the engine experience and replace it with something else. Really what you end up with is effectively another engine. In which case… perhaps this would better be suited as a fork?
Migrating away from TS would involve rewriting almost the entirety of the editing suite, which has a lot of logic in scripts. In terms of the source code, the engine relies heavily on the current console/scripting system (for example, global variables used for configuration) and decreasing reliance on that would require significant, deep changes.
Improving TS
If we're stuck with TS, then we can at least make improvements. Version 3.7 introduces long-awaited changes to the scripting engine by James Urquhart to improve its performance, as well as anonymous functions. Discussions on improving TS:
However, I will quote myself and caution that
On the other hand, since TS is not a general-purpose programming language, I don't know how useful these features would be. Especially when you consider the opportunity cost of expending time and effort on them instead of other things.
Alternatives
C#
WinterLeaf Entertainment have created the most complete TorqueScript replacement, which allows users to code games in C#. Its homepage is here. Support status is unknown.
Python
Frank Carney has produced Python bindings for the engine using SWIG. They are described in this blog post. An example of use is available here.
Demolishun - scriptT3D extension
http://www.garagegames.com/community/resources/view/21706/
Lua
James Urquhart has successfully embedded Lua into Torque 2D, which uses a similar console system to T3D. Anthony Jones also started a similar project.
Peter Simard - add plugins/addons to your game similar to World of Warcraft