All Projects → gregsramblings → chessmsgs

gregsramblings / chessmsgs

Licence: MIT license
Play chess over Twitter, SMS, iMessage, Facebook, Snap, Whatsapp, Google Chat. WeChat, Telegram, KaTalk, Viber, and many more.

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to chessmsgs

marcizhu
An interactive chess game in a README file!
Stars: ✭ 37 (-48.61%)
Mutual labels:  games, chess-game
izabela-desktop
A proof of concept text-to-speech application allowing global typing. Can be used over applications such as voice chats, games and much more.
Stars: ✭ 62 (-13.89%)
Mutual labels:  games
obb-rules
Orion's Belt BattleGrounds battle engine
Stars: ✭ 13 (-81.94%)
Mutual labels:  games
piw5 bot warfare
The Bot Warfare mod for PlutoniumIW5
Stars: ✭ 57 (-20.83%)
Mutual labels:  games
N-Gage stuff
Some N-Gage stuff for translation and modding
Stars: ✭ 21 (-70.83%)
Mutual labels:  games
OpenChess
A cross-platform chess game.
Stars: ✭ 18 (-75%)
Mutual labels:  chess-game
d2launcher
Diablo II • Median XL • Mod Launcher for Linux
Stars: ✭ 20 (-72.22%)
Mutual labels:  games
decentraland-workshop
Decentraland workshop - Learn how to get started building stuff on decentraland
Stars: ✭ 26 (-63.89%)
Mutual labels:  games
php-grandmaster
Chess engine written in PHP
Stars: ✭ 100 (+38.89%)
Mutual labels:  chess-game
Monotone-HWID-Spoofer
Custom Created Hardware ID Spoofer to Bypass Hardware or IP Bans
Stars: ✭ 145 (+101.39%)
Mutual labels:  games
skinner
Skin export / import tools for Autodesk Maya
Stars: ✭ 68 (-5.56%)
Mutual labels:  games
elm-playground-3d
A simple way to create three-dimensional pictures, animations, and games.
Stars: ✭ 25 (-65.28%)
Mutual labels:  games
GameZero.jl
Zero overhead game development library for the Julia programming language
Stars: ✭ 143 (+98.61%)
Mutual labels:  games
DualSenseX
Connect your DualSense Controller, use Adaptive Triggers, Emulate Xbox 360 or DualShock 4 through USB or Bluetooth on PC
Stars: ✭ 699 (+870.83%)
Mutual labels:  games
path demo
An experimental set of pathfinding algorithms for video games
Stars: ✭ 16 (-77.78%)
Mutual labels:  games
Cold-Family-Feud
Host your own Family Feud game. Mobile friendly with built in buzzers.
Stars: ✭ 30 (-58.33%)
Mutual labels:  games
phaser multiplayer demo
HTML5 Multiplayer with Phaser and Go
Stars: ✭ 35 (-51.39%)
Mutual labels:  games
gameap-legacy
Free Game Admin Panel
Stars: ✭ 37 (-48.61%)
Mutual labels:  games
StickMan-3D
StickMan 3D: First Round | indie fighting game | C++ OpenGL
Stars: ✭ 60 (-16.67%)
Mutual labels:  games
Cpp-Data-Structures
📐 C++ Implementations of data structures & algorithms from PSU course CS162/CS163
Stars: ✭ 19 (-73.61%)
Mutual labels:  games

chessmsgs.com - Play Chess over social/messaging

Created because I wanted to play chess with others without having to install software, create accounts, etc.. Game play is simple -- make your move, copy and paste the URL to your opponent, etc.

Technical details:

Web browser-side - all chess logic is run in the browser

  • chessboard.js - JavaScript chessboard component - by Chris Oakman
  • chess.js - JavaScript chess library that is used for chess move generation/validation, piece placement/movement, and check/checkmate/stalemate detection - by Jeff Hlywa
  • JQuery - the above two chess libraries required it, so I used it too.

Web Server - simple Node/Express server with some super simple templating to create the Open Graph and Twitter Card image URLs, links, etc.  This could have easily been a static website other than this requirement.

  • request-ip - Used for logging IP address of each move to use for future scaling (create additional copies in regions, etc.)
  • nanoid - Used to generate unique Game IDs
  • No database/data store -- all game state info is passed back and forth between players in URL
  • Deployed on Google Cloud Run

Image Server - used to generate the image used for Open Graph and Twitter cards so that when a user posts a game link to most platforms, the platform will show the image with the current board position. I created an endpoint that looks like any other png file url (example).

  • chess-image-generator - JavaScript library that creates a png from a FEN (standard chess board notation) - by Andrew Young
  • I made a copy of generateBuffer() as generateCustomBuffer() and customized it to do padding to match Open Graph requirements
  • Deployed as a route in the web server Node express app

Testing and deploying

The parts

  • Main web server is in project root -- server.js
  • Web content is in ./public

Local testing of serve - run from project root.

# Install all dependencies
npm install

# Run server
node server

Access http://localhost:8080 to test. If you are running this on your own server, you'll need to change the URL hard-coding in server.js (replace "chessmsgs.com")

Deploying to Google Cloud Run

npm run build
npm run deploy
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].