C#/C++ Plugin API - Printable Version +- Cuberite Forum (https://forum.cuberite.org) +-- Forum: Cuberite (https://forum.cuberite.org/forum-4.html) +--- Forum: Discussion (https://forum.cuberite.org/forum-5.html) +--- Thread: C#/C++ Plugin API (/thread-2954.html) |
C#/C++ Plugin API - nrgjrteherh435 - 05-19-2017 I know, I know.... This is asking a lot! But I think I speak for a good amount of people when I say that being able to script in Visual Studio would be a HUGE step up from the "Advanced" Text-Editors that we're stuck with currently. I know the reason LUA is in place currently: It's simple to implement. Not only that, it's easier for "NON-Coders" to get into. This isn't really a request per say, more like a recommendation. This should at least be considered, in my opinion. It doesn't even necessarily have to be .NET C# (would be nice, though...) Because of the language of the server, a C++ API seems like the easier way to go. All I'm saying is that JAVA Native server modifications (such as bukkit, spigot, etc.) have JAVA Native plugin APIs. I would much rather see a C++ Native plugin API than an obscure LUA API. That's not to say that both could be supported simultaneously. The current LUA API is clearly advanced in it's own right already. How challenging would it be to implement a C++ API? I'm excited for an open and like-minded dialog. As such, please share your thoughts, opinions, and knowledge below Please and thank you, nrgjrteherh435. RE: C#/C++ Plugin API - xoft - 05-19-2017 This has been already talked about several times, and the decision is to keep things as they are. Ref. (one of many): https://forum.cuberite.org/thread-1632.html Probably the biggest issue for supporting multiple languages for plugins is the maintenance cost. We're already stretched thin just on keeping the server barely alive, not to mention on par feature-wise with Vanilla. There's no manpower to keep multiple API implementations in sync. It might not see like it, but actually implementing bindings to another language is a lot of work, and I mean A LOT. Have a look at the Bindings folder in the sources: https://github.com/cuberite/cuberite/tree/master/src/Bindings - that's just a tip of what has to be done for one language. There's a lot of other supplemental code that generates some glue code automatically, and an enormous amount of thinking went into how to properly interface things. Thread safety and callbacks are just a small example of all the hurdles that needed to be overcome. As for the IDE - are you using ZeroBrane Studio? If not, give it a try, it is a great IDE for Lua development and you can use it for developing Cuberite plugins really well. It has an integrated debugger that works with Cuberite, it runs on Windows, Linux, Mac and even ARMs, and unbelievably, it's free and open-source. RE: C#/C++ Plugin API - NiLSPACE - 05-19-2017 If you really want to use Visual Studio you can use BabeLua. |