Brainstorming Ideas for a Chess App

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

hinotama
Posts: 2
Joined: Sun Mar 28, 2021 7:28 pm
Full name: Xi Jiangshu

Brainstorming Ideas for a Chess App

Post by hinotama »

Hello,

I’m a new user here and not sure if this is the right place to post but I am looking to get some feedback for an idea that I have.

The idea is to build a cross-platform mobile/web application; the application would allow you to play a chess variant with other people online. The variant is played in a turn-based fashion like Chess but has pieces that move differently. I’ll just call this Chess variant “Variant X” because it is one that I made up.

I am aiming for the application to have these features:
  • Play “Variant X” against other people in real time
  • Create accounts and maintain a rating system
  • Choose to play on a mobile application OR on a website (you can log into both with the same account)
  • Have a clean User Interface
A good example of what I envision the final product to be is a very toned-down version of something like chess.com, lichess.org, or hearthstone.

A little bit about me, I have programming experience (compsci major), although I have not coded a mobile application before. I do know that a project like this will be extremely time-consuming and cost some money.

In my initial research I have found various open-source (copyleft or not) chess resources such as lichess source code, sjaak program, winboard. I think it may be a wise idea to leverage some of these resources, especially because our final project could be open source too.

Here are some questions I am hoping to get feedback on:
  • How might I go about starting a project like this?
  • What programming languages would you recommend me to consider using in the creation of this?
  • Which open-source projects do you think would be useful to me?
  • What are the pros and cons of using a game engine like Unity to create this?
  • Where do you think I should direct my further research?
I know that these are not easy questions, but does anyone have any advice? I would greatly appreciate the opinion of anyone reading this, especially if you have experience developing a chess application. Any comment would be a great help to me, even just pointing me to some other similar projects or forum posts. Lastly, if it seems like I have some fundamental misunderstandings about any of this please do let me know. I welcome every question and will try to answer them all.

I really appreciate your help! Thank you in advance.
User avatar
emadsen
Posts: 434
Joined: Thu Apr 26, 2012 1:51 am
Location: Oak Park, IL, USA
Full name: Erik Madsen

Re: Brainstorming Ideas for a Chess App

Post by emadsen »

Hi Xi. Welcome to the TalkChess community!

Perhaps in the next day or so someone will take the assignment upon themselves to answer your question. But I fear that's unlikely because your question is just too damn large.

You ask multiple questions regarding programming language, reference code, runtime, etc. Also, your goals are aspirational in nature, not technical. That is, you're stating what you aspire to do rather than explaining what you have done and what specific obstacles or barriers you've encountered. Compounding this is the size of your aspiration. You'd like to build chess.com or lichess.org. Wow.

My advice is to narrow down your aspirations to a more specific, technical goal. Do your homework on that goal. Then come back to this forum, demonstrate what you've built (or attempted to build), and ask questions regarding where you're stuck or confused. You're much more likely to get responses from this community by following that process of a) narrow goal, b) show your work, and c) ask specific questions.

I hope my words are not discouraging. I'm just pointing out that a monstrous aspirational goal creates conditions for frustration and failure. Scale it back, do your homework, then come back here looking for advice, help, and collaboration.

Good luck!
My C# chess engine: https://www.madchess.net
User avatar
hgm
Posts: 27788
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Brainstorming Ideas for a Chess App

Post by hgm »

The main problem in this project will probably be the server.

I have done a similar project myself, to make a browser-based system for online play of chess variants (and other games), making use of the (copylefted) Jocly interface. It was mainly a quick hack, embedding some code in the Jocly client to access an ultra-simplistic server I already had made for other purposes. As a result the interface for interaction with the server (for purposes of opponent selection, retrieving stored games and the like) is not very advanced. It is at

http://hgm.nubati.net/jocly/jocly-master/remote.html
Henk
Posts: 7216
Joined: Mon May 27, 2013 10:31 am

Re: Brainstorming Ideas for a Chess App

Post by Henk »

Also did something in the past.

One problem is the clock. If clock runs on the server then it get too busy when many games are playing.
If clock runs on the browser then what happens when connection is temporarily lost? O wait maybe store start time of the game on the server.
Also when user selects a menu of the browser during the game the clock should not stop ticking temprarily.

Main problem is how to attract enough users. Also need to pay for server.
Maybe you could use engines that play like humans to make sure any user gets an opponent of similar strength.
hinotama
Posts: 2
Joined: Sun Mar 28, 2021 7:28 pm
Full name: Xi Jiangshu

Re: Brainstorming Ideas for a Chess App

Post by hinotama »

Thanks to everyone who replied!
User avatar
maksimKorzh
Posts: 771
Joined: Sat Sep 08, 2018 5:37 pm
Location: Ukraine
Full name: Maksim Korzh

Re: Brainstorming Ideas for a Chess App

Post by maksimKorzh »

hinotama wrote: Tue Mar 30, 2021 2:03 am Hello,

I’m a new user here and not sure if this is the right place to post but I am looking to get some feedback for an idea that I have.

The idea is to build a cross-platform mobile/web application; the application would allow you to play a chess variant with other people online. The variant is played in a turn-based fashion like Chess but has pieces that move differently. I’ll just call this Chess variant “Variant X” because it is one that I made up.

I am aiming for the application to have these features:
  • Play “Variant X” against other people in real time
  • Create accounts and maintain a rating system
  • Choose to play on a mobile application OR on a website (you can log into both with the same account)
  • Have a clean User Interface
A good example of what I envision the final product to be is a very toned-down version of something like chess.com, lichess.org, or hearthstone.

A little bit about me, I have programming experience (compsci major), although I have not coded a mobile application before. I do know that a project like this will be extremely time-consuming and cost some money.

In my initial research I have found various open-source (copyleft or not) chess resources such as lichess source code, sjaak program, winboard. I think it may be a wise idea to leverage some of these resources, especially because our final project could be open source too.

Here are some questions I am hoping to get feedback on:
  • How might I go about starting a project like this?
  • What programming languages would you recommend me to consider using in the creation of this?
  • Which open-source projects do you think would be useful to me?
  • What are the pros and cons of using a game engine like Unity to create this?
  • Where do you think I should direct my further research?
I know that these are not easy questions, but does anyone have any advice? I would greatly appreciate the opinion of anyone reading this, especially if you have experience developing a chess application. Any comment would be a great help to me, even just pointing me to some other similar projects or forum posts. Lastly, if it seems like I have some fundamental misunderstandings about any of this please do let me know. I welcome every question and will try to answer them all.

I really appreciate your help! Thank you in advance.
Feels like you want something like this:
https://www.pychess.org/
isn't it?

- has lots of variants
- It looks awesome on mobile as well

Here's github page of the project:
https://github.com/gbtami/pychess-variants