Skip to content
Josh Lloyd edited this page Mar 17, 2014 · 9 revisions

Decided to kick start the scripting discussion. The purpose of the wiki is mostly to kind-of coordinate the discussion.

The most important questions are:

  • What capabilities should the scripting layer have
  • Which scripting language(s) will we support

With that in mind there are two sections on this page, capabilities and language. So feel free to make an edit to add a feature, along with (if needed) a small description.
As for the scripting languages, just follow the format that is present.


Capabilities

  • Event system
    Here I imagine more of a system where certain things trigger events, such as player join/quit, chat messages, etc. This to allow creation of scripts that react on these events. An extra would be if these events could be cancelled. (Maybe a quest system can be done with those scripts?)

  • Player functions
    The scripting layer should have the capability to kick/ban/mute players, send messages to them, change their location? teleport?

  • Plugin System The Plugin system should be able to handle player events and player functions all in one and send the information to a user built plugin that can use this information to trigger an event. Very similar to something like Minecraft's Bukkit server: Bukkit


Scripting Language

  1. Lua - http://www.lua.org/
    C# connectors: NLua (LuaInterface) - https://github.com/NLua/NLua
    Advantages: Used by a lot of popular games which makes it relatively known in the scripting scene.
    Disadvantages: 1-based index can be confusing for some, ...

  2. Squirrel 3.0 - http://squirrel-lang.org/
    C# connectors: Squirrel Interface - https://sqinterface.codeplex.com/
    Advantages: -
    Disadvantages: -

  3. Boo - http://boo.codehaus.org/
    C# connectors: -
    Advantages: .NET
    Disadvantages: -

  4. CS-Script - http://www.csscript.net/
    C# connectors: -
    Advantages: .NET
    Disadvantages: -

  5. Python - https://www.python.org/
    C# connectors: - http://ironpython.net/
    Advantages: .NET, High level language, well known in most communities
    Disadvantages: -

  6. .NET Libraries
    C# connectors: - Does not apply, Assemblies can be dynamically loaded and reloaded, stored in separate app domains and be scanned for plugin types that can be hooked.
    Advantages: .NET, The code would be as if you were coding KMP directly, only with a nice API and dynamic loading of code
    Disadvantages: - It's not scripting, meaning that unless a compiler at runtime is used, plugins will have to be compiled and built to .dll first.
    Notes: - This is basically how KMP Client Mod works inside Kerbal

Clone this wiki locally