A Swift iOS application designed to help DMs / GMs run tabletop RPGs

Overview

Project Overview

This project is a work in progress iOS app designed to help Dungeon Masters run tabletop role playing games. It is meant as an exploration into the Swift programming language for CSC690 at San Francisco State University for the fall 2021 semester. It's goal is to demonstrate the knowledge gained in the class by building an app using Swift. The application is built using Swift5 and SwiftUI.





Scope

Priority 1 - Must Have

  • Quick Dice Roller
  • Name Generator system
  • Random Generator system

Priority 2 - Nice to Have

  • User customization of name generators and random generators
  • Displaying a digital representation of the rolled die on the device screen

Priority 3 - Optional

  • Augmented reality version of the dice roller




Current State

Currently the application has all priority 1 features implemented, expanded below, for the generators the only thing missing would be more content. But as that is mostly a task of data collection for the generators to use I am pushing that back to focus on higher priority items.


Dice Roller

The dice roller works as intended, it is a quick access panel with a floating menu available from almost every screen. It can be used easily durring a gaming session or during prep to quickly roll some dice to determine an outcome.

Possible Improvments

  • Add another item that can roll a custom sized die.
  • Add the option of rolling multiple dice at the same time.

Name Generators

The name generators are built using an implementation of Markov Chains, using a supplied set of names to create a state table. When generating a name it will look at the current state of the name and then compare to the state table to pick the next valid character to add to the name. This implementation uses 2nd order transitions to compare the previous two characters rather than just the most recent character. This makes the generation less random and creates more believeable naemes. The data set used to build the state table for the current two generators is taken from the Guild Wars 2 wiki.

Possible Improvments

  • Add a 3rd order generator to look at the previous 3 characters.
  • Make the generation order selectable by users.

Random Generators

The current random generators are designed to load their data from a formatted CSV file. It uses a string such as "[[this]] is replaced by [[somevalue]]" and for every bracketed item there should be a table of possible options. This can then be used to generate complex sentences where there could be millions of different outcomes just bassed of a few tables.

Possible Improvments

  • Implement quick tables for when only 1 or 2 items need to be selected from rather than creating an entirely new column in the CSV file.
  • Add custom weights to the data items to prioritize some options over others.
  • Add an option to "roll" a die on the table rather than selecting by weight.
  • Add an option to have modifiers to the "roll" option, allowing for previously generated items to affect future items.




Future development

I plan to keep working on this project in the future to implement the improvements above as well as adding in the P2 features.

You might also like...
A todo list iOS app developed with swift5 and coredata to persist data, this app help people organise their tasks on categories.
A todo list iOS app developed with swift5 and coredata to persist data, this app help people organise their tasks on categories.

A todo list iOS app developed with swift5 and coredata to persist data, this app help people organise their tasks on categories. The app is simple, intuitive, and easy to use and update tasks informations.

ToDoList - An ios app that help users to set their todos and make it easy to remember this todos
ToDoList - An ios app that help users to set their todos and make it easy to remember this todos

An ios app that help users to set their todos and make it easy to remember this todos by reminders them when todo time's up, this app make sure that you don't forget any todos that you want to do just give it to the app and let the app hundle it for you.

👶🏻 An iOS app to help you track sleep, feedings and diaper change for your baby
👶🏻 An iOS app to help you track sleep, feedings and diaper change for your baby

🐣 Maby Maby is an iOS/watchOS open-source app to help you keep track of your baby's sleep, feedings, diaper changes and more to avoid the constant qu

Track your activities with the help of the TrackMyDay app

TrackMyDay Description: Track your activities with the help of the TrackMyDay app. This app is very easy to use and understand so you can get started

ViruSafe aims to help the fight with COVID-19 by offering people to share their symptoms as well track the spread of COVID-19 with an interactive map

ViruSafe aims to help the fight with COVID-19 by offering people to share their symptoms as well track the spread of COVID-19 with an interactive map, that shows how the infection has spread throughout Bulgaria.

An open-source app which can help you record income and expense
An open-source app which can help you record income and expense

MoneyPlus An open-source app which can help you record income and expense. 中文 0x00 Introduction First quick devolopment in iOS using Swift programmati

macOS application written in SwiftUI that downloads installer pkgs for the Install macOS Big Sur application.
macOS application written in SwiftUI that downloads installer pkgs for the Install macOS Big Sur application.

Download Full Installer This is a Swift UI implementation of my fetch-installer-pkg script. It will list the full macOS Big Sur (and later) installer

This application was created as a practice and shows a simply VIPER master-detail application.

MARVEL UNIVERSE CHARACTERS This application was created as a practice and shows a simply VIPER master-detail application. Main screen shows a list of

An iOS application written in Swift to demonstrate how to implement a Clean Architecture in iOS

Reminders iOS An iOS application written in Swift to demonstrate how to implement a Clean Architecture in iOS. Idea The idea is to implement the simpl

Owner
null
A mobile application project designed for everybody which provides the easiest way to make searchs for public services

A mobile application project designed for everybody which provides the easiest way to make searchs for public services

null 0 Nov 23, 2021
iOS application to help fight COVID-19

iOS application to help fight COVID-19 This app is aiming at helping fight COVID-19 spread by collecting anonymous data about people meeting each othe

Covid World 12 Feb 9, 2022
LeitnerBox is an iOS application which help language learners to memorize words faster.

Leitner-Box Leitner-Box is an iOS application to memorize word forever. Features Memorize words and phrases. Ability to export the database and import

hamed 5 Dec 22, 2022
An application that will help you to take care of your pet!

4Pets This app will revolutionize the way you treat your lovely pet! Info This application was developed at BEPiD, hosted by IFCE Idea At the beginnin

Felipe Borges 18 Dec 8, 2022
xcode project wrapper around the Elixir TodoApp Desktop app to run on iOS

TodoApp iOS: An iOS Sample App This xcode project wraps the Desktop Sample App to run on an iPhone. How to build & run Install xcode from the app stor

elixir-desktop 43 Nov 7, 2022
Abusing dlopen to load & run mach binaries on iOS

MobileTerminal Proof-of-concept for sandboxed Terminal environment for iOS. Uses dlopen() to load mach binaries as libraries, then finds & calls main(

Steven Troughton-Smith 184 Dec 18, 2022
A simple, but powerful UI patcher for macOS Big Sur designed for everyone.

What is Patched Sur? Patched Sur is a UI patcher for macOS Big Sur, designed to make it easy to run macOS 11 on unsupported Macs. This patcher hopes t

Ben 274 Dec 24, 2022
A small macOS menubar app designed to hide the dock on selected spaces.

HideMyDock A small macOS menubar app designed to hide the dock on selected spaces. Installation Manually You can download the latest version of .dmg f

Alexander Ushaev 42 Jan 2, 2023
OONI Probe is free and open source software designed to measure internet censorship and other forms of network interference.

OONI Probe iOS OONI Probe is free and open source software designed to measure internet censorship and other forms of network interference. Click here

Open Observatory of Network Interference (OONI) 59 Nov 2, 2022
SwiftUI-Card - Simple card ui designed using SwiftUI

SwiftUI - Card Simple card ui designed using SwiftUI Preview

bahri hırfanoğlu 0 Feb 5, 2022