ChineseCheckers

CHINESE CHECKERS

 

A digital version of the Chinese Checkers board game, developed solely by me as a school project.

 

Development Time: Four weeks.

 

Team Size: 1.

 

My Role: Solo developer.

 

Engine & Language: Unity / C#

ABOUT THIS PROJECT

 

THE BANE OF ASPIRING PROGRAMMERS

 

This game was made as a school assignment during September 2017, less than a year after I wrote my first lines of code. While my skills as a programmer have developed significantly since then, I'm still proud of this game, in particular the implementation of fully functional MiniMax-driven AI opponents. This assignment is infamous among the game developer students at Södertörns Högskola due to its high difficulty and severe time constraints , and it is one that I am extremely proud to be able to say that I managed to successfully complete.

AI BEHAVIOR

 

INTELLIGENT MINIMAX-AI THAT CALCULATES THE BEST MOVE BASED ON ADVANTAGES FOR ITSELF AND DISADVANTAGES FOR OPPONENTS

 

The AI of this game is constructed using a MiniMax-algorithm, allowing it to calculate the best possible move based on all available paths. It also calculates all possible moves its opponents could do during their next rounds and takes this into consideration when determining a move, then carrying out the most advantageous move for the AI and the least advantageous for its opponents.

THE MINIMAXTREE-SCRIPT

 

The MiniMaxTree-script instantiates MiniMaxNode-objects for each move available to a marble. As the MiniMaxNodes report their calculated values to the MiniMaxTree, it continually stores the move with the highest upside for the AI and lowest upsides for its opponents. When all available moves have been evaluated, the best move found for the marble is reported back to the AI, which then compares it to the moves found by the MiniMaxTrees for their other marbles.

THE MINIMAXNODE-SCRIPT

 

If a player "jumps", i.e. moves a marble diagonally over another marble, they are allowed to keep jumping with the same marble as many times as they wish and are able during their turn. To allow the AI to do this, every MiniMaxNode-object constituting a jump replicates, spawning more MiniMaxNodes for every legal jump the marble would have from its new position (with the exception of jumping back to a tile it already landed on during the same turn, since infinite loops are not particularly beneficial for any given project). When no more jumps are found, the MiniMaxNodes calculate how much the AI would gain from moving to the new position and how disruptive it would be for its opponents. This value is then reported back through the chain of MiniMaxNodes and compared to their own values, with the best position and value being reported back to the AI.

PLAYER BEHAVIOR

 

FULLY INTEGRATED RULES SYSTEM

 

The InputManagerScript clearly displays all legal moves for a selected marble and only allows the player to make moves that are legal.

OTHER FEATURES

 

EFFICIENT SAVING AND LOADING

 

All the data needed to save and load the game is stored in a single 121-character string. Smooth, fast, simple and extremely memory efficient!

 

SAVING

LOADING

AMAZING "HOW TO PLAY" GUIDE

 

The fastest and simplest way to learn how to play Chinese Checkers, presented by Rick Astley.

 

GET IN TOUCH!

 

Would you like to hire me or otherwise get in touch? Don't hesitate to contact me!