I wont advertise the game here, as it is already done on the Play Store page, but i will talk about it more in a developper perspective.

Why a Reversi ?

I always want to add features and stuff when i develop something, I have another game in développement with a more original concept, but while designing it I realized that it would take me for ever to finish it.

So for my first game on android I decided to make a game already known, so I won't be temped to add to much stuff in it.

Plus it would good to have a code base for future games.

Yeah, but there are already billions or reversi on the market.

Right, so I needed an edge. I've downloaded the three or four most downloaded reversi on the market and played with it a while.

Even tough the AI is often pretty good, the graphisms tend to be between ok and horrible : first "breakthrough" :

But it's not enough.

Earlier this year I've played a board game called Roll It ( at least in France ), which is basically a reversi with balls instead of discs, and you can play with 4 players.

Bingo ! I had enough to keep going.

Why would my game be different ?

Good and polished graphics.2 to 4 players

Yeah, but you need a robust AI now.

Right again, although I've played at Reversi several times i'm not a good player, so I had no idea how to implement an AI.

After some research on Internet here is the way I've done it :

I basically assign a weight to each possible board I come accross.

That weight depends on 4 factors : - Basic weight : each case has it's own weight, so I just add all my cases weights, and substract the opponents ones. - Safe discs : discs that cannot be flipped are considered safe, usually safe discs radiate from a corner. - frontier discs : I maximize the frontier discs ( adjacent to an empty case ) of the opponents, and minimize my own - mobility : I minimize the number of legal move the opponents can make, while maximizing mines.

after that I create a tree with all possible moves, using a min-max algorithm, that will give me the move that has the smallest chance of losing.

To reduce the number of move searched I added an alpha-beta pruning to remove in advance some moves I know will be bad. It was really cool to see the results.

With a depth of 6 moves, I reduced from 3 millions calculated moves to 100 thousands during the middle of the game.

I then made 5 levels of AI by playing with two things : - the depth of the search- the weight associated to the four factors aforementioned.

I don't know how my AI will keep it toghether against a real reversi player, but with the latest difficulty settings I get the general feeling I have while playing the other reversi games. ( and I loose badly ).

While browsing Reversi websites, I also came across the less-known "Reverse" rules, which consist of having the less discs at the end of the game.

I just had to invert some of the weight and I had a very decent AI, so it made a nice addition to the game.

And why that theme ? and that ridiculous name ?

After deciding I would have 4 players, I needed a four-way theme, like seasons, elements, cardinal points, etc.

Beeing a huge manga reader I though of the four beasts we see on a regularly basis in that culture, plus it combined all the previous researched themes. It was perfect.

I wanted a design that would talk to japan friendly people as well to everybody that would look at the discs and say : "whoa, that looks awesome", so I asked for a more modern, minimalist, clean style, with just a hint of asian culture, same for the music.

And i feel that my artist and sound designer got that very well.

For the name, I didn't want to have reversi in it, but I was afraid a reversi game without reversi in the title would loose a massive amount of visibility.

So I searched for how the beasts were called in Japan and took the simplest name : Shijin.

Apk has been made 2Mo lighter just by cleaning the png files, silly me.

Haptic feedback should no more feel like you receive a message

I've also made some changes to the setup page.How can you add/ remove a player ?How can you change the difficulty setting of the AI ?How can you change avatar ?How can you switch from human to AI, or AI to human ?

If any of that was not easy to answer, please feedback it to me so I can improve it further.