Social Links Social Links

Social sharing is  now back on the site! Sorry it was gone for a while. Now you can Tweet about me again or Like this on Facebook.

I also made a few updates to the site’s About page, and added a sidebar widget for my Open Office Hours! Want to talk with me about games and development? You can do it tomorrow on Skype – or at the other events I’m listing at OOhours!

Or, perhaps I’ll see you at…


Day of Unity Events

I’m writing this post to pass on the information to you about some learning events that might be happening near you!

Starting April 12, Microsoft is sponsoring the Day of Unity in select cities across the USA. This is a free opportunity to build a game in Unity for the Windows platform. Participants will get hands-on help from Microsoft & Unity experts, receive breakfast and lunch, and enter to win software licenses, Windows Phone devices and more.

The Day of Unity is a free event for beginner and expert developers. If you already have a game project and a laptop, you can bring it with you to this hands-on porting lab and learn how to port it to Windows. If you’re a beginner, there will be lessons on how to build a 2D game in Unity, and port it.

Here’s the vital details direct from our sponsors:

  • Topic: Publishing Games on Windows
  • Includes Unity toolset, Windows Platform
  • Participants will learn how to build a 2D game and export it to Windows and Windows Phone or can work on porting existing Unity games to Windows and Windows Phone.
  • Timing: April 12 – May 28
  • # of Sessions: 20 (see cities and dates below)
  •  # of Attendees: ~50 per session
  • Format: Full day session, Lecture and Hands on Labs (100 and 300-level)

Here’s the list of cities and dates! If you want to come, click on your city to be taken directly to the signup form.

April 12 Columbus, OH
April 19 Dallas, TX
April 22 Sunnyvale, CA
April 24 Denver, CO
April 26 Houston, TX
May 1 Philadelphia, PA
May 3 Minneapolis, MN
May 6 San Diego, CA
May 8 Los Angeles, CA
May 10 Austin, TX
May 10 Orlando, FL
May 13 Portland, OR
May 14 Chicago, IL
May 15 Atlanta, GA
May 15 Redmond, WA
May 28 Boston, MA

If you’re working on a Unity game already, you should know that if you are porting the game to Windows, Unity is offering free devices, free Windows Dev Center accounts, and other perks. More about this special Unity offer here.


Narrative Choices in Virtue’s Last Reward

Earlier this year I was fortunate to have the results of my survey about gamer behavior and moral choices published at the Journal of Games Criticism. While I was submitting the final piece for revisions, I was also playing the title Virtue’s Last Reward on my 3DS. This week, I am reminded of it again because of Electron Dance’s excellent article about games with choices. I remembered I had a half-drafted response to VLR still sitting in my drafts folder, and I wanted to talk about something that was inspirational to me about its structure.  Spoilers for the game begin about five paragraphs down, and I’ll be spoiling a few plot sequences, so if that’s an issue, stop at the dotted line.

I think it’s fairly well-established that video game players do not really engage with moral choice branches in the way that seems to be intended by developers. Infamous: Second Son is the newest game that uses the binary good or evil system that I did most of my survey research on, and, to me, it feels like a throwback. “Choose good or evil” is to me a retreading of a design philosophy that has already been exhausted to its limit.

Some games like Alpha Protocol, or Beyond: Two Souls (which I haven’t played yet, but have read some analysis of) experimented with this structure by creating games where the depth of choice is only apparent after multiple playthroughs. This is a bit of an accessibility problem, however, for a few reasons. Some gamers will only engage with a game once, and call it done. Other gamers will engage with the game if the branching is apparent, but if it isn’t, as in Beyond, will just assume the game is linear. Game reviewers in particular don’t have a strong incentive to play a game twice, because they have deadlines to meet, so if a game seems to be done in the first playthrough there’s not a lot of time to engage with that game again before a review is due. This can really hurt the review score of a game that’s designed to be played multiple times.

