1. When making a thread, please tag your thread accordingly using the menu to the left of the textfield where you name your thread where applicable. Server Advertisements and Mod Releases should be contained to their respective subforums.

Server Discussion Aegis Wrapper - Server Wrapper

Discussion in 'Multiplayer' started by unleashurgeek, Dec 15, 2013.

  1. Zahlfire

    Zahlfire Big Damn Hero

    I am going nuts in anticipation. :D
     
  2. jeanmarbury

    jeanmarbury Master Chief

    really cool i just got the game today. i really dont understand how servers are. i guest i will research it
     
  3. jeanmarbury

    jeanmarbury Master Chief

    ha i need to msg a password
     
  4. Shirou

    Shirou Aquatic Astronaut


    This is looking great! Good work so far :)
     
  5. Sojo

    Sojo Intergalactic Tourist

    All the people do need this! The most needed thing are how many people are online and /ban only whit that this could be the best mod.
     
  6. PPP_Machi

    PPP_Machi Astral Cartographer

    Looking good, is there any reason why IP banning is broken tho? Or do you just not like using iptables ;)?
     
  7. unleashurgeek

    unleashurgeek Space Spelunker

    I dont like IPTables; however, I am almost done writing the packet filter that will deny only connection packets.
     
  8. StylishHoBo

    StylishHoBo Space Hobo

    Will you be releasing the source code so we can review and help?
     
  9. unleashurgeek

    unleashurgeek Space Spelunker

    I am planning on releasing a public version either tonight or tomorrow, for I believe I figured out a way to alter the chat packets. We will see soon enough.
     
  10. StylishHoBo

    StylishHoBo Space Hobo

    Please use github.
     
  11. Spice

    Spice Void-Bound Voyager

    Seconded. Github would be nice, and it would possibly help development of this go much faster.
     
  12. shibdib

    shibdib Starship Captain

  13. StylishHoBo

    StylishHoBo Space Hobo

    SpikeTheSpaceCowboy likes this.
  14. Spice

    Spice Void-Bound Voyager

  15. unleashurgeek

    unleashurgeek Space Spelunker


    Now, this has been brought to my attention now here and in private messages from other users. Yes this guy "beat" me to releasing a wrapper; however, what he is doing is not what I would consider kosher. To put it simply he is redirecting all server packets in the programs proxy, which then copies the packets and sends it to the server. The proxy itself will add at least a 50ms delay to the packets, which is fine on low load servers without lag, but that 50ms will soon be noticeable at higher loads and lags. Now how his bans work. The packets get sent through the proxy while on another thread the wrapper looks for a console queue, i.e Player x connected. If Player x is a banned player, the wrapper notifies the proxy thread to not let him connect. How the proxy handles denying the connection is temporarily denying all packet flow to the server. This works, but by denying packet flow you are going to create small lag and packet loss, which like packet copying will eventually be noticeable under high load. I will assure my program will not do that, which is also why it is taking me so long. (And by so long I mean since I started this ~24h ago).

    As for linux support or really an OS support, I am pushing for cross-platform support on day 1. I know there are a ton of servers that run on linux, and there are a ton of windows servers both that should be equally supported.

    Now that brings up the concern about what language I am coding this in. This is something I have been tossing around since I started this (like I have literally wrote many versions of this in different languages). My go to choice is C/++ because of its speed and ability to be compiled with for *nix. However more factors come into play than just speed. A necessity for me is to have cross-platform-ability and for it not to be a scripting language. However I big factor that is weighing my decision is the soonish-to-come API. I need that API to be able to have beginner programmers be able to pick it up and understand what they are doing, but not have it a scripting language, like LUA or python, that is so limited and restrictive the intermediate and advanced programmers cannot do anything useful. Furthermore, it would be better for the API language to be written in the Wrapper's native language so plugins will not take a toll on the performance. Because of the former, I think the language more tailored for this Wrapper is Java. Now do not get me wrong here, I am not a fan of Java; however, even horrible "languages" (like python) sometimes find their place to become usable and perfect for the situation. Java is just that. At an API standpoint it is a beginner-intermediate language which will allow people do "draw outside the lines" of my API. Java is natively cross-platformed making issues easier to track down and program management/compiling a ton easier. The only true downside to Java is the overhead. However the Wrapper is honestly just a small program rolled over the server and not the server itself, meaning the overhead wont be as noticeable as something like Minecraft's bukkit.

    For both these above statements they are what I concluded will give the community an over all the best benefits, usability, stability, and extend-ability for the servers. However if you feel differently for what I said please feel free to reply with your comments and concerns.
     
    nectarprime and pwnag3_ like this.
  16. unleashurgeek

    unleashurgeek Space Spelunker

    Just as a teaser image for what I have planned. This is what it would look like from console. Pressing the Shift key + the letter in brackets at the same time will activate that menu item without having to enter commands. Alternatively for super users and people used to consoles you can also use the command line interface at the bottom to type out the commands to do each thing without having to go through the context menus.
    [​IMG]
     
    nectarprime likes this.
  17. TheOtherDrew

    TheOtherDrew Big Damn Hero

    I very much like what you have here. I'm going to make sure I'm subscribed to this thread for your initial release.
    Thank you for your work here, as far as I'm concerned C/++ is a great language to write this in. I do see your issues as far as an API goes.
    I'm not really sure what to say here, as an api is not something that I will directly use. Thanks again.
     
  18. Spice

    Spice Void-Bound Voyager

    Have you thought of using Ruby, Lisp, Perl, Scala, Lisp, or Scheme? Personally, I would go with Ruby or Scala (though, I won't put Scala too high up, since it uses the JVM).
     
  19. Underbalanced

    Underbalanced Phantasmal Quasar

    What about a automatic server restart, when you get the chat packets figure out. This way we can broadcast a server restart before it happens, and then auto reboot to help with ram issues for those who have it.
     
  20. unleashurgeek

    unleashurgeek Space Spelunker

    Noted and will add.
     

Share This Page