My two very good friends Amanda and Declan are getting married, and to celebrate, Janice and I throwing them a pre-wedding party. (No “bachelor” party tropes here!) By the time this post is published by Blogger, the party should just be wrapping up, and my favorite surprise should already be out of the bag. Declan and Amanda love games, and Janice and I wanted to have a game-themed part to the party.
As some of you might know already, I like to nerd out about input devices. I’ve had the desire to build and try out a chorded keyboard ever since I first watched The Mother of all Demos. Chorded keyboards have had some popularity with wearable computing enthusiasts due to their one-handed use, but I thought they might also be interesting for ergonomic reasons. Building a chorded keyboard would also be a great learning experience as a deep dive into the workings of USB HID devices.
There’s a strange contradiction that I’ve been wrestling with for a little while. I thought that Journey was an absolutely beautiful and wonderful game. It even won eight awards at DICE this year, including “Game of the Year” and “Outstanding Achievement in Online Gameplay”. But here’s the thing: I think I might somehow be the only person in the world that absolutely hated Journey’s multiplayer system. If you haven’t played Journey, the multiplayer system works like this: you start playing the game as if you were playing a single-player game, and the game matches you with someone else who’s playing where you are.
After spending my holiday break playing with my wife’s Surface running Windows RT, I decided to pick up my own. Honestly, I’ve been pretty happy with it as a productivity and media consumption tablet. But, as I am always wont to do after owning a device for a while, I ended up wanting to try my hand at developing for it. I knew Microsoft hadn’t made the best choices regarding development for Windows RT devices, but I hadn’t realized how bad they really were until I started looking into actually developing for the device.
It seems like at least once every few days, someone is asking whether Java is an acceptable language for game development over on /r/gamedev. I’m going say something potentially unpopular: please don’t use Java. A lot of people will tell you that the only way to do real game development is in C or C++. I’m not one of them. Honestly, I love high level languages. And, for the most part, I’m a firm believer in saying “use what you already know”.
Janice and I have been playing a lot of Anno 2070 lately. Getting into it is a bit rough, as there’s really no tutorial to speak of, and it’s a little on the complex side. But you get the hang of it soon enough. It’s worth it once you do - it’s a combination of supply chain management, SimCity-style building, and RTS-style combat with diplomacy and goods trading… all in one game.
Many months ago, I wrote a little GnuPG-verified dice CGI page for myself and my gaming group to use when resolving gaming situations over email. (Feel free to use it yourself, you can check it out here.) It’s inspired by other verified dice web applications out there. But while other scripts require you check a roll on the site itself, either by cut and pasting into a form, or by finding the roll in a list, I wanted something I could verify easily by looking at the message in my mail reader.
I almost titled this post “Symmetric NAT considered harmful”, except I promised myself I’d never title something “considered harmful.” It seems like the number of consumer-level routers on the market that implement symmetric NAT (endpoint-dependent mapping) has been rising in recent years. This paper puts it as high as 16% in 2010 (with another 14% blocking UDP traffic, which, while tangential to this post, is really disappointing). RFC 4787 (Network Address Translation (NAT) Behavioral Requirements for Unicast UDP) is the “Best Common Practices” document regarding developing NAT devices and how they should behave.
It’s been a while since I’ve done a “Now Playing” post. I haven’t had much time to actually play games lately, but one game I do have time to fit in is Neptune’s Pride. It’s a 4X strategy game of galactic conquest written in flash, and played in “real time”. Turns are generally a day long, but ships move and combat happens between turns as well. I’ve been quite enjoying it, and it only takes a couple minutes of my time here and there.
I’m working from home today due to Seattle’s OMGSNOWPOCALYPSE2012. Lamenting the lack of IncrediBuild here at home, I decided to parallelize my builds - if only across four cores instead of across the entire office. Visual Studio 2010 has an option for parallelizing C++ builds within a single project (as opposed to parallelizing the building of multiple projects, which has long been supported) in the project configuration properties under C/C++ → General → Multi-processor Compilation.
Justin lives in San Francisco, and works on games - mostly on the networking and server side of things. He wears a lot of black and sometimes has brightly-colored hair.
In his spare time, he studies 日本語, rides motorcycles, codes a little bit of everything, builds and/or fries electronics projects, and occasionally finds time to actually play games.