The problem with very binary choice systems, like that in Infamous or in Fable, is that they reduce what should be a branching network of choices into essentially, one single choice, “am I good or evil this time.” The branching possibility space is reduced to become functionally linear.

As Joel’s article pointed out, I play a lot with this kind of structure in my Interactive Fiction (and I do have a few more ambitious works in progress that go deeper than this on it). What I’m personally interested in is the kind of game that needs to be replayed to be fully understood. Chalk that up maybe with a youthful fascination with the multiple endings in Chrono Trigger, or an even younger me reading Choose Your Own Adventure hypertexts in the library, but I like games that split the narrative, even if they’re never perfect in execution. Jonas Kyratzes, in the author’s note for The Matter of the Great Red Dragon, asks the player in so many words to only play the game once. I have honored that (and was fairly satisfied with my personal outcome in it). But most of my works part ways with that philosophy; I try to design for what I think people will try to do, rather than ask them to be different. This is why Virtue’s Last Reward definitely spoke to me as a game that tries to design around and subvert the players’ mindset.

Continue reading


Graphic Design Tips for Game Apps

This post is part of a 3 week series giving current and aspiring game devs the tools, resources, and advice they need to get started building for Windows. Check out the overview of the series to find what you need. For additional resources to build your app check out Appbuilder.


Polish is a big factor in making a mobile game that stands out. You can have a really nice game, but people aren’t playing it or don’t think that it is finished because it doesn’t “look” finished.

In this post, I’m talking to developers that are interested in doing a commercial game (or a free game that makes a little money with the general public) rather than those who are creating their game for purely artistic reasons. So if you are the sort of person that doesn’t want your vision compromised, ignore everything anyone says and go with your gut about how to do the art in your game. Also, this is going to be pretty basic. If you are a programmer that’s coded a basic game app, and you are looking for some considerations about icon and color selection, read on.

You’ve probably heard the term “programmer art” before, which is the sort of art made by someone who is better at coding than asset creation. I’m a little unusual in that I come from an art background and started doing coding later in life. This doesn’t mean that I’m a top-tier impeccably trained artist, just that I got a lot of art theory education that a lot of people who start out in code don’t often get. Most of this article is going to focus on color choices with a little information about icon design. There’s a lot more to graphic design than this, but I realized when I started writing that I don’t want to cram too much into one article. If there’s interest, I’ll talk about composition and other factors in a future post.

So let’s talk color. First of all: the most important rule. If you are using color, and only color, to represent something important in your game, add an alternative method. A significant portion of the population (mostly, but not always, men) is colorblind and can’t distinguish between, in the most common cases, red and green, or, sometimes blue and yellow. So if a big part of your game design requires that people distinguish between different colors to play, consider adding some other way to distinguish between the items.


Bejeweled (and lots of other Match Three games that are like it) uses different shapes of the gems to match as well as matching for the colors. Other PopCap games like Peggle have a “colorblind mode” that can be toggled to make some colors easier to distinguish. This is really important if you want your game to be accessible. So rule number one is, don’t just rely on color to communicate. Or, to put it a better way, don’t just rely on Hue.

Colors have lots of properties. In Photoshop, we can look at three main properties at once: Hue, Brightness, and Saturation. There are other color sliders, but we’ll stick with checking these. It’s really hard to define these with other terms but I’ll try. The Hue of a color is “what color is it?” It’s the property of light wavelength that distinguishes red from blue and so-on. (Hue is what colorblind people have a problem seeing, because of the cones in their eyes.)


Saturation and Brightness are easy to confuse. In this case, Saturation means how much of the hue is present in that color. A better way to understand it is that a color that isn’t very Saturated is gray. Brightness, meanwhile, relates to the color’s value, or how light or dark is the color? Is it closer to black or white?

Most phone games have bright colors. This helps the game to stand out and look cheerful, which is important. But not all bright colors are treated the same. It’s actually important to have a variety of Saturation and Brightness in your color selection so that the user’s eye is drawn to the most important things. Contrast is an important principle to make sure people understand the visual hierarchy of your game.

