SourceMod Empires Extension

Discussion in 'Coding' started by recon, Sep 20, 2009.

  1. MOOtant

    MOOtant Member

    Messages:
    4,047
    Likes Received:
    0
    Trophy Points:
    0
    I don't know what you have been smoking.
     
  2. Kane

    Kane Member

    Messages:
    1,337
    Likes Received:
    0
    Trophy Points:
    0
    Nothing. Just an idea which I admitted, is extremely hacky.
     
  3. recon

    recon SM Support Dev

    Messages:
    2,348
    Likes Received:
    0
    Trophy Points:
    0
    I agree with MOOtant in the sense there is certainly a "better" way to implement an API.

    However, EmpiresMod is no GarrysMod. There isn't a large enough community to write for a proprietary API.

    The effort required to expose an API to SourceMod is pretty minimal. I don't think it'd be any more complex than the LUA API you guys are working on. If you provide the APIs, I can expose them to plugins through the Empires extension.
     
  4. Kane

    Kane Member

    Messages:
    1,337
    Likes Received:
    0
    Trophy Points:
    0
    Just a question: if extensions use game headers, do they need to be linked against server.lib? I guess yes.
     
  5. MOOtant

    MOOtant Member

    Messages:
    4,047
    Likes Received:
    0
    Trophy Points:
    0
    If you want anything to happen join IRC channel.
     
  6. recon

    recon SM Support Dev

    Messages:
    2,348
    Likes Received:
    0
    Trophy Points:
    0
    SourceMod doesn't link with games. It calls functions by signature scanning, or with a virtual function offset.

    If you had types that aren't in the SDK, then it gets more complicated (you'd have to distribute the type definitions).
     
  7. Kane

    Kane Member

    Messages:
    1,337
    Likes Received:
    0
    Trophy Points:
    0
    That's the point. We have types not in the SDK.
     
  8. recon

    recon SM Support Dev

    Messages:
    2,348
    Likes Received:
    0
    Trophy Points:
    0
    You can just release the headers and libs for those types, or provide simplified versions (as you would most plugin systems) (headers and libs obviously). We'd have to get an exception from BAILOPAN (unless you released the source), since you are required to provide the source with GPL licensed software (basically, if the extension gets linked with something, the source has to be released).
     
    Last edited: Sep 27, 2009
  9. Kane

    Kane Member

    Messages:
    1,337
    Likes Received:
    0
    Trophy Points:
    0
    Damn GPL.
    The extension itself is GPL'd? Strange.
     
  10. recon

    recon SM Support Dev

    Messages:
    2,348
    Likes Received:
    0
    Trophy Points:
    0
    You're a Linux guy, so that kind of surprises me. People need to stop hiding their code, that's what the GPL is about.

    Extensions and plugins are derivative works, and are covered by the GPL.
     
  11. MOOtant

    MOOtant Member

    Messages:
    4,047
    Likes Received:
    0
    Trophy Points:
    0
    1. GPL is a virus and I don't like it. It's often used by dumb kiddies who haven't heard about BSD/MIT X11. Even LGPL is better.
    2. If we use Steamworks code we have to make it unavailable to 3rd parties.
    3. C++ headers contain implementation details.
    4. You haven't moved your lazy butt to IRC to discuss this.
     
  12. recon

    recon SM Support Dev

    Messages:
    2,348
    Likes Received:
    0
    Trophy Points:
    0
    1. Some people aren't interested in a company taking code from an open source project and using it in their software without distributing the source of the derivative software (closed). By not releasing their code, they are obstructing the open source process. Why? Since code contributed to the open source community made their project possible, they should contribute their code. The GPL forces them to do what's "right", and what's "fair". The concept of the GPL saves us all time and money, since we don't have to keep reinventing the wheel, we can focus on creating better software, improving existing software, and solving more complex problems.

    The bottom line is, if you use GPL software in your project, your project becomes GPL. The GPL does exactly what it's designed to do: create more open source projects.

    Closed source software is an inefficient, unproductive, and outdated methodology for releasing software. Why? First, closed source software can't be truly trusted. Secondly, users have to wait for developers to fix bugs. Further more, Valve proved to us that closed source just means that the source is out of reach for most users.

    In my view, closed source software is like a virus, and we've got a vaccine (the GPL).

    Here's an example of why open source software is better: I found a remote code execution vulnerability in a PHP application a few days ago. Since it was open source, I patched the vulnerability in 5 minutes. I also patched a minor bug that occurred when the application is run on Windows. I'll drop the developer a note with my patches, and they can include them in their next release. None of those things would've been possible if the application wasn't open source.

    2. I know. That's why I talked about the exception.
    3. For templates, yes.
    4. Been busy with RL. I'll be on IRC sometime next week.


    P.S. I'm a huge supporter of open source software (kind of a statement of the obvious). I consider myself to be pretty well versed in open source, and the various licenses used by open source projects. If you want to debate it further, I'm happy to, but let's take it to a different topic. I'll enjoy pwning you.
     
    Last edited: Sep 28, 2009
  13. Kane

    Kane Member

    Messages:
    1,337
    Likes Received:
    0
    Trophy Points:
    0
    I'm pro BSD-style licenses.
     
  14. flasche

    flasche Member Staff Member Moderator

    Messages:
    13,299
    Likes Received:
    168
    Trophy Points:
    0
    QFT

    </filler>
     
  15. Kane

    Kane Member

    Messages:
    1,337
    Likes Received:
    0
    Trophy Points:
    0
    If we release Empires SC, most people will just wtf and never touch it.
     
  16. flasche

    flasche Member Staff Member Moderator

    Messages:
    13,299
    Likes Received:
    168
    Trophy Points:
    0
    there is another thing why completely open source might not be the best way for competivie games.

    with source access it will be waaay easier to find bugs and create cheat tools or even altered clients.
    on the other hand it would prolly be easier to fix that bugs too as more people would work on it.

    still in terms on innovation copylefted software pwns anything ...
     
  17. Kane

    Kane Member

    Messages:
    1,337
    Likes Received:
    0
    Trophy Points:
    0
    True; there should be a VAC-like system for game dlls for example then
     
  18. Meliarion

    Meliarion Member

    Messages:
    435
    Likes Received:
    0
    Trophy Points:
    0
    Well I suppose the open source response would be something along the lines of this. A rather old piece by Eric S. Raymond which deals with the problems caused by open sourcing quake.
     
  19. MOOtant

    MOOtant Member

    Messages:
    4,047
    Likes Received:
    0
    Trophy Points:
    0
    That is off-topic because discussion about open sourcing Empires is already over.

    1.There is Mono project. They use GPL for compiler, LGPL for tools and MIT X11 for libraries. They got a lot of patches from commercial companies like Mainsoft (a lot of ASP.NET in Mono is written by them). If libraries were GPL you wouldn't see any of these patches. They would have to write their own ASP.NET from scratch and wouldn't contribute code back. There was a blog post about it by Miguel de Icaza, I think.

    2. Everyone making their own version of crappy Empires. This would be fine as long as there would be clear distinction between Empires release on Steam and 3rd party mods.

    3. Open source doesn't give you more modelers/animators. It doesn't even give you more programmers if your code is highly specialized. I had my toy project and most of patches were extremely silly.
     
  20. recon

    recon SM Support Dev

    Messages:
    2,348
    Likes Received:
    0
    Trophy Points:
    0
    1. Very interesting.

    2. If they were "crappy", there would be no servers, and yea...

    3. I guess you really missed my point. Suppose some other project was going to have tanks in the source engine? They don't have to invent the wheel, since Krenzo already did (although, with some of the vehicle stuff already existing in HL2, I'm not sure as to the extent of this statement).


    EDIT: I'm really busy this week. I'll get on IRC on Tuesday (late afternoon GMT -8).
     
    Last edited: Oct 1, 2009

Share This Page