It is currently Thu Mar 28, 2024 4:15 am

All times are UTC - 8 hours [ DST ]




Post new topic Reply to topic  [ 29 posts ]  Go to page 1, 2  Next
Author Message
Offline
 Post subject: Introducing Apachi: A Progressive Go Server
Post #1 Posted: Mon Sep 02, 2019 12:16 am 
Beginner

Posts: 9
Liked others: 12
Was liked: 5
Hello!

I'm super excited to finally start talking about this project, which has been on my mind for a long time. The actual stage of development is still early (about two months of part time work), but it's finally all coming together and I think it's already showing a ton of potential.

You can try out the very rough first prototype at https://Apachi.gs.

I have also set up a discord server in case you'd like to provide more direct feedback or find people to test with: https://discord.gg/tU27j2D

Technically Apachi is more of an app than a server, but I've decided to call it Apachi.gs for largely sentimental reasons.

So what is Apachi and what makes it different? First of all, it's not my intention to simply compete with other go servers like OGS. If that was my intention, I would be contributing to OGS instead. Rather, I want to provide something that simply doesn't exist in this form, but that I've always wished existed.

I am calling it a "progressive" go server for two reasons: The first is that it is set up as a progressive web app. That essentially just means that you can fully run it in your browser, but it can also be installed as a standalone app with a single click. PWAs are also fully responsive, so it scales all the way from the tiniest mobile device in portrait mode all the way to a full screen desktop app.

The second and more important reason I call it progressive is that I want to challenge our assumptions of what playing go online can be like. I'm going back to the drawing board on every single feature, so chances are that the result is not what you would expect. Not everybody will like this, but I strongly believe that there is value in having at least one app that does things radically differently and experiments with new ideas. The rest of this introduction will focus on describing the various design concepts, but first:


** Current Status

There is still a lot of low hanging fruit that would have resulted in a much better first impression if I had delayed the announcement a bit longer (e.g. a unique score evaluator that currently isn't exposed at all since I just rewrote the board view), but I've set myself a deadline and it was important to me to stick with it. My hope is that this early version will create some good feedback already, and that rapid progress will make at least some of you stick around for more. Generally I'm a strong believer in "release early release often" and iterative development.

Right now I am entirely focused on the playing experience, so that is the only thing that is working so far. Basic match making works, but there is no ranking system yet. Don't expect to play solid games on it yet, but you can try out what the experience is like if you find somebody to test with or make two accounts. I expect that all account data will be wiped before entering Alpha state, so feel free to create multiple accounts for testing. There is also a demo board that can be tried without registering, but it will only give you a board view without any match controls.

Some of the major known issues right now are:

  • Suicide moves are possible and don't result in a capture, so that's obviously quite broken.
  • Scoring isn't really there yet (more on that soon). Since there's also no ranking or stat tracking yet, you can simply "resign" a game at any time to end it.
  • There is no email registration yet, so the only way to register is by signing up with Google (for no other reason than that it was the fastest to implement).
  • Matchmaking doesn't time out if you forget to cancel it. So you might get a match against somebody who has already left. Just resign and try again if that happens.
  • While I've started designing the app for the desktop view, midway I switched to focusing on the mobile view when I noticed the potential for that (also I got convinced that it's easier to build mobile layouts first and then scale up from that then the other way around). Which means that currently the desktop layout is quite silly (in a match).

I'll work on all of these over the coming days. My agenda for the initial alpha release is to fix the above issues, add a solid ranking system, and of course a whole lot of bug fixing and polish.

There has been no stress testing at all yet, so do expect things to fail in the most horrible of ways.


** Philosophy

I've first started thinking about Apachi when I caught myself coming back to Lichess over and over again, even though I had long lost interest in chess at that point. I wished there was something comparable for go, and I wondered if it is possible. Basically, Apachi is my attempt at answering that question.

My goal is to create a place to play go where every moment sparks joy. Something that's accessible, satisfying, fast paced, and that can comfortably be played from any device.

My background is in game development, so I might also be able to bring a different perspective to some things. The last ten years or so I've been working as a freelance game developer, and I've been immersed in game design for much longer than that. So another question Apachi is trying to answer is, what would it look like if I'd design go as a contemporary online game? I genuinely think that there is a huge amount of untapped potential. My plan is to throw everything I've learned about game design best practices at this project and see what happens.

An example of this would be a first class on-boarding experience. Go may be a complex game, but its core mechanics are really quite simple compared to some modern online games. There is no reason why we can't gradually ease a new player into those mechanics while allowing them to have fun from the very first moment. The ultimate end goal would be to create a place that isn't just enjoyable for experienced go players, but also able to create new go players by itself. Realistically a lot of people will take their first steps in go online, and I'd like that experience to be as pleasant as possible.

That said, this is not going to be another batoo or fly or die. People are drawn to abstract games for very different reasons than modern video games, so I believe that any efforts to turn go into a casual game are destined to fail. My goal is to take the opposite approach and double down on go's legacy and competitive appeal, while simply creating the smoothest possible experience around it.

My focus for Apachi is very strongly on competitive real-time matches. While I am not ruling out expanding on the feature set over time, my goal is not to directly compete with servers like OGS on pure features and options.


** The Technical Aspect

Or: What makes you think you can get this done?!

Maybe the most impactful technical choice has been to use Firebase on the backend. Firebase is a "backend as a service" run by Google which offers a realtime database and much more. This eliminates most if not all potential issues about general stability or scalability of the backend and allows me to focus entirely on the server logic and client app. I initially had some doubts about it, but those have been erased by the working prototype. I couldn't be happier with the results so far, and this really was the missing piece that convinced me that this project is actually doable as a solo developer.

The frontend is based on Svelte 3 for widgets and (2D) Canvas for the board rendering.

It's still a very ambitious project, but by keeping the scope small with frequent iterative improvements, I feel extremely optimistic about it. It's also a perfect match for my unique skill set as both programmer and designer. In some ways I feel like my entire life has prepared me for this project. I know how silly that sounds, but I really do feel that way. If this is what I do for the rest of my life, I'd be perfectly content.


** Business Model

In terms of financing, I'm completely flexible. I've recently made the decision to switch to web development and coming from game development, I figured that nothing would make a better portfolio piece than this project. This means that even if it is a complete commercial failure and I'm the only one who appreciates its existence, I should still be able to make steady progress working on it in my free time in between jobs.

That said, of course it would be a dream to be able to work on Apachi regularly or even full time at some point, and this would massively increase the potential. So I am going to do what I can to make that happen. I don't plan to add any ads or pay2play features, so it will mostly rely on voluntary subscriptions/donations as usual. However I do have plans to add some elements from free2play games (the good kind) to reward supporters in various ways, e.g. with fanciful alternate board skins and other cosmetic items. Ultimately though I simply hope that if I keep working hard to delight the users, at least some of them will want to reward those efforts.

There is no urgency about funding, but I will have to get a sense of the potential soon to decide my immediate future plans (mainly choosing between getting a full time job in web development or sticking with freelancing).

Honestly I have not been extremely involved in the go community recently, so I have no idea what to expect. Whether I am greeted with complete silence, or a load of enthusiasm, or even attacks. For now I am just hoping for the best and then I'll adjust my plans based on the response I get.


You probably noticed that I haven't spoken much about the actual features (existing and planned) of the app yet. That's not because those aren't the most important, but because I knew I wouldn't be able to condense my thoughts very well, and this post has already gotten pretty long for a first post.

I also need some sleep, so I figure I'll catch some of it now and continue this early tomorrow. Suffice to say there is a lot more to come and there's also more to the prototype than meets the eye. Hopefully some of you will already get a chance to give it a try and get some early impressions before I'll go into a lot more detail tomorrow.

For now, please consider this my "hello world" posting. It is my sincere hope that I will be able to contribute something significant to the (western) go world, but I don't want you to take my word for it. Now that the cat is out of the bag I intend to provide frequent development updates, which should provide you with a much better picture of what to expect from this soon. If I just got your curiosity for now, I'd be happy.

Thanks for reading this far, I'll be right back after some rest!


Attachments:
Screenshot_22.png
Screenshot_22.png [ 264.1 KiB | Viewed 11147 times ]
Top
 Profile  
 
Offline
 Post subject: Re: Introducing Apachi: A Progressive Go Server
Post #2 Posted: Mon Sep 02, 2019 4:00 am 
Oza
User avatar

Posts: 2401
Location: Tokyo, Japan
Liked others: 2338
Was liked: 1332
Rank: Jp 6 dan
KGS: ez4u
I click the link, see that it is "pre alpha", and I am invited to share my personal information (i.e. "sign in") to play. WTF? Well, best of luck. Call back when you have your final product. :salute:

_________________
Dave Sigaty
"Short-lived are both the praiser and the praised, and rememberer and the remembered..."
- Marcus Aurelius; Meditations, VIII 21

Top
 Profile  
 
Offline
 Post subject: Re: Introducing Apachi: A Progressive Go Server
Post #3 Posted: Mon Sep 02, 2019 6:28 am 
Lives with ko

Posts: 259
Liked others: 46
Was liked: 116
Rank: 2d
ez4u wrote:
I click the link, see that it is "pre alpha", and I am invited to share my personal information (i.e. "sign in") to play. WTF? Well, best of luck. Call back when you have your final product. :salute:

Also, clicking on "Sign in" briefly pops up a window, which then closes itself immediately. Probably something is getting blocked by my umatrix settings, but who knows. If you want people to try out the server, you need to provide guest logins (without pop-ups).

Top
 Profile  
 
Offline
 Post subject:
Post #4 Posted: Mon Sep 02, 2019 7:07 am 
Honinbo
User avatar

Posts: 8859
Location: Santa Barbara, CA
Liked others: 349
Was liked: 2076
GD Posts: 312
I also like Lichess.org

Good luck!

I don't know what .gs stands for sentimentally, but it conjures up memories of Java .jar extension, .s assembly extension, stylesheet .css extension, or the Apple ][gs... I'd drop it. :blackeye:

Top
 Profile  
 
Offline
 Post subject: Re: Introducing Apachi: A Progressive Go Server
Post #5 Posted: Mon Sep 02, 2019 7:16 am 
Lives in gote
User avatar

Posts: 310
Location: Deutschland
Liked others: 272
Was liked: 126
Rank: EGF 4 kyu
Oh. Oh dear.

Ok. Firstly, I'm right behind you. I, too, feel that Go should learn from lichess. Hell, ALL abstract games should learn from lichess. I'm also tired of waiting on KGS for games (the wait seems to get longer and longer -- even in automatch -- as the months roll by), tired of the Fox U.I. (gaaah!), tired of completely failing to get games on Tygem (probably because my win-loss ratio is biased. Am I supposed to just throw away my account and make a new one?) and tired of using glGo for IGS so I'm open for a new server experience. Bring it on.

However, I've watched Kaya come and go and I've watched OGS come and stay and, still, I don't really feel like new projects have really done a good job, historically, of learning from the past. OGS is doing OK but some of their decisions don't really agree with my own opinions and they seem pretty closed to new ideas and feedback.

Maybe you'll be different.

Advice item number 1: LISTEN to Go players!