Let’s keep looking at Bejeweled. (This is Bejeweled Blitz, to be specific.) You’d probably say that this game uses really bright colors, and you’d be right; it also uses very saturated colors. Here I’ve picked out a few colors in the palette to show what I mean. You can see that the background colors are more muted, and have a low saturation; the blue I selected is really nearly gray. The jewels are the most important part of the game, so they have the highest brightness and saturation. The button is important, but not as important as the gems. It’s not quite as saturated as the gem that has the most similar (pink) hue, but it’s moreso than the background.


Click the picture to enlarge it and see the numerical values. Notice that I also pulled two different colors from the blue gem to show how even one object has a variety of colors, and how both saturation and brightness play a part in making the object stand out.

If all the parts of the game are saturated as much as the gems are, the background fights for the eye’s attention. Here’s a really dirty mockup showing what that would look like.


So you don’t want to go overboard with saturation and use it selectively. But you want to be sure to use some colors and not go overboard with low saturation, either.  Here’s another game I’ve played a lot of, Tiny Death Star. It would be really tempting to make the entire interior of the Death Star mostly black and gray – it’s the Death Star! But gray is really boring to the eye. So notice that the Death Star interior is mostly blue. Even on the far right, where it looks like it’s gray, it’s actually a “cool gray” which is a gray with a little blue in it (saturation isn’t zero). The zero-saturation gray is reserved for the interface here (see the bottom) while the actual play area has some color to it and is a little more inviting.


Programmer art tends to be very representational as far as color selection: the sky is blue, the grass is green, and so-on. But consider mixing it up. If you look at artworks done by the pros they often change the colors of things depending on what the lighting situation in the world is. So don’t be afraid to get creative and add a little splash of color where there was none before, and consider the saturation and brightness of colors as well as the hue. You might like the results.

This post is getting long already but before I wrap I also want to talk about icon creation. This is most important for anyone who is trying to put their app into a store like the Windows Store or the App Store. There’s already been a lot of good articles about this topic, so I don’t want to rehash too much. Check out this article about the iOS store or this, loads of information about Windows store tiles and badges. Notice that the icons are specific to platform, so you want to consider the unique needs of your platform when porting a game.

I want to touch on the most important thing, which is to be sure that your icon or tile is strong and readable even at very small sizes. An icon that’s too busy and doesn’t give enough information at a glance is likely to be passed over by the eye. Standing out can be hard as it is, so don’t sell your chances short by trying to cram too much information onto a single icon. It might be tempting to try to put a lot of information on a livetile when you’re in Metro, but keeping it simple and structured seems to look the best. Color selection matters here too – you don’t want things to look too busy, or bland.

Thanks for reading and let me know if more posts like this are of interest. You can always contact me in comments or Twitter. Or, I’m going to have some Open Office Hours on Skype tomorrow where I’d be happy to answer questions. Just sign up for details.

GDC Over! Events Upcoming

I’m back from GDC! I’m writing a bit about the games and talks I saw on, so join me there for some of the stuff I saw, including most of the narrative summit and some new games that I got to try. More updates throughout the week.

My next workshop appearance will be on March 26 in Philadelphia and it’s one I am excited about. I’m partnered with Geek Girl Dinners to deliver a workshop on creating interactive fiction games. Now that I have a few such games under my belt I want to talk about how people can create their own games in Twine and Inform 7 and export them to share with friends and family. No coding experience will be required at all to learn, but please bring your own laptop and RSVP at the event site!

Following that, I plan on attending the Bitcamp Hackathon at U Maryland where I’ll be serving as advice and support. I’ll also be at Philly Tech Week… that is until I fly out to Boston to cover as press again for PAX East! Let me know if I will see you at any of these events!


I have gotten a few questions as to whether or not I will be at Build on April 2. Sadly, no, as you can see my schedule is already packed! Microsoft made me aware of the best ways to telecommute to the event though so I can still find out the news. This is all information that my employers hope I pass on to interested readers too:

Starting March 26th, Microsoft is hosting a jumpstart series called “Building Blocks.” This will be hosted on Virtual Academy and cover HTML5, XAML, CSS, C#, mobile services, working with data, and other topics, with live video streaming and Q&A.

On April 2nd – 3rd,  Build keynotes and select sessions will be streamed live online. Keynotes will begin at 8:30 am (PST) and end at approximately 11:30 am (PST). If you want to make a personalized schedule, Channel 9 has an Events app you can try (no matter what platform you use). Build sessions will also be posted on Channel 9 within 24 hours to watch at any time. I’ll try to point out my favorites later.

More info is at the Official Microsoft Blog or you can follow Build on Twitter at @BLDWIN. If you are going to be at Build, enjoy it! I just got back from San Francisco and it’s pretty beautiful right now!

So that’s April so far… in May, I’m goin’ to Disney World. (Yeah, seriously!)

Porting My GameMaker App to Windows 8

This post is part of a 3 week series giving current and aspiring game devs the tools, resources, and advice they need to get started building for Windows. Check out the overview of the series to find what you need. For additional resources to build your app check out Appbuilder.


Now that I have a Windows 8 machine and tablet, I thought I would take full advantage of the Windows 8 features and port a game directly to Win 8. I already had a game – Faires Vs. Scaries – made in GameMaker a few years ago in a jam environment. This is my documentation of that process for anyone who might be interested in doing the same with a GameMaker game of their own.


FVS is a pretty simple game from a graphical standpoint. It uses all native GameMaker graphics done in GameMaker’s graphic editor. That means it has kind of a primitive, retro vibe, but that’s the kind of thing that works well in the limits of a game jam environment. That also means however that it had to be sized up a little bit to work in Windows 8. For now, I set the game to always run in FullScreen. There’s also some useful code you can put on a Step event if you want to resize your games for devices.  The minimum resolution for Windows 8 apps is 1024 x 768 if you want to target Windows 8 from the beginning. I used these solutions to get it running temporarily, but I am going to go back in and size graphics up a bit larger now that I’ve seen the initial results.

Windows 8 requires touch controls, but this wasn’t a problem for FVS. The mouse controls that are already in the game can be used, and the entire game plays very easily on a touch only setup. So far so good!


One change I discovered I did have to make was that I was using an obsolete method to draw the information in the game HUD. I modified the HUD by using all code to draw it, keeping things fairly simple. This new, quick HUD code always displays in the top left corner of the game. It shows the life bar of the castle and the amount of mana available to create towers (called “score” in the GameMaker code).

After doing some quick tests with the new HUD, I wanted to be sure I was working with the features that Windows 8 provides. So I also added some code to display the app bar. Here’s a basic example of active bar code.


Windows 8 has a variety of icons that will automatically appear if you choose the right name in your code. The complete list of icons you can choose from is available in the Windows Library. Also, for a good tutorial showing how to add some additional Windows 8 features, check out this blog by fellow MS guru Daniel Egan.

Time to export the game. This is the part that you might find tricky if it’s your first time. I opted to do a Windows 8.1 JavaScript export. Windows 8 native is also an option in GameMaker Pro.

You have to be sure the Windows 8 SDK is properly selected in your settings before exporting. To install the Windows 8 SDK, go to MSDN. You will also want to run Visual Studio to make sure you have the necessary components to compile. I’m running Visual Studio 2013. (You can also try Visual Studio Express.) I noticed that with Visual Studio 2013, JavaScript export will fail unless you set up GameMaker to recognize that you are using JS version 2.0. GameMaker might default to 1.0, so this graphic will show you the settings that will work for Visual Studio 2013:


See the button that says “acquire developer license”? All I had to do was hit that. After that GameMaker automatically got a license for the game so that it would work.

And then I can hit compile and see the game running on Windows 8!


Some more porting tutorials that might help you if you want to try are on the YoYo Games Wiki, and include how to port your game and the unique platform features for Windows 8. I hope this has been useful for anyone who wants to try exporting a completed game in the latest version of GameMaker.

