Supported Plugin Languages

Discussion in 'Plugin Development' started by MistahCheese, Jan 2, 2011.

Thread Status:
Not open for further replies.
  1. I think that while using a network based interface provides interoperability, it goes against the stated design goal of being lightweight as that would add a very noticeable overhead.

    For myself, C# is my job, and so being able to write plugins using it would be great.
    That would also allow me to much tighter integrate the server wrapper I'm making, since I'd be able to create specific functionality on the server that my wrapper can consume.
     
  2. Offline

    Killie01

    I an a c# student / user
    Wanna create plugins :D
    Bukkit = best 2011 event
    Bukkit.IsBukkitTheBest(); //will return f**k yeah
     
  3. Offline

    Sosser

    Missing a semicolon?
     
  4. Offline

    Killie01

    Oops fix : Bukkit = best 2011 event;
    Also : Console.Write(Bukkit);
     
  5. Offline

    Sosser

    Great ;)

    Console project :eek:
     
  6. Offline

    deltahat

    While language independence for plugins sounds cool, I'm a little worried about the performance impact of doing so.

    Moving data across process boundaries is expensive and in many cases OS dependent. The only OS independent method is using the TCP stack as Hey0 suggested. Doing so in an OS/Language agnostic way will require some serialization mechanism for marshaling plugin calls and data across the process boundary. There will also be an issue with type system alignment between languages that will have to be dealt with.

    There are existing technologies that solve some of these problems but they are quite heavy weight and are not at all appropriate for the real-time processing required for a game server.

    Finally, plugin portability becomes an issue when some languages are used.

    If all plugins are written in Java, then all plugins can be loaded into the server's process space, type systems align, and serialization overhead becomes a non-issue.
     
  7. Offline

    Kekec852

    You can use JNI to access dll-s or sheard librarys ... But i don't know about overhead ...
     
  8. Offline

    deltahat

    When done properly, Java -> C via JNI is pretty performant, but going the other way is very slow. Additionally, you can't easily pass the server's domain objects across the JNI boundary without first serializing them.
     
  9. Offline

    torrentails

    I've been playing arround with JPython which complies Python into Java. Seems to work just fine.

    Having said that, Python is OS independant anyways so JPython is kinda pointless. Maybe something like this exists for other languages though? I'm too lazy to check since I'll just be sticing to these two languages.
     
  10. I think it should be 1 language only, to be honest I do not want to have to sort out dependancys for x amount of languages.
     
  11. Offline

    pagangeek

    Registering my vote for the following:

    BASIC, Assembly, Haskel and COBOL please xD

    j/k :-D
     
  12. Offline

    Killie01

    how do i make a plugin in c#
    i know i need the plugin loader, but how do i call it
     
  13. Offline

    Valrix

    PHP if possible please.
     
  14. I'm going to be the guy that says Ruby. It can be friends with Python :)
     
  15. Offline

    Bauer

    I think Python might be included, with the whole Jython thing. I'm not great with Python though, neither with Java. I'm currently trying to learn Java.
    --- merged: Jan 5, 2011 4:37 AM ---
    I don't think PHP is possible. PHP is a web language. It has a lot of uses, but not this.
     
  16. Offline

    Sky.NET

    Methods whith names that beginn with 'Is' should always only return a bool.
    (CleanCode)
    Additionally: C# is mostly derived from Java, if you are a nice coder you wouldnt have problems to learn java in 1 week.

    Wtf? Thats fail, don´t put whitespaces into varnames, or (in case you mean a stringobject) use doublequotes like this:

    Bukkit bukkit = new Bukkit();
    bukkit.Text = "Best 2011 event.";

    Console.WriteLine(Bukkit.WhatIsBukket());

    Whitch could produce the following output:
    'Best 2011 event.'

    If you need help @ learning C#, OOP-Basics or sth. like that, just PN me for my MSN-Addy.

    RTFM... don´t speak about things you have no idea from.
    (PLEASE read this: http://www.php.net/manual/en/ref.sockets.php)
    PHP supports sockets, if the Bukkit-team implements a TCP-way communikation with the library, you would be able to write plugins in PHP too (IMHO useless, but possible).

    I agree with hey0´s suspicion, that they will include TCP-communication to be able to access the API with any programm written in any language.

    If so, your discussions about 'WHAT' languages to support are needless and dumb, addidtionally every experienced sofwareengineer (what most people posting here obviously NOT are) knows there is only support for EVERY langage, or just java. Nobody from the Bukkit dev-team will start to develop anything eg. just for C#-support or just python-support, that would be bullshit and wasted code.

    So please stop your 'suggestion of my favourite coding language/s', thats senseless.
    If BrainFuck supports sockets: You will be able to write Plugins in BrainFuck
    If WhiteSpace supports Sockets: You will be able to write Plugins in WhiteSpace
    etc.

    Hope you understand...
     
  17. Offline

    Killie01

    About all my things: it was all a joke
    I know how to use c#
     
  18. Offline

    Sky.NET

    (Offtopic)
    Doin Funny-code is nice, but althought its 'funny'-code it has to be logical.
    Prove it and i believe it =) (allready released sth.?)
     
  19. Offline

    Killie01

    Bsm manager :)
     
  20. It really should be CBSM as were managing craft bukkit
     
  21. Offline

    Killie01

    well, isn't the thing you startup called bukkit??
    anyway the mod is called bukkit soooo...
    and BSM in dutch means
    beweging sport maatschappij (english: gymnastics, sport, commmunity)
    --- merged: Jan 5, 2011 1:32 PM ---
    and also i don't get it anymore
    bukkit, craftbukkit
    what do i need to download when bukkit is done
    1 says craftbukkit is for plugin developing only and the other one says its the mod
    but what is bukkit then
    confused :confused:
     
  22. Offline

    Mattie

    If you want to try Python/Jython with hMod, use the EventScripts plugin here:

    http://minecraft.eventscripts.com/viewtopic.php?t=41767

    I've tried to make it as similar to my EventScripts plugin for Counter-Strike: Source as possible, though a Java game engine is quite different than Source (C++).

    Once bukkit or Minecraft API is around, I'll be porting the same engine over there as best as possible.

    Here are some simple Minecraft Python examples and some released addons for reference.

    -Mattie
     
  23. Offline

    Killie01

    so all i asked is: is c# supported and how would i use that
    answer: none

    would like to know
     
  24. Offline

    Xzanth

    I would like to be able to program my plugins in whitespace. It is by far the best language for such a task.
     
  25. Offline

    Valrix

    Useless how? If they all use the same API, it would be as worthwhile as any other language. PHP sockets are actually rather easy to make (I've made my own PHP-based chat server using sockets) and if needed would be fine. I do agree with your statement about Bauer not understanding PHP though.

    @Bauer: PHP is a scripting language and isn't made specifically for the web at all, nor is JavaScript, so technically one could just as easily make a plugin in JavaScript or anything that can be run without a browser.
     
  26. Offline

    4am

    AppleScript: The simplicity of Apple, the speed of a 386 :-\

    And why yes, I am a Mac guy.
    --- merged: Jan 6, 2011 2:56 AM ---
    Strangely enough, I read somewhere that the JVM can compile and run JavaScript as well as other languages (which is has support for). That means to me that JavaScript support won't really be needed.

    Not sure I'm too keen on this whole "minecraft becomes a service and you hook in via RPC on the local host" paradigm some here are talking about; it seems like a whole lot of complexity and overkill... but if it's stable and it's fast I guess I can't see a reason why not.
     
  27. Offline

    alecn1519

    Are you asking how to make a plugin framework in C# or how you would be able to create a plugin for Bukkit in C#? I can help you if you are wanting a plugin framework for a C# project.
     
  28. Offline

    Valrix

    I'm pretty sure it wouldn't even be possible to do it with AppleScript. AS is confined to OS X and only meant to make services and programs specifically for your machine. It's also extremely slow.
     
  29. Offline

    feverdream

    All I ask is that the choice of languages not limit when or where the mod can run. I dont ever want to be in a situation where I cant use a linux server or host because that server doesn't support Microsoft .Net Framework, or libomfgv4 and not linomfgv3, etc.
     
  30. Offline

    Valrix

    That's where a scripting language like Python, PHP, JavaScript, Lua, etc. all come in handy. :D
     
Thread Status:
Not open for further replies.

Share This Page