我是在观看Raph Koster于2012年GDC Online大会上题为《A Theory of Fun，10 Years Later》的演讲时才想起抽象模型的游戏理念。在此次演讲中，其幻灯片标题为“游戏应是这种抽象模型”。Koster利用这些模型设计游戏，因为它能将此设计过程简化为核心活动、角色、目标、动作与统计数据，那样无论游戏具有多大的深度与复杂性，设计师只要“一瞥”便理解其运作模式。此外，Koster还在此次演讲中通过列举MetaPlace打造的Facebook游戏《Island Life》的抽象模型而论证了这一模型。
我之所以决定解析Kyle Pulver《Offspring Fling》的核心机制，是因为《Pivot》的开发是深受这款游戏的市场营销，开发者及乐趣等核心元素的启发。对于那些还未体验过该作的用户，我建议你们购买（游戏邦注：目前它已出现在Steam、Desura与OffspringFling.com平台）。我并非游戏评论家，因此我的言辞不一定能够推动游戏的销售，但我希望在进一步阐述前先明确游戏理念。《Offspring Fling》是款2D益智平台游戏，突出了100多道关卡，玩家在游戏中的目标是通过携带，扔或者投掷等方式将自己以及所有孩子带进门内。该作内容丰富，包括了定时、记分、重玩模式、控制微调、关卡编辑器，以及我5岁儿子所钟爱的蒲公英机制（即当玩家跳到上面时，花朵会抖动）。同时我们也不得不提Alec Holowka为该作所创造的音乐。除此之外，这款游戏还获得了ManVSGame的推荐，在此Kyle公开了许多重要内容，而玩家需要努力想出解锁战略，获得最高分数，并不断重玩关卡直到取得完美结果。这不禁令我疑惑：该作主要依靠哪些因素吸引玩家？表面上看，它似乎相当简单，但同生活中的大部分事物一样，佳品总是看似简单实则精细。为此我们应找出其精妙处……下示图表展示出我所认为的《Offspring Fling》的核心机制。该作包含更多子系统（游戏邦注：比如开关与弹垫），但这一模型才是其每道关卡的核心。
因此，我决定从头开始，并摒弃目前的关键理念。也许这可以作为补充机制，但对于核心机制，我们还需要进一步地完善。我再次回顾了上面所提及的《Offspring Fling》图表，并意识到玩家角色与孩子之间的互动是非常有趣的核心机制。因此我决定采用该模型，首先从更改动作与其对玩家影响方面入手。基于此想法，我重新将钥匙设定为宝石。我并未授予统计资源，而是赋予该宝石操作性能。这样便能获得更多游戏内置物体的触觉反馈，并也能让玩家新手们满意这种效果。然而，同时我打算采用《Offspring Fling》中的一个关键要点，即玩家所互动的对象将会影响到他们的选择。当玩家在游戏中携带着孩子时，他们便会遭到某些损失。可能是无法高度跳跃，或是不能穿过狭小空间。因此，设计师便能够创造出一些有趣谜题，如你必须在携带着孩子的同时跳过某道缺口，从而影响到跳跃的必要性，迫使玩家做出有意义的选择。运用该理念，我决定让宝石去影响玩家做出旋转或跳跃的选择。但由于游戏的关键部分是旋转，因此我不打算限制此能力。所以我决定携带宝石会阻碍玩家的跳跃能力。如此，游戏玩法确实得到完善。现在我觉得自己在每次拾取宝石时总会有所抉择（我需要跳跃或旋转能力来抵达下个目标吗？）
Applying Abstract Models to Game Design
by Joshua Starner
[In this post, I demonstrate a method of practically applying abstract models (as demonstrated by Raph Koster) to a simple game design in order to improve the game's core mechanics, gathering influence from other games in similar genres.]
In my most recent project, I’ve been struggling with the fundamental design of the core mechanics. I’ve been reading lots of game design strategies and I understand them, but practically applying them has been difficult for me. This post examines the use of an abstract model as a way of thinking about your game’s core mechanics and how to build a better game with that knowledge, specifically applying it to my current project.
Raph Koster’s Abstract Model
“If you go golfing, there are a heck of a lot more easy ways to get the ball into the hole. How about we pick it up, walk over, and drop it in. Instead we create unnecessary obstacles in order to practice.” – Raph Koster
I discovered the idea of representing a game as an abstract model by watching Raph Koster’s speech at GDC Online 2012 titled A Theory of Fun, 10 Years Later. In his presentation, he arrives at a slide titled: “Instead games are like this, abstract models”. He uses these models to design games because it simplifies the game design into the core activities, actors, objects, verbs, and statistics and gives the designer an “at-a-glance” understanding of how the game will function, whether it is deep enough, and how complicated the game really is. In his presentation, he demonstrates this model by illustrating the abstract model for the Facebook game “Island Life” by MetaPlace.
Abstracting Pivot’s Core
I really liked where he was going with the abstract model concept, so I decided to try and apply it to my current project, Pivot. So, I developed my best interpretation of an abstract model for Pivot in its current state. I arrived at the following diagram:
Examining this model indicated a few things to me:
1.The graph is strictly linear
2.Many of the verbs in the game have no impact on anything else.
3.Many of the verbs are navigation related.
4.Some of the statistical resources are end nodes, so they have no value to the game other than intrinsic value to the player. [this may be ok]
Ultimately this graph confirmed the reason why I began this exercise in the first place. The core game model is too simple and to be blunt…it’s boring. The truth is, I don’t think I understand enough about these “abstract model” diagrams to really know how to fix the problem with Pivot, so I decided to do the same analysis on a game that already exists and is quite successful.
Pulverizing Pivot with Offspring Fling
I chose to decompose the core mechanics of Offspring Fling by Kyle Pulver because the game, its marketing, the developer, and the simple fun at its core have inspired Pivot’s development. For those of you that may not have played Offspring Fling, you should go buy it (available on Steam, Desura, OffspringFling.com). I’m not a game reviewer, so my wording may not sell you the game, but I want to illustrate the concept before going any further. The game is a 2D puzzle platformer featuring over 100 levels where the objective is to get yourself and all of your babies into the door by carrying, throwing and/or dropping them. The game is full of juice like timing, developer scores [with ghosts!], replays, control subtleties, level editor and my 5 year old son’s favorite: dandelion like flowers that poof when you jump on them. It would also be a shame not to mention the music by Alec Holowka. The game had enough awesomeness to get featured on a ManVSGame cast where Kyle gave out plenty of codes and MAN agonized over the strategies to unlock and achieve the best score possible, replaying levels until he achieved perfection on every one. This really got my brain ticking and I wondered: what was it about this game that is really drawing people in? On the surface, it seems really simple, but like most things in life, the best things are simple but elegant. So let’s try to find that elegance… The graph below illustrates what I believe are the core mechanics of Offspring Fling. The game has more sub-systems (like switches and bounce pads), but this model is at the core of every level.
Examining this model, I discovered a few key things that were different from Pivot’s model:
1.The graph is not entirely linear.
2.Nearly every verb in the game acts upon other objects in interesting ways.
3.There is a cost associated with some beneficial actions.
4.Some Statistical Resources provide rewards in the game, giving them more value.
With this model and understanding in hand, I set out to improve Pivot’s core gameplay mechanics, starting with the key…
The Key to Pivot’s Future Success
In the current model, the player can collect key objects, which increase the key statistical resource (the number of keys you have available to use in the current level). Collecting keys does not impact anything other than this statistic. This statistic in turn is used as a currency for unlocking chests. Chests contain gems, which are completely worthless in the current model. Unlocking chests is also the ultimate objective of the game right now, so it has some intrinsic value to the player (finish the level to progress). But some parts of this model are broken. The chain is linear and has very little impact on player choice or rewards.
I decided to start from scratch and throw away the key idea for now. Perhaps this can be a supplemental mechanic, but the core mechanic needs to be better. I referred back to the Offspring Fling diagram from above and realized that the much more interesting core mechanic lives in the avatars interaction with the babies. So I decided to use this model, changing some of the verbs and their impact on the player as a starting point. With this idea in mind, I re-imagined the key as a gem object. Instead of granting statistical resources, the gem is a manipulative object in the world. This gives a lot more tactile feedback with in-game objects, which feels great for starters. But I also wanted to use 1 key takeaway from Offspring Fling. The objects you interact with impact the players choices. When carrying babies in Offspring Fling, the player is afflicted with several detriments. The player cannot jump as high and they cannot travel through narrow spaces. This allows the designer to create interesting puzzles where you have to carry the baby, but you also have to jump a gap, so the benefit of carrying impacts the need to jump, forcing the player to make interesting choices. Armed with that knowledge, I decided that carrying a gem either needs to prevent the player from pivoting or jumping. But since pivoting is such a critical part of the game’s idea, I didn’t want to limit pivoting (yet), I wanted to encourage it. So I decided that carrying a gem should prevent the player from jumping. Making this design decision really improved the gameplay. I feel now like I have choices to make every time I pickup a gem (do I need to be able to jump or do I need to be able to pivot to reach my next objective?)
I also had to decide what I wanted to do with the gems. At this point, the game is being built as a Point A to point B game, but I now have a resource in the level that I care about. I decided that I wanted something a little more complex than “take the gem from point A to point B”, so I added an additional object, an Exit Portal which is activated by the crystal. The player must then navigate back to the exit portal after placing the crystal.
The game’s core abstract model now looks something like this:
The puzzle below suddenly became much more interesting:
Just to break it down, in the left image, we assume Pivot Abstract Model 1.0 where keys are collectible and the player can jump. The path to success here is trivial: Collect the key, jump to the chest and open it up.
In the right image, we assume Pivot Abstract model 2.0 where gems can be carried and will now prevent you from jumping. The gem in the socket (on the hill) opens the portal down below. The path to success is a little less trivial and now requires the player to pivot to solve the puzzle. After picking up the gem, the player cannot jump, which was probably the first path the player envisioned. After placing the gem, the player gains the ability to jump again and can now quickly reach the exit portal.
New Ways of Forward Thinking
With this small exercise out of the way, I feel like I’ve practically applied a game design strategy to one of my projects and I hope to continue iterating on Pivot’s design. I still have a lot of things I want to do with the abstract model of Pivot’s core mechanics, but I feel better equipped to try out new ideas after doing this exercise. If you are struggling with a core mechanic design and you are heavily influenced by another genre of games, I would encourage you to do some analysis of that game, break it down, graph it, and use abstract models to really break down how the game works. Then apply the same approach to your own design or significantly tweak the existing model, applying your own spin on the verb/object interaction to achieve something more awesome.
Editor’s Note about Pivot:
Pivot is an experimental 3D action-platform-puzzle game where the player must restore “color” to a fragmented world by rotating around the world’s edges, finding gems and putting them back where they belong. (source:gamaustra)