Thread: Hyperion

Page 1 of 137 1231151101 ... LastLast
Results 1 to 10 of 1370
  1. #1 Hyperion 
    Programmer, Veteran and Respected Member



    Join Date
    Mar 2007
    Posts
    5,026
    Thanks given
    2,600
    Thanks received
    3,425
    Rep Power
    5000
    Important notice to all Hyperion users! There is a memory leak currently present which has not been fixed in any official releases or in the Subversion repository. To fix it, open the EventManager class and after the isRunning() check, add an else which just returns from the function. If you do not fix this, your server will gradually consume more memory and CPU power and some actions may continue forever. (NOTE: this is not related to Sir Harry's memory problem - one of the first things I did was to ask him to apply this fix which did not help. According to Sir Sean, it isn't a problem with MINA either - it was something he added - which is kind of what I expected anyway since I had not experienced it during testing Hyperion and the Rune-Server official server.)



    Hyperion: the open-source Java gameserver suite

    About

    Hyperion is a Java gameserver suite server which aims to provide an excellent, stable, quality base with advanced features such as update server (to stream the cache to the client) and login server (for multi-world support with cross world messaging).

    The server has been developed completely from scratch, even the ISAAC cipher code is scratch (as the one used by most is copyrighted Jagex - from a deob).

    There are lots of unique ideas: we are spending time making the server good and high quality instead of cramming lots of features in a small amount of time.

    Also, for those working on their own servers, there is documentation on the login, update and in-game protocol, and information about the updating and walking procedures.

    Official website

    The official website can be found here:

    *forum/blog down*

    Quote:
    Originally Posted by BrettR [Only registered and activated users can see links. ]
    I sought and obtained permission from Kevin to post the Hyperion development forum URL.

    It can be found here: *forum/blog down*

    Proof: [Only registered and activated users can see links. ]


    NOTE: this is for Hyperion only! - not other servers!

    Twitter

    SVN commits as well as our ramblings can be found here: [Only registered and activated users can see links. ].

    For more lengthly updates, visit our blog: *form/blog down*.

    Signatures

    [Only registered and activated users can see links. ]

    [Only registered and activated users can see links. ]

    [Only registered and activated users can see links. ]

    [Only registered and activated users can see links. ]

    Credits

    Developers:

    • Graham
    • Blake
    • BrettR


    Thanks to:

    • Vastico - item def code + data file
    • Lothy - equipment code snippet
    • Miss Silabsoft - some more equipment fixes
    • Scu11 - found + fixed multiple bugs
    • Sub - found npc bug
    • Sean - testing, ideas
    • William - testing, ideas


    Features

    Green = Complete
    Orange = Under development
    Red = Not yet started

    World server

    • Login
    • Updating
      • Rendering
      • Multiplayer
      • NPCs
      • Update masks
      • Region system

    • Communication
      • Public chat
      • Commands
      • Chat options
      • Friends/ignores/private chat
      • Report abuse

    • Inventory/item support
      • Item class
      • Container class
      • Interface container listener
      • Equipment container listener
      • Weapon container listener
      • Swapping/equipping/etc
      • Banking
      • Action and action queue system

    • Clipping and path finding <<< this is being worked on atm!


    Login server

    • Saving/loading/online checking
    • World password check
    • PM and friendslist


    Cache system

    File server

    • JAGGRAB and HTTP server
    • Integrated webclient


    Web interface

    Unique features

    Action system:

    The action system is another first which is going to prove quite unique as it is developed. There is an Action class and ActionQueue class. The ActionQueue will queue and process actions for a player.

    Since a lot of actions share code (i.e. woodcutting and mining are extremely similar), there are some abstract classes such as AbstractHarvestingAction which will contain code common to both.

    These allow rapid development and easy bug fixing, as well as just looking cool.

    Cached update blocks:

    Say you had 100 players in a region, and then a new one logs in. In a traditional server, each 100 players will reconstruct the new player's appearance update block when they login. This server will cache update blocks for the duration of the cycle, so it only happens once, at the expense of slightly more memory usage.

    This should give some improvements when there are a lot of players in an area, especially if the updates are large (like appearance blocks).

    Pooled player updating:

    Player updating is a read only task. This means you can execute it in multiple threads safely. The server creates a thread pool with the same number of cores as the current computer it is running on, and dispatches update tasks to this pool.

    To prevent threading issues, the main thread will block until all the updates are complete. Then the main thread may run as usual, processing packets and performing reads and writes safely with little worry of thread-safety.

    This can give vast improvements when you have a PC with multiple cores and/or processors. If you look at the screenshot above, which was taken on a dual core PC, the server is using around 80% of the CPU which means it is taking advantage of both cores (otherwise it would be at or below 50%).

    There are classes allowing you to do this as well (namely the ParallelTask class), however, there are few remaining cases in which this is possible to do safely.

    Update server:

    The update server uses the ondemand and a HTTP/0.9-like protocol to stream the cache to the client just like a popular MMORPG. This gives a few advantages: when the cache is modified, it can be pushed out to all new clients very easily with minimum bandwidth used up by subsequent updates (the files in the cache are only updated when the client deems it necessary). Also, no client modifications are needed to make it work (assuming you are using the original deob).

    Screenshots

    Update server:



    Inventory:



    Multiplayer:



    Equipment:



    Benchmark

    I've done some testing and it seems the server can handle 2000 players without crashing. However, these are not real players so not entirely accurate. Also, bear in mind the server in fact has very few features and this will have an impact on performance (in a real server if you had 2000 players they would be performing actions).

    For those interested in how the benchmark was setup, the SYI attacker was run on the same PC as the server. The PC is dual core, 2.2ghz. With the way in which the server is setup it would perform better on more cores, as not just the input/output is done in a multi-threaded manner. The throttle filter was disabled. With it enabled, they will connect slowly. Also, there is no limit per IP yet.

    Here is a screenshot for those who are interested, showing the server console, jconsole and the SYI attacker.



    While this number of players are online, the server is still usable (logins are slower than normal - as expected - but there isn't much lag).

    Releases

    [Only registered and activated users can see links. ] (re-uploaded 19 March 2012)

    • [Only registered and activated users can see links. ] - outdated and probably buggy!
    • Revision 269 download links: [Only registered and activated users can see links. ], [Only registered and activated users can see links. ], [Only registered and activated users can see links. ]


    Subversion and Trac

    Subversion URL: [Only registered and activated users can see links. ]
    Trac URL: we no longer use trac

    License

    Code:
    Copyright (c) 2009 The Hyperion Development Team Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    Last edited by Huey; 09-13-2012 at 07:24 AM. Reason: Re-Stored due to hacker removing it.
    .
     


  2. #2  
    Registered Member
    Klorox's Avatar
    Join Date
    Sep 2007
    Posts
    1,090
    Thanks given
    2
    Thanks received
    11
    Rep Power
    700
    Looks great Graham, best of luck to you.
     

  3. Thankful user:


  4. #3  
    SERGEANT OF THE MASTER SERGEANTS MOST IMPORTANT PERSON OF EXTREME SERGEANTS TO THE MAX!

    cube's Avatar
    Join Date
    Jun 2007
    Posts
    8,886
    Thanks given
    1,860
    Thanks received
    4,732
    Rep Power
    5000
    Your frameworks are just getting better and better



     

  5. Thankful user:


  6. #4  
    Registered Member
    Jack's Avatar
    Join Date
    Mar 2009
    Posts
    6,878
    Thanks given
    1,859
    Thanks received
    2,577
    Discord
    TwistedBoner#2217
    Rep Power
    5000
    Best luck Graham
    [Only registered and activated users can see links. ]

    OS-Exile Discord: [Only registered and activated users can see links. ]

     

  7. #5  
    Banned

    Join Date
    Feb 2007
    Posts
    1,578
    Thanks given
    16
    Thanks received
    20
    Rep Power
    0
    Good luck , hope to see some decent updates.
     

  8. #6  
    Registered Member

    Join Date
    Oct 2007
    Posts
    1,017
    Thanks given
    1
    Thanks received
    3
    Rep Power
    562
    Omg! Another bigger post then rs2hd's project thread! Anyway, you wanted this long ago, nice ="D. Goodluck too.
    <William.D | Perfectworld> before
     

  9. #7  




    Scu11's Avatar
    Join Date
    Aug 2007
    Age
    25
    Posts
    16,053
    Thanks given
    7,047
    Thanks received
    11,827
    Rep Power
    5000
    Umg im on the creds

    Lovely work graham will always use!

    [Only registered and activated users can see links. ]
     

  10. #8  
    Banned

    Join Date
    Jul 2008
    Posts
    2,057
    Thanks given
    26
    Thanks received
    98
    Rep Power
    0
    Graham does it again

    Good luck and Good work, btw Ryan got the MINA working on emu thanks to yew
     

  11. #9  
    Banned
    Join Date
    May 2009
    Posts
    1,226
    Thanks given
    4
    Thanks received
    61
    Rep Power
    0
    wait, you are making an actual server or just a base to release?
     

  12. #10  
    Programmer, Veteran and Respected Member



    Join Date
    Mar 2007
    Posts
    5,026
    Thanks given
    2,600
    Thanks received
    3,425
    Rep Power
    5000
    Quote Originally Posted by austin3c View Post
    wait, you are making an actual server or just a base to release?
    Base of course, else I wouldn't have posted the svn/trac links.
    .
     

Page 1 of 137 1231151101 ... LastLast

Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •