As remarked upon in my project brainstorm post, I am interested in revisiting an idea for a new sort of sharing environment I call SPACE – Semantic Positioning and Creation Engine… and maybe specifically for games, e.g. GameSpace.  So, what would it entail?  As I wrote this, I realized how long my full treatment of the project would be, so I’m breaking it into pieces.  Today is the user experience.

I go to the web application and sign in / register.  I am presented with essentially a blank canvas (“new document”) and I can either create stuff or put that stuff in a game.

Let’s say I want to make Chess.  I create a game piece using the basic Draggable Piece library item.  Maybe I add six of them with different appearances to my personal library of objects – Pawn, Knight, Bishop, Rook, Queen, King.  Then I create a game board using the Container library item.  What will it contain?  Alternate color squares, of course!  So I make a square object (also a container), declare that it can hold one of the six pieces I specified.

Then I can add properties for the pieces – not just “which player I belong to” but “captured/not” and which square on the board I belong on.  For chess, each piece also has a starting location.

Now to the interaction – when pieces interact with each other, the piece entering the space “captures” the other piece, so I would want to specify that.  In this case, I add the rule “when a piece moves into a square of an opposing piece, set opposing piece to captured and remove from board.”  When a player interacts with a piece, what valid moves there are depend on the kind of piece, so I would specify that per piece.  [This part (the actions available) is complicated, and I’ll have to think more about the interface for it.]

Then once I have these things added, I can save my game rules.  Then you can join the app and see my game rules and game pieces, and either “open them for editing” or start the game with me, and we take actions previously defined by me when I was creating them.  In this way, multiple people could join and play the game I have created, or I could could quickly (and collaboratively!) modify the game in a rapid prototyping way.