It is currently 18 Nov 2019, 05:53
   
Text Size

Taking another swing at networking

Moderators: TheElk801, BetaSteward, LevelX, North, noxx, JayDi, jeffwadsworth, CCGHQ Admins

Taking another swing at networking

Postby BetaSteward » 07 Apr 2017, 13:50

Hey XMage Devs,

I'm back at it again. First off let me start by saying that everyone has done a fantastic job with XMage. It's awesome to see how far it has come from it's early days on Google Code.

The last time I was working on XMage I was attempting to convert the networking layer to use Netty but then real-life got in the way and I had to step away for some time. Life has started to return to normal so I'm now in the mood to get back to coding.

Recently I took a look at what I had done and I decided that it might be of some use to other projects so I simplified the code and split it out into a separate repo. I even took a stab at converting everything to Scala but I found the integration with Java was just too awkward.

The new project is called jorre. You can find the repo here: https://github.com/betawares/jorre. It is a networking framework that allows java based applications to exchange request/response objects using Netty.

My plan is to redo the XMage networking layer using this framework. I am hoping that it will be somewhat less complicated than my previous attempt. Over the next few weeks I will create a new branch and start the process of removing the jboss-remoting networking and replacing it with jorre. I suspect that this operation will probably require some rework to the jorre framework as well.

When in place, this networking overhaul should hopefully allow much greater throughput and reduce the number of disconnects and possibly reduce the number of server restarts. After that I'm considering doing some work on making the server scalable so that additional instances could be added as load increases.

If you're interested in helping or if you just want more info let me know.

Regards,

BetaSteward
BetaSteward
DEVELOPER
 
Posts: 129
Joined: 28 Mar 2010, 13:15
Has thanked: 6 times
Been thanked: 29 times

Re: Taking another swing at networking

Postby fireshoes » 07 Apr 2017, 17:04

We have a gitter page to chat now too, if you want to communicate with other devs. That's where nearly all of conversations take place.
User avatar
fireshoes
 
Posts: 536
Joined: 20 Aug 2014, 03:51
Has thanked: 201 times
Been thanked: 49 times

Re: Taking another swing at networking

Postby escplan9 » 08 Apr 2017, 01:56

Hey! Welcome back! Looking forward to your contributions! Join us on Gitter to keep more up to date on the project!
escplan9
 
Posts: 257
Joined: 10 Aug 2015, 22:38
Has thanked: 26 times
Been thanked: 39 times

Re: Taking another swing at networking

Postby noxx » 15 Apr 2017, 08:53

Hi BetaSteward,

Did you finally get to the chat fireshoes gave link to? I've been looking into network issue for last months (when had time) and I believe the application (engine) itself should be changed first (especially from bandwidth perspective - see https://github.com/magefree/mage/issues/2812). The root cause I see is the way the server sends updates that is far from being effective.

Regarding your topic: first I'd like to ask LevelX if we really had network issues so far: I see players reporting some of them but I also see 500 players online so means protocol level may work well. And still even if we choose new framework for networking it's long path since it should be tested carefully (not on a single machine) and with emulating network outages.

Recently joined chat for the 1st time, we may discuss it there.

If you're interested in helping
Yes, I'm. Do you have feature branch created or any progress on it from xmage code basis?

Noxx
noxx
DEVELOPER
 
Posts: 110
Joined: 25 Mar 2012, 08:13
Has thanked: 3 times
Been thanked: 37 times

Re: Taking another swing at networking

Postby BalanceOfPower » 16 Apr 2017, 20:27

I am interested in the network part. I originally started working on XMage to work on that but ended up making another large change instead (moving cards from sets to individual cards in alphabet folders). The interest in the network code was to change XMage to use a format that could be shared by clients other than Java. I'm wanting to create a new client using Electron (Html/Javascript).
BalanceOfPower
 
Posts: 2
Joined: 04 Sep 2016, 02:32
Has thanked: 0 time
Been thanked: 0 time


Return to Developers Talk

Who is online

Users browsing this forum: No registered users and 0 guests


Who is online

In total there are 0 users online :: 0 registered, 0 hidden and 0 guests (based on users active over the past 10 minutes)
Most users ever online was 546 on 15 Nov 2019, 10:18

Users browsing this forum: No registered users and 0 guests

Login Form