This was a busy week. I spent my time getting ready for Intervention in Rockville. The show went well, though I wished more people had stopeed by. I managed to sell my first copies of Can't Catch Me, Olivia! to non-Kickstarter backers at the show, and even did a custom character card! Sweet!
Before the show I had the bright idea of rewriting the almost-complete Can't Catch Me, Olivia! app I had originally done in ClojureScript. I figured out I had done several things wrong when I first built it, things that became extremely evident after playing a lot of Star Realms and seeing how they put together a turn-based card game with remote sync:
The game was built as pass and play first. State was a thing to be manipulated directly, one step at a time, and would have been hard to retrofit so that actions could be replayed on another device after a player's turn was over.
For the same reason, plugging in an AI would have been equally tough. I figured out that remote, AI, and pass and play had to go through the same pipeline, which the original code was far from being designed to do.
So I decided to make this week's Sprint Goal Complete Game Logic Rewrite for Can't Catch Me, Olivia! Since I'm throwing one away (I really didn't plan to, honest!), development on this new version is going much much faster. I have 1/3 of the cards implemented, and should have the remaining ones done this week. Also this week is the big Kickstarter game dropoff at Brews & Board Games. So I'll be glad to have that over!
This week's kaizen is the usual Keep Your Office Clean. I'm doing it, really!
I dropped out of the 5th Street Games contest because Mid-Life Chorus was taking over my life. I decided to pick up a much bigger project that had been back burnered for a while instead: a card-driven strategy game where the cards also form the board that players manage resources upon.
The game will be a loose combination of some of the mechanics from the following games:
Twilight Struggle: 2 players, cards have unique actions which trigger under certain circumstances, insta-win/lose happens in certain game states, some cards are removed from the game as you play
Impulse: Cards form the board, pawns are generated and moved between cards and interact with each other
Innovation: Every card is unique, some cards are removed from the game first thing
Race for the Galaxy: Actions are selected simultaneously
Can't Catch Me, Olivia!, Love Letter: Personal discard piles that are used for something
War (seriously!): Compare cards from tops of personal decks, highest takes all cards
I really like the "every card is unique" idea from Innovation and Twilight Struggle, but whereas Innovation and Twilight Struggle have a general progression upwards in the power of the cards, the game I'm working on won't have that luxury. Some cards may have some prerequisites, but that's about as far as I'll go. I also really like the simultaneous play option, and in my playtests, it's working quite well, making the gameplay go very fast. It does has a weird timing thing that TS doesn't have, which you'll see in a minute.
The game is intended to be a prequel to a long-form webcomic I want to start in 2015. Anything with "serious lord" and "silly lord" mean the blue player and red player. Each player has a castle at one of the corners of the board. The rest of the board is built with cards from the deck. the map is always the same on the map side, but on the action side, it's always different. This means there are some cards that will never be accessible in each game, though there is a way to potentially get a handful of these cards back into the deck. Each Map card has a Size in the middle.
The rest of the cards are shuffled and 9 are dealt to each player. The game itself is 9 "years" long, with a "year" consisting of 8 "turns" and an end of year resolution phase. Each player starts with Resources at and around their castle and more resources not on the board. These are real physical things in the game world, unlike the ephemeral "influence" in Twilight Struggle. At the start of the year, the player is dealt 9 cards.
At the start of each turn, each player takes a card from their hand and places it, face down, in front of them. Both players reveal at the same time, and the player with the lowest Strength value on their card goes first (like Headlining in TS, but every turn!). If there's a tie, whoever has the lowest Strength card on the top of their personal discard pile goes first. If it's still tied, the Blue player goes first. At that point, the first player has one of three ways to use the card they played:
They can move resources from any one card on the board to any other one card on the board, as long as there is at least 0 or more cards with their resource on them in an unbroken line. Map cards are connected by lines to show how resources can move (basically, not diagonally and not wrapping around). If, for instance, your castle's surrounding cards have no resources on them, you can't move resources from your castle to a remote location -- you need to add a resource to one of those cards adjacent to your castle to create a road of sorts to move resources along.
They can use the Strength value of the card to attempt to add 1 resource to their castle. They roll 1 die and add the Strength, and if they get 6 or more, they create a resource. Yay!
If they own the map location (have as many resources on the card as the Size of the card and no opponent resources) that this card shares, they can perform a Public Works action. They remove all resources from the map card, take the card from the map and put it in their discard pile, then put the just-played action card on the board map-side up. This is good if you are holding a particularly devestating card of your opponent's that you don't want to play, ever!
Each card has an event on it. Events always override game rules.
If you play a card that says "event happend automatically", it does!
If you play a card with an event of your color or a white card that doesn't happen automatically, you can choose to perform the event at this time. Put a card in your discard pile from the deck and follow the instructions.
If you play a card with an event of your opponent's color, the event triggers. You don't put a card in your discard pile.
Basically, if you choose to make an event happen, you put a card in your discard pile.
Once the first player is done, the other player then goes. After both players go, each map card is checked to see if any card has more resources than double the Size of the card on it. If so, the map card is Rioting. This is unlike Twilight Struggle, where the board (the world) was essentially the plaything of the two players (ah, the Cold War). In this game, the board doesn't want to be ruled over too strongly, and it fights back!
Each player rolls a die for each Rioting card and adds the following to their roll:
If they have the most resources on that card, they add 1.
If they Control(have more resources than the Size of that card and more than their opponent), they add 1.
If the modified rolls are tied, both players remove 1 resource and place 1 card in their discard piles. If not, the loser removes the difference in resources between the rolls, and the winner places a card in their discard pile. Continue until all Riots are resolved.
If at the end of the year, any player has no resources in their castle, or the map cards surrounding their castle are owned by their opponent, they lose.
After 8 turns, each player shuffles up their discard piles and, well, they play War. Not only do the towns fight against you, but the religious organization that gave you some leeway over governance (back story stuff) is watching you, and will step back into control if you push too far! Each player reveals the top card of their discard. The player who played the highest card takes both. If there's a tie, reveal another card until the tie is broken. The winner takes all of those cards. At then end, whoever has the most cards loses 2 resources of their choice. If they have 16 or more cards in their discard pile after this step, they lose the game. This means you can stuff a person's discard pile to DEFCON suicide them. :)
Once this is done, each player counts up the number of map cards they own and puts a resource on their castle for each card they own. Then it repeats for 8 more years.
So far I've completed several partial playthroughs and three complete playthroughs. The three complete playthroughs ended on discard pile detonation. With each playthrough I've been analyzing the strategy each player used and trying to come up with cards that will both help and hinder those strategies. I have about two dozen different approaches I'm compensating for in each direction now, and I have about 2/5 of the deck to still work through. So far it's super-promising. This will be the game I take to Unpub 5, I'm sure. If I can boil down the things I like about Twilight Struggle(and other CDS games like 1989, Labyrinth, and Hannibal: Rome vs. Carthage are on my "to play" list now) into a card game that takes half the time to play, I consider it a win. Impulse did it for 4X games for me (though the rules can be fiddly in places).
It's been a long two months of drawing, but I've finally finished all 48 original Mid-Life Chorus comics. I'm very happy to have the main art for the series done. I alos launched the Your Life's Chorus Kickstarter. This one is designed to be a very slow burn, since it goes along with the comic. It's an experiment, to be sure. We'll see what happens in the next 25 days or so. :)
I've also been doing a lot of prep work for the nextDawn's Dictionary Drama comic. I'll be making an annoucement about that in the next week, right around Intervention.
Finally, I've been working on a new game idea that's starting to come together. I'll be writing up a separate blog post all about that.
This week's Sprint Goal was Finish 4 Music Comics, and I took care of that by Tuesday. This week is Prepare for Intervention. It's my first real show of the year, and I want to make sure I have everything I need!
This week's kaizen was Keep Your Desk Clean. It's not too bad right now, but I'm going to expand the scope a bit this week (since all of my con supplies are in the office) and make it Keep Your Office Clean. The whole thing.
My tasks are all over the place until after Baltimore Comic-Con, when I'll start in heavy production mode for the next Dawn's Dictionary Drama comic. It's going to be in color, which will increase the workload, but I have a way of doing all the coloring and shading so that it should go almost as fast as a black-and-white comic. Yeah!
@Daily__Doodle was running a Beatrix Potter week. This Friday was Farmer McGregor. I'm also re-reading A Song of Ice and Fire. I apologize profusely to everyone for this mashup (which I've titled Farmer McGregor Clegane), but Farmer McGregor did cook up Peter's dad, so I guess it could kinda sorta not really be exactly the same (but not really) as Oberyn and Gregor.
I'm on the verge of starting up my second Kickstarter campaign, this time for ylchttp://ylc.johnbintz.com, so this week involved lots of cleaning up and prep work. Additionally, I only have a small number of Mid-Life Chorus comics to complete before the series is completed. I had a few other things going on so I didn't get as much done this week as prior weeks, but that's ok. Still cranking through things!
This week's Sprint Goal was Finish 3 Music Comics and the rest of the Your Life's Chorus materials. I definitely hit all of those. This week's will be Finish Mid-Life Chorus. Yeah!
This week's kaizen was Stay Off Reddit and I did pretty well at that. I'm going to go back to Keep Your Desk Clean. It could use it.
My first big show of the year, Intervention, comes up in two weeks. I'm really looking forward to it, and I hope to have a lot of material together for it. I might even try to get an ashcan of Mid-Life Chorus together! Yeah!
I wanted to start putting together the shipping labels for Can't Catch Me, Olivia!, so I downloaded the CSV files from Kickstarter. I decided to use Ruby to join all of the CSV files in a way I could then use LibreOffice to print out labels. I found some weirdness in the CSV file when processing with Ruby's CSV module, so I had to cool up a weird little script to collate all the data together.
I've just run into an issue where a bunch of new files I added to the minidlna share I use for playing files on my Roku 3(because you can totally do that) was getting out of whack. Several folders were showing up as (null) and one recently updated folder wasn't even visible. The solution was to run sudo minidlna -R to reindex the shares, then restart the service. It took a few minutes and drove CPU up on my poor plug computer to 100%, but it worked, and all files are showing up in Roku Media Player now, so there you go.
Wow, what a quarter it's been! I started this Scrum for One thing 14 weeks ago, ever since I got my ScrumMaster certification, and it's pretty crazy-insane how well it's gone. Here's what I managed to do:
Finish a Dawn's Dictionary Drama story (I had started that in January, but I kicked it up to full gear starting in April)
And so many other smaller tasks, ideas, and maintenance things!
Following what I believe to be the most important parts of Scrum and similar agile systems, like Kanban, was very important, and those are:
Limit the number of different things you're working on at one time. Ideally, that number should be one, because context switching is so expensive. Sorry, but you are not good at multitasking!
When adding something to the Backlog, write down the Definition of Done, even if you think what needs to be done for the task is the same as the title of the task. You might be surprised and, while working through what needs to be done, discover that this one task should be two or three, or that you shouldn't even do it at all!
Determining the value gained from actually doing a task, and deciding if it's worth pushing off or not even doing. I determined that doing a Kickstarter video for Can't Catch Me, Olivia! wasn't worth the effort, so I didn't do one, and it didn't prevent me from reaching my funding goal. I've been kicking around doing a video for Your Life's Chorus, and I think I'm coming to the same conclusion for that project, too. But that's a discussion for another blog entry about tiny Kickstarter campaigns. :)
Writing down ideas when I get them is extremely important. I always have Pivotal Tracker up on each computer, and I have P-Tracking for Android always available (annoying it may be at times). If I get an idea while running or standing in line, I'll throw it into the Backlog and flesh it out later.
Sprint Goals really kept me focused, and hard.
Having a kaizen was almost pointless. Sometimes I acted on it, and sometimes I didn't. It became a source of annoyance more than anything. I'll try to adhere to it for this next quarter, but it may go away at the half-year mark.
At the beginning, I didn't use Releases as aggressively as I should have. I started to in this past month, when I had several projects and deadlines overlapping each other. I need to add Releases like there's no tomorrow.
My kaizen was Stay Off Reddit. Moving back to Keep Desk Clean. We'll see how well that works.
Sprint Goal was Finish 4 Music Comics and 18 Character Cards. I finished the comics, but I ran out of cards to draw. :( This week is Finishing up the work on the text and image content for Your Life's Chorus and ripping through 3 comics. Yeah! Let's do this!
This week I started serious work done on the Character Cards for the Can't Catch Me, Olivia! Kickstarter.I managed to finish 25 of them, roughly 20% of the total number of cards to draw. Some rough calculations showed that it takes about 20-25min to draw a single card. The plan is to rip through the cards for backers I'll be shipping to, so that they get their rewards first. Local pickup folks can wait 'cause they won't be getting their games until the end of August.
Last week's sprint goal was Finish 3 Music Comics and finish up content for a secret project. I only got one comic done, sadly. I need to step it up this week and get some comics done, but I also need to keep cranking away on Character Cards, so I'm going to go for the ambitious goal of Finish 4 Music Comics and 18 Character Cards. Content for the secret project will have to wait. Lots to do!
Last week's kaizen was Keep Your Desk Clean. I'm going back to Stay off Reddit. Been wasting too much time on there.
This week, Amazon finally released all of the funds from the Can't Catch Me, Olivia! Kickstarter and I got my refund back from a show that was canceled eons ago, so Tongue-Tied Lemur, Inc. is swimming in cash. Like a duck.
Last week's Sprint Goal was, as usual, Finish 5 Mid-Life Chorus comics. I got four done, but instead of the 5th, I came up with a T-shirt and a print for the earworm character I came up with for Mid-Life Chorus. Awesome. This week's goal will be Finish 3 Mid-Life Chorus comics and work on (project you'll hear about shortly). I've produced 36 of the 48 comics in the series, so I can slow down a bit and move on some other things. I know this week I'll be drawing a ton of Character Cards for Can't Catch Me, Olivia! too, but those I can easily sneak in the cracks when I have time. I've had one story following me through sprints, which means it should have been a Release, not a Feature. Oh well, live and learn.
Last week's kaizen and this week's kaizen will be the same: Keep Your Desk Clean. Still not great at that.