Kicking ass and making games.

More Faster

I’ve been getting a little obsessed over speed lately, likely because I’m hitting that “anal about assets” point at work which leads to hunting down and killing every unnecessary or unused asset contained in the build. It’s a good feeling.

With the web that spills over into optimizing load times to minimize not just memory usage but also bandwidth. Returning to my photography site after a busy Fall and Winter I took the opportunity to stab at load times a bit.

First up: Moving photos off the web server and onto the AWS S3. This provided some minor, but visibly noticeable, performance improvements (once I found the CORS config that was somehow eluding me). It also provided some peace of mind that photos hosted on my site are only being hosted on my site. Plus, content is now poised to be served by the CDN.

Next up: Fixing the, uh, (every image is being loaded twice) bug spotted while looking at network usage from the S3. Once I noticed it, it was glaringly obvious, but “Oops!”. Ah well, quick fix and 50% speed improvement. This gave me an excuse to push the loaded image BLOB into a base64 object for CSS, though I ended up pulling that out because it proved to be an unnecessary conversion that just added some overhead to the client.

Finally: Google Analytics User Timing. So this isn’t exactly a load time reduction, but it will help keep an eye on where we’re at, and is absolutely worth the time to put in place.

So what’s next? Adjusting load order on the page may or may not have much impact because it’s the script that is going to display the content in the end anyway, but we can reduce HTTP requests for some gain (and sanity) and minification will help some. We can also push all the remaining static scripts over to S3, speeding up their delivery, and potentially compress the site content.

Before diving into this level of detail it would be prudent to benchmark more aggressively for comparison.  🙂

, , , , ,

Two and a Half Months

So I’ve been sitting on this photography portfolio for two and a half months. Not really because there are TODOs lying around in the code, much-needed optimizations and cleanup, bugs needing to be fixed, OMG the mobile, or even a proper pass at curating the photos. I’m just short on time.


I’ve been considering a “proper” site for posting my [best / favorite / whatever] photography for too long, and decided after not really seeing anything out there I really like that I should just create my own and use it as an excuse to do some more HTML5 dev. That was May 29th, and I had pretty much everything in place between Friday and Sunday of that weekend. Two and a half months.


For the record, I was able to set and accomplish a number of specific tech goals with this effort:

  • Full screen image display, responsive to any window size
  • Dynamic image loading queues, on demand, in the background
  • EXIF data parsing
  • Dynamic font styling based on the underlying image (though I think I disabled this for the time being)
  • Image scrolling transitions, controllable via keyboard entry (and, reluctantly, via big ugly left/right arrows)
  • AJAX calls using XMLHttpRequest for seamless gallery switches
  • Sexy CSS animations using color blend modes


Since then I’ve spent some small efforts here and there tweaking stuff – like adding the left/right scrolly arrows I hate, (nearly) tracking down annoying fade behavior inconsistencies and bugs, and (planning for) better memory usage. But the site is still mostly as it was back at the start of June. Two and a half months.

Time to just toss this out into the wild, get a little distance, and use that to drive some motivation to tackle my list of TODOs during the next two and a half months.


Who’s Out There?: Elite Dangerous & the Space Race

All of the recent findings from Kepler and New Horizons has got me excited. Really excited.

Like many people I have a childlike fascination with the stars. It’s not just that I want to know what’s out there, or hope for something bigger and more. I just have a love for the possibilities of what it could be. Over the years this has fueled my interest in movies and TV, books and comics, and video games existing within the sci-fi genre, and the cyclical relationship between sci-fi and the factual science that it is both based upon and spawned from.

Pluto, photographed by NASA's New Horizons probe

Pluto, photographed by NASA’s New Horizons probe

This adventure of exploring the stars is one of my favorite gaming experiences. It’s what brought me to Eve Online, and it’s what brings me to Elite: Dangerous, with its 400 billion star systems recreating our Milky Way waiting to be explored. Being the busy bee that I am, I haven’t had much time to play lately, but I’ve been impressed to see how well the dev team realistically portrayed entities such as Pluto.

Something I’ve been holding in my back pocket for a while is Christian Schüler’s synopsis of the rendering approach used in Elite: Dangerous which, though it dates back to the game’s beta, provides a nice breakdown of authenticity — both when it’s achieved, and when it’s not. Along these lines, it was nice to see the dev team commenting on what they had achieved with the game’s rendition of Pluto, relative to the now-famous photos released by NASA:

You’ll notice Pluto and Charon look a little different in Elite: Dangerous, though we’re pleased by how closely our simulation has matched the ‘smooth’ heart-shaped area on Pluto. Our simulation assumed a more dramatic effect from the mild volcanism caused by tidal heating from interaction with Charon, which would uniformly refresh the surface over time. There’s still 1,300 years between now and 3301, which means around five more orbits and five more heating/cooling cycles between today and the era of Elite: Dangerous. It’s possible the renewed surface could spread to cover the entire body by 3301!

A view of Pluto and Charon from within Elite: Dangerous

A view of Pluto and Charon from within Elite: Dangerous

When I do play the game I switch to single player so I can just focus on exploration, and with the galaxy now so easily within reach of my X52 flight stick it gets me thinking about the rate of discovery that can be achieved. Last year Tim Urban had an excellent post on the Fermi Paradox which captured the scope of the Milky Way and the likelihood of finding Earth-like planets and the possibilities of life. It helps reinforce my feeling of wanting to toast the author each time I see an Elite: Dangerous player post describing their first Earth-like discovery. Now this was before the recent real-world discoveries, which now has NASA claiming extraterrestrial life will be found within the next 10-30 years. That’s in my lifetime. That’s crazy.

Frontier Developments, makers of Elite: Dangerous, recently released some data on how players have been playing, and specifically discovering, within the game. There are approximately 1,200 players who have logged 1,000 hours or more into the game over the past eight months. That’s 1,200,000 hours of play, or around 137 years, just from the top players by time logged. In that time players (equipped with FTL capabilities) have discovered 11.3 million systems. At first look, that’s a staggeringly high number — 11.3 million — but Frontier is quick to point out that this rate of discovery will require another 23,417 years to completely map the galaxy. After all, 11.3 million is less than 0.003% of the full 400 billion star systems offered within the game.

Now just think about that, and how long and haphazard our ventures (without the benefit of FTL) in search of life might be before we find success. Or, on the other hand, how minuscule the chances of finding an Earth-like at the rate of discovery we can currently manage.

, , , , , , ,

Daddy Dilemmas

We’ve hit a stride of discovering new adventures and mastering new skills pretty much on a daily basis. Seriously, yesterday morning my daughter was climbing up on her chair ending in a pike pose leaning against the table, crying because she didn’t know what to do or where to go. By the time she came home at the end of the day she was crawling up, sitting down, and then hopping down so she could do it all over again.

A few weeks ago she started walking. One moment she was following the picnic bench and the next, when she’d normally swap to a crawl, she let go and just kept going. It was so fluid I didn’t even realize it was happening.

It’s got me starting to think on those big upcoming milestones, and I find myself considering some of those important questions every dad eventually comes face to face with. What game should we play first? Does early education start with DC or Marvel? And in what order do I introduce the Star Wars films?

One thing I do know is that no matter what the answers are, it’s going to be a ton of fun.


I’ve been itching for some creativity. Maybe it’s the warmer weather, or shipping half a dozen titles in roughly the past two months, but more and more I find myself thinking back to the projects and experiments I’d fit into my after hours. Surely there’s a way to fit this outlet into my currently overburdened schedule?

Fast forward a week or two to finding myself with the latest Unity release loaded up my machine, several resurrected lists of long-standing design concepts, some inspiring lectures from Coursera running in the background, and my head swirling with the “What now?”

I find myself honing in on one tangible event that helped to reignite this drive…

…The Leveling Guild


This actually seems like such a small and trivial thing, but every time I think about it I get all warm and fuzzy inside. Let me set the stage: One of our clients relies on an internal standardized document for defining and tracking curricular progress within their games. This happens to be called the “Leveling Guide”. Now enter the outsourced QA team who, although they do an amazing and often thankless job testing and verifying every minutia of these documents, can be prone to the occasional typo. Do you see where this is headed?

When the first bug concerning the “Leveling Guild” came in I was already in that fevered just-one-more-bug game-shipping mentality, so it wasn’t much of a stretch to assign it over to my lead engineer with some additional narrative, a la an adventuring party sitting down at the GM’s kitchen table to kick off what would become the most epic adventure for which to roll dice.

