Forums

Planning to develop a cross platform chess GUI and DB

Sort:
chesslover0003

In the past I spent time designing a chess GUI but never continued to develop the code.

If you're interested in UI/UX design and software development let me know.  I might like to revive this project of mine and create a ochessbase clone.

Peter-Mora

I'm curious what language you would be developing that in

chesslover0003

I'm thinking about a desktop app... written in HTML5 or Flutter. If it were HTML5, it could be a progressive web app... possibly later features could be cloud storage and collaboration.

But would need to revive the UI/UX and decide on MVP features.

Bobcat

it's good to have a plan

chesslover0003

I think MVP would look like this...

  1. Create a game manually from starting position... i.e. manually move pieces and the game is recorded (this requires a chess board, pieces and logic for legal moves)
  2. Import a game from PGN
  3. View a game... i.e. going forwards and backwards to view the game move-by-move
  4. Add and view game annotation
  5. Save game in DB
  6. List games in DB
  7. Open game from DB
  8. ?? Search DB... search criteria to be determined
chesslover0003

Here's HIARCS. This is a common layout.

Do others have a favourite layout?

I like how Lichess does game notation. 2 ply per line.

This is an old design of mine... it just looks very macOS centric. I'm thinking something that would look modern cross platform.

AlexeyChess

How many game you DB should handle?

There many GUI (free, paid) which can handle several millions of games, some of them can handle up to int32 limit (about 4.3bln games), but none of them can handle more

chesslover0003

This doesn't exist yet. Many chess GUI's use a PGN file for storing games... and this may be the reason for the limitation. Storing in a relational DB would likely have different limitations.

AlexeyChess

"This doesn't exist yet"

Is it about billions of games or GUI?

chesslover0003

The GUI we are discussing is currently only a GIF.

AlexeyChess

lila-openingexplorer on github, based on facebook rocksdb can handle trillions position, DB and GUI combined.
I understand you want to create something new, will you plan to add anything unique, which has not been implemented yet?

chesslover0003

In post #5 I list the MVP features before getting to truly new or unique things. I would like to open source it. I think the DB storage would be the primary different from stockfish and other apps. I'd also like it to be cross platform with Flutter or HTML.

Is there something you think is missing in most apps today?

AlexeyChess

I miss data visualization on the board, currently you have to add at least one table view to the board to get full info, for example, computer evaluation of the move – square color gradient (red – bad, green – good), frequency of the move – piece transparency (all have strong transparency, like shades, but more frequently – more solid), human trap – square boarder like pressed button style.

While on PC there is no problem having supplementary tables, on the phone it is a problem

About functions, there is one, non-trivial, but interesting, mostly relevant for opening stage

Lets imagine we have a position we want to occur in the game while playing white, what is the best move sequences to get it?

AlexeyChess

From black we need pawn on d5, knight on f6 and on c6. D5 and Nf6 are not a problem, the most difficult part is Nc6. For the simplicity assume that first move is always d4, so the question what to move first knight or bishop to increase the probability? It’s not an easy task with current GUI but can be easily calculated and visualize (have to think how) on the board that certain position can be reached with 2-3 main flow. There are at least two main applications.

  • What is the sneakiest way to lure opponent into trap.
  • Cross opening knowledge share, you can play your opening and experience some rare sidelines, which you try to study but not found much information, but it can be a main line for other opening you don’t play.
Peter-Mora

I think an important feature that no other (that I know of) chess GUI has is the ability to quiz yourself on opening knowledge. I envision being given the opening name somewhere, and you have to play out one side while the app plays out the other half. If correct, the square lights up green where the piece moved, if not, red and it resets the move. If you cannot find the right move in 3 guesses, you have the option to see the opening in it's entirety, then start from scratch.

chesslover0003

@alex @Peter-mora

Thank you for the suggestions.

I like opening trainer type of features as well.

chesslover0003

Here's a bit more breakdown on the chess.com GUI. Here are the screens for library, explorer and analysis.

chesslover0003

no. not just HTML. I think HTML and VueJS is a popular method for cross platform apps.

chesslover0003

Here's a bit of evolution. Thoughts? I'm thinking I could re-use the code I've been creating to import games into an SQLite DB.

The dialog on the right is very primitive. I'll look at prettying it up. The idea is, once you select a game you can then browse the game and the right dialog focus on the selected game.

chesslover0003

The design evolves. Thoughts?