Example: my continual piece of advice to OGS has been that the clock is completely unreadable on OGS (particularly in over-time) and, for live games, that makes for a poor experience. As a Go player, I have played MANY, MANY games with many different types of clock and the clock is extremely important. After all, the time is the second most important piece of information to the game. (The board state is the first.) So treating the visibility and readability of the clock is not a minor priority. It should be priority number 2, right after the visibility and readability of the board! (Your board in the screenshots looks well readable, though, so it looks like you're already done with one.)

Aiming for "lichess for Go" is great but please don't forget some of the fundamental requirements. These are not open to artistic license or debate -- they're simply necessary. Save your innovation for other things:

1. Getting into the game, quickly, fairly matched, should be of paramount importance and easy to do.
2. Making the playing experience "nice", with a pretty board and readable clock.
3. Next comes the review tools. Variations, quickly and easily navigating the game tree, adornments (squares, triangles, 'A', 'B', '1', '2' ...) on stones and empty intersections. (Tip: KGS has hotkeys for these tools and that's probably why you still see CGoban on every projector screen at any event where live lectures are being given.)

Get those three right -- nay, perfect -- and you can do what you like to innovate on the rest.

I read your (rather verbose) post in quite a hurry so forgive me if I missed it but you didn't declare your own Go experience or your experience with other Go software. If you are a strong player and have been playing for many years, you will already be ahead of the pack when it comes to experiencing different playing conditions. (Exhibit A: the odd models of clock one encounters at real-life tournaments.) But past software also has lessons to teach.

PLEASE do not ignore our legacy. Even old glGo has ideas that are still relevant and even KGS was once a much loved project of someone who was no fool and wanted to create the "best" server at the time.

Top
 Profile  
 
Offline
 Post subject: Re: Introducing Apachi: A Progressive Go Server
Post #6 Posted: Mon Sep 02, 2019 9:32 am 
Beginner

Posts: 9
Liked others: 12
Was liked: 5
Hi guys!

First of all, I completely understand that google sign in is not good enough. As I mentioned I only started with this because it was the fastest to set up, but I'll make it a priority today to add proper user registration (making sure to disable email verification during pre-alpha, so you can simply provide fake information). In the meantime, you can try out the demo board without registration. But honestly, if you only spend the time to read my post for now I am quite grateful already.

To be clear, if you sign up with google I will get access to the name, email, and profile picture of that particular google account. None of which is needed or used by the app in any form (you set your own username after signing in).


@EdLee: Sentimental because of Kaya.gs and Nova.gs mainly. It was an exciting time full of hopes and dreams... I hope to bring some of that magic back :) Part of me is sad that Nova dropped their name as well, although objectively OGS is certainly a superior URL by an order of magnitude. That said, the name of the app is just "Apachi", and the URL is ultimately not that crucial. You don't even need to access it if you choose to install it as a desktop/home screen app.


@Charlie: Love that post, thank you! This is the kind of discussion I was most looking forward to. The intro post really just scratched the surface of what I want to express, the hardest part is to know when to stop so I don't slaughter you guys with a wall of text.

You make a good point that I should probably introduce myself to provide some context, so here goes:

My real name is Daniel Borgmann, I'm a 37 year old software developer from Germany. I've discovered my passion for programming and game design when I was a small child, so I've been at it for a fairly long time. I started as an Open Source developer mainly involved in projects around GNOME, Ubuntu, and Nokia's mobile platforms (before they switched gears towards Microsoft). There is actually still a very old blog of mine up at dborg.wordpress.com, if you'd like to stalk my past self :) Maybe relevant is this post from 2006 about a chess app I was working on and which illustrates my design preferences even back in those days. This may look pretty standard now, but remember that was 13 years ago. Even Lichess is only 9 years old.

After working for an Open Source company for some time, I moved on to game development where I started making Flash games, then moved on to Unreal Engine and mostly paid the bills with freelance work. The project I am maybe most fond of from that time is Fearless Fantasy. It was neither a huge project nor a huge success, but it was a two man project that took several years to complete against many odds. It gave me the confidence that I can see through a challenging project even if things get a little rough.

Before go I was a semi-serious chess player, playing for my local club and participating in the occasional tournament. When I discovered go I did not look back however. I usually study go in short intense phases (usually accompanied by a re-watch of Hikaru no Go for motivation), with very long breaks in-between. I find that when I am "out of it" for a while it's really difficult to keep at it. On the other hand it's very easy to go for a quick 5 minute game on Lichess, and I've noticed that just doing so kept me somewhat anchored into the world of chess. This effect is my main motivation for creating Apachi.

In the past I've mostly played on KGS, and it is the server I have the fondest memories of. Lately I've been mostly playing on Fox, although its interface is frankly atrocious. I've tried to get into OGS several times, but while I have mad respect for everything the developers have accomplished, for various reasons it just isn't clicking for me.

In terms of strength, I'm currently 1k on Fox and my best on KGS was somewhere around 3k. So not amazing, but I hope it's passable for a developer :)

I was also an early backer for Kaya.gs and I had huge hopes for it which did not come to pass. I don't blame the developers for trying though. Go should teach us that success can only come from failure, and we aren't going to get anywhere if we don't at least try and allow ourselves to fail. Fortunately we can learn a lot from previous efforts like Kaya and technology has progressed massively in the roughly eight (!!) years since Kaya was announced, which opens up a lot more possibilities. I intend to give it my best shot, which is ultimately all I can really promise.

Quote:
Advice item number 1: LISTEN to Go players!


Absolutely. I may be very opinionated about what I am trying to create, but the heart of everything is to pay close attention to what issues players really experience. For me this is not about trying to please everybody by adding countless options though, but about fixing the underlying root issues e.g. by coming up with creative solutions for them.

Quote:
1. Getting into the game, quickly, fairly matched, should be of paramount importance and easy to do.


