User:Gaspyy/Sparkchess

SparkChess is a commercial chess program with single- and multiplayer capabilities as well as several learning features, including chess lessons. Originally intended for online play as a Progressive Web App, it was ported as an application on all major platforms, including Windows, Mac OS X, iOS and Android. 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, intended as a technology demo for Macromedia. It received the Macromedia Site of the Day award for its novelty. Due to the limitations of the programming language, the program was very slow and did not correctly implement all the chess rules.

Development resumed in 2008 and the program was rewritten in Actionscript 3, a much more powerful programming language. The new chess engine was much faster and implemented all chess rules correctly. Citing complaints from Adobe Systems, owner of the "Flash" software brand, the game was later renamed SparkChess.

In 2009, SparkChess was featured in a technology demo by Google for Chrome OS.

In 2011, version 5 added online multiplayer support.

In 2016, SparkChess was rewritten in Typescript and subsequently, in 2017 introduced a WebGL-based board view.

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 player that shows comments, annotations and Recursive Annotated Variations. 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 online multiplayer service uses Union Platform, a multiplayer server written in Java. The scoring and match-making system is Elo. Users can also watch live games and can organize in teams.

Platforms
SparkChess runs in any browser, as well 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.