Monday, March 31, 2014

Gridiron Solitaire #99: Penalties

I've noticed that I get a little anxious whenever I temporarily "disassemble" the game. I don't like ever having less than a fully playable game (maybe because it took me years to get it playable in the first place). Somehow, unplayable--even for only a few days--seems dangerous.

Fortunately, though, my high anxiety period is mostly over, because GS is fully playable again, and it's much improved. Better run/pass balance for the human player, which gives the game a flow much more like real football. Dynamic, big images for important game events (with more on the way, thanks to Fredrik).

Oh, and Penalty cards! I never thought I'd be able to include penalties without slowing the game down. They're an important part of football, but I'm not adding anything that slows down the game--it has to be in the 15-20 minute range, no more. People need to be able to sit down with the idea of playing several games, not just one. Pace has always been a very high priority.

A suggestion was made in the Steam forums a few weeks ago, and in significantly misunderstanding the original idea, I accidentally stumbled onto a solution (that's how about 90% of my good ideas happen).

First, I give you the penalty card:

Here's how it basically works. A penalty card is added to the deck. That means there are 54 cards in the deck--the standard 52, plus a wild card and a penalty card. If the penalty card is dealt, it blocks a card stack unless it's matched with a wild card.

That's a simple mechanic (seriously, why didn't I think of it before?), but it adds an important element of real football to the game. It's not exactly like a real penalty, which has several discrete elements (the flag, the end of play announcement, the decision to accept or decline the penalty, the replaying of a down in many cases), but it captures the essence of a penalty, which is to reduce the offending team's success on that play. Generally, that's what happens.

Just adding a card to the deck, though, is not very satisfying. Generally, good teams are penalized less than bad ones (one of the reasons they're good). Plus, teams that are poor at one particular thing are usually penalized more often in that one area. As a random element, penalty cards are "nice", but there needed to be more.

The tricky thing about making this more complicated, though, was that in making it more ratings-dependent, it would be easy to go overboard. Bad teams can't get penalized all the time, and good teams still have to get penalized. I needed to find a way to keep penalties in some kind of NFL range, so bad teams would see them more often, but the number of penalty cards in a game would have a real-life distribution over time.

There are three ways cards can get dealt: on the initial deal for a play, as replacements for matched cards, and after the Big Play button is pressed. Originally, I added a ratings influence to the Big Play press. If the card to be dealt was the penalty card, I did a ratings check for the play type, then set a probability that the card should be skipped based on that rating.

This worked, but the frequency of penalty cards was way, way too high. The probabilities of a standard card deck guaranteed that. I needed more than one level of control. What I needed was a blunt instrument on the front end, and a finer tool on the back end (hmm, that somehow sounds kind of threatening). I needed a macro level of control and a micro level of control.

Here's what I eventually worked out. When I shuffle the cards prior to dealing them, I check to see if the penalty card is in the first eight positions. If it is, I do a check against a universal probability number to see if the card should be repositioned in the deck. If so, it gets randomly switched with any other card in the deck. That doesn't guarantee it won't be in the first eight positions, but it will be about 85% of the time.

This is the macro level of control, because the probability I set up front controls the total number of penalty cards very well. It's not ratings-specific, so this is the blunt instrument.

What provides the NFL distribution is the code attached to using the Big Play button. That's how I wind up with different penalty frequencies based on team ratings. So when you use the Big Play button, your team's rating for that play type have a significant influence on whether a penalty card gets dealt.

It's not entirely in correspondence to the NFL distribution, because I don't think anyone wants to see 10 penalty cards in a game (high end of the NFL), but there's enough ratings-based variation that it has verisimilitude.

Next week, I hope to have additional "big images" for you to see. Right now, they're being used on kickoffs and player touchdowns. The structure is in place to easily add them, so I'm going to use them as often as possible.

Friday, March 28, 2014

Friday Links!

Leading off this week, from Chris Pencis, and this is a skill so difficult that only a hundred people (roughly) in the world can do it: Circus performer Angelica Bongiovonni rides a Cyr wheel.

From Eric Higgins-Freese, and these are remarkable: 11 Alarming Weather Flukes That Happen When it Gets Really Cold.

From Wallace, and these are both fascinating: 6, 3: Seasteading. Plus, a reporter actually visits the island: Private Lives: It Was Hard for Writer Barry Siegel Not to Feel Like an Intruder. His Presence on Waldron Quickly Unsettled an Island Fighting for Its Vision of Community. And Some of the Fiercest Battles Were Among Themselves (sorry--I know that's long, but the sub-title gives you an idea of why you should read it--it's a great piece of writing). One more, and this is so outstanding: Clever bus stop ad makes people believe meteors are striking the street.

From Jonathan Arnold, and this is quite insane: People Stacking Thousands Of Pallets Seemed Crazy. What They Did Next Is Much Crazier.

From Matthew Anderson, and this is self-referential, not serious, and exceedingly clever: Wikipedia:Wikipedia is an MMORPG.

From DQ Reader My Wife, the fascinating story of secret photographer Vivian Maier--a nanny. Here are two links: A Mystery Woman’s Eye on the World: A Documentary Looks at the Photographer Vivian Maier, and Vivian Maier: Photographer. The photographs are stunning.

This is utterly ridiculous (and fantastic): These Sand Castles Are Actually Castles Carved on Grains of Sand.

Thursday, March 27, 2014

Gaming News

Potpourri today.

First off, and this is big, Travis Baldree is leaving Runic Games. Co-founder Erich Schaefer is leaving with him, and here's an excerpt from the forum post where Travis made the announcement:
I’m announcing my departure from Runic Games, a company which I co-founded nearly six years ago, and have led as its President and lead engineer ever since. I should say from the outset that this is an amicable departure, that I consider the amazing team at Runic my friends and family, and that it is a privilege that they’ve let me get away with running the place for this long.

Erich Schaefer, my friend and fellow Runic co-founder, will be departing Runic as well as my equal partner. I’m so gratified to be able to continue working with him. I’m personally excited – oh, hell, I’m SUPER-STOKED – to be getting back to smaller-scale development, where I can wear many, many hats performing many, many different kinds of tasks. Working within the boundaries of limited means and resources is the best fun I’ve ever had, and that sort of work satisfies me in a fundamental way – I can’t wait to be working that way again.

This is nothing but good news, as far as I'm concerned. Travis is an incredibly talented and creative developer, and I think he was boxed in at Runic. When you have a highly successful series-Torchlight-it creates tremendous pressure to put out another sequel. Lots of people depend on you. How do you possibly risk the financial health of the studio to satisfy your own creative impulses?

Well, you don't. You start a new, much smaller studio where you can take those risks. And I guarantee you the first game from these guys is going to be brilliant, and it's not going to be a Torchlight-type game.

Next, Mode 7's new game, the follow-up to the brilliant Frozen Synapse, is now in Steam early access. I'm entirely embarrassed to admit that I haven't played it yet (GS development is eating up almost all of my gaming time), but it looks absolutely fantastic. There's a 10-minute early access trailer here, and almost everything I ever wanted in a sports game is included as a feature.

Here's the game's website: Frozen Endzone. Like I said, it's in Steam early access, so if you want to play it now, you can.

One more bit of news, and that concerns Oculus Rift. I mentioned the Facebook acquisition in an earlier post, but I saw a tweet that perfectly captured my concern, and it's from Nate Mitchell (Oculus Rift VP of Product):
We had two roadmaps: plausible and impossible. This partnership means the impossible roadmap just became ‘very likely’.

I think that's entirely true, but what this doesn't mean is that the road can be successfully traversed, because I guarantee you that the "impossible" roadmap is substantially more complex and far more difficult. All that money did was let them take a different, much more difficult road. It doesn't make them any more likely to succeed on that road. If anything, I think it makes success less likely.

This reminds me of a movie that has a projected $5M budget, then somehow the project gets two or three superstars and the budget is suddenly $50M. That almost always ends badly.

I Heard This Today

"Here are the Subway rules for washing underarms."

Let's all hope I didn't hear that.

Wednesday, March 26, 2014

And Boom

This just happened:
In a historic ruling Wednesday afternoon, the Chicago regional office of the National Labor Relations Board ruled that Northwestern football players meet the standards under federal guidelines to form a union.  The initial petition was filed by the National College Players Association on behalf of former Northwestern quarterback Kain Colter and the College Athletes Players Association (CAPA), and had the backing of the United Steelworkers union.

The NLRB ruled essentially what CAPA had argued in stating its case: football players are employees of the university.

Well, duh.

Student athlete? A marketing term, essentially, for the purposes of winning worker compensation claims:
...the origins of "student-athlete" lie not in a disinterested ideal but in a sophistic formulation designed, as the sports economist Andrew Zimbalist has written, to help the NCAA in its "fight against workers' compensation insurance claims for injured football players."

"We crafted the term student-athlete," Walter Byers himself wrote, "and soon it was embedded in all NCAA rules and interpretations." The term came into play in the 1950s, when the widow of Ray Dennison, who had died from a head injury received while playing football in Colorado for the Fort Lewis A&M Aggies, filed for workers'-compensation death benefits. Did his football scholarship make the fatal collision a "work-related" accident? Was he a school employee, like his peers who worked part-time as teaching assistants and bookstore cashiers? Or was he a fluke victim of extracurricular pursuits? Given the hundreds of incapacitating injuries to college athletes each year, the answers to these questions had enormous consequences. Critically, the NCAA position was determined only by its member institutions—the colleges and universities, plus their athletic conferences—as students themselves have never possessed NCAA representation or a vote. Practical interest turned the NCAA vigorously against Dennison, and the Supreme Court of Colorado ultimately agreed with the school's contention that he was not eligible for benefits, since the college was "not in the football business."

Byers, you might be interested to know, came to regret his involvement and wrote a book denouncing the NCAA: Unsportsmanlike Conduct: Exploiting College Athletes.

This is a seismic moment in the history of the NCAA, or perhaps its death knell. I doubt that anyone will mourn its passing.

It's going to be messy as hell. More fair is almost always more complex and disruptive than less fair, at least when less fair is the status quo. There is no question, though, that this is long overdue. In an era where the highest-paid public employee in many states is a college football coach, it was also inevitable.

Messy as hell will be very interesting in this case, though. An organization that steadfastly resisted change for decades--hey, a bunch of old white men, what a surprise--is now going to get turned inside out.  Popcorn for everyone!

Tuesday, March 25, 2014


I wrote a post a few months ago about how excited I was about the Oculus Rift. Virtual reality with one of the smartest guys in the world (John Carmack) driving development. HD resolution, OLED display, and geniuses.

What could possibly go wrong?

Well, Facebook could buy the company, for one. Damn it!

Facebook, to me, represents everything that is wrong and invasive  with social media. It's "bad Internet". I like companies whose vision is aligned with the greater good of their customers. It's impossible to argue that Facebook is one of those companies.

Plus, it's not even the future. Everyone Eli 12.7s age uses Instagram, not Facebook. Oh, wait, Facebook bought Instagram in 2012.

They're an octopus.

If Google had bought Oculus Rift, I would have been thrilled. Or Amazon. Even IBM would have been better than Facebook.

So my confidence level in the future for Oculus Rift has plummeted. It's so much more brilliant than Facebook that I don't see any way it can be beneficial. It can't lift Oculus Rift up.

It could have been worse, I guess. It could have been Zynga.

Also, NVIDIA announced the  Titan Z videocard. It's a beast:
The Z packs dual Kepler GPUs specifically designed to operate in perfect power and performance harmony. It also keeps cutting-edge games (like those using Unreal Engine 4) running smoothly at up to 5K resolution and on multiple monitors thanks to 12GB of dedicated memory. 

That's incredible, and it was also described as "cool and quiet" (how I don't know). Oh, yeah--it costs $3,000, but that's not important. What's important is that in three to four years, this kind of tech is going to cost about $400 and we're going to have it in our desktops.

Elder Scrolls at 5k resolution, anyone?

Monday, March 24, 2014

Gridiron Solitaire #98: Opportunities

This is a big week.

I'm back in a normal coding rhythm. The schedule is normal. Fredrik is working on new "big" images in addition to the kickoff images.

So after a period of time where I was fighting the schedule and everything else to make progress, now everything is flowing in a positive direction.

When I integrated the big image into kickoffs last week, I originally set it up to function outside the message queue. The message queue is what I use to coordinate sound effects/images/text messages, but for various reasons, kickoffs didn't integrate easily, so I scotch-taped something separately. It worked, but the timing between the kickoff routine and the message queue was incredibly complicated.

This was stupid, obviously, and bad programming. Really bad.

On Friday and Saturday, I started doing it the right way. I dismantled the separate routine and integrated it properly into the message queue. Now, instead of having to write additional, separate routines to use big images with field goals, punts, touchdowns, etc., it's all integrated into the message queue. It's going to be very, very simple to add as many big images as I want to, and they'll all flow through the message queue, so there will be no timing issues.

Lesson: do it the right way the first time. That's a good lesson in general.

I thought about the logical way to use big images, and I think it's a fairly simple separation. Referee signals will still be used for "administrative" events (first downs, end of quarter, halftime, end of game), but big images will be used for "action" events (touchdowns, fumbles, interceptions, punts, field goals).

This makes the game presentation much more dynamic, and I can't wait to see it all working together. That's why this week is big, potentially--I think I can integrate most of these images and events into the game by the end of the week. So I may have a working version of the new presentation by Saturday.

I'll have plenty of screenshots next week, hopefully.

Eli 12.7 had a terrific idea last week.

What was interesting is that he threw out something that was so raw it I could barely even understand what he was talking about. So I told him he needed to go back and think about what he was trying to do, and present it to me in a more complete form.

Instead of forgetting all about it, like most twelve-year-olds would do, he brought it up again the next day, and this time, it was much more substantial. There was enough there that I could do something with it.

What he wanted, as it turned out, was something very cool.

The outcome of our discussions was this: there's going to be a "trade deadline week" added to the season around week eight. I'm going to write  a little routine where teams can move ratings points to other teams in exchange for budget dollars in the offseason.

A bad team, for example, might trade a ratings point or two to a good team, but at an inflated price. The maximum price for a 1-star card in the offseason is 60k, but if a team wants to do it during the season, it will cost 75k a point, or even 80k. Sacrificing tomorrow for today, in other words, if a team has a chance at a championship.

This happens less in football than it does in other team sports, so there won't be a ton of transactions, but it's a way to add some spice to the world during the season.

The visual payoff is that during trade deadline week, there will be a scrolling ticker on the Team Hub screen that displays the transactions--both deals and near deals.

The human player will be able to trade ratings points, too. Since there's a premium to pay, though, if the player tries to add ratings points during a good season, it's going to hurt them in the future. So there's no free lunch here, but it gives the player more flexibility to shape their team.

Friday, March 21, 2014

Friday Links!

From C. Lee, and this clarifies the "dark chocolate is good for you" discussion somewhat: Chemists discover secret to dark chocolate's health benefits. Also, and this is a fascinating comparison of technologies: Gears of war: When mechanical analog computers ruled the waves. Here are several links about a very specific musical genre: piano for the left hand only. Have a look: Left Hand Piano Music,  Max Reger : 4 Spezialstudien ( for the Left Hand Alone ) - Takeo Tchinai,  Archiving Project for Left Hand Piano Music: Takeo TCHINAI.

From Eric Higgins-Freese, and this is a terrific explanation: Evidence of the Universe From Before the Big Bang? How an observational signature from Cosmic Inflation could herald the scientific revolution of the century. Next, and this certainly puts difficulty into perspective, it's The scale of the search for Flight MH370.

From The Edwin Garcia Links Machine, and this is an excellent video: Pentagon Wars - Bradley Fighting Vehicle Evolution. Next, and this is outstanding: Font Men. This is quite witty: Ballad of a WiFi Hero (McSweeney's and Vulture Exclusive).

From Wallace, and this is a terrific read (pun intended): The Scariest Library. Also, and it's a tremendously interesting read, it's I am Tim Berners-Lee. I Invented the WWW 25 Years Ago and I Am Concerned and Excited About Its Future.

Here's a brilliant bit of deception: How A UVa Fan Bluffed His Way Into The Huddle At The ACC Title Game.

From Kwadwo Burgee, and this is fantastic: If The Moon Were Only 1 Pixel.

From Chris J., and this is quite amazing: Europe 24 (European air traffic). Next, and this is incredible footage: Dji Phantom flies into Volcano.

Thursday, March 20, 2014

Nashville (part three)

Every parent, every coach, had told Eli's team the same thing.

Protect Eli.

And for the first period, they did. The other team only had four shots, and Eli's teammates were desperately dominant.

There was only one thing wrong: even with nearly fifteen shots, the score was only 1-0.

When the second period started, the slight unease I felt in the first period began to grow. Our puck possession was dropping. Instead of playing in the other team's zone, much of the action was between the blue lines.

The front was retreating. Then, the front was in our zone.

The shots started coming more frequently, too frequently. We only had two defensive lines, and one was clearly overmatched.

Still, though, Eli held fast.

He was precise. He didn't have much energy, but he wasn't wasting any. Everything was textbook.

Then, in a moment late in the second period, the book was thrown away.

A hard, low shot from came from the right side. Eli went down in the butterfly, and the puck bounced off his right pad. The other team had a player standing by the left post, and that's where the rebound went.

From where I was sitting, I could see the open net. Guaranteed goal.

This was the end, really. The game was tied, and Eli was totally exhausted. He had been walking a tightrope the entire game, and he'd lasted longer than anyone could ever have expected, but he couldn't stop them now. I was so proud of him, even as my heart was broken by what he was going through.

Except the game wasn't tied.

Eli dove across the crease and slammed his stick down just before the puck arrived.

It was an impossible, electrifying save.

Everyone exploded. The stands, the bench, the coaches. Everyone.

I knew then that even though he was weak and exhausted, he was dialed in. He was in that place he goes.

In all, he faced twenty-five shots. Final score: 1-0.

When the final buzzer sounded, he laid down on the ice, face first. His team skated over and helped him to his feet, and wobbly, he went through the handshake line. As he skated off, I said "Do you need help taking off your gear?" and he shook his head.

He had plenty of friends to help him with his gear.

When he came out of the locker room, I took all of his gear. "I am so dead," he said, smiling. Parents burst into applause when he walked into the lobby.

Slowly, so slowly, we started walking toward the car.

As we neared the door, I spoke in my most dramatic announcer voice. "Today, a slender twelve-year-old, in the throes of a savage illness, performed the unthinkable--THE IMPOSSIBLE--and ascended into the pantheon of superheroes."

Eli laughed. An exhausted, happy laugh.

Wednesday, March 19, 2014

Nashville (part two)

"I feel a little better."

It's 9 a.m., Friday. Eli 12.7 has slept for twelve hours. He looks like a ghost, but that's still better than yesterday. Gloria takes his temperature. No fever.

He wants to eat, so I get him an order of pancakes from the restaurant downstairs. No butter, no syrup. He eats half of one, and it stays down.

We do nothing. Staying in the room, watching conference basketball tournaments. Our hotel room has a living room area and a separate bedroom, so I can text from the living room without him knowing. While he watches basketball, I'm texting coaches, letting them know that Eli probably won't play.

How could he?

Our backup goalie is one of our best skaters, and his experience in goal consists of twenty minutes of 4x4 one night as a lark a few weeks ago.

Not good.

He has a light lunch, but it stays down. "I don't feel sick anymore," he says. "Just really weak."

"Do you want to walk over to Target with me?" It's one, and I need to pick up a few things from a Target that is about a hundred yards from the hotel.

"I'll go," he says. He hasn't walked more than fifty feet since early yesterday.

It's cool and windy, very windy, and I put my arm around him as we walk to the store. "I hurt," he says, with a little laugh.

"I can't imagine why," I say, laughing back.

We find some hockey cards at Target, pick up the other things I need, and head back. "My knees hurt," he says. "My legs feel better, but my knees are so stiff."

"I think that's from not walking for a day," I say. "Can you imagine what it's like to have surgery and not walk for weeks?"

"Not good," he says.

When we get back to the room, he goes to bed. At two, he gets up. "I want to play," he says.

"I know you do," I say. "That is the least surprising thing ever. Are you sure?"

"Yes," he says.

"You have to be able to play the whole game," I say. "If you start the game, there's no one to replace you."

"I know," he says. "I can do it."

The team they're playing--we think--is a team from north of Dallas, a team that was in the lowest division of travel, two levels below Eli's team. In theory, they should be able to handle them fairly easily, and might even keep the shots below fifteen.

If they can do that, Eli might survive.

I start texting people. He's in.

We leave for the rink about three. As soon as his teammates see him in the lobby, he's mobbed. It's a bunch of good kids, and Eli likes all of them. They feel the same way.

One of the parents walks up and hugs him. "How do you feel?" she asks.

Eli shrugs. "Good enough," he says.

When we get to the rink, he slowly walks in with his stuff. Half-speed. His team has a dry land workout before they get dressed out, and he leads them, but without doing any of the exercises.

On the way back in, he stops when he sees me. "I don't think we're playing the team we thought we were," he says. "There was another team with the same name in the league right below us. I think that's who we play. Can you check?"

I do check, and it's even worse than that. Not only did this team make the finals of the division just below Eli's team, but there are high-level kids from several of the other teams in the division on this team as well.

It's an all-star team. Great.

After Eli puts on his skates and goalie pants, he comes out of the locker room, and we talk as I help him with his pads. "Did you check?" he asks.

"I did," I say. "You're right. They're good." He shakes his head.

"But this is a no-lose situation for you," I say, and he laughs. "No, seriously. If you have a terrible game, no one is going to blame you, because you can hardly stand up. You're a total baller just going out there. But if somehow you do have a good game, you're an instant superhero. This game will get talked about for years."

He smiles. "Superhero," he says.

"All right, here are your three keys," I say. He still gets his three keys before a game. He doesn't really need them anymore, but we both like the tradition. "One: control rebounds. You can't afford to give up any second shots, because it will drain your energy. Two: efficiency. Don't move an inch more than you have to. Three: aggression. It may sound like a contradiction, but the way to save energy is to attack. Sitting back and waiting for things to happen means more things will happen."

"I get that," he says.

"Take a knee when the puck is at the other end," I say. "Don't stand up unless you have to. And your coach said you can use the time-out." Teams get one time-out, and usually it's at strategic moments, but his coach was happy in this game to use it as needed so that his goalie wouldn't keel over.

"I was already going to take a knee," he says. "Saving energy."

"And remember Sebastian Coe," I say. "He set a world record in the 800 meters with a terrible cold. And he's not the only one--I've read a ton of stories about guys who played great when they were sick. It forces you to focus on only what's essential. Does that make sense?"

"It does," he says. "I'm already tired," he says, and laughs.

"I know," I say. "But if anyone can pull this off, it's you. And we both know that."

He nods. I hug him. He slowly walks back to the locker room, leaning against the door to push it open. Then he's gone.

Tomorrow: the game.

Tuesday, March 18, 2014

Nashville (part one)

I'm holding an air sickness bag. It's not empty.

It's not mine either. I would much prefer that it was, but it's from Eli 12.7, who has now thrown up five times in the last five hours. The first time was at 4:55 a.m., five minutes before we needed to leave for the airport.

That's not much time to make a decision. If he was younger, or this was vacation, we would have pulled back immediately. It was a hockey tournament, though, and a big one. His team wasn't taking a second goalie, so there was no one to take his place. He'd been looking forward to this for months.

"I feel a little better," he said after he threw up the first time. We decided (totally conflicted) to head for the airport.

Then he threw up on the plane. And in the Dallas airport, where I pushed him in a wheelchair to a connecting flight. And on the flight to Nashville. He threw up so many times, in fact, that I lost the details of one of them entirely.

So this is why I'm holding an air sickness bag, desperately wishing that it had been me instead. He's incredibly polite when he retches, so quiet that I can hardly hear him, but he is very pale and moaning at intervals.

This trip was supposed to be a celebration at the end of the season, a season where he played spectacularly at times, and with increasing frequency after Thanksgiving. He was 7-1 after he came back from the cracked rib, won his last five games, and won all three playoff games: 3-2, 3-2 (on a goal with :04 left), and 5-4 (in a shootout).

His team had finished third in their league, which put them in the top ten teams in the state, and they'd been a non-stop thrill ride. And I'd seen no one--all season long--who looked better than Eli did in net.

He'd been razor-sharp in 4x4 the night before. "Dad, I am so ready to play in this tournament," he said, and there was no reason to doubt him. He was twelve years old and larger than life.

Now, though, he is a sick little boy.

We finally land in Nashville, and get to the hotel by early afternoon. He's so tired that he just collapses face first on the bed and is asleep in seconds. He stays that way for over an hour, then takes off his jeans and crawls under the covers.

Later, he manages to drink some Powerade. Total food consumption for the day: five saltine crackers. His fever that night is 101.9F.

His team plays the next day at 4:40 p.m. I have no idea how he can play, and I don't care. I just want him to feel better.

Monday, March 17, 2014

So Here's An Update

We came back from Nashville today.

If things have seemed disjointed around here for a while, well, they have been. We traveled five weeks out of seven for hockey, and before that Eli 12. 7 had a cracked rib.

This last trip was to Nashville for a regional-level tournament, and we were gone from Thursday morning at 5 a.m. to today (Monday) at 1:30 p.m. I'll be writing about that this week, because it's one of the most memorable trips we've ever had, both in good and bad ways. And seriously, who knew there was a replica of the Parthenon in Nashville?

I'd like to write about these trips as they happen, instead of trying to recompile once we're home, but somehow I'm spooked by the prospect of someone breaking in and stealing all our crap after I announce that we're out of state for four days. Urban legend about criminals trolling the Internet for that information and whatnot.

So anyway, these last two and a half months have been brutal. Eli has played great, and his attitude is great, and I'm very, very happy for him. I am also very glad, though, that the season is over and we're not traveling until we go back to Michigan this summer for goalie camp (this time, the Elite level camp, which is a big deal).

What this means is that things are going to back to "normal" for a few months. I'll have more time to write, and I'll be able to make a big push in Gridiron Solitaire development to add the rest of the feature set that I wanted to put in before football season starts again in September.

So if this place has seemed unkempt, it wasn't your imagination. I was doing everything I could to keep writing, but man, it's been hard.

Thanks for your patience, and it will be different for the next few months.

Friday, March 14, 2014

Friday Links!

Leading off this week, one of the most amazing aviation stories I've ever read: You Must Read This Test Pilot's Story of an SR-71 Disintegrating Midair.

From Sirius, and not something I thought I'd ever link to (but it's an excellent story): Kudos to the "Menstrual Man". Also, and I had no idea these even existed: Luxury ice houses.

From The Edwin Garcia Links Machine, and while this isn't entirely surprising, it's very interesting to see actual data: It’s official: People around the world really are eating more and more alike. Also, and this is quite remarkable, it's Frozen World War I soldiers appear in the Alps. Next, and this is quite a story about the Spanish Civil War (more specifically, arms used in it), it's ¡No Pasarán! One more, and it's a terrific piece of writing about a highly unusual subject: Let Me Live That Fantasy: In search of Puddles, the saddest clown of all, whose voice — along with Lorde’s music — made him an Internet star.

Here's an important historical artifact: The First Map of Africa. And one more: Maps and State Secrets.

From Ken Piper, and this has changed all of our lives in incalculable ways: This Is The Room Where The Internet Was Born.

From DQ XAML Advisor Scott Ray, and this is a doozy: Cat wearing jetpack in 16th century drawing baffles historians.

Multiple links from Greg B., and they're all excellent. First, and this is a terrific read: A Star In A Bottle: An audacious plan to create a new energy source could save the planet from catastrophe. But time is running out. Next, and this is fascinating: Fiat's Roof Top Test Track. This tech is quite amazing: Spritz: Reading Reimagined. These images are just stunning: 11 Jobs That No Longer Exist. Last one this week, and it's remarkable: Hundreds of New Exoplanets Validated by Kepler Telescope Team.

Thursday, March 13, 2014

Out There and Creativity Versus Coding

I've learned so much from playing Out There.

