Sharing VSRO Structure (diagrams)

Page 2 of 2 FirstFirst 12
Results 16 to 22 of 22
  1. #16
    Valued Member LegendaryDev is offline
    MemberRank
    Dec 2010 Join Date
    125Posts

    Re: Sharing VSRO Structure (diagrams)

    Here :)


  2. #17
    beq $v0, $0, 0x80000000 megaman963 is offline
    MemberRank
    Sep 2011 Join Date
    r3000 - MIPSLocation
    198Posts

    Re: Sharing VSRO Structure (diagrams)

    Quote Originally Posted by pushedx View Post
    Just as a FYI, it is working only because the incorrect parts are being skipped over by the files. As long as you have "enough right", then it should still work.

    This is basically what I learned from reversing the certification stuff back in the day:
    • There are many ways to get working configs, the way "official" screenshots are setup is not the only way. In fact, non of my configs match official screens because I removed extra nodes not even needed that they use.
    • The direction of the links matters.
    • The order of the nodes in the packt.dat matters (at least, the first two)
    • The extra fields are a mixture of visual data (such as icon id state), important data, such as ids to link to, service type, etc..., and a lot of extra data that is not useless, but does not need to be figured out to get the files working.
    • Editing files by hand is both inefficient and impractical for managing multiple server/shard layouts for the long term.


    As a result, I wrote tools to automate the certification generation. Here's a few old teaser screens showing the results (Sept. 2011).

    Multiple shards, 1 machine setup each:


    This image shows a config that made multiple shards rather than a bunch of different independent ones. Each shard was only 1 machine setup, but it could have been easily extended to more, as the next screen shows.

    Single shard, 10 machine setup:


    I can certainly assure you I did not do those configs by hand!

    How much work is it to setup a 10 machine shard using the tool I wrote? It's as easy as 3 files:

    edxonline.txt (fictitious name, lol) - This file lists all of the project files used. For however many shards you have, you'd just fix the count and add a shard# entry with the file name.

    Spoiler:

    Code:
    [global]
    config=eo_global.txt
    
    [shards]
    count=1
    
    [shard1]
    config=eo_shard1.txt


    eo_global.txt - This file lists the "global" nodes in your server setup. You can easily add Download or Gateways as your server expands. The ID was left for being able to key it exactly how you want, so when you add more nodes, the ids won't change unless you change them yourself.

    Spoiler:
    Code:
    [config]
    Certification=1
    GlobalManager=1
    DownloadServer=1
    GatewayServer=1
    FarmManager=1
    
    [Certification1]
    node_id=1
    port=32000
    nip=192.168.1.132
    wip=192.168.1.132
    
    [GlobalManager1]
    node_id=2
    port=32001
    nip=192.168.1.132
    wip=192.168.1.132
    
    [DownloadServer1]
    node_id=3
    port=32003
    nip=192.168.1.132
    wip=192.168.1.132
    
    [GatewayServer1]
    node_id=4
    port=32002
    nip=192.168.1.132
    wip=192.168.1.132
    
    [FarmManager1]
    node_id=5
    port=32004
    nip=192.168.1.132
    wip=192.168.1.132


    eo_shard1.txt - Each agent/gameserver is listed. If you need more, it's just a matter of adding the entries, if you need less, you can chop them out and update the count.

    Spoiler:
    Code:
    [config]
    SR_ShardManager=1
    AgentServer=10
    SR_GameServer=10
    
    [settings]
    id=1
    name=Texas
    query=DRIVER={SQL Server};SERVER=WS2K3-VM1\SQL1;DSN=SR;UID=sa;PWD=123456;DATABASE=SRO_VT_SHARD_1;
    query_log=DRIVER={SQL Server};SERVER=WS2K3-VM1\SQL1;DSN=SR;UID=sa;PWD=123456;DATABASE=SRO_VT_LOG_1;
    capacity=10000
    
    [SR_ShardManager1]
    node_id=100
    port=32100
    nip=192.168.1.132
    wip=192.168.1.132
    
    
    [AgentServer1]
    node_id=101
    port=32101
    nip=192.168.1.140
    wip=192.168.1.140
    
    [SR_GameServer1]
    node_id=102
    port=32102
    nip=192.168.1.140
    wip=192.168.1.140
    
    
    [AgentServer2]
    node_id=103
    port=32101
    nip=192.168.1.107
    wip=192.168.1.107
    
    [SR_GameServer2]
    node_id=104
    port=32102
    nip=192.168.1.107
    wip=192.168.1.107
    
    
    [AgentServer3]
    node_id=105
    port=32101
    nip=192.168.1.130
    wip=192.168.1.130
    
    [SR_GameServer3]
    node_id=106
    port=32102
    nip=192.168.1.130
    wip=192.168.1.130
    
    
    [AgentServer4]
    node_id=107
    port=32101
    nip=192.168.1.137
    wip=192.168.1.137
    
    [SR_GameServer4]
    node_id=108
    port=32102
    nip=192.168.1.137
    wip=192.168.1.137
    
    
    [AgentServer5]
    node_id=109
    port=32101
    nip=192.168.1.108
    wip=192.168.1.108
    
    [SR_GameServer5]
    node_id=110
    port=32102
    nip=192.168.1.108
    wip=192.168.1.108
    
    
    [AgentServer6]
    node_id=111
    port=32101
    nip=192.168.1.101
    wip=192.168.1.101
    
    [SR_GameServer6]
    node_id=112
    port=32102
    nip=192.168.1.101
    wip=192.168.1.101
    
    
    [AgentServer7]
    node_id=113
    port=32101
    nip=192.168.1.109
    wip=192.168.1.109
    
    [SR_GameServer7]
    node_id=114
    port=32102
    nip=192.168.1.109
    wip=192.168.1.109
    
    
    [AgentServer8]
    node_id=115
    port=32101
    nip=192.168.1.115
    wip=192.168.1.115
    
    [SR_GameServer8]
    node_id=116
    port=32102
    nip=192.168.1.115
    wip=192.168.1.115
    
    
    [AgentServer9]
    node_id=117
    port=32101
    nip=192.168.1.148
    wip=192.168.1.148
    
    [SR_GameServer9]
    node_id=118
    port=32102
    nip=192.168.1.148
    wip=192.168.1.148
    
    
    [AgentServer10]
    node_id=119
    port=32101
    nip=192.168.1.145
    wip=192.168.1.145
    
    [SR_GameServer10]
    node_id=120
    port=32102
    nip=192.168.1.145
    wip=192.168.1.145


    Once those project files are setup, I run my tool to generate the inis based on templates. Once the inis are done, it's simply a matter of running my Convert to go from ini->packt and then running the certification server using that packt.

    Anyways, point of this post is simple: if you want to learn the VSRO structure, start from scratch. Build your way up to working configurations and reference the old JSRO packt.dat dumped (that's what my tools were originally written for). It's not easy and it takes a lot of time, but if you work through doing what I did with all my tools, you'll be able to come up with automatic tools to easily generate, manipulate, and maintenance larger server/shard setups without having to touch the files again by hand.
    Nice, that will be more easier to build server with many Nodes

    Im intrested to look at the tool ^^

    but i think old JSRO packt.dat was built in diffrent way then you ... it is really awesome days i think to coding Cert better then JSRO one ..

    Cheers,,

  3. #18
    Enthusiast degluiperd is offline
    MemberRank
    Nov 2011 Join Date
    30Posts

    Re: Sharing VSRO Structure (diagrams)

    Quote Originally Posted by megaman963 View Post
    Nice, that will be more easier to build server with many Nodes

    Im intrested to look at the tool ^^

    but i think old JSRO packt.dat was built in diffrent way then you ... it is really awesome days i think to coding Cert better then JSRO one ..

    Cheers,,
    No, jsro packt.dat is 90% the same, only different namings and some stuff changed like the account query is not in the .exe anymore but also in a .ini now.

  4. #19
    Proficient Member benike1 is offline
    MemberRank
    Dec 2006 Join Date
    163Posts

    Re: Sharing VSRO Structure (diagrams)

    Quote Originally Posted by LegendaryDev View Post
    Here :)

    Why do they run 56 machinemanagers? whats the point of assigning a machine manager to each module? (agentserver, gs, etc...) lol
    And 4 GS is also kinda useless.. 3 is more than enough.
    Last edited by benike1; 12-07-12 at 03:24 AM.

  5. #20
    Developer sladlejrhfpq is offline
    MemberRank
    Oct 2011 Join Date
    671Posts

    Re: Sharing VSRO Structure (diagrams)

    I tried to create the config from the 2Machine pdf, (GS and Agent are not linked to each other). Server run properly, but at connect I get C10 error. I read some forums, and maybe it is because I opened the server at my home network (LAN). It would be really kind and helpful, if someone could test it for me. Please let me know if you could do this little favour for me here, or in pm. Thanks in advence.




    EDIT: Fixed, also created one with 2 shards ^^
    Last edited by sladlejrhfpq; 16-07-12 at 07:44 PM.

  6. #21
    Proficient Member benike1 is offline
    MemberRank
    Dec 2006 Join Date
    163Posts

    Re: Sharing VSRO Structure (diagrams)

    Quote Originally Posted by LegendaryDev View Post
    Here :)

    hmm it's actually a good idea to run only 1 module (for example, just a gateway server) on each machine
    i'm working on a new server, got a dedi with 128gb ram
    i made 42 virtual machines, gonna run 5 gateway, 5 download, and 5 shards, each shard will have 2 agent, and 3 gs =D

  7. #22
    Valued Member kaperucito is offline
    MemberRank
    Nov 2008 Join Date
    134Posts

    Re: Sharing VSRO Structure (diagrams)

    Quote Originally Posted by benike1 View Post
    hmm it's actually a good idea to run only 1 module (for example, just a gateway server) on each machine
    i'm working on a new server, got a dedi with 128gb ram
    i made 42 virtual machines, gonna run 5 gateway, 5 download, and 5 shards, each shard will have 2 agent, and 3 gs =D
    Its only a good idea if you have a big enough playerbase, you are a serious company and have the funds for pay the servers.

    It doesn't worth building so many nodes splitted on virtual machines, the point of having many nodes with the same functions is split the load between them, so this way is more safe and runs smoother. Run 9999 virtual machines is NOT a good idea, simply because the resources are still limited by 1 server. What is the point of make 10 DownloadServers if they all use the same connection?

    Play around with the nodes is fun, but for the private server scene and the current situation the only node that must be duplicated is the GameServer, the rest are not really needed.

    Also think that: 1 node down -> whole server down, so it is even more unstable than an small configuration.



Page 2 of 2 FirstFirst 12

Advertisement