GithubHelp home page GithubHelp logo

gui-works / chess-gui Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hacst/chess

0.0 1.0 0.0 15.13 MB

Chess game with OpenGL GUI and AI

CMake 1.46% Shell 0.04% Batchfile 0.05% Python 2.74% C++ 95.72%

chess-gui's Introduction

3dchess

What is it?

Screenshot of UI

3dchess is a basic cross-platform chess application with a 3D GUI and basic AI. It was implemented using modern C++11 features and can be built and run on Windows and Linux with 32bit or 64bit architectures. The goal was to gain experience in architecting a small sized project with multiple participants from the ground up as well as getting an understanding of the approaches used in computer chess.

The end result is a playable chess program allowing player versus player, player vs AI or AI vs AI games. The engine mostly implements FIDE rules with some exceptions. While the AI only implements a limited subset of capabilities needed to compete in modern computer chess play strength is sufficient for human amateur players.

Sample snippet of debug output

Features

The project was split into three big areas of interest and architected to allow as much independent work on each as possible.

GUI

  • 3D GUI using OpenGL 2
  • Menu system
  • Model loading using assimp
  • Text rendering using freetype2

Primarily worked on by Patrick Hillert:

Chess implementation

  • FIDE rule based chess engine
  • Bitboard based move generation
  • FEN in/output

Primarily worked on by Max Stark

AI

  • Negamax search
  • Alpha-beta-pruning
  • Basic scoring using material evaluation and piece square tables
  • Zobrist hashing
  • Polyglot format compatible opening book support
  • Transposition tables
  • Iterative deepening
  • Configurable AI profiles

Primarily worked on by Stefan Hacker

Build

Windows

Steps

  • Checkout boost SVN into 3rdparty directory
  • Run buildboost.bat in the same directory from a Visual Studio 2013 command prompt (this will take a while)
  • Add all git submodules (before running runcmake.bat):
    • To setup run 'git submodule init' then 'git submodule update'
  • Run runcmake.bat in the root directory to generate project files.
  • Open .sln projectfile in build/ and build all

Build requirements (Windows):

  • Visual Studio 2013
  • cmake 2.8.12 in path
  • Python 2.7 or later
  • Boost 1.55 (trunk)

Linux

Steps

  • Add all git submodules (before running runcmake.sh):
    • To setup run 'git submodule init' then 'git submodule update'
  • Run runcmake.sh
  • Run make in bin/ subfolder

Build requirements

  • gcc >= 4.8
  • pthreads
  • Python 2.7
  • Boost >= 1.54

Ubuntu < 13.10

  • GCC >=4.8 from PPA needed: e.g. ppa:ubuntu-toolchain-r/test

Ubuntu < 14.04

  • Boost >=1.54 from PPA needed: e.g. ppa:boost-latest/ppa

Authors

In no specific order:

chess-gui's People

Contributors

hacst avatar silenthoo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.