Retro Reversi is an Android app of the board game Reversi (also known as Othello) that features online matchmaking and a retro look. Made with LibGDX.
Note: this is a view-only repository. For the original development repository, go here.
- Android 4.0.3 and up
- LibGDX
- Play Games Services to cover Achievements and online Mulltiplayer
- Clone this repository and open it with Android Studio. - more info here
- Set your Run Configuration to work in android/assets folder.
- Run via emulator or USB.
Note: for Play Games Services usage you must sign your app according to your own linked app - more info here
- Strategy - An AI's moves are chosen through an algorithm. Different AI difficulties have different algorithms for the way it chooses a move
- Model-View-Presenter - To separate the components' representation from its logic and relations and facilitate unit testing
- Memento - Implement 'Undo last play' functionality (only on local gameplay)
- Choosing MVP over MVC as the main architectural design pattern turned out to be very useful, given the 'button-based' interface for both in-game and menu controls
- Having the game logic implemented seperately from the rest of the application allowed to easily write tests to check its functionalities
- The early on research and structural design regading viewports, layouts and other libGDX related visual elemements allowed us to properly make a responsive app that works across multiple devices
- The well-design separation of concerns regarding the main components made the AI integration alongside the user controls seamless
- The same applied to the online multiplayer integration, however the Play Games API integration was a lot of work
- Having each visual board position handle its logic allowed us to gradually implement additional visual functionalities, such as animations and placement suggestions, while leaving the game logic intact.
- This code is licensed under MIT.