When I first started playing Pathfinder, it was pretty intimidating. I had no idea where to even begin, as the reference information was spread over a lot of different links and most others were so familiar with the system that they were unsure how to explain what to do besides just "Pick something." I wanted a way to have all the basic character creation resources in the same place, and to avoid having to worry about doing the math myself, for fear of missing something important.
What it does
TRASH's main work is behind the scenes--it rolls dice, sums stats, and such automatically. It takes in some basic input from the user, in order to choose the vital facets of a character. After that, it generates the basic stat-block for the character, to be placed on a physical or digital character sheet--removing a lot of the legwork from doing so.
How I built it
Working solo, I tried to keep things simple. The first thing I did was create a robust method for rolling dice, in case I wanted to use the same sort of method in other projects involving RPGs. After that, I had to make some decisions as to what content I would include. I decided to just go with the bog standard, core races and classes, to avoid choice paralysis and to keep the character it created easy-to-play.
Challenges I ran into
This program doesn't cover the entirety of making a Pathfinder sheet. There are still feats, traits, equipment, and spells to consider--but there is really not any way I can think of to automate choosing those. Aside from being best discussed with the actual people you are going to play with, there are hundreds upon hundreds of each of these--and it is unfeasible to display them all.
Accomplishments that I'm proud of
I quite like the simple way to roll dice. Other than that, I realized that the Pathfinder reference documents use a common URL structure, enabling me to generate the URL for the reference information for the character class and race they have automatically. I felt a little clever doing that.
What I learned
I learned how to actually do error handling, something that I have not covered in class. Other than that, I had to look into the exact mechanics of random variables. It was also the first time I've practically used switch statements. I really didn't do anything too fancy, but it was a good exercise in actually making something with a user experience--something CS180 homework doesn't really do.
What's next for Technically not Randomized Automatic Sheet Helper(TRASH)
I've got a pretty large main method. I'll probably want to devolve choosing a race and a class into methods, in order to make it more versatile. Other than that, I might want to create a system of suggested feats, traits, and equipment for race-class combinations.