Dear Old Me, aka When Superheroes Fight

There are just some projects you should never finish. At some stage they become too unwieldy, too ridiculous, too pointless to continue. Your time is better spent working on something else.

At least, that’s what Old Me thinks. Old Me is wrong. So very, very wrong.

Old Me is a loser. What has he ever created? He, like me, is addicted to the thrill of new ideas. We both spend our days and nights dreaming up upside-down board games and edible computer games and novels that defy all conventions of plot, character, narrative and the defiance of convention. There are so many ideas in our heads that we would need to win lotto, retire, clone ourselves and wait for the clones to retire to get enough time to pursue the top 10% of ideas we have.

So Old Me starts on his project where the players are cards and the deck shuffles them, full of an obsessive enthusiasm normally reserved for Socca Maum, the secret identity of the Soccer-mum-themed Batman villain that just popped into his head and, huh, wouldn’t she be interesting? Meanwhile now he is thinking about how Socca would get mad at Batman when he beat up one of her henchmen and start accusing him of foul play and then when Batman leaves she yells at the henchman for embarrassing her like that in front of the other crime bosses.

Suddenly the card game that blurs the line between player and playing card seems less interesting. Old Me is finding it a chore to work on, rather than the release it once was. At the first major obstacle he throws in the towel. After all, if it’s the right project, it should all flow easily.

Yeah, like how the right relationship never requires any effort and the right job never has a boss that asks you to make 13 photocopies of a 47-page document but make sure they have different fonts because I’m really into papier mache these days and find human tears to be the perfect solvent.

This is a message from me to Old Me. This is how it’s done. You don’t get to walk away from your projects just because they are hard or lame or everything is going wrong. You have to finish, then – and only then – are you allowed to walk away. Think it’s a waste of time to continue down this dark and broken alley? You are wrong, Old Me. Learning how to finish things will help you more than ten clones ever could.

I wrote this program to celebrate the release of Captain America: Civil War and mourn the release of Batman versus Superman: Dawn of Justice. It takes two superheroes, gives each two random superpowers and then gets them to fight. One wins, one loses.

Now, this program has problems. I wrote it in R because I have somehow fallen out of the Python habit. The code is messier than a train full of Mentos crashing into a train full of Diet Coke after being derailed by Socca Maum placing a large bowl of spaghetti on the tracks. The output is lame. Too often, the fights are resolved by a coin flip. The program calls for no user input whatsoever – though the raw data is there, free for the editing.

But who cares, Old Me. These were all the things you were afraid of and, guess what? They all came true. But you know what else? It doesn’t matter. It’s done, it’s finished, it does what I set out for it to do. And to show how little it matters, I shared it. I could have left it on my computer for me to rediscover in three years with a nervous, embarrassed chuckle, but no. You forced my hand, Old Me. You hid behind the fear of making something terrible, so I did just that and then uploaded it to the internet. Everyone can see how flawed and awful it is. And yet here I am, slightly smarter from the experience.

Oh hey, since we’re talking. You know Matthew Reilly, Old Me? The author we both enjoy, whose books are so action-packed they need their own CGI budgets? Well, visit his website. He has some free short stories up there. Go ahead, take a moment to read a few of them.

Notice anything? They are pretty bad, aren’t they? The writing is clumsy, the pacing is off, the drama often misses the mark. They have cool ideas that are fumbled in execution. Does that sound familiar, Old Me? Does that sound so intimately familiar that you suspect that one day during an autopsy they will find those words etched on your femur? Yeah, you bet it does.

Matthew hasn’t taken those short stories down. They are like bad versions of his novels but he doesn’t hide from that. If he is doesn’t hide from his own failures, why should you?

And yes, Old Me, I am comparing us to a successful DeLorean-owner. I am that shameless now because I don’t do shame. I’m past shame. I transcended it. Finishing projects – some good, some bad – cures you of that emotional anchor pretty quickly. The only reasons I’m smarter than you are the mistakes that lie ahead of you. So get off your butt and make them already.

Hero Hunter: A Data Analysis Game

Vigilantes are bad for business. Crime used to be the most profitable game in town, back before that “superhero” started interfering. No one knows who she is. No one knows how to stop her. All who have tried before you have failed.

But you are patient. You’ve started making notes of her appearances. Sightings, response times. It isn’t much, but it might be enough. If you can figure out her base of operations, you’ll be one step closer to dealing with her once and for all…

 

So, yeah. I wrote this game in R. I doubt I’m the first to do that but, hey, it’s weirder than using Python.

This is a mock-up of a game where you test your data analysis skills against a vigilante crimefighter. As a villain on a budget, you’ve gone for the low-hanging fruit. You’ve paid local thugs to commit crimes and time the hero’s response. A simple strategy, but effective. How long can the superhero’s base remain hidden from your patient, data-driven eyes?

Answer: not very long, as it turns out. Even with such noisy data, the neighbourhood in question stands out like a series of rapid response times.

This is not a finished product. Future versions will be trickier, I can promise you that. I have a few ideas on how to take it further – if you have any, feel free to share below. But in the meantime… enjoy! The data is attached below, as is the R code for generating it.

GitHub: Hero Hunter

hero_hunter.R

Crime_Response_Data