Description: Android app in the form of a game which uses the Lambda backend MUD server to send and receive network requests to progress the player character through the storyline. Beyond having fun, the purpose is to improve blockchain mining abilities, 8-bit computer programming skills, and honing breadth-first searching algorithms.
Shared Preferences •
Custom View •
Highlights: Solo project built as the player progressed through the game. Various mechanisms attempted for the automatic traversal functionality including callbacks, synchronous calls, and Timers. The best solution turned out to be the flexibility of Kotlin Coroutines. They ended up being smooth and extensible.
The splash screen where the API token can be entered in. (This is available upon request.)
The activity showing the main game screen. The bottom portion shows a map drawn with a custom view. The top portion is where information and commands are executed. The status, movement direction, cooldown display, list of commands, and the log are located here. In the middle is a toast showing the status of an executed command.
One of 3 possible dialog fragments is showing here, each with a different border. This one allows the user to select from a list where each item are bound to a ViewHolder in a RecyclerView. The "Confirm" button has a listener attached which activates a callback so that the game can still be running in the background.
A toast message indicates a success after selling an item. Tha process was sending a POST request to the backend server and then letting the response update the UI and handle any actions. The network activity was made possible through a Retrofit call inside of a Kotlin Coroutine.
Every room on the map is interactive. Selecting a room will bring up the room information stored in a HashMap and loaded from Shared Preferences. When the "Confirm" button is pushed, the room number is set as the destination for the room-by-room automatic traversal using a breadth-first search (BFS).
This other map demonstrates the flexibility of the app to show other worlds, in this case the Dark World, when warp is activated. Strategies can be devised to make use of this ability to navigate to a particular location.
Link: GitHub Source Code