Dungeon Master s Sheet Aid

Similar documents
Homework 5 Due April 28, 2017

Final Project Due August 4, 2017

FACULTY MENTOR Khoshabeh, Ramsin. PROJECT TITLE PiB: Learning Python

SMART 3 IN 1 HOLLYWOOD PHOTOS: SETTING UP YOUR BOOTH FOR WEDDING/EVENT MODE

DUNGEONS & DRAGONS. As a Drupal project. Hacking and slashing our way through real-world content management problems

10.2. Scanning Document Camera Scoring. Page 1 of 5. How do I score answer sheets using a document camera? STEP 1

Simulation using Tutorial Verilog XL Release Date: 02/12/2005

LESSONS Lesson 1. Microcontrollers and SBCs. The Big Idea: Lesson 1: Microcontrollers and SBCs. Background: What, precisely, is computer science?

COMMONLY ASKED QUESTIONS About easyfreeincome.com system

Sudoku Tutor 1.0 User Manual

Endurance R/C Wi-Fi Servo Controller 2 Instructions

After you have completed the tutorial, you will be given an initial knowledge check by ALEKS to determine what topics you already know so ALEKS can

BEGINNER APP INVENTOR

Kaltura CaptureSpace Lite Desktop Recorder: Editing, Saving, and Uploading a Recording

Getting Started Guide

Guide to OverDrive for Students

Lab Assignment 5 Geoprocessing Service. Due Date: 01/24/2014

Simulation Case study

2809 CAD TRAINING: Part 1 Sketching and Making 3D Parts. Contents

DUNGEON THE ADVENTURE OF THE RINGS

Dungeon Crawler Card Game

Rock, Paper, Scissors

Creating Your Own PowerPoint Jeopardy Game

Programming Arduino Next Steps: Going Further With Sketches PDF

Batch Processing Converting images in a folder to JPEG

Setup and Walk Through Guide Orion for Clubs Orion at Home

May13-02 Multi-Sport LED Scoreboard with Wireless Communication Project Plan

Total Hours Registration through Website or for further details please visit (Refer Upcoming Events Section)

Let's Race! Typing on the Home Row

Bridgemate App. Information for bridge clubs and tournament directors. Version 2. Bridge Systems BV

From Nothing to Something using AutoCAD Electrical

GamePro Android Edition User Guide for Android Devices

Memory. Introduction. Scratch. In this project, you will create a memory game where you have to memorise and repeat a sequence of random colours!

Risk. CSc 335 Final Project

Trial code included!

SkeeterSoft s National Pastime III Simulated Baseball Game

Super HUD- User Guide

How to Blog to the Vanguard Website

black hole explorer Standard Pre-Made Ships

For slightly more detailed instructions on how to play, visit:

In this project, you will create a memory game where you have to memorise and repeat a sequence of random colours!

COMPUTING CURRICULUM TOOLKIT

1 Document history Version Date Comments

Welcome to 6 Trait Power Write!

Kodiak Corporate Administration Tool

Mutiny Anyone? Counters. Objective. Setup. Order of Play. Card Types. Victory

Getting to SBCC Island in Second Life

Report of Independent Study Matthew Kelly July 29, 2011 Old Dominion University Summer Term, 2011

1-Welcome to AutoCollage

Overview. The Game Idea

GD&T Administrator Manual v 1.0

EXERCISE 1: CREATE LINE SPARKLINES

Annex IV - Stencyl Tutorial

3 things you should be doing with your survey results. Get the most out of your survey data.

Wild. Overlay Wild. Bonus Game. Football: Champions Cup Game Rules

IRISYS ISI Series Imager Report Writing Software

MOBILE INVENTORY UPDATES

METRO TILES (SHAREPOINT ADD-IN)

Candidate Instructions

Table of Contents. Creating Your First Project 4. Enhancing Your Slides 8. Adding Interactivity 12. Recording a Software Simulation 19

MiVoice Office Real-Time Wallboard

Apocalypse Defense. Project 3. Blair Gemmer. CSCI 576 Human-Computer Interaction, Spring 2012

PaperCut Print Service in ES411 Details and Quick-Start Guide July 11, 2008

Level 2 Create software components using Java (7266/ )

English as a Second Language Podcast ESL Podcast 295 Playing Video Games

Visualize 3D CATIA V5 to JT Composites Add-On Module

Adolescent Version. Appendix D: Downward Spiral Rules

CIC ENGINEERING 345 CENTER STREET EAST PEORIA, IL PH FAX µmpis Control Software

Scorer with BridgePads Quick Guide to Teams Scoring

Generate Ethylene Vapor Pressure Curves with Aspen Plus V8.0

Successfully Navigating Family Search

Frequently Asked Questions About Server Play

Automate Your Social Media Marketing (Tutorial)

USPTAplayer.com Reference Guide

Educational Technology Lab

DakStats Web-Sync. Operation Manual. DD Rev 4 12 December 2012

Explore and Challenge:

Bachelor Project Major League Wizardry: Game Engine. Phillip Morten Barth s113404

Checking your technology

Instructions for the W0NE Remote HF Rig, IC-7300

Cato s Hike Quick Start

Quick Printing Guide (for Microsoft Word 2010)

..\/...\.\../... \/... \ / / C Sc 335 Fall 2010 Final Project

Basics Pictures Media Bar

Game construction manual

Learn4good ffx runner

Minecraft in Geography. By Paul Blankenship, NBCT

Getting Started in Forex Robots

Fundamentals of ModelBuilder

HOWARD A. LANDMAN HOWARDL11

Drawing Management Brain Dump

Final Project Specification

Getting Started with Osmo Words

Quick Fixes and Verbal Triage: Script Doctoring For Games

The Rest of the Story: Using Autodesk Inventor Tools to Complete Facilities Design Documentation and Design

No more boredom! RULEBOOK

RC-WIFI CONTROLLER USER MANUAL

OM29110 NFC's SBC Interface Boards User Manual. Rev May

CONTROLS USE SELECTED SPELL HEAVY ATTACK SHIELD SKILL / USE GAUNTLET / LEFT HAND HEAVY ATTACK INTERACT INVENTORY USE SELECTED ITEM CYCLE CYCLE

Level 2 Creating an event driven computer program using Java ( )

Transcription:

1 Alex Grazela Cal Poly Computer Engineering Senior Project Dungeon Master s Sheet Aid Adviser: Dr. Andrew Danowitz By: Alex Grazela Table of Contents:

2 Alex Grazela Table of Contents: 1 Abstract: 2 Background: 3 What is a tabletop rpg? 3 Previous Solutions and Their Problems: 4 Problem Statement: 5 Engineering Specifications: 5 Engineering Design: 6 Conclusion/Future Work: 10 References: Error! Bookmark not defined. Abstract: The Dungeon Master s Sheet Aid is a program made to assist players of tabletop rpg games in keeping track of and using their character sheets, a vital part of the game. In particular. It is made to be helpful to the players taking the role of Dungeon or Game Master, as these players need to manage many more character sheets than anyone else.

3 Alex Grazela Background: What is a tabletop rpg? Tabletop rpgs are games wherein a single player takes the role of master and the rest of the players take the roles of player characters within a game universe created by the master. To describe their player character in the game world, the players make use of information compiled into a character sheet. Depending on the game being played, character sheets usually include things such as the character s name and player s name, character s backstory, what their stats, such as strength or intelligence, are, what they are skilled in, and often how they can fight. In order to do things in the game, players roll dice, and add modifiers based on information about their character to determine success and failures of their actions, so keeping a character sheet that tabulates that information is essential. The players need to keep track and carefully manage their own sheets, while the master needs to know all of the player s sheets, as well as sheets for important non-player characters in the game world that he creates. As such, the number of sheets a master needs to look at during the game can become overwhelming, and if any player loses their information it makes it difficult to play the game.

4 Alex Grazela Previous Solutions and Their Problems: Two previous ways of keeping track of character information that were taken into account for this project were: Holding onto physical paper sheets, and keeping electronic sheets in the online application roll20.net 1. Paper sheets are the most easily lost, and so the most unreliable method, on top of the fact that they cannot be used for online play. Roll20.net is a browser application that is meant to facilitate online tabletop rpg playing, and it includes it s own electronic character sheets. The character sheets in roll20 are helpful and detailed, providing features such as automated rolling, but for the master, who needs to be looking at multiple sheets at a time, they are far too bulky, as shown below in figure 1. Figure 1: A character sheet in roll20 1 https://roll20.net/