Yes! This is maybe the most important of all, but it's also an area where I might step on some toes because Apachi does it completely differently. Instead of the usual lobby and negotiation process (with or without the help of automatch), my plan is to go with best practices from regular video games and focus matchmaking on a small number of clearly defined ranked queues. Right now if you open the app you got only three options, and you can queue up for as many of them as you like at the same time. The purpose of the three options is to account for different time requirements, with the rough target being to have one option for about 5-10 minute games (Blitz), one for games of around 20 minutes (Rapid), and one for sessions of up to an hour (Classic). Right now the difference between these options is mainly in board size, not timers, for reasons I'll still get into.

Compared to what other servers do this is super restrictive, but the idea behind it is to get you into a game as fast as practically possible. I believe that has a value in itself that has the potential to easily outweigh the lack of custom options. I also spend a lot of time thinking about how to get past the point of critical mass that any online game server requires. As a game developer this is one of the most common problems to face, so I'm definitely not going into this blindly. This will involve things like effortless background searching, providing (actually fun) things to do while you are waiting, and smart matchmaking algorithms that gradually widen the seek range as time passes.


Quote:
2. Making the playing experience "nice", with a pretty board and readable clock.


In a way, this is what Apachi is really about, more than anything else. One of the things I appreciate about Lichess is that the sensual experience of playing alone is quite pleasant. This involves many details, like the subtle sounds, the pleasant colour contrast, or the smooth animations. There is a certain addicting quality to it that I am mostly missing on current go servers. I could go into a lot of detail about all the little things I do to (hopefully) help with that, but that's the kind of thing that's really better to experience than to explain. And this is also just the very beginning, the potential for further improvements is still enormous.


Quote:
3. Next comes the review tools.


I also agree with this. It's not my priority yet and it may be a while until it can be, but I do think this is one of the most important features after playing itself. I won't be satisfied with a mediocre job in this regard, so when I get to it I'll obsess over it just as much as I do about the playing experience now. In the meantime, I'll probably go for making it easy to export games into external review tools (or servers).


Quote:
PLEASE do not ignore our legacy. Even old glGo has ideas that are still relevant and even KGS was once a much loved project of someone who was no fool and wanted to create the "best" server at the time.


Absolutely. We all build on each other's work, and the only way to progress is to learn from the past. One of the things I've done in preparation for this project is to obsessively comb through practically any discussion of servers/tools and go features (e.g. timing and rating systems) that I could find.

All of this is really just scratching the surface of my thoughts on those things, but I don't want to unload it all on you guys at once. So for now I'll go to work on the user registration and maybe some other improvements, I'll be back with more ramblings later :)

In the meantime, I'd love to hear more thoughts and feedback from you guys, and also please feel free to ask probing questions. I love answering those as it provides some structure for my ramblings, and I plan to be completely open about this project and myself.


This post by Zenity was liked by 3 people: Charlie, Ferran, Waylon
Top
 Profile  
 
Offline
 Post subject:
Post #7 Posted: Tue Sep 03, 2019 5:34 am 
Honinbo
User avatar

Posts: 8859
Location: Santa Barbara, CA
Liked others: 349
Was liked: 2076
GD Posts: 312
Hi Zenity :)
Quote:
In the past I've mostly played on KGS, and it is the server I have the fondest memories of. Lately I've been mostly playing on Fox, although its interface is frankly atrocious.
I look forward to you combining the best of:
  • KGS: review/teaching tools;
  • IGS-Panda: very pretty board & stones;
  • lichess, nice UI;
And removing the worst of:
  • KGS: atrocious 'fake 3D stones', puke-green board; escaper system;
  • all atrocious UI's ( Fox, Tygem, Oro, etc. )
Game matching mechanics:
I never use auto-match on KGS or IGS, because my time setting is very slow. However, I'd happily use an auto-match feature that's customizable to a wide variety of game settings.

I like the KGS option of setting up a 'table' with my preferred settings and others are free to sit down.

On IGS, I must manually click each potential opponent, one by one, to 'harass' them to a game -- this gets tedious but I got used to it after 15 years.

Top
 Profile  
 
Offline
 Post subject: Re:
Post #8 Posted: Tue Sep 03, 2019 5:52 am 
Lives with ko

Posts: 259
Liked others: 46
Was liked: 116
Rank: 2d
EdLee wrote:
Hi Zenity :)
Quote:
In the past I've mostly played on KGS, and it is the server I have the fondest memories of. Lately I've been mostly playing on Fox, although its interface is frankly atrocious.
I look forward to you combining the best of:
  • KGS: review/teaching tools;
  • IGS-Panda: very pretty board & stones;
  • lichess, nice UI;
And removing the worst of:
  • KGS: atrocious 'fake 3D stones', puke-green board; escaper system;
  • all atrocious UI's ( Fox, Tygem, Oro, etc. )


I think the best solution would be for the new owners of KGS to open-source the server, or at least the protocol, so that interested parties could provide a nicer-looking user interface that doesn't require Java. I don't have high hopes, however.
I don't think "more servers" is the answer, fragmentation is likely to do more harm than good.


This post by bernds was liked by: Bantari
Top
 Profile  
 
Offline
 Post subject:
Post #9 Posted: Tue Sep 03, 2019 6:00 am 
Honinbo
User avatar

Posts: 8859
Location: Santa Barbara, CA
Liked others: 349
Was liked: 2076
GD Posts: 312
Hi bernds,
Quote:
nicer-looking user interface that doesn't require Java. I don't have high hopes, however.
Same here. My ancient work-around is use the "textbook" stones ( just flat :black: & :white: circles! ) and non-puke board; no work-around for java ( shinKGS is enternally half-baked, with zero support for touch-screen devices: no Zoom, no move-confirm for mis-taps; no audio support ).
Quote:
don't think "more servers" is the answer, fragmentation is likely to do more harm than good.
Hmm... let the market decide. Curious about the 'fragmentation' situation with chess.com vs. lichess.org.

Top
 Profile  
 
Offline
 Post subject: Re: Re:
Post #10 Posted: Tue Sep 03, 2019 7:43 am 
Lives in gote
User avatar

Posts: 310
Location: Deutschland
Liked others: 272
Was liked: 126
Rank: EGF 4 kyu
bernds wrote:
I think the best solution would be for the new owners of KGS to open-source the server, or at least the protocol, so that interested parties could provide a nicer-looking user interface that doesn't require Java. I don't have high hopes, however.


To be fair, there's not a whole lot wrong with the JSON protocol. Were I to have architected it, I would have done it differently but what WMS built was going in the right direction for a while.

The problem is that it's by far not "done" and support for it is non-existent. Even a sign that it was going to have a life in the future would be enough for me to resurrect my own efforts with it. (I have recently acquired an iPad and, consequently, have been working on some cross-platform Go stuff that runs in the browser. At the moment, I have other plans for it, but I would be very happy to include KGS in those plans if I had some concrete idea of what to expect as far as support is concerned.)

Nobody even knows what the latest JSON protocol looks like. There's one hosted for ShinKGS (which, itself, is completely half-baked and broken and can't even be used for spectating boards accurately!) but nobody knows if that's the same thing as the ancient file available for download and self-hosting from the KGS site. (Maybe the author of GoUniverse can provide more accurate information than this, if he is still active, here.)

bernds wrote:
I don't think "more servers" is the answer, fragmentation is likely to do more harm than good.


As long as a server can gain critical mass, fragmentation isn't a problem. The problem would be if a new server steals users from KGS and OGS and then fails to gain critical mass.

Top
 Profile  
 
Offline
 Post subject: Re: Introducing Apachi: A Progressive Go Server
Post #11 Posted: Tue Sep 03, 2019 9:32 am 
Beginner

Posts: 9
Liked others: 12
Was liked: 5
Regarding server fragmentation: That's an issue that always comes up in go server discussions, and I completely understand this is a concern. Right now I don't think that fragmentation really is the issue with (western) online go though. OGS is pretty much the only actively maintained server at this point. I would love to see KGS revived, but I don't know if it will ever happen. Technical debt is a real issue, and at some point it can be easier to start anew than try and work with an outdated tech stack.

My goal with Apachi is not so much to make players switch from other servers, but to provide an option for those who are not happy with other options and/or for those situations where other options don't work well (e.g. a quick game on your mobile phone during a 10 minutes bus ride). I do believe there is value in having different options for different circumstances. In a nutshell, my intended target audience is new players and everybody who either can't or doesn't want to play on other servers right now (at least some of the time).

There is a lot to talk about still about what makes Apachi unique and how I plan to differentiate it. It's difficult to figure out how to present it in a concise form, so I'll try to just provide the bullet list for now. If you find any of this interesting, curious, or just plain weird, I'll be more than happy to expand on it! All I ask is to please give me the benefit of the doubt until I had a chance to explain the rationale behind any decision you find questionable.

So here it is:


UI Philosophy

Real life go sets are beautiful not because of their complexity, but because of their simplicity. A go set is almost entirely utilitarian, the beauty comes from its elegance, the high quality materials, and the attention to detail of the "user experience". This is almost literally the opposite of what real life chess sets are like, and it's a quality I would like to bring to go on screens via a minimalistic interface with attention to detail, modern design principles, and subtle textures.

Many computer go boards look great, but I find that the focus is often too much on photo realism and the UI around the board is often neglected, although it's just as much an integral part of the go experience when playing on a screen. Big shoutout at this point to Sabaki, which has the right idea IMO and has been a huge inspiration (although the actual styles are very different).


The Board

The board presentation is the aspect I've put the most attention to so far, and it's the easiest to try out in the prototype (via the Demo page). The immediately obvious part of it is the overall balance of colour and contrast. My goal is not to go for a photo-realistic look, but rather a more subtle look that evokes the feeling of a real board while also integrating contemporary design principles and subtle patterns for the most visually pleasing look and feel.

Some of the maybe not so immediately obvious features of the board view are:

- Perfect scalability. This is not as easy as it sounds. Rendering a perfectly crisp grid at every size is very tricky for example, and most other scalable go boards take the easy route of simply not scaling the thickness of the lines. The downside of that is that the look and feel of the board can change dramatically with the size of the board. Getting this just right was surprisingly tricky, but I'm super happy with the result. You can easily try this out by placing some stones and then resizing the browser window. Stones use a mixture of drawing shapes, bitmap textures, and precaching for perfect crispness at any size. Shadows and textures are gradually disabled as the board is shrunk. Getting this right was very important to me, since I want to maximize the board space for any screen and board size.

- Smooth transitions and animations. You'll know what I mean when you try placing a few stones.

- The placement process. Right now placing stones is a two-step process, whether you use the mouse or touch. Initially I wanted to do it differently for the mouse, but in practice I found that even using a mouse the two-step process feels very natural and engaging rather than being a nuisance. At the end of the day, it's still far easier to place a stone with two clicks than in real life, but this is definitely something I'd love some feedback about. One advantage of the two step process is that it makes missclicks virtually impossible. Another unique aspect about it is that the speed and loudness of the stone placement depends on the timing of your second click and maybe most importantly, this is also transmitted to your opponent. So just like in real life, this gives you the option of emphasizing certain moves, or to feign uncertainty... it's another level of interactivity that is usually absent from online go.

- Speaking of interactivity, another feature is that the point you are highlighting while it is your move is also transmitted to the other player. If you've played Hearthstone, then you know the principle. In real life you can get a lot of information from your opponent's body language and what they appear to be focusing on, so this also adds a layer of interactivity that is usually only available OTB. And just like in real life, it is up to you whether to put on a poker face or to be an open book about what you are thinking about.