Most importantly, I've come to a much better understanding of creating a game structure that allows creative expansion as a multiple of the coding effort.

Gridiron Solitaire has a lot of stuff going on under the hood. I focused on pushing as much content to the user as possible, so the pregame broadcast, halftime show, text events, and images are all pushed to the user, displayed for a defined length of time, and then removed. Everything the user pulls during the game (with the exception of dismissing the stats clipboard to end halftime) is connected with a strategic decision that must be made.

I really like that, in concept. And for the type of game that GS is, I had no choice. It just wasn't possible to make the user click through a ton of screens because it would lengthen the game, and it would become tedious.

The problem with this structure is that it's hard to modify. So much content has to be held while pushed content is displayed that the timing can get very complicated (for me, anyway). So every time something gets added to the game, those "held events" can make things very difficult.

These kinds of complexities were one of the reasons I decided an espionage game (which I very much to make) probably wasn't going to happen.

Then I played Out There.

The game tells a fantastic, expansive story, wrapped around a simple but beautifully designed game structure. All the content is pulled, but it totally works.

My basic understanding of the game structure is that it's a decision tree with dice rolls to determine if certain events happen inside a planetary system. It's not that simple, but it's close. And I'm not knocking it by calling it simple, because it's brilliantly simple. Want to add more events to the game? Just add them to the decision tree. The game structure allows a ton of creativity and content to be added with minimal coding on the back end.

So this should be the goal, it seems: a game structure that allows geometrical increases in creativity and content with only arithmetical increases in coding. Or something like that.

Now I see that espionage game in a different light. A superstructure of a geopolitical environment (a country and station map, basically), with a structure underneath focusing on individual events and narratives. All content pulled, with only rare exceptions.

That's something I see as entirely manageable. And entirely possible.

Front Office Football 7 on Greenlight--Please Vote!

I try not to ask you guys for favors, but I'm asking now.

Jim Gindin has a Greenlight campaign for Front Office Football 7. FOF is the deepest sports text-sim ever made, and the AI is absolutely brilliant.

This is exactly the kind of game that deserves to get Greenlighted, one that is both carefully crafted over time and a totally superior product.

So if you enjoy sports games, or even if you don't, please support Jim's efforts and vote to get the game on Steam: FOF 7 Greenlight page.

Thanks very, very much.

Wednesday, March 12, 2014


I've been going through a bit of a reading binge lately (I'm sort of binging on everything but time lately, as I've mentioned), so here's a list of books I think you might enjoy.

First off, there's a wonderful new book about Hunter S. Thompson. It's titled Gonzo: The Life of Hunter S. Thompson, and it consists entirely of interviews with people who knew him. It is a broad, vast canvas of impressions, as someone like Thompson eminently deserves, and it's tremendous reading.

If you want to understand what's happened in the gaming industry in the last decade, here's what you need to read: Roadshow!: The Fall of Film Musicals in the 1960s. The parallels are uncanny: massive budgets, massive promotion, fewer and fewer projects in production. As a bonus, it's wildly entertaining as well.

I was always (and still am) a huge fan of Richard Pryor, and there's a terrific new biography that just came out: Furious Cool: Richard Pryor and the World That Made Him. The pain from which great comedy emerges is nothing short of excruciating.

I find the Lance Armstrong story as interesting as a Shakespearean story arc. He's a Russian nesting doll of fraud, and reading about him never gets old. A new book, Cycle of Lies, includes quite a bit of new information, and it's a dark and excellent read.

Here's a depressing but highly interesting and useful book: Pandora's Lunchbox: How Processed Food Took Over the American Meal. The history of American food, surprisingly, is a fascinating subject, and the complexities involved in processed food are just amazing.

I enjoy anything Jeff Pearlman writes, and his new book is Showtime: Magic, Kareem, Riley, and the Los Angeles Lakers Dynasty of the 1980s. If that was the glory era of the NBA for you (like it was for me), then this is an absolute must-read.

Tuesday, March 11, 2014

Gridiron Solitaire #97: The Struggle To The Death To Add Kickoffs

You just wouldn't think adding kickoffs would be so difficult. I wouldn't, anyway.

Unfortunately, I was wrong.

Adding anything, and making it truly complete, pulls on a lot of threads in the main game code. Adding something anywhere else is not so difficult, but there are so many moving parts in the main game code that it always winds up being much more complex than I expected. Plus I've learned something important: every time you make some kind of special little run-around to get something to work, even if it's just one or two lines of code, it will bite you in the ass later. Every time.

In spite of all this grief, though, kickoffs are working now, with two missing items:
1) there are no returns for TD yet. Instead, those returns are coded at 99 yards.
2) there are no turnovers on returns. I'm very much on the fence about this, because they do happen in real football, but it would be the only time the user really has no control over their occurrence (because he/she has press the Big Play button in every other case to create the possibility of a turnover). So in a conceptual sense, that's a difficult decision.

Fredrik whipped up some very nice images. First, the kick:

Then, the return, and I think this is a fantastic image:

I like those bigger images so much that I'm wondering if there's any other situation where the format could be useful. I've thought about doing it for punts (incorporating most of the existing text events in the text box), or even adding images for big events (like touchdowns, which adds an issue with the referee image).

What I do know, though, at the very core level, is that those images pop, and they create a new source of energy for the visual presentation.

The gameplay balancing for 1.3 is almost done and ready for testing. With kickoff returns and a different feel to offense, this is a different game now. It has a much higher fidelity to real football (good), but it's going to force people to make adjustments in how they play (which they will hopefully see as a reasonable outcome of the game becoming more realistic).

Monday, March 10, 2014


Spring break started today, so Eli 12.7 and Gloria decided to go to Dallas and see the Star play Columbus, because Sergie Bobrovsky is Eli's favorite goalie.

I didn't go. I'm basically exhausted from traveling five of the last six weeks, plus one more big one coming up. So I stayed home to try and finish the new kickoff functionality in GS.

They announced about 3:30 that Bobrovsky wasn't playing tonight, which was a huge bummer. Plus, Dallas was playing their backup as well, because Kari Lehtonen was hurt in a collision Saturday night.

Still, they were going to an NHL game. Gloria sent me this picture during warmups:

That has to be one of my favorite pictures of Eli.

Then the game started and Rich Peverley almost died.

Peverley had missed time with an irregular heartbeat and just returned to the lineup a few days ago. Early in the first period, Stars players started smashing their sticks on the ice and jumping off the bench while the puck was live. Peverley had collapsed on the bench, and it was a terrifying moment. Medical personnel ran to the dressing room, carrying him in their arms.

It's one of the scariest things I've ever seen on television. I can't imagine what it was like to actually be there.

They updated a few minutes ago that it looks like Peverley will be okay. I don't think he would have made it without the immediate attention he received.

Friday, March 07, 2014

Friday Links!

Leading off this week, from Matt Kreuch, and this is an unbelievable link. It's a compilation of bands performing at South by Southwest, either as single mp3s, one big download, or via streaming (which is how I'm listening to it right now). Here you go: The Austin 100: A SXSW 2014 Mix.

From The Edwin Garcia Links Machine, and this is a stunning video, it's Ukiyoe Heroes (20) : Proof printing 'Yokai Dracul'. Next, and this is entirely bizarre, it's The business of bleeding horseshoe crabs. Next, and hold on to your hat, it's Inventor who shocked tech world stumped by 43-year patent delay.

From Sirius, and these are just wonderful, it's Extraordinary Brick Sculptures by Brad Spencer. Next, and this is amazing, it's Door at Pura Lempuyang (Temple of 1000 Steps), Bali.

From DQ Worldwide Cycling Trip Correspondent Doug Walsh, and this is amazing, it's Massive Avalanche above Stevens Pass - Avalanche Control.

From C. Lee, and this is a tremendous article, it's Lockheed's Senior Peg: The Forgotten Stealth Bomber.

From Wallace, and even as ads, these are excellent: Honda Builds on ‘Cogs,’ Sweeps Up at Auto Ad of the Year Awards.

From Robert Nicewander, and this is an absolutely incredible video of skydivers and colliding planes: Alive.

From Eric Higgins-Freese, and if you ever wondered what a galaxy looked like while it was undergoing ram pressure stripping, then take a look: Zooming in on ESO 137-001. Also, and this is fantastic, it's This interactive graphic shows you how big our solar system really is.

From DQ Reader My Wife, and this was one of my favorite movies ever, it's This List Goes to 11!: Eleven Trends Predicted by 'This is Spinal Tap'.

From DQ Reader Me, a couple of links to wind up the week. First, if you want to see the next Sidney Crosby (not kidding), go watch this fellow: This Is Why Connor McDavid Is Hockey's Next Big Thing. Finally, these are entirely beautiful: 13 Gorgeous Travel Posters From 1930s Japan.

Thursday, March 06, 2014

Dark Chocolate and Arghhh

I've seen several articles like this in the past week:
Dark chocolate helps restore flexibility to arteries while also preventing white blood cells from sticking to the walls of blood vessels. Both arterial stiffness and white blood cell adhesion are known factors that play a significant role in atherosclerosis.

Some study was just released blah blah blah.

I pay attention to this stuff now, because my family history has risk factors for cardiac disease, and I struggle to keep all my cholesterol levels in "safe" territory. So I've tried to be more strict about my diet.

What's impossible, though, is to figure out what to eat. There's so much constantly revised and downright contradictory information that it seems like the safest thing to do is just starve.

Dark chocolate is a good example.

One of the current cornerstones of cardiac health lore is that not all fat is bad for you. What's important is the ratio of total fat to saturated fat, and you want that to be as high as possible. It's not quite that simple, but it's a general rule. I try to make sure that everything I eat--with only very rare exceptions--is at least 5-1. Quite a bit of stuff I eat is in the 10-1 range.

Well, chocolate is awful. It has a huge amount of saturated fat, and many chocolate products (bars, chocolate-covered nuts, etc.) don't even have a 2-1 ratio. I'm looking at a Ghirardelli chocolate bar right now ("Twilight Delight", 72% cacao because high cacao content is key to getting the health benefit, supposedly), and it has 17 grams of total fat and 10 grams of saturated fat per serving.

So does the high cacao content of the chocolate bar, along with its commensurate benefits, outweigh the totally unhealthy fat ratio? Is this all based on the level of cacao, and at what level does the good outweigh the bad?

This is one of those category of things that was totally unimportant twenty years ago, and now it drives me crazy.

Wednesday, March 05, 2014

Out There

This is currently available for Android and iOS devices. Go purchase it immediately.

Out There is a seemingly simple game. You are exploring the far reaches of space. Your ship needs fuel, oxygen, and material to repair the ship. You probe planets and drill for the resources you need.

On this level, Out There is a simple resource management game.

On another level, though, what you're playing is a grand space adventure. Encounters with alien races, unexpected events, incredible discoveries--and there appear to be hundreds of them. New technologies to discover that can be incorporated into your ship.

Maybe, with all the right decisions, you'll survive.

Or maybe not, because this game is hard. It does a brilliant job of conveying how absolutely final mistakes are when you're alone. Even small mistakes. It also does a brilliant job of conveying the melancholy of being lost in the vastness of space. It's a beautiful bit of design, wringing genuine emotion out of the player.

This is also a textbook example of how you can make a fantastic game with almost no budget. This game is essentially a decision tree, text events, a few simple animations and sound effects, and beautiful art. Plus, the galaxy is procedurally generated, so it's not a "single play" game.

