Archive

Rant

Let’s get the 4k jokes out now. All done? Great.

My personal website started as a way of tracking my New Year’s resolution some 12 years ago. It’s still up as a place for putting short stories, rants, and guides. I think cohost as a microblogging platform is taking over that role in some respects, but I’m not ready to make a redirect here. I’ll settle for cross-posting.

I’ve been burned out a half-dozen times in about as many years, and something that particularly gets to me is not long hours but a lack of shipping anything. Spending a year on a project to have it canned is more demoralizing than spending a week under duress. In the interest of resolving this, I would like to ship one small app or game per month. It seems strange that adding more strain to the schedule would cause less stress, but every vacation I’ve had so far this year has been absolutely plagued by depression over getting nothing done and yet somehow failing to relax.

This will not be a trivial matter, as work, home obligations, and a commute leave me with almost solely the hours of 7:30PM to 10:30PM, Mon/Wed/Th/Fri to myself. That’s 12 hours a week plus whatever I can do on Saturday morning. That’s 48 hours a month at maximum efficiency, and probably rather optimistic, given I need to do domestic things like laundry and cleaning and taking care of people/creatures.

Is it really worth spending the little time I’ve got making games instead of cultivating a skill like making art or practicing music? I’m not sure. 12 hours a week feels like so little time for all the things I want to do, but this is the reality of the situation, so I guess the only option is to make the most of it.

So many resolutions revolve around suddenly having discipline never before demonstrated in one’s life, and this isn’t much different. Perhaps I can simply make do with building up a habit.

Just in case there was ever any doubt where the politics of this blog stand, #blacklivesmatter.

Thank you to the protestors who are willing to brave the teargas and rubber bullets.

Thank you to the countless individuals who are willing to risk your lives in the midst of an epidemic to march against injustice.

Take care of yourselves. Stay safe.

It’s done enough!

tl;dr: Download a Runnable Jar Here

Standalone PC/OSX builds are pending.

Kudos to Peter Queckenstedt (@scutanddestroy) for doing an amazing job on the Proctor, Hillary, and Trump.

Post-Mortem:

‚ÄčThis has been a positive experience. I love games that actually have nontrivial interactions in them and completely open-ended text inputs. I’m a fan of interactive fiction, but hate that feeling when you’re digging around and grasping for action words like some sort of textual pixel-hunt.

The language processing systems in DS2016 aren’t particularly complicated, but they’re more simple than I’d like. In the first week of the jam I started writing a recurrent neural network to parse and analyze the sentiment of the player’s comments. I realized, perhaps too late, that there wasn’t enough clean data for me to use to accurately gauge the sentiment and map it to social groups. Instead, I wrote a basic multinomial naive bayes classifier that takes a sentence, tokenizes it, and maps it to ‘like’ or ‘dislike’. Each group has its own classifier and tokenizer, so I could program demographics with a base voting likelihood and give each of them a few sentences on the “agrees with” and “disagrees with” sides, then have them automatically parse and change their feelings towards the player.

A usability change that came in later than one would guess was as follows: I had originally grabbed the demographic with the largest emotional response to a comment and displayed them with the sentiment change. Unfortunately, this turned out to over-exaggerate one particularly noisy group. Another change, shortly thereafter, was masking the exact amount of the change. Instead of saying +1.05% opinion, it simply became “+Conservatives” or “-Hipsters”. This was visually far easier to parse and I think helped the overall readability of the game.

There is still a call to add some more direct public opinion tracking in the game, letting players know in closer to real time how they’re doing among the demographics. I may find it in myself to introduce that.

The last interesting aspect that I noticed during playtesting: I had slightly over-tuned the language models to my style of writing. Instead of opining on matters at any length, people were making enormous run-on sentences which appealed to every demographic at the same time. These statements, often self-contradictory, were not something I expected or handled well. I found the game to be rather difficult, but it looks like playtesters had a dandy time making the states go all blue.