How does one go about writing a go server?

General conversations about Go belong here.
duckweed
Dies in gote
Posts: 45
Joined: Sat Dec 18, 2010 6:29 am
Rank: Kgs 5 Kyu
GD Posts: 0
Has thanked: 3 times
Been thanked: 18 times

How does one go about writing a go server?

Post 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.
Bill Spight
Honinbo
Posts: 10905
Joined: Wed Apr 21, 2010 1:24 pm
Has thanked: 3651 times
Been thanked: 3373 times

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

Post by Bill Spight »

The Adkins Principle:
At some point, doesn't thinking have to go on?
— Winona Adkins

Visualize whirled peas.

Everything with love. Stay safe.
Kaya.gs
Lives with ko
Posts: 294
Joined: Fri Aug 12, 2011 10:52 am
Rank: 6d
GD Posts: 0
KGS: Dexmorgan
Wbaduk: c0nanbatt
Has thanked: 25 times
Been thanked: 78 times
Contact:

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

Post 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.
Founder of Kaya.gs
User avatar
cyclops
Lives in sente
Posts: 801
Joined: Mon May 10, 2010 3:38 pm
Rank: KGS 7 kyu forever
GD Posts: 460
Location: Amsterdam (NL)
Has thanked: 353 times
Been thanked: 107 times
Contact:

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

Post 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.
duckweed
Dies in gote
Posts: 45
Joined: Sat Dec 18, 2010 6:29 am
Rank: Kgs 5 Kyu
GD Posts: 0
Has thanked: 3 times
Been thanked: 18 times

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

Post 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.
cata
Dies with sente
Posts: 72
Joined: Sun Sep 25, 2011 9:39 pm
Rank: KGS 2k
GD Posts: 0
KGS: cata
Has thanked: 1 time
Been thanked: 24 times

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

Post 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.
Kirby
Honinbo
Posts: 9553
Joined: Wed Feb 24, 2010 6:04 pm
GD Posts: 0
KGS: Kirby
Tygem: 커비라고해
Has thanked: 1583 times
Been thanked: 1707 times

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

Post 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... :-)
be immersed
duckweed
Dies in gote
Posts: 45
Joined: Sat Dec 18, 2010 6:29 am
Rank: Kgs 5 Kyu
GD Posts: 0
Has thanked: 3 times
Been thanked: 18 times

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

Post 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.
Last edited by duckweed on Mon Jun 25, 2012 7:59 am, edited 1 time in total.
User avatar
Laman
Lives in gote
Posts: 655
Joined: Thu May 06, 2010 10:24 pm
Rank: 1d KGS
GD Posts: 0
KGS: Laman
Location: Czechia
Has thanked: 29 times
Been thanked: 41 times
Contact:

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

Post 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?
Spilling gasoline feels good.

I might be wrong, but probably not.
User avatar
oren
Oza
Posts: 2777
Joined: Sun Apr 18, 2010 5:54 pm
GD Posts: 0
KGS: oren
Tygem: oren740, orenl
IGS: oren
Wbaduk: oren
Location: Seattle, WA
Has thanked: 251 times
Been thanked: 549 times

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

Post 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. :)
cata
Dies with sente
Posts: 72
Joined: Sun Sep 25, 2011 9:39 pm
Rank: KGS 2k
GD Posts: 0
KGS: cata
Has thanked: 1 time
Been thanked: 24 times

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

Post 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.
User avatar
wms
Lives in gote
Posts: 450
Joined: Tue Apr 20, 2010 4:23 pm
GD Posts: 0
KGS: wms
Location: Portland, OR USA
Has thanked: 257 times
Been thanked: 287 times
Contact:

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

Post 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.
Uberdude
Judan
Posts: 6727
Joined: Thu Nov 24, 2011 11:35 am
Rank: UK 4 dan
GD Posts: 0
KGS: Uberdude 4d
OGS: Uberdude 7d
Location: Cambridge, UK
Has thanked: 436 times
Been thanked: 3718 times

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

Post by Uberdude »

4. Sell ad-hoc KGS+ lectures on demand?
xed_over
Oza
Posts: 2264
Joined: Mon Apr 19, 2010 11:51 am
Has thanked: 1179 times
Been thanked: 553 times

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

Post 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 :)
User avatar
mdobbins
Lives with ko
Posts: 242
Joined: Sun Feb 28, 2010 8:18 am
Rank: KGS 4 Kyu
GD Posts: 2067
KGS: mgd
DGS: mdobbins
Location: Pa, Va
Has thanked: 15 times
Been thanked: 64 times
Contact:

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

Post 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. :)
Michael Dobbins; Dragon: mdobbins, KGS: mgd, AGA#: 4253,
My Website
Post Reply