Native functions are the run on demand functions, where as callback functions are run as a result of an event. A callback function would be the bread and butter of the InSim plugin system, with the native functions providing support inside of the callbacks.
When InSim sends a NPL (New PLayer) packet, the client_connect() callback function is run within each plugin. That client_connect function within the plugin will contain some native functions that might cause an event. An example of this is as follows.
<?php #include <lfs>
public plugin_init() { register_plugin("Hello On Connect", "1.00", "Dygear"); }
public client_connect(id) { server_cmd("/mso Hello %s", get_user_name(id)); } ?>
Here the callback function is client_connect, where as the get_user_name function is the native.
From my perspective, you can do pretty much all you need to be able to do with LFS in Lapper and GLScript.
DLL extensions would only really be useful in an Outsim app (as opposed to an Insm one) for sending or receiving data to or from peripherals (guages, joysticks, gamepads etc).
Would be cool if natively implemented by Scawen but he maybe had his reasons to choose TCP instead.
It's good for script languages, yes...
If Scawen is reading this, I would love for him to take a look at the AMX Mod X, and Source Mod. They have some awesome ideas that I would love to see implemented in LFS, even if just on a small level. The idea is that scawen makes a client.dll / server.dll file, that we can replace with out own dll. That will allow us to hook into the engine directly, and allow for the use of plugins.
I want direct engine hooks that will allow me the change the drag coefficient of the front wing, and rear wing on the fly, I want total control of the wing angle at all times. I want to be able to change the displacement of the engine with a function call, and then also change it's type and configuration. I want client functions, that will allow me to hook into the chat system. I want functions that will allow me to edit the engine fired RCMs, and any of the 'buttons' (like that of the build in connection menu) so that I can change the color to anything that I want, with any alpha level (both button background and text), and any border radius plus callbacks for when a new button is added.
I doubt we will see this anytime soon, although I see where you're coming from. RBR uses a DLL plug-in system like that, just not quite as "invasive" as you describe your ideal LFS system.
I think it's generally a good idea, but anything beyond regular InSim functionality should wait till S3 final.
I think it's generally a good idea, but anything beyond regular InSim functionality should wait till S3 final.
I understand where you coming from, and I totally respect it, but there is a problem with waiting until S3 final. That problem is, if you don't program with modifications in mind from the get go, you become stuck when you wish to add them on later. I believe that Scawen is one of those programmers that can pull this off from any angle, but I think the path of lease resistance is the best approach not only for development, but also for it's use.
RBR might have had something like this, but the Half Life engine, with the likes of Meta Mod, and AMX Mod back in the days CS1.5 was and standard of programming. Then we moved over to AMX Mod X and again, Metamod, who again set the standard of programming, mind you this was 5, 6 years ago. Now it's still AMX Mod X, and Source Mod paving the way with Metamod and Metasource respectively. The devs at valve are wiping the floor with 3rd party, community addons, and it would be best to learn from there example 10 years ago, as it's the reason why they are still so popular today. Why should the devs have to continue to make this game interesting, when the community has some much programming talent (with the likes of Gai-Luron, the_angry_angel, filur, darktimes, T-RonX, elmohellno, MaKaKaZo, xergio, rheiser, dougie-lampkin, JamesF1, and the devs them selfs!) they don't need access to the source to make an awesome addon.
The past has shown the future is about community development, and LFS is starving from some content right now. Let the community add that content, give the programmers the tools they need to make great additions to the game. Yes, some of the functions due leave the door open for abuse, but the community will police it's self just as it does with bad servers. Let's grow this community and make it stronger, because I have never seen a more motivated group of users, and mod and admins before in my life. Given the right tools this game could live for 10 years, it might even live for 20.
Just give us the tools, our imagination should be our only limit.