Owen gave it a well-deserved, glowing review over at Pocket Tactics: Review: Out There. Read that if I didn't convince you already (well, read it anyway--it's an excellent bit of writing).

Here's the website: Out There.

Toby's Island!

This Kickstarter pitch really struck a chord in me: Toby's Island! Here's a description:
Toby’s Island is a 2D RPG adventure involving monster-raising, town-building and exploration with a blend of randomized and controlled story events.

There's fishing (boy, am I a sucker for games with fishing). There's crafting. There's desert boarding (windsurfing across the desert).

If I had to use one word, it would be "charming". Lovely but nostalgic graphics, a nice mix of gameplay elements (Harvest Moon marries Pokemon, seemingly), and a well-crafted Kickstarter pitch.

I'm in.

Tuesday, March 04, 2014


My apologies, but the Banished feature (which I'm very excited about) is going to be delayed by a week. We were gone again for hockey last Friday-Sunday--for about the billionth week in a row--and when we got back Sunday night, I realized that trying to write the Banished feature this week was way too ambitious a schedule.

Next week, though. Definitely.

It was 81F in Fort Worth on Saturday at 4 p.m. Twenty-four hours later, as we left town on Sunday, it was 21F. That's right--a 60 degree drop in a twenty-four hour period.

Here's what we drove through on our way back:

That's not snow--it's ice. It was an ice storm with 35MPH winds, blowing across the road like crazy. That picture doesn't really do it justice, because the ice in the sky is lost against the background, but it was completely nuts. Oh, and it was thundering, too. I had no idea "thundersleet" was an actual thing.

The trip back was one of the strangest I've ever had. This storm hit the interstate in stripes. We'd go through five miles like the picture above, then five miles of just wet road with no ice, then thick ice. It was completely bizarre, and it went on like this for about a hundred and twenty miles. So at least fifty miles south of the first picture, we drove through this:

Again, that's not snow. It's all ice.

If you live up north and you're thinking "So what? This is December through March for us!", that's a fair point. But this is the fifth or sixth time it's happened this winter, when we go through plenty of winters where it doesn't even happen once. No snow tires, no knowledge of how to drive in this stuff, and it just keeps coming.

So a three hour trip home took five hours, and we were lucky it only took that long. I've never been so happy to walk in our front door.

Some Bastard Ruined The Internet

Trend Micro’s security analysts have recently discovered that images of sunsets (and some cats) being shared on the Internet are carrying malware that can hack into bank accounts and begin drawing funds...Christopher Budd, Trend Micro’s Global Threat Communications Manager, says, "If you receive an email with a colorful rainbow or cute kitty, don’t open it unless it is from a known party."

Rainbows and kitties? Come on, man! Those should be universally protected classes. This is why the world can't have nice things.

Monday, March 03, 2014

Gridiron Solitaire #96: A Long Haul

Several of you guys have asked for more information about what's happening after the game shipped--more, that is, outside of development.

I'd really like to have information to share, but I don't have much.

I thought I shipped a content-complete product. I had a list for a free expansion pack, but it was mostly flavor. I quickly realized after getting a few weeks of excellent feedback in the forums, though, that the game wasn't content complete. There were several ways to significantly improve the game, but it was going to take plenty more work.

That part is hard.

Here's the most important thing I learned after I shipped the game: your game is not finished. Even if you think it's complete, it most likely isn't.

In one way, that's pretty painful. You put so much work in, then realize that there's still quite a lot to do. In another way, though, it's a huge opportunity. The game has a chance to be even better than you thought it could be, and who doesn't want that opportunity?

So my original vision was "single stream". I would complete development, then switch to marketing/support. In reality, though, once you've shipped a product, single stream doesn't exist. There are multiple streams.

What happens when the streams get crossed? You don't want to find out.

So you have to make a decision. I looked at sales (under 2,000), looked at the new long-term road map for the game, and decided that it was inefficient to try to expand distribution right now. I've been approached by bundlers (including one I like very much), and I'm sure GS will be in several bundles at some point, as well as being on the Humble Store, but it makes much more sense to get to version "2.0", then push hard for all this additional distribution.

Work hard, get the features added and tested/balanced, then push marketing as hard as I can in July/August/September.

I don't really have a marketing "plan". I didn't have one when the game launched, either. This was a mistake, but it's not terminal. One of the advantages of putting out a card game like this is that it can have a long lifespan. It's not going to be obsolete tomorrow, or even five years from now. So I have more than one chance here, and I can learn from my mistakes.

Oh, and here's one more important thing I've learned, and this might even be useful. It's very, very easy to structure your schedule so that you're only working on your favorite things. For me, it's development. Once I learned how to program (to some degree, at least), it feels like a soft, warm blanket. It's unbelievably comforting to be at my desk, working on the game.

Marketing, on the other hand, isn't comforting at all. It's doubleplus unfun. So it's very tempting to come up with rationales that let me continue to develop and ignore marketing.

Wait, you might be thinking, isn't that exactly what I'm doing?

Well, not exactly. Everything I'm adding to the game was discussed during the original development cycle, but I wasn't convinced the new features would add to the game without slowing it down. Since then, though, I've figured out ways to incorporate new elements without slowing the game down (well, by more than a minute or so in a single game). That's a good trade-off for more dynamic, varied gameplay.

I've also realized that people don't look at games from a blank slate. They don't start at ground zero and go "Wow, there's a lot here!" Instead, they look for what's missing first, and if they want something and it's not there, everything else can get passed by.

That's one more thing I've learned. Absence is the first thing people notice. So I need to remove those absences (I know what they are), then start promoting the game.

That's the lesson I've learned above all others: this is a long haul. Shipping the game isn't the 90% moment. It might only be the 30% moment. There's so much more that's still going to happen.

Site Meter