5 Alex Grazela This sheet takes up about half the screen, meaning opening any more than 2 will cause overlapping, and prevent the master from seeing the representation of the setting that they made (seen in the background to the left of the character sheet), thus making the features difficult to use at the same time. Problem Statement: Based on the shortcomings of the previous methods, the problem statement for this project is: Create a small sized, quick to navigate character sheet displaying gui that can display multiple character sheets without overlapping, nor taking up so much room as to make it impossible to look at anything else at the same time, provides automated rolling services for different player actions, and can save entered data to be used later on the same or a different device. Engineering Specifications: In order to meet the problem statement, two particular engineering specifications have to be met; namely being able to display a gui, and having a persistence layer. For choosing how to display the information, a decision had to be made on what type of device the application would run on. If the project was to run on mobile environments, it would have to use the android or IOS toolkits, whereas running it on a desktop environment opened options for things like javascript, javax.swing, or Qt. For the data persistence layer the choice was between using a regular file, using an sql database, or

6 Alex Grazela something else. Since python provides a pickle module 2 that works as a persistence layer by writing to a special bytestream file, which can then be unpickled to load the data, and also has an implementation of Qt 3, which would make it easy to generate the gui I needed. These factors, along with the fact that any time a user would I therefore decided to make the code solely in python, meant to run on a desktop environment, Engineering Design: In order to meet the requirement of limited space usage, some way to share space with other character sheets, as well as limit the amount of information displayed at once was needed. The solution was a double tabbed gui, pictured in figure 2 below. 2 https://docs.python.org/3/library/pickle.html 3 http://pyqt.sourceforge.net/docs/pyqt5/index.html

7 Alex Grazela Figure 2: The double tabbed gui, the upper level of tabs are characters, and the lower level is the information needed, broken up into relevant subgroups

8 Alex Grazela Using this gui, the automated rolling feature is implemented by way of the visual pushbuttons. For example, clicking the save button in the strength row will roll a strength save, which is a type of action the player may need to take during the course of the game. It takes into account the strength score, given in the text box in the same row, and the check box for strength save which indicates proficiency in the action. The result of clicking the button is shown in figure 3 below.

9 Alex Grazela Figure 3: An automated roll. The popup dialog displays what the raw dice results were, as well as the modified result, which is based on a number of other pieces of saved data To load characters from the data persistence layer, there is a starting tab on the upper tab level named Add Sheets, it contains 2 buttons, one of which, new generates a new character with a given name and defaults it s information, the other, open, opens a file dialog, defaulting to../characters, to search for pickle bytestream files to open, both tab and dialog are shown in figure 4 below. Figure 4: The Add Sheets is the default tab for the application, and it has 2 buttons for making new and opening old character sheets. In order to save to the persistence layer, one need simply close the application.

10 Alex Grazela Conclusion/Future Work: In conclusion, the objective of making an automated rolling, low screen space usage (see figure 5 below), multiple character sheet gui with the ability to save input information was a success. In order to improve upon it in the future, changes could be made to allow for multiple different tabletop rpg games to be used, as the only supported one currently is Dungeons and Dragons 5th edition 4, which could be done with more modular code structures, or having multiple set types of gui for different game systems. It also could be tested and if needed, changed to work with the pyqt library available to raspbian, so that running it on a raspberry pi would be easy. This would make it much more portable in a physical sense, and make it easy to play anywhere anytime. 4 http://dnd.wizards.com/

11 Alex Grazela FIgure 5: Screen utilization displaying all 5 player character sheets. Compare with figure 1, in which a single sheet was displayed References: 1. Roll20.net, an online tabletop rpg facilitator https://roll20.net/ 2. Pickle module, a python data serializer https://docs.python.org/3/library/pickle.html 3. PyQt 5 documentation http://pyqt.sourceforge.net/docs/pyqt5/index.html 4. Dungeons and Dragons website http://dnd.wizards.com/ 5. Title Page Image https://s-media-cacheak0.pinimg.com/736x/ce/94/32/ce94322efc4aaf09ef83115b6c8b1626.jpg