Page 1 of 2

How does one go about writing a go server?

Posted: Sun Jun 24, 2012 7:31 am
by duckweed
I was told to write my own go server in egr by an user today because I made some disgruntled remarks about how long it is taking wms to fix the stone sounds.

So how exactly does one go about writing a go server? I am not interested in operating a go server, just in creating one for the kick of it.

Re: How does one go about writing a go server?

Posted: Sun Jun 24, 2012 7:41 am
by Bill Spight

Re: How does one go about writing a go server?

Posted: Sun Jun 24, 2012 4:25 pm
by Kaya.gs
duckweed wrote:I was told to write my own go server in egr by an user today because I made some disgruntled remarks about how long it is taking wms to fix the stone sounds.

So how exactly does one go about writing a go server? I am not interested in operating a go server, just in creating one for the kick of it.

If you have to ask this question, then you would need to learn a lot to harness the abilities to build one.
Its a lot of work and effort to build a multiplayer system that just works, and an inmense one to make it a good experience.
I assume you are a programmer?


However, you can definitely collaborate on an existing server. There are some open sourced ones, and Kaya itself has parts of it open-sourced so people can collaborate.

Re: How does one go about writing a go server?

Posted: Sun Jun 24, 2012 4:36 pm
by cyclops
kgs move sounds are like bullets into your ear. Try to listen to Guo Juan's teaching audio lessons at KGSplus. You'll want to switch off the sound but then her voice is gone as well.

Re: How does one go about writing a go server?

Posted: Sun Jun 24, 2012 4:50 pm
by duckweed
Kaya.gs wrote:
If you have to ask this question, then you would need to learn a lot to harness the abilities to build one.
Its a lot of work and effort to build a multiplayer system that just works, and an inmense one to make it a good experience.
I assume you are a programmer?


However, you can definitely collaborate on an existing server. There are some open sourced ones, and Kaya itself has parts of it open-sourced so people can collaborate.
I'm just curious how hard it would be to write a basic one.


cyclops wrote:kgs move sounds are like bullets into your ear. Try to listen to Guo Juan's teaching audio lessons at KGSplus. You'll want to switch off the sound but then her voice is gone as well.
Yeah, it always puzzled me why no one ever bought her a noise cancelling microphone or just told her to switch off kgs sounds.

Re: How does one go about writing a go server?

Posted: Sun Jun 24, 2012 9:01 pm
by cata
duckweed wrote:
Kaya.gs wrote:
If you have to ask this question, then you would need to learn a lot to harness the abilities to build one.
Its a lot of work and effort to build a multiplayer system that just works, and an inmense one to make it a good experience.
I assume you are a programmer?


However, you can definitely collaborate on an existing server. There are some open sourced ones, and Kaya itself has parts of it open-sourced so people can collaborate.
I'm just curious how hard it would be to write a basic one.
If you don't know how to program, it'll take you several dozen hours to get to making useful progress, and there'll be many hundreds of hours of roadbumps after that before you get something useful working. Them's the breaks. I'd start out by finding a friend who knows how to program and asking if they'll recommend you resources to learn with.

If you do know how to program, you already spent those hours; it's not a particularly unusual or difficult project, so hop to it.

Re: How does one go about writing a go server?

Posted: Mon Jun 25, 2012 3:44 am
by Kirby
Are you asking how to program, or...? If you already know how to program, why not start with an SGF parser... Or maybe before that, think of some of the features you want your server to have.

Another problem is, even if you write a server, it will take time to get a lot of people using your server, unless it's really a lot coolaer than the existing ones. And if it's less cool than the existing ones, that may never happen.

Either way, I won't discourage you from trying. If nothing else, you'll learn something... :-)

Re: How does one go about writing a go server?

Posted: Mon Jun 25, 2012 4:14 am
by duckweed
Kirby wrote:Are you asking how to program, or...? If you already know how to program, why not start with an SGF parser... Or maybe before that, think of some of the features you want your server to have.

Another problem is, even if you write a server, it will take time to get a lot of people using your server, unless it's really a lot coolaer than the existing ones. And if it's less cool than the existing ones, that may never happen.

Either way, I won't discourage you from trying. If nothing else, you'll learn something... :-)

I do know some programming, just not anything I would need to do something like this.

I guess I would need to learn python, javascript, html and css and start with trying write to a goban on a web page.

I don't plan to be a go server operator. I think when the programmer is the operator, it is not a good arrangement.

Re: How does one go about writing a go server?

Posted: Mon Jun 25, 2012 7:16 am
by Laman
duckweed wrote:I do know some programming, just not anything I would need to do something like this.

I guess I would need to learn python, javascript, html and css and start with trying write a goban on a web page.

I don't plan to be a go server operator. I think when the programmer is the operator, it is not a good arrangement.
i don't think you will make it, but everything you learn by the way is good to know, so definitely go for it while your enthusiasm lasts

as a side note, the web solution is popular nowadays and i like it personally, but it is by no means necessary, especially not for such a "for fun" project. any language would work. which ones can you speak?

Re: How does one go about writing a go server?

Posted: Mon Jun 25, 2012 9:38 am
by oren
Someone already mentioned this above. If you want to see what it takes to write a go server, you can always just take a look at the nngs source code. A few years ago, I compiled it and ran it for fun to check it out.

I think all you really need to write a good server is C, but I'm biased by my day job. :)

Re: How does one go about writing a go server?

Posted: Mon Jun 25, 2012 6:53 pm
by cata
Yeah, if you don't have previous experience doing web development, I don't see why there'd be any need to jump down that particular rabbit hole for this project. You could just write the server and client in whatever language you're already comfortable with.

Re: How does one go about writing a go server?

Posted: Tue Jun 26, 2012 10:04 am
by wms
Here's how I did it:

1. Spend a few years designing and implementing communications protocols.
2. Learn Java.
3. Write go server with experience from 1 and 2.
4. ???
5. Profit!

I'm still working out step 4.

By the way, I will not be "fixing" the stones sounds. It's a java bug, it works in older java, and at this point I'm fed up and not fixing java bugs any more. Any time I have is going to an HTML client so I can spend my time fixing web browser regressions instead.

Re: How does one go about writing a go server?

Posted: Tue Jun 26, 2012 10:41 am
by Uberdude
4. Sell ad-hoc KGS+ lectures on demand?

Re: How does one go about writing a go server?

Posted: Tue Jun 26, 2012 4:18 pm
by xed_over
wms wrote: so I can spend my time fixing web browser regressions instead.
something tells me that you'll soon be wishing you were fixing java bugs instead of dealing with the plethora of browser incompatibilities :)

Re: How does one go about writing a go server?

Posted: Wed Jun 27, 2012 7:49 am
by mdobbins
xed_over wrote:
wms wrote: so I can spend my time fixing web browser regressions instead.
something tells me that you'll soon be wishing you were fixing java bugs instead of dealing with the plethora of browser incompatibilities :)
Make the HTML code work for a browser that runs on every OS, then say that that browser is the KGS client. ;)
At least then no one can complain that they have no way to access KGS as everyone can run multiple browsers on any platform. :)