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

手机游戏移植需要注意的6大设计元素

发布时间:2013-04-08 17:46:04 Tags:,,,,

作者:Nathan Fouts

Ouya游戏机将于6月4日正式发布,但Kickstarter赞助版本已经抢先推出了。游戏商店本身是有实体的。我曾投入了一些时间而制做了一个开发工具包,且一直致力于一款名为《Pig Eat Ball》的原创游戏。我对这种游戏机很感兴趣,并很乐意面向它创造游戏,且希望能做得更好。虽然它是一种低成本的游戏机,但却不应该被当成一种廉价产品。而是什么原因导致它看起来廉价而又遭遇忽视呢?答案就是快速移植。

ouya_ports_sad_happy(from gamasutra)

ouya_ports_sad_happy(from gamasutra)

显然,因为Ouya系统是以Android为基础的,所以许多开发者可以直接将他们原有的游戏从手机移植到Ouya。而这类移植游戏也有许多精品,如 《Knightmare Tower》、《Beast Boxing Turbo》和《Gun Slugs》。

在Ouya商店玩了大量游戏后,我发现移植游戏普遍存在一些令人不快的问题。所以我在本文中罗列出这些问题,希望游戏开发者能够将其作为移植游戏前的参考。虽然我提出的建议基本上也适用于其他手机移植游戏机的游戏,但在本文,我只针对Ouya游戏机(也可以是GameStick等)。

1、模拟控制杆需要盲区。我在Ouya商店玩过的许许多多游戏在控制上都有“飘移”现象。真是令人恼火,特别是想到目前系统上的大多数游戏都属于动作类,讲究精准的输入。

(1)通常表现为,触击左侧模拟控制杆并释放后,角色/光标等还是在右方向上移动。

(2)这容易解决—-在代码中,当左侧模拟控制杆返回X、Y座标时,测量这个矢量的距离,如果它少于某个量,就忽略控制杆按压。

(3)我相当肯定在Ouya开发网站上可以找到案例代码,但为备不时之需,我还是就地放一些出来吧。

(4)static private float stickMag(float axisX, float axisY
{
float stickMag = (float) Math.sqrt(axisX * axisX + axisY * axisY);
return stickMag;
}

(5)从stickMag函数返回的float会告诉你由左侧控制杆输入组成的这个矢量的长度。它应该介于0到1。Ouya控制器相当不灵活,所以把这个盲区设置得大一些将更明显,比如0.35f(游戏邦注:所有长度低于0.35的输入都会被忽)。

ouya_ports_deadzone(from gamasutra)

ouya_ports_deadzone(from gamasutra)

2、制作选项时,务必让选项之间差异显著。比如,将游戏商店的“购买”、“取消”选项分别设置成黄色和白色就不太管用了。有些游戏会把黄色当作选定,而有些游戏会把白色当作选定。简单的颜色代码并不直观,但解决这个问题不难。

(1)有许多简单的方法可以显示某物被当前菜单选项选中。

(2)比如:

A、大幅度放大文本字体

B、在选定文本后做一个特殊的背景

C、在左边呈现出一个特殊的指示图案

D、使选中本文能够跳动

E、在选中本文上做一些简单的颗粒特效

3、使角色移动和菜单同时支持模拟控制杆和方向键输入。特别是菜单,但游戏中也应该支持两种输入。支持这两种控制应该成为一种惯例。一些人喜欢用左控制杆,而另一些人喜欢用方向键。我还见过游戏中使用方向键控制非常好的游戏,但只允许菜单使用左侧模拟控制杆(在这种游戏中,选择控制杆或者方向键并不重要。是的,我理解这种选择在游戏中可能非常重要,但是,游戏同时支持两种输入且运作得很好,也是很常见的)。

4、移除碰触/手机控制的提醒。当你的游戏并不支持其他输入方式,诸如“触击屏幕继续”或者“按这里继续”这样的提醒就显得十分愚蠢了。移除“触击”、“猛击”这样的词语吧,除非你的游戏其实是将迷你触控板作为唯一的输入方式。

(1)即使应该允许玩家触击屏幕上菜单的某部分以继续,触击也是一件乏味的行动。所以,请支持按键输入,并显示按键工具提示。

(2)移除只适用于手机版本的HUD图形。根据我的真实经验:当按下Ouya的O键使主角射击时,不必在HUD上留下大按键图形,因为太占空间了;只要玩家能够通过触控板点击它,就能射击。当然,从技术上来说,通过按键射击也是可能的,但效率比较低,况且在控制器上已经有一个专用的按键了。按键图形浪费屏幕空间,而且看起来很愚蠢。

(3)因为通过触控板就能暂停游戏,所以不要在屏幕上保留暂停键。那种暂停操作太慢了。请使用Ouya系统按键或另一个面按键。

5、在游戏中设置一个退出选项。确实,按下Ouya系统按键也可以退出,但玩家更愿意通过这种简单的选项关闭游戏。

6、移除不可用的显示设置。这可能是Ouya系统的问题,但我曾见过,有一些游戏在安装时居然弹出必须打电话的提示。Ouya游戏机当然不能用来打电话,即使可以,你的游戏真的需要打电话?我见过带有这种请求的游戏但我从来没打过电话。如果不需要,那就移除吧—-看起来很愚蠢。

最重要的是,请千万给左侧操作杆设一个盲区。如果你看到这篇文章,请马上查看你的代码,并执行盲区方案。

本文罗列的其他问题也要解决。基本上这意味着你真的想把你的好游戏介绍给新玩家。没人喜欢粗糙的移植版本。当PC不支持控制器输入时,没人想在他们的PC游戏中看到“开始按压”,也没人想在他们的游戏机游戏中到看到“触击屏幕继续”。

他们想看到清爽崭新的游戏,他们希望自己购买的游戏是为他们的系统、他们这类玩家量身定做的。我知道,移植是件麻烦的事。但是请务必多费点功夫,把游戏清理干净,做一个AAA级的移植版。祝你好运!玩家会感谢你的。

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

Design Tips When Porting Mobile to Console

by Nathan Fouts

The Ouya game console officially launches June 4th, but has already been sending out Kickstarter backer versions. The game store itself is live. I’ve had a dev kit console for some time and have been working on an original game for it called Pig Eat Ball. I’m interested in this console, am making a game for it, and want it to do well. It’s a low cost console, but doesn’t need to come off as cheap. What can make it look cheap and neglected? Quick ports.

Let’s turn those shoddy port faces upside down.

Obviously since the Ouya is Android-based many developers have ported their existing games from mobile over to the Ouya. This is fine and many of these games are very polished like Knightmare Tower, Beast Boxing Turbo, and Gun Slugs.

After playing lots of games currently on the Ouya store, I’ve been seeing a trend in which a few irksome issues keep cropping up. Here is a simple checklist for developers to consider before releasing games to console. This in general could apply to all mobile-to-console, but I’m specifically thinking of the Ouya (could be for GameStick, others too).

Analog controller sticks require a dead zone. Many, many, many games I’ve played on the Ouya store have a ‘drift’ in their controls. It’s extremely annoying, especially considering most games on the system currently are action games requiring precision input.

It usually manifests by tapping the left analog stick to move, and after releasing the stick, the character/cursor/etc continues to move in that same direction.

This is easy to fix–in the code, when you get the X,Y back from the left analog stick, measure the distance of this vector and if it’s less than a certain amount, disregard the stick press.

I’m pretty sure there’s even example code on the Ouya dev site, but I’ll present some here just in case.

static private float stickMag(float axisX, float axisY
{
float stickMag = (float) Math.sqrt(axisX * axisX + axisY * axisY);
return stickMag;
}

The float returned from the stickMag function will tell you the length of the vector made by the left stick input. It should be between 0 and 1.0f. The Ouya controllers are pretty gummy, so try making the dead zone fairly large like 0.35f. That is, all input lower than 0.35 in length is ignored.

Make a selected menu option >>obviously<< different from the other options. Being presented with two options such as an in-game store “Buy” “Cancel” and seeing one yellow and one white is not helpful. Some games will say yellow is the selection and some will say white. Simple color coding is not intuitive and it’s easy to fix.

There are many simple ways to show something is the current menu option that is selected.

Consider:

Drastically increase the size of the text.
Put a special background behind the selected text
Put a special pointer graphic off to the left
Pulse the scale of the selected text
Put some simple particle effects on the selected text

Quick–save her! But do you have the right one selected?
Support both analog stick and d-pad input for character movement and menus. Especially on menus but also in the game. It’s just common courtesy to allow for input for both. Some people like to play with the left stick and some like the dpad. I’ve played games that for some reason only allow d-pad input on the menus. I’ve also seen games that would work fine with d-pad in the game, but only allow the left analog stick on menus (in games where the choice of stick/d-pad really didn’t matter. Yes I understand it’s possible it could important in a game, but it’s very common that the game would be fine with either input).

Remove mentions of touch/mobile controls. Seeing things like “Tap the screen to continue” or “Press here to continue” when that function is not supported anymore in your game looks rushed and sloppy. Remove all “tap”, “swipe” terminology from your game unless it’s actually using the mini-touch-pad as the only input.

Please don’t make us do this.

Even if it *is* supported to allow the player to tap a portion of the screen to continue on a menu, the touch pad is a chore to use. Support button input, and show button tool-tips.

Remove HUD graphics that are obviously just left over from the mobile version. Based on real examples I’ve played: When the O button on the Ouya makes the main character shoot, don’t leave a big button on the HUD, taking up space, that lets you shoot if you manage to click on it via the touch pad. Sure it’s technically possible to click on the button to shoot, but it’s very ineffective and the game already has a button on the controller dedicated to that action. It’s just wasting screen space, and again looks sloppy.

Don’t leave the || (pause button) on the screen as *the* way to pause the game via the touch pad. It’s terribly slow to try to pause like that. Use the Ouya system button or another face button.
Please put an Exit option in the game. Yes the Ouya system button can do this, but you can just as easily present the player with a simple option to turn off the game if they’d like to do so.

Remove unused manifest settings. This may be an Ouya system issue, but I’ve seen some games that when installed prompt that they may need to make phone calls. I’m pretty sure the Ouya can’t make phone calls, but if it can, is your game really making calls? The ones I saw with this requested never made calls. If it’s not needed, just remove it–it looks sloppy.

First and foremost–please, PLEASE use a dead zone on your left analog stick input. If you’ve taken anything from this article, go to your code now, and implement a dead zone. Now. This is really bad, as it’s making your play experience worse.

Everything else on the list is good too. Basically it means you really cared about bringing your awesome game to new people. No one likes a sloppy port. No one wants to see “Press Start” in their PC games when they don’t support controller input, and no one wants “Tap Screen to Continue” in their console games.

They want to think the neat, new game they are considering purchasing was made special just for their system, just for them. You worked really hard on your game. Ports are annoying–I know from experience. Put in that extra effort, clean up your game some more, and make it a AAA port. Good luck! Gamers will thank you.(source:gamasutra)


上一篇:

下一篇: