Featured games (91)
games approved by the League of Dukes
Games in Showcase (579)
games submitted by our members
Games in WIP (500)
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 2509 times)
0 Members and 1 Guest are viewing this topic.
Offline MangeCailloux

Senior Newbie

Projects: 1

« Posted 2012-12-23 10: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: 114
Projects: 4
Exp: 3 years

« Reply #1 - Posted 2012-12-23 18: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 02: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 13: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 11: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 22: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!