As you enter the Tilted Inn, home of the Leveling Guild, you note the entire space is encased in stone, darkened by the oversized hearth fighting to contain a roaring fire. The few patrons seated at the bar and the few ramshackle tables scattered about ignore you… Save one.

“Game! Tell me again how many constellations per question you see?” the bartender says with a gruffish and menacingly sarcastic tone as he stares you down.

What do you do?

Okay, so it’s not as epic as my memory makes it out to be. But it was fun. Really fun. It had been so long since I’d actually written any narrative at this point that just this fifteen minute escape was enough to keep me thinking on it, and thinking on it.

That was in December. Now, just imagine how elated I was (literally that smile at a joke only you know, the one you can’t put away even if you want to), three months later, when a different bug, for a different project, unknowingly championing that same Leveling Guild showed up in my queue. Too good to pass up. This epic was showing signs of growing to something approaching epicness.

After many months adventuring far afield, you once again set foot in the familiar surroundings of the Leveling Guild. On the surface not much appears to have changed, until you take note that several tables have been hastily pulled away from the back wall, the dust previously coating their surface disturbed.

Stepping close you feel you almost see a slight shimmer in the wall. Shrugging it off as a side effect of the ale you had been consuming during your long journey you lean in… perhaps a little too far. As your head sways against what should be the wall the beaten wood and rusted nails fade away and you find yourself looking down the icy slope of a mountain, lined with pennants and flags.

Startled, you turn around, greeted once again by the familiar Guild surroundings. Surely something is not as it should be.

What do you do?

As I noted above, these examples aren’t necessarily anything special, and didn’t require much thought or creativity, but they were enough to help turn that spark into a fire and to remind me how much I love writing. Even though I’ve never really made any singularly large creative writing effort, say towards a novel, or short story. Even though I never really studied it. In fact, when I sought out a creative writing course in college, which involved sharing some of my past work (song lyrics), the professor looked me in the eye and retorted “Have you ever read any poetry?”

Back when we did more story-based handheld kids games I would often get involved in either writing or editing the games’ scripts. It was something I really enjoyed, and something I believe myself to be pretty good at. I miss that, and the Leveling Guild reminded me of just how much. That is why I chose my first creative experiment as a contribution to this love of story and writing.

In the past I’ve used FinalDraft, which is a great piece of software but the interface feels archaic. Plus it’s a real drain on the wallet to keep it up to date when I might only use it once or twice a year. More recently I had been using Celtx, which has the benefit that it’s free. Unfortunately, looking at the site now, that doesn’t seem to be the case any longer. I don’t mind paying for it, if it’s something I use often, but in this case maybe I should just make my own!

Once all of this had percolated long enough I decided I had found the perfect opportunity to spend some time getting caught up with HTML5, CSS3, and modern JavaScript. Web development is something I used to do quite a bit of, and similarly enjoyed (though the dev more than the design), but it’s been years since I’ve really had a chance to play with this stuff and even longer since I had built anything from scratch. There’s some pretty cool interactive stuff going on out there these days, and some great opportunities for gaming. I decided to get my toes wet with an online script and screenplay editor which, over the past week, has developed into Scripter. I’m tracking a number of bugs and features (including some more guidance) but I’m pretty pleased with what came out of a few days of tinkering, a lot of API catchup, and less than 450 lines of combined HTML, CSS, and (super expanded for readability) JavaScript.



, , , , ,

One Thousand Words

Since it’s been so long, and I likely won’t get to commenting on everything I played here and there last year, I figured I’d look at my Steam screenshot library from the past 365 days and pick out some favorites to post here. Altogether I struggled paring down 1639 screenshots to end up with just over 100 to include here, which doesn’t include any of the non-Steam gaming I filled my time with. And this is only what I managed to grab screens of. Hopefully I can pull together some PS4 shots as well, though I guess there’s no good way to do the same for the 3DS or Wii U so I’ll just have to write more on those in the future.

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Back In It

Well, sorta. As you can probably guess my gaming (let along online-post-writing) has been pretty sporadic and brief since my daughter was born.

That’s not a complaint.


Between work, the baby, the farm, and the house there’s barely time to eat and sleep, let alone play games. However, I’ve had time to try a number of titles over the past year, and a few of them I stuck with for a surprising amount of time. I still don’t feel that I’ve really spent much time playing anything since I had a surge of play back in February, of last year.

