Update Documentation App Development authored by Schmidt Raphael's avatar Schmidt Raphael
**App Concepting**<br>
We wanted to create a mobile game for the CCL. After brainstorming some ideas, we decided on a "word builder game", inspired by the classic board game "Scrabble" and the mobile game "Wordle".
We wanted to create a mobile game for the CCL. After brainstorming some ideas, we decided on a "word builder game", inspired by the classic board game "Scrabble" and the mobile game "Wordle". We wanted to create a "word game for word nerds".
<br>
<img src="uploads/aec339337390a011abb391ef3008e01f/CCL3_screens.png" alt="img" height="400">
......@@ -19,22 +19,23 @@ initial scoring system (+1 score per completed word)
- unlockFonts functionality
**Design Of The Database**<br>
After creating the gameOverScreen and implementing the first steps for data handling, we implemented the database.
After the game was in a playable state, we implemented the first steps for data handling and the database.
<br>
In hindsight, we definitely should have thought about how the data should be handled and how the database should be structured before working so much on the game and increasing its complexity.
<br>
![db_relations](uploads/f63604c3c4bb1af8ea13fb39d439f490/db_relations.png)
This image is not entirely correct since some of the data handling is not done through the database but through other files: a viewmodel, the letterManager, the fontOptions class and the fontRepository.
<br>
Because of this, debugging and refactoring data related functionality was a bit tedious and confusing. In order to structure the code better and make it easier to read and understand, a big refactor would have been necessary. However, we did not have the time for that during the last week.
Because of this, debugging and refactoring data related functionality was a bit tedious and confusing. In order to structure the code better and make it easier to read and understand, a big refactor would have been necessary. However, we did not have the time for that during the last week of the codelab.
<br>
<br>
**Final Takeaways**<br>
We're glad that we tackled making a game since it made us more motivated to work on the project, as well as giving us a final product that we enjoy playing and will use.<br>
That being said, making a game did result in us at times having to shoe-horn in certain requirements for the CCL project, such as CRUD functions. This forced us to be creative and think of interesting stats to track (such as having a word-history to track a users most written word).<br>
We're glad that we tackled making a game, since it made us more motivated to work on the project, as well as giving us a final product that we enjoy playing and will use.<br>
That being said, making a game did result in us, at times, having to shoe-horn in certain requirements for the CCL project, such as CRUD functions. This forced us to be creative and think of interesting stats to track (such as having a word-history to track a users most written word).
<br>
We also had a lot of fun thinking of new features and implementing them, such as the multiplier, changing the fonts (and how to unlock them), and seeing what words you made and the score received for each in the GameOver screen, even being able to click on the word to see its definition.<br>
The biggest challenge was probably getting our database to work. We reached a certain point where the main GameScreen was already so large and had (for our standards) a lot going on, that we decided to leave all the database interaction to other screens, such as checking for unlocks in the GameOver screen, instead of during the Game.<br>
We're honestly very pleased with the result, and will probably attempt to iron out any of the last kinks, and polish up the app even after the CCL submission, since we got somewhat attached to the project.
We're honestly very pleased with the result, and will probably attempt to iron out any of the last kinks, and polish up the app even after the CCL submission, since we got somewhat attached to the project. The app is functional and already a great foundation to work off of, however, it might be a good idea to do a complete overhaul of the code and the database structure and work on a version 2 in order to prevent problems from arising in the future.
<br>
<br>
**Code Source**<br>
......@@ -42,9 +43,4 @@ https://git.nwt.fhstp.ac.at/cc231040/ccl3-scrabbling
<br>
<br>
**APK File**<br>
https://git.nwt.fhstp.ac.at/cc231040/ccl3-scrabbling/-/raw/master/app/src/main/java/com/example/ccl3_scrabbling/apk/scrabbling.apk?ref_type=heads
<br>
<br>
**Final Reflections**<br>
(challenges, contributions, does the app meet the concept, further improvements)
\ No newline at end of file
https://git.nwt.fhstp.ac.at/cc231040/ccl3-scrabbling/-/raw/master/app/src/main/java/com/example/ccl3_scrabbling/apk/scrabbling.apk?ref_type=heads
\ No newline at end of file