So I have been laying the foundations for my avalanche of upcoming multi-player games. I call it the GameFabric. It’s a set of reusable services and client APIs that make getting the plumbing of multi-player games going easy.

Last weekend was a busy one. Here is a synopsis of the features that I have implemented.

1. Authentication

GameFabric leverages 3 consumer identity providers: Windows Live (Microsoft), Google, and Yahoo. I wish I could claim credit for this feat but it was pretty easy thanks to the Windows Azure Access Control Service and some modifications I made to the Windows Phone implementation.

GameFabric does much more than just authenticate a user’s credentials. It tracks the last log on, the last activity, game scores, player history, etc.

2. The Game Lobby

GameFabric provides a nice landing page for users to your game. This landing page allows access to the core functionality of your game: the active sessions and active users.

It also provides some helpful engagement features so that you can build your relationship with your users. By soliciting Marketplace feedback, advertising your web page and twitter account.

3. Session Tracking

GameFabric tracks all open, interrupted, and in progress game sessions.

4. Joining / Leaving

GameFabric allows users to start, join, and leave sessions.

GameFabric knows if the user is in another session and which one they are in and appropriately displays the applicable functions in the Application Bar based on which session they have selected.

5. Starting the session

Once a session is ready to start the owner of the session can start the game. This is where you come in. As a Game Developer you need to implement the page that facilitates game logic and display of visuals.

I hope to commercialize this platform soon but first I am going to build some games on top of it to iron out the bugs and work through user and game developer experience.

6. Discovering Other Users

In the Game Lobby, GameFabric provides a tile that takes you to the list of all the active users. Eventually, I’d like to build in some “frenemy” type capability where you friend users that you like to play with and block users that you don’t like to play with.

I am using a Jump List as I hope the number of active users gets pretty big. …maybe someday.

What’s next?

  1. Game Actions. Games need a way to push down one player’s actions to the rest of the players.
  2. Game State. Games need a way to maintain state as time progresses.