One of the games that I’ve picked up just recently, mostly pulled in by the videos I had been seeing and the promise of an Eve-like experience without the monthly subscription fee, is Elite: Dangerous. I’ve only spent a few hours with the game, but have been taken away with the depth and detail provided. Being able to sit in the cockpit and pilot around the galaxy proves to be an extremely fulfilling experience.


I’ve been ignoring combat, trading, and mining entirely — and haven’t even been playing online instead choosing the “Solo” option I was excited to find in the menu — and focusing all of my efforts on exploration, which I’m still getting the hang of. I will say there are two big wins here that will likely keep me hooked for some time to come:

  1. The galaxy is vast, and beautiful, as can be seen in the videos below
  2. Exploration, in and of itself, is wrapped in a rewarding gameplay mechanic making it an entirely feasible play style choice

In Eve exploration boils down to a mini-game which allows you to hack your way into space ruins to discover loot, which is then typically sold or used in manufacturing, with the ever-present threat of combat. At least, that’s how it was when I canceled my accounts over a year ago (note I still watch the regular updates, hoping I can pick it up again in the future). Here, I can literally just spend time flying around to discover what each of the 400 billion systems contains, then sell that scanned content back to stations for profit. In essence, I get to play the role of a space cartographer.

It’s like a dream come true…



There are tradeoffs, and content I severely miss from Eve, but the unique offerings provided here are quite captivating. For one, space is pretty empty. I miss the intense structures waiting to be found in Eve, and the other player and NPC ships marking trade routes, populating stations, and taking part in this epic space opera. I’m assuming that this will come to Elite with time. In the mean time I’ll keep puttering around until I have enough to upgrade my ship, and eventually check out the mining, trading, and combat.


, , , ,

Autumn Arrival

As per usual at the end of summer I’ve been solely focused on shipping holiday titles, and have been doing very little gaming. Or much of anything other than work.

So, also as per usual, it’s a bit of a shock to wake up and realize it’s forty-two degrees out. Autumn is here. It’s time for pumpkin brews and chili. Warm fires, snuggly blankets, cool wet nights, and outdoor adventures. It’s time for spooky games, scarier movies. Time to consider re-subbing to Eve. It’s time to catch up on what’s been missed and find enjoyment at home.

As an inspiration for what’s to come, have some highlights from the summer months that have past.

, ,

Monument Valley

I’ve had scant time to game lately (and actually ended up cancelling all of my MMO subscriptions) but did grab a few puzzle games that were on sale for my iPhone. Of the three I spent time with, only one kept my attention. Monument Valley, being a puzzle game set in Escher-like levels, is as much fun to stare at as it is to play, and I found myself simply flipping the rotating geometry around to watch new paths and play spaces materialize while others faded away with little trace.

There’s a bit of story, but it feels secondary to the puzzles and the dialogue is about as abstract as the puzzle environments. Though it may not set much of a goal for the player, it at least helps create some pacing across the experience.

At only ten levels it may feel a bit light, but it kept me entertained for an hour or two, and has me thinking on it a week later enough to write this. The levels felt fairly straightforward (as loosely as that term applies considering the puzzle design) but extremely rewarding to explore, up until the final level, which has a slightly different style of presentation and seemed to require more dedicated thinking. Along the way the game is sprinkled with some truly inspired graphic touches, and I only wish there was a bit more time to explore them, but perhaps that would destroy the sense of mystery these elements carry.

I’d say I definitely got my $2 worth.

, , ,


Earlier this week I received my first physical item from a Kickstarter campaign. I’d had a few digital deliveries previously, but they didn’t really provide the sense of actually contributing to something in the way that opening this box to find an awesome boxed game waiting for me. Something I could physically hold. Plus, it came with a bunch of cool little extras.

Adventure Maximus is a kid-friendly card-based roleplaying game created by local dev Eden Studios. These are the guys behind the Buffy RPG and, probably more importantly, AFMBE. I’m (almost) always happy to help a local business, but when it comes to games and they’re creating something that can be enjoyed by pre-D&D aged kids, I’m more than happy.

Adventure Maximus!

I haven’t had a chance to dig through everything in the box quite yet, but I’ve flipped through most of the cards to find nothing but awesome. I’m really looking forward to playing this with my daughter when she’s old enough to hold a few of these cards, but for now I may have to settle for a few solo games.


, , , , , ,

Previous Posts