Developing a Digital Table Top Aid for Android. Point me in the right direction!
Hello!
I thought I'd post here to get some feedback before I start seriously designing a project I intend to work on over the summer for personal use. First I'll post up what I'm intending to accomplish, and then my plan right now. I welcome any feedback and advice on how to accomplish my goals. I'm an intermediate level programmer who has experience with mobile app development, but I haven't worked with some of these requirements such as setting up and querying a data base.
Specifications:
This will be a mobile app that can be accessed on any Android phone or tablet. The end goal is to create a digital assistant for a home-brew table top gaming system. The app will be able to load character sheets from an online data base and manage a battle system through a GUI on the user's mobile device.
Phase 1:
- Players should be able to select a character from a list of characters. No two players should be able to select the same character.
- The app should have DM functionality, allowing the DM to add enemies into an encounter.
- The app will keep track of turn order and prompt the appropriate player (or DM) when it is their turn.
- The player should be able to select a move, and then select a target for their move. The app will handle all of the math involved with said move, and update the current status of the target accordingly.
- The DM will confirm any choice of action on the player's side, in case an invalid target is ever selected.
Future additions:
- Players should need to log into the system to have access to only their characters.
- Players should be able to view their character sheet at any time, and make minor changes such as buying equipment, abilities, and equipping equipment.
- Equipment should automatically update a character's stats/abilities when equipped rather than manually adjusted.
- Inventory should be tracked, and battle usable items should be a valid action during battle.
- The DM should be able to interrupt the flow of a battle at any point for special actions/events.
- The players have a GUI to select their abilities, and targets, with enemies having a picture to distinguish them.
- The database should be able to be easily updated and adjusted to add new items, enemies, and abilities between sessions.
What this program will not do:
- Show a grid with player and enemy positions. This will be handled by an analog mat and miniatures.
My idea on how to implement this so far:
I'll create an excel spreadsheet that contains all of the character's info and update it from there. Also creating a sheet for items, enemies, and abilities. I'll upload the spreadsheet to an online database, and using the REST API, import the data as JSON. I'll have a few interpretation functions to take the raw JSON and assign it to objects such as players, enemies, weapons, spells, etc.
A few things I'm still not completely sure about handling is if there is a better way to handle the database management so that the app doesn't have to download and interpret the entire database every session if I make any changes to it. Also, how to create a "Battle Scene" where changes to characters stats (Primarily HP) can be tracked between all devices connected to the session.
I'm sure there's also some other pitfalls I'm not foreseeing, and I want to design this with flexibility so I can change aspects of the system based on my player input while testing. If you have any advice on how I could do things better, or some technology/methodology I should look into to accomplish this, please let me know!
The current plan is to program this in JAVA through ADK, but I also have a lot of experience with Unity and wouldn't mind developing this framework in that if there is a clean solution there.
Thanks for your help!
Posted Feb 21, 2016, 9:09 PM UTC