This blog is part of the Game Development for Windows 8 series”

Upcoming Updates to the Unity Engine

I’m sending a quick dispatch from a crowded hall in GDC to talk about the upcoming developments in the Unity engine. I don’t always write about specific tech previews like this, but I felt it would be interesting for the developers in the audience!

In the spring, Unity plans to ship Unity 4.5, with some new 2D physics options and performance improvements, followed by 4.6 which will contain an updated Unity GUI. The major developments are coming with Unity 5, the major updated release.

Unity 5 will have a 64bit editor, which was a crowdpleaser for developers whose games were running out of memory. There will be a physx upgrade, navmesh improvements, and better scripting performance. Unity 5 is integrating Speedtree. It will also have an all new audio system with a new importer and mixer. There is a new pipeline in the works for asset bundling, making using asset bundles easier for developers.

Unity Cloud, which is available for Unity 4 devs now with a plug-in, and will be standard with 5, contains an integrated ads API for developer cross-promotion. The beta for Cloud is at


Web deployment improvements are in the works. Partnering with Mozilla, Unity is adding a web GL exporter, which is shipping as a preview mode. In the Web GL preview, a fully 3D game targeted for mobile ran smoothly on the web. The Unity engine was all converted to JavaScript in this mode to run directly in the browser.

New graphics features include lighting and shader improvements. The new Ubershader is the standard shader for Unity 5. It uses a “shader generator” to create a variety of optimized shaders and eliminates the need to write specialized shaders for different material types.

Unity 5 will have real-time GI and lighting improvements. Enlighten pre-computes occlusion and term, and makes it possible to have total dynamic lighting on a mobile device. Unity showcased a demo of a futuristic space-base, using emissive surfaces only to provide all the interior lighting, reacting believably with reflective surfaces.

There are some big improvements coming to Mecanim, the integrated animation engine. The new state machine setups allow for scripting state behaviors so, for example, an idle animation can be randomized. A blend tree allows for facial animations, or can be another way to mix animations.

Unity hasn’t revealed a specific release date for these updates, but they are planned for later this year with the 4.5 updates happening in spring. Hope this information is interesting news for Unity devs! The official page with visuals and examples is at .

Now at GDC!

I’m going to be at GDC all week, starting with Critical Proximity today!

Come find me! But sorry in advance if I have my head down writing today – trying to document everything so that I can bring some trip reports later. If you’re interested in Crit-Proximity there’s a live feed going on right now!

Announcing BAM! – Best App a Month

Now that the site is moved over, time for an announcement:


Microsoft is sponsoring a contest for app development, and it’s through me! (And the other Technical Evangelists in your area. But in this case, me.) If you happen to have the Best App a Month, you can win a Dell Venue Pro Windows 8 Tablet. There’s four different giveaways: March, April, May, and June. Each month one app developer will win the tablet… So if you want a chance to win you can start right now.

There’s a few rules for how to be considered for the contest:

  • Must be 18 or older.
  • Legal resident of the USA.
  • Must publish your app on Windows 8 during the selection window. In this case, when you publish before March 31, you’ll be included in the March contest. In the next few months, we’ll do more!
  • Your app needs to work without being buggy – use modern design and features – be creative - and ideally take some advantage of Azure services.
  • Must attend a workshop that I’m running or contact me during my Office Hours for a personal workshop. Then I’ll link you to the form to submit your app for consideration.

But Amanda how do I find your office hours – well I’ve signed up for to make this process simpler. I’ll be holding open hours on Skype tomorrow, or, I’ll also be at Philly Dev Night the following Thursday, March 13.

I’m also attending other workshops in the region where you can hit me up for more information, and I will post here about any events I’m hosting in the future.  If you have questions or have an app you know you want me to check out, you can reply right here on this blog, or on Twitter, or anyplace else you typically reach me. This offer is for Philly area devs, but, if you’re in another region in the Eastern US you may be near another eligible city.