These are the different design principles used in the creation of the project.
The Factory Design Pattern
The Model-Presenter-View Pattern
The Template Pattern
I wrote the entire section in the model package and I also wrote most of the logic for the CombatActivity.
This is the code of the CombatActivity for the project.
I worked with three other classmates for this team project. Our goal was to make a multiplayer, turn-based, role playing game. We ran into many challenges while working on the project and trying to allocate the work of the project.
A lot of the challenges we faced where limitations of the multiplayer API we were trying to use. We were using firebase to connect the phones through a shared database however we were unaware of several limitations that databases have. We used interfaces so that we could have a more efficient use of polymorphism but interfaces aren't supported for databases. We were unfortunately unable to change the architecture to fix this as it was way to far into the project for us to be able to rewrite the entire back-end to work with the database.
At the same time we discovered this issue we also realized that we had a team member who wasn't pulling there weight. Out of 8,000 lines of code they had written zero, this team member also didn't show up at all the last four days of the project which was when we basically finished the entire project.
Our goal was to have up to four players to join a single game and play through a story together. Unfortunately, we ran into a lot of road blocks in this area of the project which meant we had to cut out some of our core features to finally finish the project. Once we discovered the problems with firebase we realized we would be unable to do the multiplayer component of our game. Also unfortunately the problem we ran into with firebase worked the same for saving and loading the characters so you couldn't keep the same character between games.
These problems meant that our game would have to be significantly smaller in scope and we only discovered them four days before submission of our project. We then had to crunch to get the functionality of the app to the minimum standards we needed to be able to submit it. The combat ended up having to be dumbed down so that we could complete it in time, the graphics had to be stand in graphics as we didn't have the time to create our own, and we had to properly pass the character credentials between the different android screens.
This is the combat display that the user sees when they see.
This is the character creation screen.
I wrote the entire back-end of the project, this included creating the code for an inventory, items, skills, character creation, and monsters. Unfortunately I was unaware of the fact that saving and loading interfaces would cause problems so I wrote most of the skills to use a base interface so you could store multiple types of items in the same array. If I was to do this over now I would have one base class that is extended by a bunch of sub-classes which would allow me to save and load safely. Another one of my duties was creating the combat.
The combat was all of our game play for our project which was not ideal for me to have to create with only about four hours of work. I ended up having to be the one to finish it as the two members of my project who were working were fixing the user interface. I made a very bare bones form of the combat we had envisioned and at this point all of us where so burned out from working constantly on it that we were unable to flesh it out more.