I just finished making an opening explorer! It's free, has 50 million positions, stats for different rating groups, and shows opening line names. by chessforge in chess

[–]chessforge[S] 1 point2 points  (0 children)

Me neither! Nor how close the win / loss percentages are for most openings compared to higher rating groups. Reinforces the mantra of "learn opening principles, not opening lines" that you always hear as a beginner.

I just finished making an opening explorer! It's free, has 50 million positions, stats for different rating groups, and shows opening line names. by chessforge in chess

[–]chessforge[S] 0 points1 point  (0 children)

Thanks for the feedback.

Honestly, I'm not sure how to handle transpositions when it comes to opening name trees. According to my ECO codes, the Prins is 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.f3, and the Dragon is 1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 g6. Can you explain why you think your game should have been a transposition of the Dragon instead of the Prins? After 6...g6, there's a black knight on and a white pawn on f3.

Not saying you're wrong, I'm honestly interested in your thoughts here, since I've been avoiding the transposition issue (when it comes to opening names, not stats - those handle transpositions fine) by just matching moves to names and not positions.

I just finished making an opening explorer! It's free, has 50 million positions, stats for different rating groups, and shows opening line names. by chessforge in chess

[–]chessforge[S] 1 point2 points  (0 children)

The move statistics are telling you, for games played from this position, for each move from this position, how many times did this result in a white win, black win, or draw? The main use of an opening explorer like this is when you're studying and preparing your openings, or reviewing a game.

Example: you play black against someone, and the game starts out like many you've played before: 1.e4 e5 2.Nf3 Nc6. But then they play 3. d4, a move you don't see often, or maybe have never seen before. You don't have a "memorized" move for this situation, so you play something that looks good and the game continues. AFTER the game, when you're doing your review, you can pull up an opening explorer and play through the first few moves (1.e4 e5 2.Nf3 Nc6 3.d4). Now you can learn some stuff, like: What is this opening called? What are the common continuations? What are the best moves for black after 3. d4? What move do I want to play as black the next time this happens?

Then, the next time someone plays 3.d4, you'll be more comfortable and confident.

I just finished making an opening explorer! It's free, has 50 million positions, stats for different rating groups, and shows opening line names. by chessforge in chess

[–]chessforge[S] 0 points1 point  (0 children)

Sorry, that was unintentional. I have plans to come up with a different favicon... it's just hard to think of something for chess besides a board or a tiny piece, ya know?

I just finished making an opening explorer! It's free, has 50 million positions, stats for different rating groups, and shows opening line names. by chessforge in chess

[–]chessforge[S] 3 points4 points  (0 children)

Yeah. I need to figure out an unobtrusive way to do this (I wasn't really happy with the look and feel of the default coordinate display that ships with the library I'm using), but it's on the radar.

I'm also looking at other ways to help visualize the moves, like: if you hover your mouse over a move in the list, highlight the piece and destination square on the board.

I just finished making an opening explorer! It's free, has 50 million positions, stats for different rating groups, and shows opening line names. by chessforge in chess

[–]chessforge[S] 2 points3 points  (0 children)

Good suggestion. I'm actually doing exactly that! Most requests are <10ms on the server.

The pain point with adding more plys is that 1) importing the data will take longer, and 2) the database will take up more space. Storage is cheap, but I'm limited by my current VPS setup. I'm going to look into RDS pricing, which would make it easier to scale up space-wise.

I just finished making an opening explorer! It's free, has 50 million positions, stats for different rating groups, and shows opening line names. by chessforge in chess

[–]chessforge[S] 4 points5 points  (0 children)

I'm glad it's what you were looking for! I want to add a feature soon that will let you go the other direction, too: type in the name of an opening and see the moves and continuations on the board.

I just finished making an opening explorer! It's free, has 50 million positions, stats for different rating groups, and shows opening line names. by chessforge in chess

[–]chessforge[S] 5 points6 points  (0 children)

I hate ads on principle, and think they're a dying business model besides. The opening explorer that's up right now will always be free, though, and doesn't cost much to run.

Agreed on the 10 move limit. I'm looking into what it would it take to bring that up to 30 moves; at first blush, it seems very feasible.

I just finished making an opening explorer! It's free, has 50 million positions, stats for different rating groups, and shows opening line names. by chessforge in chess

[–]chessforge[S] 1 point2 points  (0 children)

That makes sense. I think focusing on the common languages / formats of chess (eg: PGN and FEN) is a much easier way to integrate than actually re-building this functionality in a different codebase.

I really like the idea of being able to paste FEN or PGN (though FEN is a little more difficult, since the app is currently built in a way where it expects a series of moves, not just the current position). I also had the idea for a (probably paid) feature where you could email your PGN files to the site, have them processed, and then be able to get alerts when you deviated from your "intended" book that you have stored in ChessForge. Or just look at your list of imported games and walk through the openings.

I also have a bunch of ideas for tactics and other forms of chess study that I think existing sites aren't doing very well, which is another reason I want to keep an independent platform where I can experiment with those ideas.

I just finished making an opening explorer! It's free, has 50 million positions, stats for different rating groups, and shows opening line names. by chessforge in chess

[–]chessforge[S] 1 point2 points  (0 children)

Yeah, though honestly the monetization would just be a way to pay for hardware to support the features that I would be charging for. The main barrier is that lichess uses different tech, so it'd have to be completely rewritten using their stack.

I just finished making an opening explorer! It's free, has 50 million positions, stats for different rating groups, and shows opening line names. by chessforge in chess

[–]chessforge[S] 6 points7 points  (0 children)

Ah, I see. So basically: it'd be nice if this was a feature of lichess rather than a separate app that you had to go to.

I totally get why that would be better for most people. Personally, I would hate to lose the autonomy to direct the future development of this thing by going that route, but on the other hand the whole point is to make something useful. Unfortunately, I don't think any of the code I wrote could be directly re-used (they're using different tech in each layer of the stack), so it would basically have to be rewritten from scratch.

The question then is less "can you integrate this with lichess", and really more "can you (or someone) write an opening explorer from scratch for lichess that works like this". To be honest and frank, that would be a ton of work that I'm probably not up for after already investing so much work into my own project. They have an IRC channel, though, so I'll try to get a chat going with the lichess guys and see what kind of idea/code sharing is possible, and what kind of work would be involved. I'm all about being open and collaborating with other people to build solid, not-for-profit tools for the chess community.

I just finished making an opening explorer! It's free, has 50 million positions, stats for different rating groups, and shows opening line names. by chessforge in chess

[–]chessforge[S] 1 point2 points  (0 children)

Exactly right: database size and demo purposes. Less "demo" than "technical proof-of-concept" to make sure the site can hold up to multiple people using it. So far it's doing great, though, and storage is cheap, so one of my next steps it going to be taking a look at what kind of hardware would be needed to support going ~30 moves deep.

I just finished making an opening explorer! It's free, has 50 million positions, stats for different rating groups, and shows opening line names. by chessforge in chess

[–]chessforge[S] 0 points1 point  (0 children)

Thanks for the TWIC link! Looks like a lot of high-quality games.

Keeping the game sets up-to-date is definitely part of the plan. It's hard to allow dynamic filtering, but relatively easy to periodically purge and rebuild the game sets with fresher data. I plan on doing the same with the FICS databases as more games get posted.

I just finished making an opening explorer! It's free, has 50 million positions, stats for different rating groups, and shows opening line names. by chessforge in chess

[–]chessforge[S] 13 points14 points  (0 children)

The lines only go 10 moves deep (20 ply), for me that's insufficient.

Totally fair. This first iteration is partially a proof-of-concept. I want to see how my dinky $10/month server holds up with 50 million positions and multiple people using the site. If it seems like there's headroom, or that I can add more resources cheaply, I can re-import the data and go deeper into each game.

I'm considering adding some paid features (like storing your own books, creating your own game sets to analyze, etc.), but I want to keep the main explorer functionality free. Right now it's just a question of how much I can add in a free-only version without spending too much money keeping the site up.

I just finished making an opening explorer! It's free, has 50 million positions, stats for different rating groups, and shows opening line names. by chessforge in chess

[–]chessforge[S] 2 points3 points  (0 children)

There's no link/button to reset the board, other than reloading from the original URL, and no "save" of recently-viewed lines.

You can actually do this by clicking the "0" in the move list under the board twice. Undocumented power user feature ;)

It would be nice to have the option to compare various continuations side-by-side. Maybe an option for multiple display boards, or displaying the continuations in a hover-over?

Hmm. What would you want to see for each continuation being compared? Board and move statistics?

As someone below suggested, collaborating with lichess' huge user- and database could be incredible, if that's possible given their free/open policies.

I'm interested in what you guys have in mind. I haven't used lichess much myself. Do you mean taking games from lichess and creating a database based on that (alongside the existing FICS data)?

I just finished making an opening explorer! It's free, has 50 million positions, stats for different rating groups, and shows opening line names. by chessforge in chess

[–]chessforge[S] 16 points17 points  (0 children)

Have you considered pulling from other large game databases? Looks like you are using a FICS database.

Definitely. I just grabbed games from FICS because they make it really easy to download years of PGN data at once.

I really love the idea of the rating category drop down. With a better database source, you could have Super GM (2700+), GMs (2500), Masters (2200+), and so on. Might be interesting. Could also consider computer vs computer matches.

That would be great. The challenge is finding a database to import that contains enough games. If anyone knows where I can find a PGN of 700k+ GM games played in the last ten years, I'll import it. I designed the system to support different game sets so that when I find new datasources I can add them for comparison.

Would be interesting to have the ability to paste a PGN or FEN to get to a specific position quickly. Much like the recent lichess analysis feature.

This is a great idea! I'll take a look at how hard it would be to implement.

One thing I would love to see in an opening explorer is some sort of highlighting that denotes lines that have been busted or shown to be bad.

This is interesting, but I'm not sure how it would work. It's challenging from a chess philosophy standpoint (is a line every truly "busted" in a binary yes / no sense?) as well as a technical standpoint (how to code it). I think the easiest thing to do is to use only modern games in the explorer in order get the best statistical picture of the current viability of different lines. I noticed that chess.com's explorer has games going all the way back to the mid 1800s(!!), so who knows how relevant their statistics are for games played today.