Draft:SparkChess

SparkChess are is a web-based chess program with single- and multiplayer capabilities as well as learning features, including chess lessons. It was originally made with Flash but was eventually rewritten with more modern HTML5 and JavaScript technologies. Under the previous name of FlashChess, it was the first chess program to run in the browser without the aid of a chess engine on a server and it was demonstrated by Google. at their unveiling of Chrome OS.

History
The first version of the program was called FlashCHESS, written in ActionScript. It was released in 2002 as a technology demo for Macromedia and received the Macromedia Site of the Day award. Due to the limitations of the programming language, the program was very slow and did not correctly implement all the chess rules: there was no en-passant and the casling rules were not properly observed.

Nevertheless, at that time there were few alternatives. Javascript was too slow (The V8 Engine will not exist for another 6 years) and browser incompatibilities made complex web-based applications very difficult to build, so chess programs had to rely on server-side processing, which presented its own challenges. This way, flashCHESS became popular on the many websites publishing chess games, including Yahoo Games.

Development resumed in 2008 and the program was rewritten in Actionscript 3, a much more powerful programming language, and renamed as SparkChess. The new chess engine was much faster and implemented all chess rules correctly. It quicly became even more popular than its predecessor, being recommended by various sites for casual chess games.

In 2009, SparkChess was featured in a technology demo by Google for Chrome OS. After the launch of the Chrome Web Store, SparkChess quickly rose to the top, becoming the second more used app in 2011.

In 2011, version 5 added online multiplayer support. At that time, in an interview with Adobe, the authors were citing 420,000 weekly players.

Following the decline of Flash popularity, SparkChess was rewritten in Typescript in 2016 and subsequently, in 2017 introduced a WebGL-based board view.

In the following years, SparkChess added more features aimed at beginners and casual players, including interactive lessons and puzzles, teams in multiplayer, correspondence chess mode, and others.

It remains

Reception and reviews
Although present in various stores for desktop and mobile, SparkChess remains mostly a web application, popular with players looking for casual chess play, with generally positive reviews on gaming sites. It has been also favorably reviewed by general publications, including MSN, dotTech , and chess sites SparkChess was mentioned as a platform used by seniors for online chess

Features
SparkChess is a single-player and multiplayer chess program that uses its own servers. It does not use public Internet Chess Servers. It includes the chess engine and the graphical interface. The board can be represented in 3D and in 2D (diagram mode). The program has a PGN. There is also a board editor with the ability to import and export board configurations in FEN format.

SparkChess has some tutoring facilities, including a "Help me move" option, "Coach mode", and interactive chess lessons explaining the basic chess concepts, tactics and strategies.

The multiplayer service is proprietary. The scoring and match-making system is Elo. Users can also watch live games and can organize in teams. A correspondence chess mode is also available.

Teaching Chess
SparkChess is aimed at chess beginners, casual players, and enthusiasts. Its website publishes bimonthly articles written by Woman International Master Alexey Root.

Platforms
SparkChess runs in web browsers and is available as a downloadable program for Windows, Mac OS, iOS and Android.

Engine characteristics
SparkChess uses alpha-beta pruning with principal variation, iterative deepening and aspiration window. It also uses quiescence search, history heuristics and transposition tables and optimizations such as Null-move pruning and razoring. It has an opening database. It can also access endgame tables.