r/gamedev•
PaladinJohn

Developing a Digital Table Top Aid for Android. Point me in the right direction!

Question

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

20
Loading comments…