Hi !
Featured games (91)
games approved by the League of Dukes
Games in Showcase (757)
Games in Android Showcase (229)
games submitted by our members
Games in WIP (844)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Shijin Reversi  (Read 6194 times)
0 Members and 1 Guest are viewing this topic.
Offline MangeCailloux

Senior Newbie

Projects: 1

« Posted 2012-12-23 09:53:36 »


my first game using libgdx is now ( finally ) released, you can find it here  :

Reviews and comments are more than welcome Smiley

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 Smiley ).

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.

If anyone here speak japanese, I apologize if the term is wrong Smiley.

If you have any questions or remarks, please don't hesitate to ask.

Offline Jimmt
« League of Dukes »

JGO Kernel

Medals: 167
Projects: 5
Exp: 6 years

« Reply #1 - Posted 2012-12-23 17:08:19 »

Any chance that you can get us the desktop version? Not all of us have Android phones.
Offline ReBirth
« Reply #2 - Posted 2012-12-24 01:45:46 »

Yeah you made right move. I am not fan of board game but after saw "shijin" on title then I want to try. However does it has single player feature (VS 3 AI)?

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline MangeCailloux

Senior Newbie

Projects: 1

« Reply #3 - Posted 2012-12-27 12:12:33 »

@ Jimmt : Yeah as soon as i have a little time ( surely after the holliday season ) I'll put the desktop version on the website as well.

@ReBirth : Yes, sure. You can play versus 3 AIs ( but each AI has it's own team ).

EDIT : I've just read the featured section rules, so I kindly ask any moderator if my game meets the requirements to be in that section Smiley
Offline MangeCailloux

Senior Newbie

Projects: 1

« Reply #4 - Posted 2013-01-05 10:56:12 »

New version out : fixes a bug when restarting a game and not be able to play anymore.

I've also uploaded a desktop version on the website :

Enjoy !
Offline MangeCailloux

Senior Newbie

Projects: 1

« Reply #5 - Posted 2013-01-15 21:11:57 »

New version :

Version 1.0.5 :
- Fix a bug that relstarted the app in the lock screen
- Haptic feedback intensity reduced
- Apk size reduced
- Remade setup page to be clearer

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 Smiley

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.
Pages: [1]
  ignore  |  Print  

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!