We wanted to give an opportunity to meet the developers behind StrongLoop. From time to time we plan on providing stories about our developer team. In this installment, Michael “Schoon” Schoonmaker checks in with his Node story.
“Honey, I’m not coming home tonight,” I said to my wife of one year whom I’d known for only two. “You remember that skunkworks project? It’s now priority one for the whole department, to be finished as soon as possible. We’re crunching.” It was Valentine’s Day.
“Do you want me to bring donuts and coffee?”
“You’re the best.”
If you’d checked my resume at this point, it’d paint the picture of a budding career in game development. Highlights might include working for an up-and-coming independent studio, years spent working on a remarkable MMO, and experience in everything from Unreal to BigWorld to Scaleform. At the top would be a small mention paid to a “skunkworks project”: started within the studio’s Platform team, its purpose was to build small, simple games that prove the platform’s ability apart from the monolithic MMO it was originally created to serve. The team was voluntary: a mix of a half-dozen of the younger, passionate developers, a technical lead from the Integration team (my immediate manager), and a lurker.
I was a game developer in a strange land, guiding strange, brilliant people toward game development themselves. They were passionate and they understood the process; I was there to make sure it stayed on track through production and that people would actually play it once it was complete.
We had decided to produce a digital version of a board game we had close IP access to, and I left it up to the rest of the team to decide what technologies we would use to realize it. In the middle of an unrelated brainstorm session, one of the front-end engineers blurted out, “I want to use Node.” My lead agreed, joined by nodding heads all ‘round. “Node: the latest in a long list of strange web tech I’ll have to learn,” I thought. I’d agreed to let them decide, and they’d decided: Node it was.
Back to Valentine’s Day. Fuelled by Dunks and a kiss from my beautiful wife, I explained my interpretation of the rules to the department (analogue game rules are often too ambiguous for computers) and divided the work amongst the now twenty developers and QA personnel at my disposal. The client was dumb, receiving event-based updates from the server (via Socket.IO, if memory serves), sending requests to the server over the same bus at will. The server was where the gameplay lived, and my manager and I were the two developers I’d assigned to build it. He being a manager, you know how little time he actually had to work on the project. Try as he might, before too long I was writing all of the logic myself: hexagonal coordinate math, translation into and out of Cartesian systems, collision detection, event propagation to clients, the works.
I’d leave my desk at two o’clock in the morning, kiss my wife goodnight, catch a few precious hours of sleep, and then kiss her goodbye.
Four days later, after putting in 80 hours of work in those same four days, we presented the game to the studio’s owner. The front-end developers had worked veritable magic, virtual chariots working their way around the virtual track in our web-based client. Those roped into integration showed off the Achievements and Entitlements support written that week to amusement at titles like “Whip It Good!”. My Node server worked, and everything went smoothly – a week well-spent.
Looking back I realized an incredible detail that’s easy to miss in the fog of time and the euphoria of a successful crunch: as much as I had to accomplish in those 80 hours, it was only the gameplay I concerned myself with. Those 80 hours were about math, rules, and chariots; not fighting with some monolithic framework, debugging my tooling, and compiling code. Node made those 80 hours possible by giving me the tools I needed without drowning me in a giant sea of institutional complexity. It just worked, and so did I.
- What’s in the upcoming Node v0.12 release? Six new features, plus new and breaking APIs.
- Ready to develop APIs in Node.js and get them connected to your data? Check out the Node.js LoopBack framework. We’ve made it easy to get started either locally or on your favorite cloud, with a simple npm install.
- Need for Node? Learn more about both the private and open options StrongLoop offers.