The Ones With The Light

The artifacts of a twentysomething year old named Nick.

My static blog

If you're reading this you're looking at my new static generated blog. I had been watching others move to this kind of system and I really liked the benefits:

  • No security concerns because any script run is just client side JavaScript
  • Faster page loads because there are no server side scripts or database fetches
  • More portability because every web host can serve HTML pages (even Dropbox if you wanted to use it as such)
  • Markdown is arguably the best format for writing this type of content
  • I fully own the HTML generated making it much easier for me to style

I spent some time looking at existing tech and for various reasons decided to roll my own in C# leveraging MarkdownSharp and DotLiquid. With those two libraries I only wrote about 160 lines of code to have a functioning generator that met my needs. It takes a directory structure of mine, converts Markdown to HTML, inserts it into post HTML pages using DotLiquid, and spits out all the stuff I need to upload for the site.

While focusing on my blog for so long, I realized I've been at this site for a year and a half (and blogging in general for about five or six years) and decided to change how I want to write. I want to be more focused on what I write, even if that means fewer posts. I want to avoid posts that are just "big tweets", passing thoughts I put here simply because they're too big for Twitter. I want my posts to be more deliberate and meaningful.

The two big immediate changes as a result are the lack of commenting and the lack of all the blog posts. I don't feel commenting is that valuable for my vision (and honestly I had so few comments anyway) so I decided to forego integrating any kind of client side commenting system (like Disqus) into my pipeline. With my old posts I left out the ones I didn't feel were worth bringing forward as a result of my new focus and, funny enough, that wound up being most of them.

Hopefully these changes will drive me to post more compelling content moving forward. Of course, only time will tell on that one.

My next big thing

I've been at Microsoft for a little over two years working on platforms for game developers and decided that it's time for something new and exciting. To that end, when I come in to work next Monday I will be joining the team of awesome people over on the Kinect Fun Labs team in Microsoft Studios working on some really cool stuff.

I am extremely proud of the work I've done in my almost-27 months since joining Microsoft: I helped ship XNA GS 4.0 across Windows, Windows Phone, and Xbox. I then went on to work on XNA GS 4.0 Refresh where I helped design the APIs that enable SL/XNA apps and games. I worked with a great group of people to help push up concerns from the Xbox LIVE Indie Games developer community to ensure they had a voice that was heard. I really feel like I made a difference to the XNA/XBLIG community and I'm glad I was able to be a part of it.

But now it's time for me to be creative again. In some ways it feels like a reboot of my career focused on what drove me to where I am now: developing games. Moving into Microsoft Studios puts me firmly in the game studio side of Microsoft where I'm very excited by all the possibilities that will be open to me in the coming years.

Adventure awaits!

Midnight game: MoonDriver

A couple nights ago I was having trouble sleeping so I got up around midnight and decided to try to make a little game using RagePixel. I picked a very simple environment (the moon) and a very simple interaction (move left and right to dodge stuff) and tried to just get it all done in the two hours I stayed up. I didn't finish it that night, but yesterday I wrapped up some of the final touches and decided to upload it for people to play.

I also did a lot with PlayMaker to see just how much is comfortable to be done with the tool. I did try using it for all sorts of objects, but for some behaviors like the asteroid it was just easier to write the little bit of backing C#. I did end up using it for the primary game manager since it allowed me to easily manage state. It also ended up doing all of the logic for spawning asteroids and increasing the rate of asteroids. Here's what the FSM ended up like:

MoonDriver PlayMaker State Machine

At the end I really do think PlayMaker is an invaluable tool for Unity development. It doesn't have to (and likely shouldn't) be a full replacement for writing your own scripts, but it adds a lot of great value when you use it for things like game state management.

Anyway, feel free to check out MoonDriver. It's obviously a very, very simple game but it was fun tinkering around with it.

Viewing the entire universe

During a discussion at work, I remembered a computer program my younger brother and I discussed on a long car ride many years ago. The basic idea was this: for any given image size and palette, if you iterated all combinations of colors for all pixels you would be able to see everything that exists in the universe (that can be expressed in the resolution of your image). Of course you'd also see a pig with red and white stripes flying past the moon but the original premise remains.

The logical next step having accepted this program (which, by the way, is super easy to write if you want to try it out; you'll just need years and years for it to run its course on any decent sized resolution) is to figure out how one would analyze the data. The vast majority of outputs would be junk; images filled with solid colors or incomprehensible noise. Filtering out those results with some algorithm may trim down a large portion of the output. Then you'd get to the point of having to manually look through the images.

Once you're at this stage an interesting thing happens. You'd begin looking through images and see some that you know to be true. For example, you may see a picture of a wine barrel in a cement basement. Then you'll see images you know are false, such as an ostrich swimming at the bottom of the ocean. The last category would be the images of things you can't validate, such as a strange creature on a remote planet.

The interesting thing here, to me, is the idea that we could be presented with all the answers of what's out in the universe. So who's up for filtering out trillions of negative results to find out?

What do I want to work on?

Exhibit A: Wolfire Games - Overgrowth

Overgrowth

Overgrowth has been in development for years now and it keeps looking better and better. The team has built some great tech and incidentally was one of the first indie developers I looked at years ago as an inspiration to make games. They are building the game they want and are doing it on their own pace. The dedication they're showing can only happen when you're building what you really enjoy.

Exhibit B: Mojang - Minecraft

Minecraft

Let's be honest for a moment: when Notch started working on Minecraft a few years ago, I doubt anyone would have guessed it would be the phenomenon it turned out to be. He's made tens of millions of dollars on a game that isn't even done. It was a game he built from inspiration as the game he'd want to play. And then it turned out that millions of people wanted to play the same kind of game.

This is what I'm focused on lately: figuring out what drives me, what game I want to make that I would be willing to spend a year or more building. A game that, when completed, is the kind of game I'd really want to play. And who knows; maybe others will want to play it as well.