But it's also in its infancy, which means it's small and manageable. Which allowed me to write a IJW layer between C# and Torque6!
I did a port of the few scripts in the AnimatedMeshExample, to C# and deleted the TorqueScript files. And it ran just fine! Wooh!
The project consists of 3 parts:
A C-style interface for the most basic calls from native to managed (C++ -> anything).
An IJW-layer for calls and object implementations written in C++/CLI. (CLI -> C++) (Common Language Infrastructure [CLI] is what C#, IronPython, IronRuby etc. uses)
A very small C# framework, easing some of the syntax, removing boilerplate code and implementing attributes.
Which ofc means that the C#-specific stuff is a very small part of the whole implementation, and any of the CLI languages will work.
What's left to do is finishing and polishing the IJW layer, and in the end, port the whole thing to .NET Core and CoreCLR for Mac and Linux support!
- Main entry point for the exe - Loads up Torque6 and starts the engine.
- C# / TS - The Main.cs implementation (the entry point for the scripts).
- C# / TS - The AnimatedMeshExample module scripts
- C# / TS - The ExampleRoom module scripts
It's not completely done yet, I may change some naming conventions etc, but the overall result is pretty good! I haven't benchmarked yet or anything, but I expect it to be faster than TorqueScript (or else I will optimize it). Theoretically it should be faster.
The syntax is pretty smooth, no boiler plate code and a lot of type information in there, as well as hierarchy information. There isn't a clean version of the project on the repo yet, in time it will get up there
Well, that's the end of my show-off.. Thanks for reading!