dungeonsoffear - 2021-05-20

The playtest two weekends ago went really well. No technical glitches, which is what I was relieved about. There were some rooms that needed tweaking, but I took care of them tonight:

Plague run rampant: there was no incentive to go first, so added a small gold reward
Tainted tavern: Ties were not working properly if there was a dead player. I ended up fixing this by making most-chosen and least-chosen not include id's -1,-2,-3 (pants shitter, dead, do nothing). That seems to make the room work better, but I'm not sure about the long term viability of most-chosen and least-chosen
Unholy concoction: Reviving players and removing all gold was too big a punishment. Also, everyone chose the
revive for the easy 7 gold. I changed it so the gold reward is lower and is split among players that choose this option.

Other suggestions were no room should appear back to back, which I fixed, and also to bring back a room like the old boss rooms; a room that allows someone to be blatantly selfish to "stir the pot". I readded an old boss room, but an interesting bug was discovered:

Those rooms were created so that dead players would penalize the team. Turns out though, as far as I can tell, that would have never happened because dead players were not going through the xml room parse. I'm not sure how I could have possibly missed that test case for such an integral part of the game, but I appeared to. Interesting how that works out.

So now I have another two weeks until a playtest, so after taking a week break I'm back at it again. The remaining work discovered from the playtest is mostly UI tweaks and writing instructions for the rooms. I also want to do a official release to Show HN, which will require some devops work that I won't do for the next playtest. So rough outline of work:

For playtest in 2 weeks:
- UI fixes. Players complained about amount of scrolling and general visibility into when a room progresses and the old results. I am not exactly sure what I'm going to do, but I believe I'm going to allow players to hide images and extended instructions test. I'm going to redo the room xml schema to separate flavor text, instruction text, and extended text.
- Room writing instructions. For my last playtest, I knew I'd be in the room so I could explain, but players still complained about gotchas and hidden rules (like how ties are handled). So, I'm going to add a summary of rules text blob and an "extended rules" that outlines exactly what the room will do. I also need to clear up some language that is generally awkward

For the show hn:
- create a real docker build. I've been putting this off for a while and using my quick and dirty image, but I'll need an image with deterministic builds from a svn revision/branch with a database in a volume. This will probably also include some minor tools fixes to support the new build.
- db backups, dr. For the short term, this is just being able to grab it somewhere on the filesystem and copy somewhere else on the filesystem. For a production server I'd store the db backup offsite but that's not necessary for the staging build
- monitoring, metrics, alerting. I need to be able to see how well the app is performing. I doubt the show hn will blow up (most shows have like 2 upvotes) but if it does I'll want to know whats wrong. The UI is pretty inefficient, and I know the DB code does WAY too many queries for simple operations.
- lock down dev and tools dir. cannot forget to do this, but it should be covered in the new docker build.
- https. pretty simple, just adding a letsencrypt cert to the server and connecting to pound

So yeah, pretty easy stuff, especially for next playtest. Mostly polishing at this point. I may try to be creative and think of some new rooms as well. I may try to make a room with masked results, since I made the feature and haven't used it yet.

Someday I still want to redo the overall code. But I think I will wait until its too inefficient to function, instead of premature refactoring.

2 hours