Thread: 'Realm' system?

Page 4 of 5 FirstFirst ... 2345 LastLast
Results 31 to 40 of 46
  1. #31  
    :doge:

    Join Date
    Jan 2009
    Posts
    3,758
    Thanks given
    221
    Thanks received
    817
    Rep Power
    2116
    Quote Originally Posted by abysspartyy View Post
    Is instance shard worlds similar to this? Runescape has this. Instance shard world - The RuneScape Wiki
    More or less the same thing, yes.
    Reply With Quote  
     

  2. Thankful user:


  3. #32  
    Registered Member

    Join Date
    Dec 2012
    Posts
    2,999
    Thanks given
    894
    Thanks received
    921
    Rep Power
    2555
    You basically just theorized a bunch of improbable scenarios that no RSPS will ever reach, and even then, it's an unneeded optimization
    Attached image
    Reply With Quote  
     

  4. Thankful user:


  5. #33  
    'Realm' system?



    Scu11's Avatar
    Join Date
    Aug 2007
    Age
    30
    Posts
    16,307
    Thanks given
    7,215
    Thanks received
    12,308
    Rep Power
    5000
    this thread is so full of fuck i can't understand if this is discussion about an instance system or server realms like WoW.

    if it's the latter then this can already be achieved by instantiating a new World object in servers like apollo/scapeemu



    Quote Originally Posted by Teemuzz View Post
    From poh we would have 3000 npcs, and from dungeoneering only we'd already have 40,000 npcs! This would break the game core, if we wouldn't have a realm system.
    why do u just say this without providing any reasoning as to why it would break anything?? there's definitely over 40k npcs registered on each game world on RS.

    Attached image
    Reply With Quote  
     

  6. #34  
    Registered Member

    Join Date
    Feb 2010
    Posts
    715
    Thanks given
    133
    Thanks received
    378
    Rep Power
    550
    Quote Originally Posted by Scu11 View Post
    this thread is so full of fuck i can't understand if this is discussion about an instance system or server realms like WoW.

    if it's the latter then this can already be achieved by instantiating a new World object in servers like apollo/scapeemu





    why do u just say this without providing any reasoning as to why it would break anything?? there's definitely over 40k npcs registered on each game world on RS.
    Npc updating uses 15 bits for the indices
    Reply With Quote  
     

  7. #35  
    'Realm' system?



    Scu11's Avatar
    Join Date
    Aug 2007
    Age
    30
    Posts
    16,307
    Thanks given
    7,215
    Thanks received
    12,308
    Rep Power
    5000
    Quote Originally Posted by Vincent View Post
    Npc updating uses 15 bits for the indices
    What does interacting with the client have to do with having 40k npcs registered on a server? You don't send all 40k to the client. You can have infinitely many registered on the server as long as you aren't telling the client more than it accepts.

    Attached image
    Reply With Quote  
     

  8. #36  
    Registered Member

    Join Date
    Feb 2010
    Posts
    715
    Thanks given
    133
    Thanks received
    378
    Rep Power
    550
    Quote Originally Posted by Scu11 View Post
    What does interacting with the client have to do with having 40k npcs registered on a server? You don't send all 40k to the client. You can have infinitely many registered on the server as long as you aren't telling the client more than it accepts.
    Well AFAIK every server that exists has a global index assigned to a npc, and doing so simplifies a lot of things. If you used local npcs list indices you would have to find the correct index for each player when sending for example a projectile that follows a npc, or to make a player face a npc.
    Reply With Quote  
     

  9. #37  
    Sexy User
    User's Avatar
    Join Date
    Apr 2013
    Posts
    601
    Thanks given
    97
    Thanks received
    218
    Rep Power
    346
    I'm sorry, I got lost after the first paragraph. Please explain just what this whole thing is truly about, because it seems to me you are trying to build some giant management system for a server because of the possibility you would get 2k players all wanting to fuck the server over at once in a joint effort.

    I am not trying to disrespect your proposal but what purpose would this have to be actually completed and put to use in a server? Correct me if i'm wrong but it seems like you just need to find a better way to handle the number of npcs instead of managing realms and regions and whatever else you were talking about.
    Attached image
    Reply With Quote  
     

  10. #38  
    Registered Member netherfoam's Avatar
    Join Date
    May 2013
    Posts
    149
    Thanks given
    62
    Thanks received
    88
    Rep Power
    46
    Quote Originally Posted by Teemuzz View Post
    So firstly the intro from where i got this idea.

    Lets say, for example we have a Dungeoneering dungeon, a house, and a follower. If we have 2000 players, we'd need 2000 npcs for each player if they were doing construction. Lets add 2000 more, if they have a follower. Now lets say, 500 players are dungeoneering, and every one of them is in a mid-sized dungeon with 80 npcs, and 1500 players doing poh with each having a servant and a follower. From poh we would have 3000 npcs, and from dungeoneering only we'd already have 40,000 npcs! This would break the game core, if we wouldn't have a realm system.

    How the realm system could be executed:

    We'd have a container for realms. This being in the game server, and for each type of realm we could have a process of their own.
    Players would be transferred from a realm to another, which would be executed in a manner such like this:

    pseudocode:
    Code:
    void remove(Player p) {
    	unlist(p);
    	Location loc = Locations.LUMBRIDGE_SPAWN_POINT;
    	switch(p.getHouse().getLocation()) {
    		case "Rimmington":
    			loc = Locations.RIMMINGTON;
    			break;
    	}
    	server.getRealms().getRealm(MAIN_REALM).insert(p, loc);
    }
    
    void insert(Player p, Location loc) {
    	player.setLocation(loc);
    	list(p);
    }
    Each realm would have their own NPC Container, Item container, clipmap, etc. Updates for each item and npc would be executed in area-based order.
    this would make adding visitors, ground items, etc to construction easier. Refreshing the realm to all players in the realm could be executed easily, and without a further hassle. Also, the NPC Containers and item containers could be more easily limited.

    Realms could also be destroyed when unused, or deemed persistent until logout or server exit.

    Is there anything else to be taken into account? To me this seems pretty good of an idea, since the mainworld is 256x128 areas in 592, that being 2048x1024 chunks which then again is 16384 tiles by 8192 tiles. Maximum supported is 16kx16k tiles.

    Area updating would also mean that chunk packets would be executed with the same-like system as jagex does, updating all non-mob entities with the base coordinate sent, and adding in the chunk tile coordinates in the actual chunk subpacket.

    Did i miss something?

    Discuss.
    I think I found that the main world could be up to 16384x16384 tiles, while dynamic maps were limited to 16384x8192 (1 bit less) due to the game protocol in 637.

    I've successfully implemented this though, I called them "Maps" - Two kinds. Standard & Dynamic. Standard is the world you play in, dynamic is one that you can edit or is generated, such as POH and dungeons.

    I wrote my server from scratch (That is, actual scratch) and that's why it was possible. I haven't implemented saving/loading/unloading yet though, but it works conceptually!

    My implementation sucks on RAM (50-100MB of RAM is required to allocate the main world), but is much faster than most implementations computationally (Since I went for a single threaded architecture, this is definitely a justifiable choice). EDIT: [For when one of these children with the programmer title try and snark at me, that's 50-100MB per 16384x16384 tile map, obviously it's minuscule on a POH/dungeon]

    Taking things into account? You would probably fall into a coma if you attempted to do this on any source that already exists. Imagine how many location checks in code there are (eg, nearby, item delete/pickup, attack, use, AOE spells, anything!) - They would all have to be updated to check your "Realm"/map system somehow.

    I successfully did it though, and I'm pretty proud tbh.
    Reply With Quote  
     

  11. Thankful users:


  12. #39  
    'Realm' system?



    Scu11's Avatar
    Join Date
    Aug 2007
    Age
    30
    Posts
    16,307
    Thanks given
    7,215
    Thanks received
    12,308
    Rep Power
    5000
    Quote Originally Posted by netherfoam View Post
    I think I found that the main world could be up to 16384x16384 tiles, while dynamic maps were limited to 16384x8192 (1 bit less) due to the game protocol in 637.

    I've successfully implemented this though, I called them "Maps" - Two kinds. Standard & Dynamic. Standard is the world you play in, dynamic is one that you can edit or is generated, such as POH and dungeons.

    I wrote my server from scratch (That is, actual scratch) and that's why it was possible. I haven't implemented saving/loading/unloading yet though, but it works conceptually!

    My implementation sucks on RAM (50-100MB of RAM is required to allocate the main world), but is much faster than most implementations computationally (Since I went for a single threaded architecture, this is definitely a justifiable choice). EDIT: [For when one of these children with the programmer title try and snark at me, that's 50-100MB per 16384x16384 tile map, obviously it's minuscule on a POH/dungeon]

    Taking things into account? You would probably fall into a coma if you attempted to do this on any source that already exists. Imagine how many location checks in code there are (eg, nearby, item delete/pickup, attack, use, AOE spells, anything!) - They would all have to be updated to check your "Realm"/map system somehow.

    I successfully did it though, and I'm pretty proud tbh.
    well the way rs does it is simply cuts the "whole world" (16384x16384) in two and allocates the left half to the real world (0-8191, 0-16383) and the right half (8192-16383, 0-16383) to the dynamic allocation zones. that way it's all in the same "map" and you don't need any special handling for each "kind" of map (dynamic/static); you just spawn stuff in them as you would in the static half of the map with absolute coordinates.

    Attached image
    Reply With Quote  
     

  13. #40  
    Registered Member
    Join Date
    Jun 2012
    Posts
    55
    Thanks given
    3
    Thanks received
    5
    Rep Power
    11
    The closest thing I can think of that would relate to this would be the system that Blizzard uses with World of Warcraft.
    However, they are actually running a server that abstracts from the world server, I'm not sure what the name is, but I like to call it a 'jump' server.
    Essentially a Jump server is an empty world, that's just sitting there waiting for something to be provisioned to it.
    When, let's say, 5 people are matched up and ready for a dungeon, one of the world servers will find a jump server that is as close to each of the world nodes as possible.
    When the jump server is resolved (selected for the dungeon), each of the world servers will shoot a packet over to each of the players and tell them to either connect to the jump server directly or tunnel through their current world server (I could figure this out easily if I still played WoW, but don't anymore).
    The players will connect to the jump server only after each or one of the world servers tells the jump server to provision a unique phase for all of the players to be placed in.

    The players will now be directly handled by the jump server instead of the world server, unless the world server is acting like a proxy for the player. If the world server is acting as a proxy, it will just simply mirror all of the packets over to the jump server.
    The rest is self explanatory...

    The key notes here are:
    • Jump Servers are always running and pre-provisioned. They do not get started on demand. They just simply 'wait'.
    • This is a system you ONLY want to use if you have a LARGE structure, and for scalabilities' sake
    • This is extremely efficient and fast acting for the player, only if built correctly though.
    • The Jump servers handle more then 1 thing. If you're building a system like this, you want it to be extensible, Ie. jump servers run battlegrounds, dungeons, raids, etc...
    • This requires a lot networking knowledge and preparation, ie. being able to use your friends list to talk to friends, seeing the world friends are on from inside a jump server or when they are connected to one or a different one, etc..
    • This is resource intensive, and again, it's meant to have jump servers running on separate machines


    I could go on, but don't want to type up much more in a single post x.x
    Reply With Quote  
     

Page 4 of 5 FirstFirst ... 2345 LastLast

Thread Information
Users Browsing this Thread

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


User Tag List

Similar Threads

  1. Replies: 44
    Last Post: 04-13-2008, 09:46 PM
  2. KBD Mini Game With Point System. (Pictures)
    By BamBam in forum Tutorials
    Replies: 42
    Last Post: 09-28-2007, 03:50 AM
  3. "Magicka" system! Replacement for runes!
    By Oh Noes! PIERATS! in forum Tutorials
    Replies: 9
    Last Post: 06-10-2007, 12:58 PM
  4. Replies: 15
    Last Post: 05-31-2007, 09:57 AM
  5. Interchat System
    By sarah101 in forum Tutorials
    Replies: 6
    Last Post: 05-16-2007, 03:06 AM
Tags for this Thread

View Tag Cloud

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