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

如何有效优化一款模拟游戏

发布时间:2015-05-03 19:01:10 Tags:,,,

作者:Robert Zubek

不久前我被问到一个关于优化模拟游戏的问题。另外一个开发者想知道:是否存在比调整和游戏测试更好的方法?他们正致力于自己的一款模拟游戏,并且非常担心调整与游戏反复进行的循环过程,特别当这样的循环速度并不是特别快的时候—-模拟优化问题只会在玩了一段时间后才出现,而那时候一切可能都太晚了。

1849(from gamasutra)

1849(from gamasutra)

这是我们最近所处理的一些问题,即当我们在平衡(并再次平衡)我们的游戏《1849》(游戏邦注:这是一款建造并管理一座淘金热时期城市的游戏)时。所以我打算在此分享自己的答案,希望能够带给其他人帮助。

首先,一些背景:《1849》是一款关于管理城市经济的游戏。游戏中共有50座不同的建筑,20种不同的资源——每座建筑都能够创造出原始资源(包括麦田能够生产出小麦,狩猎区能够创造出皮革和肉),并且会改变它们(啤酒厂将酿制啤酒,金矿将诞生金子,并在这个过程中消耗镐),或消费它们(人们所居住的方子将消耗所有的食物和物品资源)。除此之外,你必须基于每种资源创造而支付给工人工资,所以你便会想要确认他们是否尽责,从而避免浪费钱。最后你将因为房子购买了资源并消耗了资源而赚到钱(或者通过与邻居城市进行交易而赚钱)。所以游戏中的大部分内容是关于优化你的资源链条和生产线,而不是关于制作太少或太多产品。

在设计阶段,我们将所有资源链条绘制成一张大图表,并确保不存在任何意外。我并没有相关的照片,但这就像你所想的那样:这是一张有向非循环图,每个节点都有一栋建筑,每个边缘都有一种资源。我们这么做是为了证实我们拥有从源到汇的各种链条,有些短有些长,并且至少拥有一个反馈循环(例如铁矿消耗镐并创造铁矿石,冶炼厂将其变成铁,铁匠将其变成镐,而这些产品将再次被消耗掉)。

一旦我们选定了资源和建筑,我们便需要识别出我们的优化价值:每个回合会创造出多少小麦?或者创造一个面包需要多少小麦?如果太大方,玩家便会拥有剩余价值,如此游戏便会太过简单;而如果太过复杂,你便会陷进“死亡漩涡”中,即玩家将不断耗尽所有产品,工人将罢工,从而导致经济的衰竭。

“强力方法”能够弥补一些优化价值,即多次玩游戏并对此作出调整。有时候这种方法是有效的,但其速度较慢,我们希望能够更快地执行它。所以我们便转向了游戏设计师最好的朋友:微软Excel。我们创造了一些测试城市的静态模型——一些小城市,一些大城市还有一些由特殊建筑构成的诚实。对于静态模型,我指的是在一个回合中每种资源的创造数与消耗数的相关模型。

首先,有一张主表格,会列出所有的建筑及其优化价值(制作和消耗等级,成本,生产数量);

然后是一张每座模拟城市的表格,将列出所有建筑以及我们期待每座城市所创造出的产品数量。

每座城市的表格将从主表格中获得优化价值,然后估算所有的资源消耗与生产,你所赚到的钱与消耗掉的钱,以及你所需要的工人数量等等。一旦所有的数值保持在0,城市便会达到最佳平衡。如果这些数值是较大的正值或负值,我们就需要用红色或绿色将其标注在列表上,即代表这是需要特别关注的部分。

这同时也让优化变得更即时:如果你在主表格中改变了优化值,它将立即传播到所有城市表格中,你便可以立刻判断这是否有益于所有的测试场景。

这便是我们在一座城市中优化所有建筑和资源的方法。然后我们会在比赛中设定城市间的难度进程,我们采取的方法与许多大亨游戏一样:当玩家在游戏中前进时,我们会不断提升源与汇的消耗,从而增加玩家创造产品的压力(游戏邦:同时也会提供给他们更多收益)。这种方法也得到了优化表格的验证—-我们可以在优化主表格的同时检查这对于比赛中每座城市的影响。

同时还存在关于额外挑战的一些细节,如为玩家添加一次性任务,不过我们通常都是用“强力方法”对此进行优化,因为这些任务并不多并且我们很难在简单的表格中创造出它们所带来的影响的相关模型。

(本文为游戏邦/gamerboom.com编译,拒绝任何不保留版权的转发,如需转载请联系:游戏邦)

How to Tune a Simulation Game

by Robert Zubek

A while back I got asked a question about tuning simulation games. Another developer wanted to know: is there a better way than just tweaking and playtesting? They were working on a simulation title of their own, and dreading the cycle of tweaking numbers and playing and tweaking numbers some more, especially since the cycle wasn’t very fast – simulation tuning problems tend to only show up after a while of playing, and a turbo mode cheat only gets you so far.

This is something we dealt with recently, as we were balancing (and rebalancing) our game 1849, which is a gold rush era city builder / management tycoon game. So I figured I’d repost my answer here as well, in case it helps someone else in the future.

First, a bit of background: 1849 is all about managing the city’s economy. There are about 50 different buildings, and 20 different resources – and each building can produce raw resources (wheat field produces wheat, hunting camp produces leather and meat), convert them (brewery converts barley into beer, gold mine produces gold but consumes pickaxes in the process), or consume them (houses where people live consume all sorts of food and goods resources). On top of that, you have to pay workers’ wages at each resource building, so you want to make sure it’s not sitting idle, otherwise you lose money. Finally you get money by having houses buy resources and consume them (or by trading with neighboring cities). So most of the game is all about optimizing your resource chains and production logistics, and not producing too little or too much.

During the design phase, we mapped out all resource chains as a big graph, to make sure there were no surprises. I no longer have a photo of that anywhere, but it was exactly what you’d expect: a directed acyclic graph, where each node was a building, and each edge was a resource (eg. wheat edges going from wheat farm to the bakery and to the distillery). We did this to verify that we had a variety of chains from sources to sinks, some shorter and some longer, as well as at least one feedback loop (in our case, iron mine consumes pickaxes and produces iron ore, smelter converts that into iron, and blacksmith converts that into pickaxes, which get consumed again by all mines).

Once we settled on resources and buildings, we had to figure out our tuning values: how much wheat is produced per turn? or how much wheat do you need to make one unit of bread? If the values are too generous, the player accumulates a surplus and the game becomes too easy; if they’re too hard, you can fall into a “death spiral” where the player keeps running out of everything, and the workers move out, causing the economy to collapse.

The “brute force” approach would be to just make up some tuning values, and play the game a bunch of times and tweak. That can work sometimes but it’s slow, and we wanted to do it much faster. So we turned to the game designer’s best friend: Microsoft Excel. :) (And I’m not joking about the “best friend” part.) We built stationary models of a number of test cities – some for small cities, some for large ones, some with specific building combinations in them. By a stationary model, I mean: a model of how much of each resource is produced and consumed on a single turn.

First, there was a master sheet that listed all buildings and all of their tuning values (production and consumption levels, cost, population produced or required):

Then there was one sheet per simulated city, which lists all the buildings and how many instances of each we expect to be built:

Each city sheet would then pull tuning values from the master spreadsheet, and calculate all resource consumption and production, as well as how much money you’re making or losing, how many workers you need (and therefore whether you have enough houses) and so on. As long as all the numbers stayed around zero, the city was pretty well balanced. If they went too far into positive or negative, they would get highlighted in red or green on the spreadsheet, and it was a signal that this part might need extra attention.

This also made tuning almost instantaneous: if you changed a tuning value in the master spreadsheet, it would propagate intantly to all city spreadsheets, and you can see right away if this helped or harmed any of the test scenarios.

So that’s how we did tuning of all buildings and resources together in a single city. Then to set up difficulty progression between cities in a campaign, we did what a lot of tycoon games do: as the player goes through the game, increase sinks and resource consumption, which puts pressure on the player to produce more and more (while also giving them more money to work with). This was also verified with the tuning spreadsheets – we could tune the master sheet and immediately check how that’s affecting various cities in a campaign.

Also, there were additional details that turned into additional challenges, like adding one-shot timed quests for the player to complete, but those we usually tuned by brute force, since there were few of them and their effects were not as easy to model in our fairly simple spreadsheet.

Hope this is interesting – and maybe even useful!(source:gamasutra)


上一篇:

下一篇: