Main code files are in the core folder
Run as a libGDX project as described here
-
Sokoban levels taken from the sokoban archive
-
Crates taken from Kenney's Sokoban pack and modified .
-
Floor tiles were taken from princess-phoneix's virtual tournament room tileset on Deviantart and modified.
-
UI Buttons were taken from pix3Icat's UI Icons/Buttons Set on OpenGameArt
-
Game backgrounds and parallaxes were taken from KokoroReflections Three Sky Backgrounds - Day, Sunset/Sunrise,Night on OpenGameArt (https://creativecommons.org/licenses/by/4.0/)
-
All other assets are original.
The main file/screen controller is Game.java.
Singleton pattern is used to create a single instance of UserData and ensure that only one copy of UserData is used per game.
State pattern is used for transitioning between game screens, with Game.java being the screen manager.
Factory pattern is used to create the entities in the game so that there is a centralized entity creator and the created units are correctly placed and reusable. Each entity is created based on the EntityTemplate.java
Command pattern is used to store moves history in sokoban puzzle game to support undo-moves