Human Skills: Elements of Game & Play

May 28th, 2013

The Problem with Genres & Game Design

As someone who contributes to creating games I have a difficult time understanding what other designers mean to say when they use a genre to describe a game system and its mechanics. For example, if someone says a game is a “First Person Shooter” I know that it is common for that genre to incorporate exploration, fast reflexes, precise hand-eye coordination, puzzle solving, tactics, etc. — But when talking game design, this is usually not the clear picture they intended: does their specific game involve any focus on puzzle solving? Does the player actually need to do any exploring?

This problem can cause an explosion of miscommunication among team members and result in an unfocused gameplay experience that ends up feeling like a mishmash of everyone’s ideas on what a game of this genre is supposed to be. Arguments can arise as people from different perspectives use a different foundation for discussion.

By looking at this problem, it’s obvious that vocabulary is at fault. Genres are designed to help the consumer by describing not only the raw game mechanics but also the theme, styling, and content of the media. This makes genres inappropriate and confusing when used to communicate the fine details of game design. This article aims to provide a more precise way of communicating the elements of play to avoid the issues that arise when describing a game based on genre.

A More Precise Communication Style

There is a field of thought that says that learning and exercising skills is instinctively fun for humans and animals. This is what drives us to play and what brings us enjoyment in play. With this in mind I find it helpful to understand “fun” as the act of learning and exercising skills. Games can consist of combinations of different skills: Like chemical compounds are composed of chemical elements, a game system is composed of the skills which it develops and exercises.

How-Video-Games-Can-Make-Kids-Better-People

Some skills that are commonly developed and exercised in games include the following:

  • Problem solving skills
  • Math skills
  • Statistics skills
  • Pattern recognition skills
  • Organization/categorization skills
  • Memory skills
  • Dexterity skills
  • Rhythm skills
  • Strategy & tactics skills
  • Navigation skills
  • Exploration skills
  • Visual comprehension skills
  • Social skills
  • Role playing skills

The vocabulary of skills doesn’t only provide a solid base of communication, but also forces you to think in terms of the most fine-grained elements that make up your gameplay experience. Knowing that a component of my game system is designed to exercise a player’s memory skills will help me design that experience to be more focused, coherent, and accessible to the player.

I may still use a genre, such as a First Person Shooter, to describe the presentation, pre-play expectations, high-level features, etc., but when communicating a game system design and fleshing out the details of game mechanics, human skills can be a much more effective way of communicating and thinking about your game.

Two Game Messaging Systems using Observer and Visitor Patterns

September 22nd, 2012

Maximum output for minimum input.

…That’s the idea behind Juicifying Your Game. But this can lead to some pretty messy code if you start injecting extra code at every event that happens in your game. This is where messaging/event systems come in handy to ensure that every component of the game is given an opportunity to provide their own juice.

This article is a quick overview of a couple different ways to implement a messaging/event system in your game engine. Typically something similar to the straight observer pattern is used, but there might be situations where using a visitor pattern could assist in more readable and maintainable code.

Straight Observer Pattern

Typically, the observer pattern allows an observer to be registered for notifications when a state change occurs in the system. In this case, we will use it to send game messages to a list of all registered components by calling their handleMessage(GameMessage*) function. This will require all observers to implement a common interface which includes this function and register themselves with the Game Message Manager to receive messages.

observer_message_system

void Component1::handleMessage(GameMessage* message)
{
    switch(message->getMessageType())
    {
    case MessageTypeTargetDestroyed:
        // Do stuff to this
        break;
    // etc.
    }
}

Observer-Visitor Hybrid

A strong benefit of the visitor pattern is full encapsulation of logic within the visitor. In this case the GameMessage will be the visitor which will visit all observers rather than relying on the observers implementing their own handling logic.

visitor_message_system

void GameMessageManager::sendMessage(GameMessage* message)
{
    foreach(std::vector::const_iterator it = components->begin(); it != components->end(); ++it)
    {
        message->visit(*it);
    }
}

class GameMessage
{
public:
    virtual void visit(Component* component) {}
    virtual void visit(Component1* component) {}
    virtual void visit(Component2* component) {}
    virtual void visit(Component3* component) {}
    virtual void visit(Component4* component) {}
}

class TargetDestroyedMessage : public GameMessage
{
public:
    virtual void visit(Component1* component)
    {
        // do stuff to the component
    }

    // etc.
}

This second pattern may promote flexible and reusable public interfaces for certain components because the visitor must perform all actions upon those public interfaces of the components being visited. If you are concerned about your components becoming overladen with message-specific functionality, this pattern may assist in relieving that coupling.

Windows 8 Consumer Preview Usability Review

March 18th, 2012

image

While trying out the Windows 8 Consumer Preview I noticed a number of usability problems and interface designs that could be done better. This review outlines problems and solutions/recommendations relating to the sidebars, start screen, and power actions in Windows 8 Consumer Preview. But first, a little about me…

About Me

I’m an interface designer and developer with experience creating apps and games for various platforms with different input devices. My current job revolves around creating UI systems and games for iPad and iPhone games using Mac OSX, but at heart I am a big Microsoft fan and always treasure my time working in Windows while developing for Microsoft’s new platforms.

I also am primarily responsible for recommending and supporting my family members’ computers systems. They all take my recommendation seriously and it greatly impacts their purchase decisions.

Sidebars (Charms Bar and Metro App Task-Switch Bar)

The sidebars are a critical element of the new Windows 8 experience and are the single starting point for managing the system and it’s apps. These sidebars are also cornerstone when using a mouse. Let’s see how they fair:

  • Good: Works great with touch screen.
  • Good: By including the start screen thumbnail in the bottom of the left sidebar, historical functionality of the “Start Button” is maintained for desktop users that prefer their taskbar along the bottom of the screen.
  • Good: When there are no other Metro apps open, only the start screen thumbnail appears, rather than the whole bar.
  • Good: Sidebars do not appear during use of fullscreen desktop apps.
  • Problem: Accessing the sidebars with a mouse is not intuitive, difficult, and complex:
    • Not intuitive, difficult:No visible buttons combined with a very small mouse-over region (5×5 pixels) causes for a very difficult first experience for some users.
      • When I asked my mother to open up Mail she tried opening Internet Explorer a few times, subconsciously thinking it was the start button, and then basically gave up, not having a clue what to do next. I tried telling her to move the mouse to the bottom corner: She did, but was never able to get into the small 5×5 pixel area, even though she was only using a single monitor. In her very words: “Don’t hide things from people like your mother!”
    • Not intuitive: The top left and bottom left corners use pop-up thumbnails, similar to the Windows 7 taskbar – Except when you move your mouse to the center of the thumbnail, it disappears altogether. Both myself and my mother made this mistake of trying to click on the center of the thumbnail, causing it to disappear.
    • Difficult: Bringing up the sidebars is finicky and difficult on multimonitor setups.
    • Complex:To bring up the sidebars multiple actions are required, each presenting an opportunity for mistake, especially on multimonitor setups.
      1. Move to the 5×5 pixel area in the corner.
      2. Move straight up or down without leaving the approx. 10-pixel-wide invisible column. The invisible column seems to be much wider on the charms bar
  • Problem: When using a mouse the top-left icon of full-screen desktop apps (which I commonly double-click to close windows) is partially blocked by the metro-app switcher thumbnail when metro apps are open.

It’s not just my mother and I that are confused about the sidebars and find them hard to use. Watch how Sebastian from ExtremeTech becomes confused about how to use the left sidebar in this video.

Recommendation: Movable Hotspot Icons

I’ve put together a quick video demo of a solution that would address the problems and maintain historical conventions to make for a simple, easy and intuitive experience when using a mouse to access the sidebars. Skip ahead to 1:36 if you want to jump right to the recommendation.

Start Screen and Apps

  • Good: Differentiation between Metro apps and Desktop apps:
    image
  • Good: Quick access to apps like in Windows Vista start menu (start, type, Enter key).
  • Problem: Internet Explorer is inconsistent to Metro/Desktop app conventions.
  • Problem: Desktop vs. Metro apps can be difficult to differentiate for new users in some cases. Which of the following are Metro and which are Desktop?
    image

Recommendation: Increase Visible Differentiation Between Tiles and Desktop Apps

Expose both versions of Internet Explorer in start screen searches. This not only maintains convention, but is also a common teaching technique: While in a safe environment, such as the start search screen, force the user to learn and understand the difference between Metro and Desktop apps. This avoids problems caused by not understanding the distinction between these types of apps.

image

Include a Metro Apps only (“Tiles Only”) switch. This will not only help reinforce the difference between app types, but also make using a tablet more accessible by avoiding the desktop interface altogether.

image

image

Make the differentiation between Desktop and Metro apps more easy to see for new users. One way could be by changing the icon for Desktop apps to have rounded corners or something more distinguishable:

image

Power Actions

  • Problem: Power options are difficult to find (hidden in settings submenu).
  • Problem:Power actions are slow to access with keyboard compared to previous versions:
    • Windows 7:
      1. Windows key
      2. Right arrow key
      3. Enter key (selects default power option)
    • Windows 8 Consumer Preview:
      1. Windows key + I
      2. Up arrow key
      3. Enter key
      4. Up arrow key (repeat until desired option)
      5. Enter key

Recommendation: Power Button on Start Screen

With a power button on the start screen you both start and end your sessions on the same screen. With this icon on the start screen it should be easy to make a shorter series of key presses to access power actions.

image

License

Of course my intent is that these designs be modified and implemented by Microsoft, so these designs are provided for free for all purposes without royalty or warrantee.

Successful Game Jamming

March 11th, 2012

image

At a recent Dirty Rectangles Show and Tell, I took part in a two hour game jam. This was the second game jam that I’ve taken part in, but I have attended many over the last few years.

I’ve seen a lot of successes and failures and made a number of mistakes myself, but this attempt turned out great and I’d like to share my approach so that people new to the experience might have a higher chance for success their first time through.

Here’s a couple of things to keep in mind when game jamming:

  • Come with one or two genre or gameplay concepts in mind: there’s rarely enough time to design something new from the ground up.
  • Come ready with whatever technology will best help you in creating a game of your chosen genre and gameplay concepts. Game engines, drawing frameworks, etc. are all helpful if chosen wisely.
  • Don’t refine your concept beforehand: let it be rough around the edges so you can mould it more easily to the game jam’s theme.
  • Keep the project small-scale (obviously). You don’t have much time!
  • Keep the game experience short: people will probably only play your game for about 5 minutes at most. If you have the extra time, focus on adding extra polish and quality rather than quantity to impress your players.

But remember: a game jam is a great low investment opportunity to try totally new things, so if you’re a more seasoned game jammer or are content with taking larger risks, the experience can still prove to be successful regardless of whether you use these techniques.

Post-Grad Talk at Carleton University

October 17th, 2011

Last week I was given an opportunity to join my manager at Magmic in a panel for a fourth year class in IMD to discuss my experience after graduating and joining the game development industry. This was the same class that I developed Hideout! for and I was happy to pass on some knowledge that I’ve gained from my experience.

During this time, I highlighted a few important things that new grads should keep in mind when searching for a job (specifically in the multimedia industry) and entering the creative workforce. I also touched on the importance of knowing existing design patterns and conventions of the trade to succeed in your new position. The slides are very lean as I needed to keep my talk short, but you can download them here:

Download Slides (PPTX)