From The Outside: With Nathan Darst

This is a new feature where we have guest writers contribute their insight on not-so-familiar stories. It’s an open mic where they can express ideas and thoughts about living in a Microsoft world. Sit back and enjoy some of their stories with us.

The following article was written by Nathan Darst, creator of Windows Phone games like Wild West Shootout and Dragon’s Blade.

Game creation, in some form, has always been a hobby of mine. Having played a lot of early RPG and adventure video games growing up, I was always fascinated with the idea of creating a video game. However, being a newly minted teenager in the early 90s provided little access to video game development tools or knowledge. Up to that point, my version of game development usually meant drawing a large map on a piece of plywood and setting plastic figurines from Hero Quest on it.

It wasn’t until 1994 that I discovered QBasic on a computer at school and was able to try my hand at programming for the first time. A year later I acquired a copy of Visual Basic and learned a little C as well. Spending most of my free time playing video games and avoiding my friends, I was still able to practice my programming as a hobby from time to time, although it only became harder when the online MMORPG, EverQuest was released in 1999. My programming hobby surfaced from time to time after high school, through the Army and in a class or two in college, but never as frequently as it had during my free-time laden high school years.

In 2006 I landed a job at a magazine helping with their website development, which was strange at first because I had very little web design experience; only a basic understanding of HTML. However, by the end of my stint there I had fully learned PHP and MySQL, which I would later use to create a few of my own websites and even incorporate into my Windows Phone games.

Near the end of 2010 while wandering in the internet, I dusted off my 2 year old copy of Visual Studio and decided I would not only create a game, but finish it this time. I spent the first month learning the ropes of modern C++ and DirectX for Windows development. My plan was to create a stand-alone RPG reminiscent of the 1990s console games. I learned a Iot while building up quite a project, which included online play and a decent sized user base of testers. However, a lot also happened in the beginning of 2011 and the projects was eventually put on the back burner while my wife and I became focused on other things.

When mid-2011 rolled around it was time for a new phone. I had tried Android, Blackberry, and Palm. All of these platforms, while well made, functioned first as a computer and a second as a phone. I felt guilty using them as a phone, as if I were asking them to take time out of their busy day to be something they were not.

So, against the advice of the salesperson, I decided to try the lone Windows Phone on display. I had never really even seen a Windows Phone other than on the few ads when they first came out. However, I loved it immediately. It was fast, it was smooth, and it got me ‘in and out’ as quickly as possible. I felt I had found a smartphone from the future, made for adults who didn’t care about arranging icons and modifying their phone beyond all recognition – a smartphone that actually functioned primarily as a phone and mobile companion. With my Windows Phone in hand I continued on with my life, slightly more efficient than before.

The creative itch flared up again a few months later. I had suppressed it for a year but had returned. Having recently purchased a Blackberry Playbook I dabbled in development for that device. I found it to be uninviting and confusing. It was as if they created the PlayBook and on the last day somebody reminded them they would need developers, so they threw up a developer page and a few instructions on the way out the door. To develop for the PlayBook, you would need third party software and a third party emulator, which you would need to setup manually. If I were thinking of ways to purposely make it hard for developers to submit apps, that’s how I would do it. With the PlayBook unable to scratch the itch, I decided to take a look at development on my new Windows Phone, thinking it would be much more complex than the Windows development I was accustomed to…

Before continuing, let me say that I have always been a fan of Microsoft OS products. Personal interaction, however, was never their strongest suit. You more or less take what you can get from them and hope you never meet them in a dark alley during off-hours. So, when I first registered as a developer I was worried that this was going to be a strictly business experience. Much like the PlayBook, I assumed it would be up to me to figure things out and I would gladly take whatever tools I could get, if they offered anything at all. I imagined being presented with a very impersonal, rigid developer guide and not much more. I could do this, but I must be strong and I would have to survive on my own. I steeled myself and began walking towards the ominous, impeding house of Microsoft that we had all avoided so much in the past. I reached the porch and summoned the courage to ring the doorbell, expecting the worst…

Microsoft answered, and she was baking cookies. The sweet smell of apple pie drifted through the doorway and she invited me inside. We enjoyed a cup of coffee and she handed me a warm basket of goodies to take home, complete with tutorials, guides, and code samples.

Microsoft has created a very developer-friendly environment with Windows Phone. Sure, there are some quirky things here and there but the overall tone is a welcoming and helpful one. Short of writing your code for you, they provide every resource and walk-through you could possibly need to get started.

From registration to formalities to actual coding, what might have taken me a month on another platform took a week on WP7. They’ve done an excellent job of not weighing down developers with virtual paperwork, hoops to jump through, and red tape. Your drive and ability to create something is all that matters here.

From a developer standpoint, the Windows Phone OS is surprisingly forgiving. It’s virtually impossible to ‘freeze’ the phone with bad code as the OS detects this and will close the program if it happens. My phone personally has never froze once in the year I’ve had it. By contrast, my Androids and Blackberry certainly have. Additionally, developers have a lot of access to phone features that other platforms might not allow the developer access to.

Most importantly, in my opinion, it is the hardware acceleration and consistent performance Windows Phones offer. What this means is, as a developer I don’t have to worry about what phone the user has. I know the game is going to run at 30 FPS, and if it doesn’t, the OS will make up for the loss accordingly.

Additionally, it is my understanding that it will be very easy to cross develop your Windows Phone apps for the Windows 8 marketplace. This will mean a tremendous increase in users, making the Microsoft developer experience even better and more lucrative than others.
However, all of this praise does not come without a few drawbacks.

One gripe I have is the lack of consistency during the app review process. After submitting your app for approval, the review process is not always consistent. I have had instances where I submitted a paid and free version together, only to have the paid version rejected and the free version approved, due to different reviewers’ interpretation of the guidelines. Secondly, the review times for separate versions are nearly always different, by days. For example, the free version may be approved days before the paid version. As a result of either of these instances, I have received negative reviews because one version has taken longer to update and players assume the other version was submitted first or given special treatment.

Overall I my experience as a Windows Phone developer has been a positive one. With every game published I have learned more. I would encourage developers thinking about publishing their games to WP7 to give it a try – you might discover a new favorite platform.