- Touch controls. Playing go, especially 19x19, on a small phone in portrait mode is extremely tricky. The Apachi board view handles both mouse and touch input fluently, and I couldn't be happier with the results. Most mobile go boards use a zoom method which does the trick, but personally I find it very cumbersome. Apachi uses the crosshair method instead, that makes it much easier to accurately place a stone. If you swipe on to the board from any of the edges, the crosshair gets offset from your finger position, which is useful on very small devices (though right now you still have to tap on the stone itself to confirm the move, eventually there will also be a separate confirm button that will only appear on small devices).

Most servers provide different input options that (IMO) are all flawed in different ways, so my goal was to create something that "just works" in any situation. No settings are necessary, the crosshair automatically appears when you use touch instead of a pointing device. If you can try the app on your phone or tablet, please let me know how it works for you!


Timing System

This is a super fascinating subject, and I think especially for fast games it is very important to get this right. I've consumed pretty much every discussion I could find about timing systems (here and on sensei's library) and thought about it a lot myself. There is much I liked about Fischer (increment) and Bronstein (delay) systems, but neither seemed quite perfect. After failing to come up with anything better, I figured that maybe the answer is simply a combination of the two.

Right now all queues on Apachi use the same timing system: 2 minutes base time, 6 seconds delay, 6 seconds increment. In theory I believe that provides a very nice balance between the different aspects (while also scaling with different board sizes), but practice is a different matter of course so I'll have to observe closely how this plays out.

Timing alerts are another big issue, but this is something that I still need to implement. I have yet to find a server/app that gets this completely right for my liking, either the warnings are too easy to miss or too obnoxious or they tend to jolt me out of my thought process (which isn't cool when I'm already under time pressure). I do believe that I have a solid solution to this, but I'll get more into this when it's implemented.


Board Sizes

You might have noticed the unusual board sizes for the ranked queues, in addition to classic 19x19. They are not randomly chosen by any means.

Maybe the most fundamental issue with online go is that the sheer number of moves you play on a 19x19 board takes a significant amount of time, no matter how fast the time controls are. This makes blitzing very unsatisfying in my view, because you get games that still take a good amount of time, while the chance is very high that a match is decided by a terrible blunder under time pressure. The balance just isn't right when looked at from a game design's perspective. Unfortunately this is a pretty inherent aspect of go that appears to be impossible to fix.

Unless we experiment with different board sizes.

So why 11x11 and 15x15 and not the usual 9x9 and 13x13? One reason is that the latter are usually associated with beginner sizes, with the intention to simplify the game. That is not my intention at all. 11x11 appeals to me for super fast games (the eventual target is about 5 minutes per match), because it provides significantly more space for shape than a 9x9 board. It's still very limited to tactics of course, but for a quick game of go while waiting in a queue or for your tea to brew, my hope is that it provides a decent amount of go.

15x15 is something I got curious about when I learned that it was the most popular size on flyordie. It doesn't really get talked about aside from that, but I think it's a really interesting board size. 15x15 to me feels like the smallest possible board size that still mostly feels like "real go". Together with relatively fast time controls (unlike flyordie), I think that this has a lot of potential to provide a great go experience for matches up to about 20 minutes, which in my experience is pretty much the sweet spot for online games.

That said I still believe that 19x19 is by far the best board size, but I think it works best when you can schedule a good 40-60 minutes to focus on it, with a nice hot drink on your desk.

To encourage people to try all of the modes in different situations, the ranking system will treat each mode completely separately (which is only possible by sticking to a small number of ranked settings), so you don't have to hesitate playing a mode you aren't great at. It could even be an opportunity to find out your weaknesses and specifically work on that.


Well, so much for keeping myself short. This is still far from everything, but this is the gist of what is available right now. Much more to come!


This post by Zenity was liked by 2 people: Bantari, Waylon
Top
 Profile  
 
Offline
 Post subject: Re: Introducing Apachi: A Progressive Go Server
Post #12 Posted: Tue Sep 03, 2019 10:09 am 
Gosei
User avatar

Posts: 1753
Liked others: 177
Was liked: 491
Just a quick note:

  • I like IGS board and stones
  • I like KGS reviewing tools
  • Two clicks to place stone is an interesting idea.

Top
 Profile  
 
Offline
 Post subject: Re: Introducing Apachi: A Progressive Go Server
Post #13 Posted: Tue Sep 03, 2019 11:08 am 
Beginner

Posts: 4
Liked others: 2
Was liked: 1
Rank: AGA 22 kyu
Thanks for investing your time into trying out so many new ideas. Even though I prefer go to chess I still find that if I ever go to Lichess to kill some time I seem to get stuck on the site in a way that you just cannot do with any of the current go server options. I hope you are able to build something that will attract and retain new players.

Zenity wrote:
- The placement process. Right now placing stones is a two-step process, whether you use the mouse or touch. Initially I wanted to do it differently for the mouse, but in practice I found that even using a mouse the two-step process feels very natural and engaging rather than being a nuisance. At the end of the day, it's still far easier to place a stone with two clicks than in real life, but this is definitely something I'd love some feedback about. One advantage of the two step process is that it makes missclicks virtually impossible. Another unique aspect about it is that the speed and loudness of the stone placement depends on the timing of your second click and maybe most importantly, this is also transmitted to your opponent. So just like in real life, this gives you the option of emphasizing certain moves, or to feign uncertainty... it's another level of interactivity that is usually absent from online go.

I have a touch screen computer and I primarily use OGS because they have an option when I can touch (click) where I want to play, and then touch (click) a button. Having turned on this optional feature it sometimes irks me when my opponent cries "misclick" and requests and undo. However, to be fair I understand why this is not the default option for OGS. I think your solution is an elegant compromise, although at first it took me a minute to figure out what is going on. Your other ideas are this mechanic are also interesting and I look forward to playing around with it.


This post by Tupperglass was liked by: Zenity
Top
 Profile  
 
Offline
 Post subject: Re: Introducing Apachi: A Progressive Go Server
Post #14 Posted: Tue Sep 03, 2019 11:32 am 
Lives in gote

Posts: 426
Liked others: 186
Was liked: 191
Yes, you do have to get the sign-up experience right and set up the privacy options correctly.

The demo board looks good and the two-step placement is intuitive. Some option for zoom would be appreciated on smaller devices, though this is tricky to get right.

The biggest challenge is getting new users in, and enough of them. Getting a game quickly with a human is unfortunately a function of the popularity of the server.

It would be good if you could get a lot of users for free to bootstrap. Perhaps if you arrange to honor OGS accounts as identities on your server it may help. This would require some collaboration with OGS, but there may be people happy to keep the same handle. The ideal would be to team with one of the big servers in Asia.

Top
 Profile  
 
Offline
 Post subject:
Post #15 Posted: Tue Sep 03, 2019 1:22 pm 
Honinbo
User avatar

Posts: 8859
Location: Santa Barbara, CA
Liked others: 349
Was liked: 2076
GD Posts: 312
Hi Zenity,

( I haven't tried apachi.gs yet; seems not available on iOS for now. ) If the screenshot in post #1 is the current screen, then it's very pretty :tmbup: . The soft diffused reflection on each stone is very nice ( a la IGS ); may I suggest moving the reflection from 270° ( West ) to 315° ( North-west ), since a light source from the top-left is natural for many UI designs. ( For people of different handed-ness or preferences, you could consider adding an option for various reflection positions: current (270°), NW (315°), NE (45°). )

Quote:
the point you are highlighting while it is your move is also transmitted to the other player.
Excellent idea and feature not seen on any Go ( or chess? ) servers afaik. :tmbup:

Many if not most Twitch Go people read with the hovering stone (e.g. ladders, cuts, etc.) and Tygem/Fox Twitch Go people routinely click the Score Estimator -- I feel they should have an option to disable SE as one game condition, and both cursor-reading and SE usage should be transmitted to the opponent! :rambo:
Quote:
Two clicks to place stone is an interesting idea.
It's an ancient idea found on KGS a long time ago; together with Zoom, it's a must for touch-screen ( available on iOS IGS-Panda ).

Top
 Profile  
 
Offline
 Post subject: Re: Introducing Apachi: A Progressive Go Server
Post #16 Posted: Tue Sep 03, 2019 6:03 pm 
Beginner

Posts: 9
Liked others: 12
Was liked: 5
I've just pushed a quick update that adds a welcome page and a simple form to register/sign in. You can type whatever you want for your email and you are immediately signed in afterwards, so it's basically like guest accounts for now. Note that the update process is still a bit rough and you might have to reload the page twice to see it.


Calvin Clark wrote:
The biggest challenge is getting new users in, and enough of them. Getting a game quickly with a human is unfortunately a function of the popularity of the server.

Indeed, this is always the biggest challenge with niche online games. Fortunately I'm under no immediate time pressure, so I feel pretty relaxed about it. Looking at the state of go servers in the last decade, I can't imagine that if a truly modern and user friendly option comes along it's just going to sit there forever with nobody giving a care about it.

The way I see it, there are only two possible outcomes: Either Apachi eventually becomes so good that a critical mass of players flocks to it, or another server becomes so good that Apachi becomes irrelevant. Both outcomes would be wins for the go community as far as I'm concerned.

EdLee wrote:
( I haven't tried apachi.gs yet; seems not available on iOS for now. )

That's a bummer, it worked on my wife's iPad in both Safari and Chrome last time I tested. Can you tell me more about the device you are using and what you see?

Quote:
may I suggest moving the reflection from 270° ( West ) to 315° ( North-west ), since a light source from the top-left is natural for many UI designs.

The shadow direction appeals to me particularly because it's unusual :) The overall look and feel is loosely based on the NHK broadcasts which use the same lighting direction, and I fell in love with that appearance. There will certainly be more cosmetic options at some point though, and a customizable/dynamic shadow direction is also in the realm of possibility.

Thanks for the suggestions!

Quote:
It's an ancient idea found on KGS a long time ago

Yes, two clicks to place a stone is a very common option. I've always disliked it though since it felt unnecessarily cumbersome to me, so I was surprised how much I liked this in practice. The animations and sound effects make a big difference I think, but that's something that can't really be conveyed without trying it I'm afraid.

Top
 Profile  
 
Offline
 Post subject:
Post #17 Posted: Tue Sep 03, 2019 7:50 pm 
Honinbo
User avatar

Posts: 8859
Location: Santa Barbara, CA
Liked others: 349
Was liked: 2076
GD Posts: 312
Hi Zenity, I like the animated enlarged confirm-stones! :tmbup:
Quote:
Can you tell me more about the device you are using and what you see?
Ancient iphone5S, ancient iOS 10.*; Safari -- blank, white page.
first-generation ipad, iOS 9.*; Safari -- blank, white page.
( Works on OSX-Firefox and iphone6 Safari. :) )
Quote:
The overall look and feel is loosely based on the NHK broadcasts which use the same lighting direction,
So funny you mentioned its origin, because I vaguely remember noticing the West reflection on the NHK show, and I thought, hey, why don't they adjust the lighting source to NW ?! :rambo:

In any case, the current board and stones are already among the top prettiest, so very nice: adjustable light source and shadows a bonus; thanks.

Top
 Profile  
 
Offline
 Post subject: Re: Introducing Apachi: A Progressive Go Server
Post #18 Posted: Wed Sep 04, 2019 12:30 am 
Lives in gote
User avatar

Posts: 310
Location: Deutschland
Liked others: 272
Was liked: 126
Rank: EGF 4 kyu
Zenity wrote:
- The placement process. Right now placing stones is a two-step process, whether you use the mouse or touch.

...

Most servers provide different input options that (IMO) are all flawed in different ways, so my goal was to create something that "just works" in any situation. No settings are necessary, the crosshair automatically appears when you use touch instead of a pointing device. If you can try the app on your phone or tablet, please let me know how it works for you!


Options and preferences are important. I've tried the two-click option, elsewhere, and the double-click option (I think glGo provides this for IGS) and I know that it isn't my favourite when playing with a mouse. Respectfully, I'm not so interested in it because it is unrealistic -- I get to place a stone exactly once when playing

On the other hand, for mobile, it makes a lot of sense.

Hence it should be optional. Options and preferences are important.

Zenity wrote:
- Speaking of interactivity, another feature is that the point you are highlighting while it is your move is also transmitted to the other player. If you've played Hearthstone, then you know the principle. In real life you can get a lot of information from your opponent's body language and what they appear to be focusing on, so this also adds a layer of interactivity that is usually only available OTB. And just like in real life, it is up to you whether to put on a poker face or to be an open book about what you are thinking about.


Again, I hope that's optional. I don't care if my opponent can see my cursor but I sure as hell don't want to be distracted by theirs.

I also challenge your claim that it is in any way similar to real life play. My opponents, in European tournaments (I'm 3 kyu, EGF) generally do not hover their hand or fingers over the board while thinking.

Furthermore, such a feature is likely to further ingrain my existing bad practices and lead to tunnel vision. Where my opponent's cursor is is in no way part of the game information until they have committed their move -- some might be fans of such things but, personally, I don't want it.

Options and preferences are important.

But, ultimately, why are you worrying about features like these at this point? For sure, add them (as OPTIONS) in the future (and then judge their popularity by measuring how many people actually end up using them) but, for now, they surely belong at the very bottom of your priority list.

Do not get distracted by "flashy" toy features. Build the core features and server and add more, later. Match finding, basic play, review tools.

Zenity wrote:
Timing System

This is a super fascinating subject, and I think especially for fast games it is very important to get this right. I've consumed pretty much every discussion I could find about timing systems (here and on sensei's library) and thought about it a lot myself. There is much I liked about Fischer (increment) and Bronstein (delay) systems, but neither seemed quite perfect. After failing to come up with anything better, I figured that maybe the answer is simply a combination of the two.


Good time system. Good luck explaining it to a newbie -- I wouldn't want the job.

Stick to Fischer time. It's trivial to explain and it's a nice time system. If you really, really don't like it, add a maximum cap above which it no longer accumulates -- that would not make it convoluted or hard to understand.

I apologise for being a little acerbic but a lot of what you write sounds eerily reminiscent of all the other new server announcement threads -- a lot of esoteric and unnatural features being proposed prematurely -- long before the core features are done.

I propose that you do two things: first, build the core features. Simultaneously, start individual threads, with polls, proposing your more esoteric ideas and asking for specific, on-topic comment from the community on each feature. Who knows, maybe other players DO want to see their opponents cursor and I'm the outlier. Prove me wrong!

Top
 Profile  
 
Offline
 Post subject: Re: Introducing Apachi: A Progressive Go Server
Post #19 Posted: Wed Sep 04, 2019 12:48 am 
Judan

Posts: 6725
Location: Cambridge, UK
Liked others: 436
Was liked: 3719
Rank: UK 4 dan
KGS: Uberdude 4d
OGS: Uberdude 7d
One way to solve the lack of players problem for a shiny new server with a fancy UI is to make your client also a client for existing servers. So in the "find a game" screen or hidden pool of automatch you include currently open challenges from KGS, OGS, and other servers with an open api.

Top
 Profile  
 
Offline
 Post subject: Re: Introducing Apachi: A Progressive Go Server
Post #20 Posted: Wed Sep 04, 2019 1:09 am 
Beginner

Posts: 9
Liked others: 12
Was liked: 5
Charlie wrote:
Prove me wrong!

That's my intention :) I absolutely do not expect everybody to agree with all of my design decisions, and I am not here to convince anybody. The best I can hope for is that you give it a try (especially once it takes more shape) and see for yourself if you like it or not. If a significant number of people enjoys the experience, then I consider it a job well done. If not, then I have failed and will have to go back to the drawing board.

Quote:
don't want to be distracted by theirs.

You only see your opponent's focus during their turn, I think that is fair enough.

You are right of course that it is not exactly the same as real life, but it's the same in spirit. The only reason people don't point at the board while they are thinking is that they choose not to. Likewise, it's your choice whether to hover the points you are thinking about or not. Mostly though this is about adding a layer of interactivity and making the board feel more "alive" especially while waiting for your opponents turn.

We'll see how it plays out, if it ends up being more annoying than enjoyable than I will change it of course. I have a very good feeling about it though.


Quote:
Good luck explaining it to a newbie -- I wouldn't want the job.

Sure that was my initial concern, but it wasn't enough to make me decide against it in the end. It's very easy to visualise both the delay and the time bonus, and even if players don't immediately fully understand it, it's a very forgiving system that is not likely to screw you over, as long as you play at a reasonable pace. I expect players to get the hang of it very quickly after a few introduction games (if not immediately), even without separate explanations.

Capped Fischer time is another option I considered, but I didn't find it significantly easier to explain/visualise (arguably it can be more confusing) and couldn't see any other advantage over the hybrid system either.

Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 29 posts ]  Go to page 1, 2  Next

All times are UTC - 8 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group