游戏邦在:
杂志专栏:
gamerboom.com订阅到鲜果订阅到抓虾google reader订阅到有道订阅到QQ邮箱订阅到帮看

分享构建灵活的游戏系统的注意要点

发布时间:2011-12-03 15:36:24 Tags:,,,,

作者:Daniel Achterman

我在上篇文章介绍了自己在游戏系统设计中的收获,指出了设计师应当努力的目标,并分述了系统的组成部分。现在我将阐述为RPG和战略游戏设计强大且灵活系统的过程,文中还会提供对各个步骤执行的意见。

内容回顾

系统设计的目标在于帮助你设计出具有一致性的系统,让你可以更有效地创造游戏内容。这些系统应具备的要素包括:1、可理解;2、一致性;3、可预测;4、可扩展;5、简洁优美。

游戏系统的3个成分是参数、规则和内容。在设计游戏系统时,最难的部分是开端。我建议通过以下步骤来分解这个任务:

1、选择游戏所使用的参数。

2、设计实现游戏愿景的必要规则。

3、定义参数在游戏期间如何改变。

4、尽你所能将内容类型设计得更加复杂和有趣。

5、添加所需的新参数、系统和内容类型。

接下来,让我们依次分析这些步骤的细节。

选择游戏参数

在游戏中置入何种参数,必须首先考虑哪些参数会影响玩家做出的有趣选择。这便是为何一开始就要弄清楚游戏玩法的原因所在,你可以从中了解到游戏应该具备哪些参数。

如果你的RPG有不同的战斗模式,那么就制作统计数字让玩家来定义角色的战斗方式。《星际争霸》之所以设计两种资源,原因在于何时开始开采气矿以及投入多大精力对玩家来说是个有趣的选择。

1、从角色统计数字开始。玩家透过他们的角色来审视整个游戏。所有其他内容都围绕着如何影响角色而构建起来,比如道具、技能树和研究奖励。

2、从少量的基础数据开始。只要为玩家创造出足够让他们明白你想传达的游戏玩法即可。有趣的游戏玩法并非一定要有大量的数据。

3、合并某些无需区分的参数。如果区分防御类型对角色毫无意义的话,就无需设置“物理防御”和“魔法防御”两项内容,仅用“防御”就足够了。

4、易于理解。在理想情况下,最好让玩家能够通过属性的名称来理解某项数值指代的含义。例如,今天的多数玩家都知道“护甲”和“力量”的含义。

塞尔达传说(from gamasutra)

塞尔达传说(from gamasutra)

《塞尔达传奇》就是款有着最小化和易于理解的参数设计的游戏。“生命值”是游戏中唯一的角色数据,通过简单的心型图表来呈现。

制订简单的规则

规则使用参数数值来决定游戏中发生的事情。为保持系统的可理解性和可预测性,应当设计足以执行游戏愿景的最简单可行的规则。

比如,许多游戏中的护甲值并不会减免伤害。在《龙与地下城》中,护甲只是能够减少被击中的几率。《魔兽世界》中护甲的伤害减免计算公式要复杂得多,但是玩家能够理解在游戏中提升护甲值依然是必要之举。

1、保持公式直观简单。公式应当多用乘法和加法,少用指数和对数算法。这使得玩家能够更轻易地理解游戏的运转方式,也能使你更容易地将游戏运转方式模型化。

2、不可让单个参数影响过多内容。如果“力量”会同时对攻击力和生命值产生影响,在不同情况中对这项数值的理解就会变得更为困难,而且这会使得你更难于平衡游戏,因为调整某个数值可能会产生牵一发而动全身的结果。

优秀的规则设计对于创造一致性的游戏系统来说至关重要。创造能够满足游戏所有需求且简单的规则是个很艰巨的挑战。

参数发展要点

参数发展是指数值随游戏过程的改变情况。比如,在RPG中随着玩家等级的提升,角色属性会逐渐增加,能够获得提升更多伤害和护甲等级的装备。在战略游戏中,高级建筑往往提供更好的福利,同时也需要更高的成本。

对于平衡游戏来说,相关数值应当以类似的速度改变,比如玩家的战斗能力和所战斗怪物的力量。

像“玩家能力”之类的高层次内容往往包含多项参数,比如护甲、武器伤害、伤害属性和角色属性。理解这些参数的变更是使得游戏系统可预测和可扩展的关键所在。

1、确定你希望属性在玩家进展时的增加比率。有些属性会随玩家的升级自然提升(游戏邦注:比如生命值和魔法值),有些可能是通过获得更好装备来提升(游戏邦注:比如护甲和武器伤害)。

2、使用最简单必要的发展公式。数值可以线性、二次方、指数化或者以结合这些方式的公式增长。使用游戏所需的最为简单的进展。

3、使相关数值以类似的比率改变。比如,怪物能力和玩家能力应当以类似的比率提升,怪物能力和杀死怪物获得的经验值也是如此。如果一项数值线性增长,另一项数值指数化增长,那么你的游戏就是不平衡的。

4、避免比率的变动。如果武器伤害在1-10级的提升几率与11-30级的提升几率不同,那么保持其他内容与之相符就会变得更加困难。所以一定要克制推出那种另类解决方案的冲动,专注于制作一致性的系统。

数值发展类型

数值发展类型有很多种。最为普遍的是线式、多项式和指数式发展。

线式发展是最为简单的发展类型。其公式结构为Ax+B,数值以稳定不变的比率增加。这很简单而且容易理解,如果合适我会尽量使用这种类型。

但它的一个不足之处在于,随着X的增加,B的数值变得越来越不重要。当你只有10点护甲时,+5护甲能产生很大效果。当你有500点护甲时,+5护甲似乎并不显著。

线式发展过程(from gamasutra)

线式发展过程(from gamasutra)

多项式发展中最为普遍的类型是二次方式发展,其公式结构为Ax2+Bx+C。随着X增加,改变的比率也增加。之所以这种发展类型很普遍,其原因在于多项式发展是线式发展的结果。

如果怪物掉落的金币随等级线性增加,玩家升级所需要杀死的怪物数量也随等级线性增加,那么玩家每次升级过程中所获得的金币数量就是二次方性增加。

多项式发展过程(from gamasutra)

多项式发展过程(from gamasutra)

指数式发展的结构是C*Ax。刚开始增长缓慢,到后期速度飞快。这个方式很难使用,因为数值会迅速膨胀,但是其数学特性使得该发展方式很适合某些系统,比如经验值发展。

指数式发展过程(from gamaustra)

指数式发展过程(from gamaustra)

创造有趣和可掌控的内容

内容正是吸引玩家的地方。内容包括各种东西,比如玩家能够找到和使用的武器以及他们能够学习的技能和能力。内容设计的黄金法则是尽你所能设计能够掌控的复杂有趣内容。

内容可以简单,也可以复杂。比如,某装备使得玩家的暴击几率提升1%,这便是简单的内容。这项数值能够马上为玩家所理解,而且保持不变。

某道具可以在玩家暴击后使其攻击速度提升50%,持续5秒时间,这样的内容就会很复杂。其数值并不简单易懂,而且内容的呈现取决于玩家打出暴击的概率。

1、刚开始时要设计简单的内容,随后不断增加各种类型的内容。不可一开始就执行你那些令人诧异的想法,比如让玩家使用零件制作武器的锻造系统。刚开始,你最需要的是简单化。在你构建游戏并认清游戏需求期间,逐渐增加新的内容样式、系统和参数,并确定它们与你的基础内容的互动方式。

2、确保你可以大概计算简单内容的数值。比如,2点力量或者暴击几率增加1%意味着什么?这些都算是简单内容,而可以估算出这些内容的效果有利于简化数值调整和平衡。

3、决定玩家需要做出何种选择来更改各项数据。在《暗黑破坏神2》中,大量道具都可以影响到力量和敏捷等数值,但只有少部分道具存在技能等级奖励。

4、不要让玩家过度专门化。高专门化角色会削弱游戏的其他层面,所以不要让玩家有过分追求某项属性的机会。在《魔兽世界》中,所有的强大道具都会增加敏捷和耐力等核心数据,但是这些数据的提升几乎只能通过道具来实现,防止玩家过分积累某个属性。

我们很容易产生迭代设计的想法,但往往难于执行这种方式。或许你畉队中的程序员和美工正忙于制作游戏引擎和概念,你也有大量的时间来编写含有整个游戏细节的宏伟设计文件,但你必须克制住这种冲动!

设计不可过度超前于游戏进度。最好找到最合适的方法构建设计原型,然后将原型提供给测试玩家,这对你之后的开发工作大有裨益。

结语

你的内容越简单,你就越能够使用各种方法来平衡游戏。如果内容复杂或者带有条件性,用数学来计算其数值可能就会变得很困难,在平衡时你就需要进行更多的测试。

复杂或条件性内容可以为玩家提供更深层次和更有趣的选择。如果你的团队有足够的时间和资源来进行测试,那么就可以将内容制作得复杂些。但如果游戏开发者只有你一个人,那么就要注意自己的局限性,要经常审视自己的内容设计是否过于复杂。(本文为游戏邦/gamerboom.com编译,拒绝任何不保留版权的转载,如需转载请联系:游戏邦

The Craft of Game Systems: Powerful, Flexible Systems

Daniel Achterman

Welcome back! My last article introduced my take on the craft of game system design. I identified the goals I believe designers should strive for, and broke down the component parts of systems.

This article covers the process I use for designing powerful and flexible systems for games like RPGs and strategy games, and offers tips for each step.

Recap

Once again, the goals for system design are based on helping you design a consistent system that lets you create game content efficiently. A system should be:

Comprehensible: The parts of the system and how they interact should be understandable.

Consistent: Rules and content should function the same in all areas of your game.

Predictable: Designers should be able to predict how the system will behave in new circumstances.

Extensible: It should be easy to extend the system with new rules and types of content.

Elegant: Systems should strive to create rich situations from simple components.

The three components of game systems are parameters, rules, and content. The most intimidating part of designing a game system is getting started. I recommend breaking the task into the following steps:

Choose the parameters that your game uses.

Design rules that are no more complex than necessary to implement your game vision.

Define the progressions for how parameters change throughout the game.

Design content types that are as complex and interesting as you can manage.

Add new parameters, systems, and content types in layers as needed.

Let’s walk through each of those steps in more detail.

Choosing Game Parameters

The golden rule of choosing what parameters to put in your game is to focus on parameters that impact the interesting choices players make. This is why it’s so important to start by clarifying your gameplay – it informs the parameters your game should have.

If your RPG has different combat styles, make statistics to allow players to define how their character fights. Starcraft has two resource types because when to start mining gas and how heavily is an interesting choice that players make.

Start with character statistics. Players view games through the lens of their characters. All other content revolves around how it effects characters, such as items, skill trees, and research bonuses.

Start with a small number of basic stats. Create only enough stats for players to define themselves within your intended gameplay. Lots of stats are not necessary for interesting gameplay.

Consolidate parameters that don’t matter. Don’t include something like “Physical Defense” and “Magic Defense” if players aren’t meaningfully manipulating them to specialize their character or defeat content. “Defense” will suffice.

Be transparent. Ideally, players should be able to figure out what a value does and how it’s determined from its name alone. “Armor” and “Strength” are transparent stats to today’s players. “Attack Power” and “THAC0″ are not.

The Legend of Zelda is a great example of a game with minimal, transparent parameter design. Its only character statistic is “health”, which is represented by the simple visual of hearts.

Making Simple Rules

Rules use the values of parameters to determine what happens in your game. To keep your system comprehensible and predictable, design the simplest possible rules that are sufficient to implement your game visions.

For instance, many games don’t have damage reduction from armor at all. In D&D, armor simply reduces your chance to get hit. The formula for damage reduction from armor in World of Warcraft is much more complex, but it’s necessary to make high armor values scale correctly in the end game.

Keep formulas basic. Formulas should be more multiplication and addition and less exponents and logarithms. This makes it easy for your players to understand how things work, and makes it easy for you to model how your game works.

Don’t use a single parameter for too many things. If “Strength” affects both attack damage and health, it becomes more difficult to comprehend its value in different situations, and it will make it more difficult to balance your game, because adjusting one stat will have repercussions in multiple place.

Good rule design is crucial for creating consistent game systems. It’s a difficult challenge to create rules that serve all the needs of your game and are still simple and elegant.

Creating Parameter Progressions

Parameter progressions refer to stat values that tend to change over the course of a game. For instance, character statistics increase and they get gear with higher damage and armor ratings as they level up in RPGs. In strategy games, advanced structures often have increased benefits and costs.

Progressions are crucial to game balance. For a game to be balanced, related values should change at similar rates, like a player’s power in battle and the strength of the monsters he fights.

High level things like “player power” are often aggregates of a number of parameters, like armor, weapon damage, stats, and character stats. Understanding how the progressions of those parameters interact is key to making a game system predictable and extensible.

Define the rate that you expect stats to increase as players progress. Some stats may increase naturally as players level up (health, core stats) and others may increase as a result of getting better equipment (armor, weapon damage).

Use the simplest necessary progressions and formulas. Values can increase linearly, quadratically, exponentially, or in some horrifying combination. Use the simplest progression that does what you need.

Make related values change at similar rates. For instance, monster power and player power should increase at similar rates, as should monster power and monster XP value. Don’t make one linear and one exponential, or your game will be unbalanced.

Avoid switch statements. If weapon damage increases at one rate from levels 1-10 and a different rate from levels 11-30, it’ll be more difficult to make other content match. Resist the desire to make special case solutions, and focus on consistent systems.

Types of Progressions

There are many kinds of value progressions with different properties. The most common are linear, polynomial / triangular, and exponential.

Linear progressions are the simplest type of progression. Their formula structure is Ax + B, causing the value to increase at a constant rate. They’re simple and easy to understand, and I try to use them wherever they’re appropriate.

One downside is that as x increases, the difference between terms becomes less significant. When you have 10 armor, +5 armor is awesome. When you have 500 armor, +5 armor barely matters.

The most common type of polynomial progression is the quadratic progression, which has the structure Ax2 + Bx + C. The rate of change increases as x increases, which gives it many uses in games. It shows up commonly because the product of linear progressions is a polynomial progression.

So, if the amount of gold monsters drop increases linearly with level, and the number of monsters players need to kill to level up also increases linearly with level, then the amount of gold players earn from monsters each level increases quadratically.

Exponential progressions have the structure C * Ax. They grow slowly at first, then extremely rapidly. They can be difficult to use because they explode so quickly, but they have some interesting mathematical properties that make them a great fit for certain systems, such as experience progressions.

Creating Interesting, Manageable Content

Content is where the magic happens. Content includes everything from the weapons that players can find and use to the skills and powers they can learn. The golden rule for content is to design content that is as complex and interesting as you can manage.

Content can be simple or complex. For instance, an item bonus that increases the wielder’s chance to get a critical hit by 1% is simple. Its value is immediately obvious to the player and is always the same.

An item bonus that increases the wielder’s attack speed by 50% for 5 seconds after he gets a critical hit is complex. Its value is not immediately obvious, and its value is conditional on the character’s chance to land a critical hit.

Start simply and add content types iteratively. Don’t start with your amazing idea for a blacksmithing system that lets players reassemble weapons from their component parts. You’ll just be creating complication at the time you most need simplicity. As you build your game and clarify its needs, add new content types, systems, and parameters, and define how they interact with the basics you have.

Ensure you can roughly calculate the value of your simple content. For instance, what is the value of 2 points of strength, or a 1% increase in crit chance? Those are both examples of simple content, and being able to estimate the value of something will simplify tuning and balancing.

Decide what options players will have for modifying various statistics. In Diablo II, numerous items affect stats like strength and dexterity, but bonuses to skill levels only appear on a few types of items.

Don’t allow players to overspecialize. Highly specialized characters can trivialize aspects of your game, so don’t give players the ability to do it excessively. In World of Warcraft, all epic items have bonuses to core statistics like agility and stamina, but there are almost no other sources of those statistics, preventing players from stacking them.

It’s easy to want to design iteratively, but often very hard to do it. Maybe your team’s programmers and artists are busy making the engine and concepting, and you have plenty of time to write a massive a design document that details your entire game. You must resist!

Don’t design too far ahead of your game. Find a way to prototype your design, whether in a primitive version of the engine or Flash or XNA or with cards, and put that prototype in front of playtesters. It will pay off down the road.

Content Complexity And The Cost of Balance

The simpler your content is, the more you’ll be able to use math and exact process to balance your game. If it’s complex or conditional, it can be difficult to use math to calculate its value, and the more playtesting and intuitive hands on tweaking you’ll have to do to balance it.

Complex or conditional content can offer players deeper, more interesting choices. If your team has the resources and time to dedicate to balance, make your content interestingly diverse and complex. If it’s just you, be aware of your limitations and keep your content’s complexity in check. (Source: Gamasutra)


上一篇:

下一篇: