Categories
Book Review

Becoming Superman

Becoming Superman: My Journey from Poverty to Hollywood by J. Michael Straczynski

My rating: 5 of 5 stars


This book is amazing. Not always in good ways.

I’ve admired Straczynski’s work for many years. I really liked The Real Ghostbusters, loved Babylon 5, and I have many of his comic books (including Spider-Man, Rising Stars, and Midnight Nation). Maybe on some level I envied his success, but not any longer. I wouldn’t want to go through what he went through to get to where he got. I’m just glad that I have been able to enjoy so much of his work. And maybe I’m just a little bit more inspired to work a bit harder on my own creative projects.



View all my reviews

Categories
Career UX Engineer

Coding Outside the Box

I had a coding interview earlier this year for a senior software engineer position. I did pretty well for someone who hasn’t coded on a daily basis for over ten years. That is to say, not well enough. That organization still has openings, but before I re-apply, I want to solve the second coding challenge, which I flailed at so hopelessly during the interview.

It really is a tough challenge. I’m not sure that in my prime I could have solved it in an hour. And trying to work on it in codepen.io was causing serious problems as it kept re-running the code as I tried to write it. It was time to install a real coding environment.

At the React.Indy meetup, I was told VS Code is pretty nice. And I used Visual Studio for many years, so I’m hoping a lot of those buried memories will help. It was pretty easy to install, but it wouldn’t run my JavaScript. The recommendation is to install Node.js and use that runtime for debugging. I ran into a conflict with an old install of NPM from when I was coding for The Game Crafter, but found help online to fix it. So I should be set up to continue on this coding challenge.

Categories
Game Design Villanostra

Vote!

I decided this morning to update the voting tokens. Here are the old ones:

And here are the new ones:

Why the changes?

With the big red / green planning tokens, I wanted them to be more versatile. The thumb up and the open hand still can be used for “yes” or “no”. But they can also be used for “ready” and “wait”, which is more important for this game. In my experience game-mastering roleplaying games, I often ask all the players to plan their next action simultaneously, then put their thumb up on the table when they are ready. Villanostra includes some periods of simultaneous decision making, and I wanted the players to be able to use the “wait” and “ready” sides of this token to show “I’m still planning” and “ready to proceed”.

For the small numbered tokens, the players use those to mark building cards to show which ones they want to work on in the upcoming year. But does the 3 mean “This is my third-ranked choice” or “I put three votes on this choice”? The first is more intuitive when voting, but makes it harder for players to evaluate their combined choices: the most desired option has the lowest-numbered tokens. By changing the tokens to mean “This is how many votes I put on this option”, the players can simply add the number of votes. And by putting a variable vote weight on one side of the tokens and having the players place them face-down, the other players have a harder time gaming their votes based on other player votes instead of just voting on what they want. Ideally the faces of these tokens would show dots instead of numerals, to make it even more clear that these are to be summed up instead of ranked from 1 to 3, but I ran out of time to make that change this morning.

Categories
Career UX Engineer

Social Day

Lots of socializing yesterday. IWUD planning meeting. Talking with the IUXPA president before and after the meeting. Talking to one of the other board members about job opportunities that he’d been approached with. Talking with a game designer who wanted to drop off a copy of his published game in thanks for the Protospiel connections I’d helped him make. Talking with another game designer about a 3D-printed component that he wants to use in a game… somehow. Talking with an ex-colleague to comfort her on the loss of her cat and how we should go hiking together. Talking with my sister and mom, just because you should talk to your parents at least once a week for as long as you’re alive. Playing games with my own kids and nephew.

But I finished the second FreeCodeCamp certification that I know I want before applying to front-end development jobs, and I stared on the third. And I found the second coding exercise that I flubbed in a senior software development engineer position interview, because I want to solve that problem and apply there again. And UX Designer positions are starting to come to me instead of me seeking them out, at the same time that I’m starting to realize I’m not sure I want a job that doesn’t let me code.

Progress. Slowly. Things Take Time.

Categories
Game Design Villanostra

Not that kind of sympathy card

Lots of little card tweaks this morning. Added the term “aligned”, meaning “the quality of having one or more morals in common”. This let me simplify some wording on Village Life and Building cards to use the terms “most aligned” and “least aligned”. Changed the Projects deck to a Building deck, because that’s what people think the cards are, even if they still get added to the Projects row in the Project phase.

I also changed the Ally deck to a Sympathy deck. I had already tried using the word “allied” in place of the “aligned” term I now use, and so there was a potential for terminology overload. But also it seemed weird to say “You’re allied with the Sergeant, but they don’t know it.” It seems a little weird to talk to the players about how to deal out “sympathy cards”, since that implies something else, but other than that I think it’s better.

And given how much I like the flavor text on the Village Life cards, I changed the motivation and goal text on the Councilor cards to also use first-person statements of their motivations. And changed the text to italics, because that’s what we do with flavor text. I’m afraid that also means players have been trained to ignore text in italics, which will keep the cards from creating the experience I want. *sigh*

Categories
Career UX Engineer

UX Engineer, Step 2

Categories
Game Design Villanostra

Trying to Stay Positive

The analysis spreadsheet for the Village Life cards is trickier than expected. I wanted to show values like “-1” when a villager loses a coin and “+1” when they gain one. But the formulas for calculating averages don’t recognize “+1” as a number, so I had to remove all the plus symbols.

I have this strange setup now where there’s all the data that actually appears on the cards, and then there are columns for analysis that are mostly derived from that data, but with some manual adjustments based on other effects. And then there’s a separate export sheet composed entirely of formulas to extract the card data from the analysis sheet, without the analysis columns and rows.

Despite all that, I managed to generate a deck and set it up in TTS. I need to tweak some of the buildings and then run another solo playtest.

Categories
Game Design Villanostra

Village Life in the Cards

I’m starting to set up Village Life cards in Component.Studio.

As I expected, CS failed to import the Google Sheet I use to do math analysis on the village life cards. So I had to copy and paste the section of that sheet to another sheet that I could publish and import. Which means that when I make a change to the original analysis page, I have to go through all those steps again. But it’s better than trying to do that analysis in CS itself.

I don’t care how these cards look, I just want them for testing. So I’m using CS _.prevy to position the text from each column right below the previous text. Looks like there’s a thing where _.prevy causes a column to not render if the previous step was empty. (Hence the line “[test]” in the screenshot above.) Something to investigate tomorrow.

Categories
Game Design Villanostra

Mean Stress and Net Stress

I’ve been struggling with creating a deck of Village Life cards to draw for each villager at the end of the year. I had lots of ideas for what to do, but I hadn’t yet committed to anything. This morning I remembered that anything testable, no matter how poorly implemented, is superior to lots of unexpressed ideas.

I knew that I needed the Village Life cards, on average, to cause 2 stress and cost 1 coin. That should allow them to replace the food cost and health rolls I used previously without changing the system economy very much. So in my spreadsheet of card ideas, I added columns for stress, coins, support, corruption, and inactivity. These aren’t the values that will actually appear on the cards, they’re estimated values based on the card effects, which I can use to balance the entire population of cards. For example, if a card causes 3 stress to villager and their neighbor, the value in the stress column is 6, because that’s the adjustment for the village as a whole.

The average at the bottom of the stress column is the Mean Stress change per card draw. But support and corruption also affect the stress in the village, so I also added a Net Stress equal to the Mean Stress, minus 3 times the average in the support column, plus 3 times the average in the corruption column. The current result is +3.05 net stress to the village per Village Life card draw. That’s higher than I thought I wanted, but I’d rather have too much stress in the system than not enough. More importantly, I can look at that net value when I modify the cards to get an idea of how it will affect the entire game.

Unfortunately, when I import the card sheet into Component.Studio, I think it will also try to import the rows for those mean and net values, which will screw up populating the card templates. Maybe there’s a solution for that.

Categories
Book Review

Never Split the Difference

Never Split the Difference by Chris Voss

My rating: 5 of 5 stars


This book has a lot of great information on how to interact with other people to arrive at a mutually beneficial solution. There are few topics in life that are more important. And the information is intermingled with fascinating stories about real-life negotiations that Voss engaged in, whether over the life of a hostage or the price of a new car. It’s not just worth a read, it’s worth re-reading.



View all my reviews