如何设计出一个优秀的Platformer三消游戏关卡设计教程

PLATFORMER PRO二维动作游戏完整专案UNITY游戏素材资源 UNITY ASSET PLATFORMER PR... - 游戏素材 - 人人素材社区 - Powered by Discuz!
只需一步,快速开始
后使用快捷导航没有帐号?
所属分类: &
本版主题: 2339
今日更新: 15
游戏原画 游戏插画 游戏贴图 游戏模型 游戏制作 游戏素材版块说明:
1:游戏素材精华版块收录了各类游戏相关素材,包含游戏原画,模型,场景,贴图,特效等资源,为设计师提供丰富灵感;
2:本版资源均为人人官方音乐素材小组整理发布,申请加入请点击;
3:查看隐藏内容需要实习天使级别,免费升级用户组请点击;
4:密码需要CG币,免费得到CG币请点击;
PLATFORMER PRO二维动作游戏完整专案UNITY游戏素材资源 UNITY ASSET PLATFORMER PR...
TA的每日心情奋斗 20:56签到天数: 44 天[LV.5]常住居民I&成长值: 2800
PLATFORMER PRO二维动作游戏完整专案UNITY游戏素材资源.jpg (58.26 KB, 下载次数: 6)
12:42 上传
本合辑是个关于PLATFORMER PRO二维动作游戏完整专案UNITY游戏素材资源,大小:1.1 GB,包含21组Unity3D扩展资料,供广大设计师学习使用,语言:英语。
Unity3D是一个让你轻松创作的多平台的游戏开发工具,是一个全面整合的专业游戏引擎。Unity代表了一个质的飞跃——内置的光照贴图(lightmapping)、遮挡剔除(occlusion culling)和调试器。编辑器经过彻底革新,让你可以获得卓越的性能体验。不可思议、无法阻挡的产品已经看到了曙光。
Unity是一款跨平台的游戏开发工具,从一开始就被设计成易于使用的产品。作为一个完全集成的专业级应用,Unity还包含了价值数百万美元的功能强大的游戏引擎。Unity 4作为一个游戏开发工具,它的设计主旨就是让你能够创建令人惊讶的游戏。如果你之前尝试过Unity,请查看Unity 3都做了哪些更新。如果你是第一次尝试,那就好好看看吧,看Unity都能为你带来什么。Unity作为一种开发环境,可让你脱离传统的游戏开发方式,以一种更简单的方式专注于你的游戏开发。开发网络游戏、移动游戏、单机游戏,Unity都能完全胜任。
更多相关内容请关注:
UNITY ASSET PLATFORMER PRO V1.1.5
Version: 1.1.5 (Aug 08, 2016)
Originally released: 26 August 2015
Package has been submitted using Unity 4.6.9, and 5.3.5 to improve compatibility within the range of these versions of Unity.
Requires Unity 4.6.9 or higher.
Package Contents
2DPlatformerPro
OfflineDocumentation.pdf
Prefab_FadingDescriptionText.prefab
Prefab_ImageMenuItem.prefab
Prefab_ImageMenuItemNotVisible.prefab
Prefab_InputOverlay.prefab
Prefab_MultiPlatformInput.prefab
Prefab_SimplePauseMenu.prefab
Prefab_SimplePauseMenuTwo.prefab
ReleaseNotes.txt
AlienSample
ArtCredits-Alien.txt
Background
bg_castle 1.png
bg_castle 2.png
bg_castle.png
bg_desert 1.png
bg_desert.png
bg_grasslands 1.png
bg_grasslands.png
bg_shroom 1.png
bg_shroom.png
cactus.png
cloud1.png
cloud2.png
cloud3.png
hill_large.png
hill_largeAlt.png
hill_small.png
hill_smallAlt.png
pineSapling.png
pineSaplingAlt.png
Animator_2D_AlienEnemyBee.controller
bee_dead.png
Bee_Death.anim
Bee_Fly.anim
bee_fly.png
bee_hit.png
GreenSlime
Animator_2D_AlienEnemySlime.controller
slimeGreen.png
slimeGreen_dead.png
slimeGreen_squashed.png
slimeGreen_walk.png
Slime_Death.anim
Slime_Walk.anim
ItemsAndUI
AlienSample_RoadsAndWater.png
buttonGreen.png
buttonGreen_pressed.png
buttonRed.png
buttonRed_pressed.png
buttonRound_beige.png
buttonRound_grey.png
coinGold.png
FontAsSprite.png
gemBlue.png
hud_heartEmpty.png
hud_heartFull.png
hud_heartHalf.png
hud_p3.png
keyBlue.png
keyGreen.png
keyRed.png
keyYellow.png
signExit.png
signLeft.png
signRight.png
tochLit.png
tochLit2.png
treeLarge.png
treeSmall.png
alienPink.png
alienPink_climb1.png
alienPink_climb2.png
alienPink_duck.png
alienPink_hurt.png
alienPink_jump.png
alienPink_stand.png
alienPink_swim1.png
alienPink_swim2.png
alienPink_walk1.png
alienPink_walk2.png
Animator_2D_PinkAlien.controller
PinkAlien_Airborne.anim
PinkAlien_ClimbDown.anim
PinkAlien_ClimbHold.anim
PinkAlien_ClimbUp.anim
PinkAlien_Crouch.anim
PinkAlien_CrouchWalk.anim
PinkAlien_Death.anim
PinkAlien_Fall.anim
PinkAlien_Idle.anim
PinkAlien_Jump.anim
PinkAlien_Stunned.anim
PinkAlien_StunnedOverride.anim
PinkAlien_Swim.anim
PinkAlien_SwimStroke.anim
PinkAlien_Walk.anim
Animator_2D_AlienEnemySnail.controller
Snail-Die.anim
Snail-Fall.anim
Snail-Hide.anim
Snail-Walk.anim
snail_shell.png
snail_walk.png
AlienSample_EnemySpinner.controller
AlienSample_EnemySpinnerHalf.controller
AlienSample_SpinnerHalfSpin.anim
AlienSample_SpinnerSpin.anim
spinner.png
spinnerHalf.png
spinnerHalf_dead.png
spinnerHalf_hit.png
spinnerHalf_spin.png
spinner_dead.png
spinner_hit.png
spinner_spin.png
boxAlt.png
boxCoin.png
boxCoin_disabled.png
castle.png
castleCenter.png
castleCliffLeftAlt.png
castleCliffRightAlt.png
castleMid.png
door_closedMid.png
door_closedTop.png
door_openMid.png
door_openTop.png
flagRed.png
flagRedHanging.png
grassCenter.png
cd127de7-519b-48f5-be86-2a_scaled.jpg (30.96 KB, 下载次数: 6)
12:44 上传
b2bcbb99-80e5--ecffc5b733df_scaled.jpg (42.38 KB, 下载次数: 6)
12:44 上传
714cb79a-e21c-4a69-92df-11c86e0191c4_scaled.jpg (30.49 KB, 下载次数: 6)
12:44 上传
69f73733-7fce-418f-87b3-85fdaa911cd4_scaled.jpg (37.82 KB, 下载次数: 6)
12:44 上传
30e6868d-d1f7-4f54-9fa6-f6_scaled.jpg (52.96 KB, 下载次数: 6)
12:44 上传
14a1c4a3-109e-4edf-843f-66dcdaa4f7fd_scaled.jpg (45.36 KB, 下载次数: 6)
12:44 上传
6b1c31f8-e4c2-48c3-8a63-0c4ae6a8c82d_scaled.jpg (52.61 KB, 下载次数: 6)
12:44 上传
游客,如果您要查看本帖隐藏内容请
更多相关内容请关注:
TA的每日心情开心25&分钟前签到天数: 394 天[LV.9]以坛为家II
回帖奖励 +2
TA的每日心情开心8&小时前签到天数: 264 天[LV.8]以坛为家I
回帖奖励 +2
TA的每日心情慵懒昨天&20:37签到天数: 163 天[LV.7]常住居民III
回帖奖励 +2
非常好,二次元有前途
TA的每日心情无聊 15:29签到天数: 121 天[LV.7]常住居民III
回帖奖励 +2
很好很强大
TA的每日心情开心 00:37签到天数: 15 天[LV.4]偶尔看看III
回帖奖励 +2
很棒的資源,感謝樓主分享!
TA的每日心情开心昨天&13:04签到天数: 443 天[LV.9]以坛为家II
谢谢共享啦。。。。。。。。。。。
TA的每日心情开心昨天&18:00签到天数: 997 天[LV.10]以坛为家III
谢谢楼主的分享
TA的每日心情开心昨天&08:55签到天数: 567 天[LV.9]以坛为家II
哇!这个好!
谢谢分享!
TA的每日心情擦汗昨天&19:18签到天数: 329 天[LV.8]以坛为家I
谢谢分享!
TA的每日心情无聊昨天&06:34签到天数: 130 天[LV.7]常住居民III
收藏。。。。。。。。。。。。。。
TA的每日心情开心昨天&11:36签到天数: 338 天[LV.8]以坛为家I
谢谢楼主的无私奉献!!!
TA的每日心情开心昨天&00:16签到天数: 83 天[LV.6]常住居民II
很棒的資源,感謝樓主分享!
TA的每日心情慵懒前天&23:22签到天数: 441 天[LV.9]以坛为家II
感谢分享!!!
怎么下载啊 发啊发
社么是啊发 啊发个
群主,看看全部的啊 的啊发
该用户从未签到
发表于 6&天前
哈哈哈,不错,学习了
TA的每日心情郁闷4&天前签到天数: 1 天[LV.1]初来乍到
发表于 4&天前
效果这么酷炫
大家好!人人素材网第91期中文字幕翻译教程来啦!
教程简介:
3ds Max以它的建模和渲染工具著称。3ds Max的这些功能在建筑,制造,游戏开发,工业设计和制作动态图形中都可以使用。3ds Max中有很多功能和技术需要我们去学习:从简单的雕刻和制作纹理到进阶的用光和渲染。本教程从3ds Max的基础讲起,为我们概述软件所有的功能,以及3D艺术家在专业建模和制作动画中需要用到的必要技能。学习使用3ds Max的界面并自定义设置,符合自己的工作流程。课程中我们会学习如何使用样条曲线,NURBS,多边形,细分曲面,和Paint Deform一类的工具建模。然后学习如何构建层级结构,为场景添加摄像机和灯光,并使用关键帧制作动画。讲师Aaron F. Ross还会为我们讲解材料和纹理映射,以及3ds max 2017的渲染选项,包括新开发的Autodesk光线追踪器(ART)渲染器。
大家好!人人素材网第92期中文字幕翻译教程来啦!
教程简介:
本套教程是制作人Amy 与剪辑师Luisa共同制作的,Amy是一名制片人、编剧兼导演,以制作广告片和剧情电影起家,然后转向制作非虚构类作品,现在主要制作大型节目,还制作很多移动端的视频(微电影),Luisa从事剪辑工作30年,剪辑了很多广告片、纪录片和宣传片等等,目前的工作偏向教育,更加关注制作领域。教程内容很多,有很多的后期制作环节的讲解,从制作到后期,就是本教程的核心内容。两人都制作过上百个视频项目 ,会为大家提供很多实用的技巧和知识,让你的工作更加高效,有创意。如今我们需要在拍摄前,就把团队整合到一起,为后期做好计划,学习相互沟通,在拍摄和后期,都要带着剪辑的思维去工作,所以这套教程是电影人必看的进阶教程。
大家好!人人素材网第93期中文字幕翻译教程来啦!
教程简介:
本套教程来自于Scott hirsch,讲述的是处理视频中的音频,也就是音频后期技巧教程。如果你想要得到更好的声音,就适合本教程,或者是作为音频工程师,渴望了解如何配合视频,那么这个教程也大有裨益!我会讲解简单的技巧,提高纪录片或者剧情片中的声效效果,会用成片和样片做案例,了解什么的音频后期流程是最合适的,我们会学习各种各样采集声音的绝佳方式,在音频剪辑软件中,看看到底可以走多远,还有很多专门的处理软件要学习,学习怎样专业的把音频文件发送到后期制作公司,还会说下降噪等等处理方法,剪辑技术和特效,让声音更加的平滑,如果你想提升声音效果,那就来对地方了,一起开始学习吧!
大家好!人人素材网第94期中文字幕翻译教程来啦!
教程简介:
本套教材是来自DT的,简明易懂的入门标准教程,我们会先学习工作界面和软件设置,熟悉制作flash的工具和各种面板,然后再学习常用的初级形状工具,以及不同的使用方法。同时运用强大的绘画工具,配合不同的参数选项和风格样式,绘制赏心悦目的图案元素,同时学会根据实际情况选择合理的工具进行设计。了解导入不同格式文件进行操作,确保工作流程的兼容性。最后在动画部分,会重点介绍时间线面板和调整的方法。最后的最后,我们会学习给形状元素做动画效果,了解过滤器和特效,给自己做一个幽默有趣的外星人入侵地球的有趣动画!教程深入浅出,把flash的主要功能都做了介绍,是一个入门的好帮手!1276人阅读
cocos2d-x 3.0(46)
本教程建立在上一篇教程的基础之上,所以,在继续之前,建议你先看完《使用cocos2d-x3.0和物理引擎制作滚动背景》。
我将在本教程中覆盖下面的内容:
简单的面向对象游戏设计
用户输入和touch检测
给游戏对象施加力,使之移动和跳跃
简单的面向对象设计
这个教程是个非常简单的平台游戏,只有一些简单的平台和一个圆形的主角。说明一下,我在这里使用的是上一个教程中的TileMap编辑器来制作游戏地图的,所以,你可以参照上一篇教程。本游戏示例中只有两种对象。一种是player对象,另一种是platform对象。这两种对象都继承至GameObject类。而GameObject类又继承至Sprite类,同时它包含一个type属性,用来区分不同的游戏对象。把游戏对象都继承至同一基类有一个好处,就是在做碰撞检测的时候,可以直接强制转换过来。
下面是GameObject类的代码,它从Sprite类继承过来的。同时把它的type初始化为kGameObjectNone。(这是一个枚举类型,它定义在Constants.h中,本教程不会显示它的实现,但是大家可以在后面下载的源码中找到其实现)
// GameObject.h
#include &cocos2d.h&
#include &Constants.h&
USING_NS_CC;
class GameObject :public Sprite
GameObjectType
virtual bool init();
CREATE_FUNC(GameObject);
////////////////////////////////////////////////////////
// GameObject.cpp
#include &GameObject.h&
bool GameObject::init()
if (!Node::init())
return false;
return true;
接下来是我们的Player类。
Player主要负责创建它自己的box2d世界中的body,当你调用createBox2dObject的时候,就会创建相应的body,同时把它加到world中去。同时,player类还包含使player往右移动和跳跃的方法,我们会在教程的后面讨论。
#include &cocos2d.h&
#include &GameObject.h&
USING_NS_CC;
class Player :public GameObject
PhysicsBody* body;
void createdObject();
void jump();
void moveRight();
virtual bool init();
CREATE_FUNC(Player);
///////////////////////////////////////////////////////
#include &Player.h&
#include &Constants.h&
bool Player::init()
if (!GameObject::init())
return false;
return true;
void Player::createdObject()
body = PhysicsBody::createCircle(0.7f);
body-&getShape(0)-&setRestitution(1.0f);
body-&getShape(0)-&setFriction(1.0f);
body-&getShape(0)-&setDensity(1.0f);
body-&setRotationEnable(false);
this-&setPhysicsBody(body);
void Player::moveRight()
Vect impulse = Vect(50.0f, 0.0f);
body-&applyImpulse(impulse);
void Player::jump()
Vect impulse = Vect(0.0f, 100.0f);
body-&applyImpulse(impulse);
/ Touch检测
下面几行行代码定义在GameScene的onEnter方法中
void GameScene::onEnter()
Layer::onEnter();
auto listener = EventListenerTouchOneByOne::create();
listener-&setSwallowTouches(true);
listener-&onTouchBegan = CC_CALLBACK_2(GameScene::onTouchBegan, this);
auto contactListener = EventListenerPhysicsContact::create();
contactListener-&onContactBegin = CC_CALLBACK_2(GameScene::onContactBegin, this);
auto dispatcher = Director::getInstance()-&getEventDispatcher();
dispatcher-&addEventListenerWithSceneGraphPriority(listener, this);
dispatcher-&addEventListenerWithSceneGraphPriority(contactListener, this);
下面的方法是在你鼠标点击模拟器或者手触摸设备屏幕的时候被调用的,也就是touch事件。我们需要把touch坐标点转换成cocos2d的坐标点。然后,我们判断,当单击的点在右半屏幕的时候,就让player往右移动。当单击左半边屏幕的时候,就让player跳起来。可以跳到platfrom上哦,呵呵。如果在下面起跳,会撞到头。这可能不是我们想要的结果。
bool GameScene::onTouchBegan(Touch *touch, Event *event)
Point touchLocation = this-&convertToWorldSpace(this-&convertTouchToNodeSpace(touch));
if (touchLocation.x &= screenSize.width / 2)
player-&moveRight();
player-&jump();
return TRUE;
给游戏对象施加力,使之移动和跳跃
void Player::moveRight()
Vect impulse = Vect(50.0f, 0.0f);
body-&applyImpulse(impulse);
void Player::jump()
Vect impulse = Vect(0.0f, 100.0f);
body-&applyImpulse(impulse);
and Loose Ends
下面是GameScene类的实现。这里面使用的技术大家应该都接触过了,如果不清楚,可以参考我翻译的其它教程,或者在下方留言。可能需要指出来的是碰撞检测的代码,大家可以花点时间看看。
GameScene.h
#include &cocos2d.h&
#include &Player.h&
USING_NS_CC;
class GameScene :public Layer
Size screenSize;
PhysicsWorld* m_
TMXTiledMap* tileMapN
void setPhyWorld(PhysicsWorld* world){ m_world = world; };
void makeBox2dObjAt(Point p, Size size, bool d, float r, float friction, float density, float restitution);
void drawCollisionTiles();
void addScrollingBackgroundWithTileMap();
void virtual update(float dt);
static cocos2d::Scene* createScene();
virtual bool init();
virtual void onEnter();
bool onTouchBegan(Touch *touch, Event *event);
bool onContactBegin(EventCustom* event, const PhysicsContact& contact);
CREATE_FUNC(GameScene);
GameScene.cpp
#include &GameScene.h&
Scene* GameScene::createScene()
// 'scene' is an autorelease object
auto scene = Scene::createWithPhysics();
//scene-&getPhysicsWorld()-&setDebugDrawMask(PhysicsWorld::DEBUGDRAW_ALL);
/*Vect gravity(0.0f, -600.0f);
scene-&getPhysicsWorld()-&setGravity(gravity);*/
// 'layer' is an autorelease object
auto layer = GameScene::create();
layer-&setPhyWorld(scene-&getPhysicsWorld());
// add layer as a child to scene
scene-&addChild(layer);
// return the scene
return scene;
bool GameScene::init()
if(!Layer::init())
return false;
// enable touches
screenSize = Director::getInstance()-&getWinSize();
this-&addScrollingBackgroundWithTileMap();
this-&drawCollisionTiles();
player = (Player*)Sprite::create(&Icon-Small.png&);
player-&retain();
player-&setPosition(100.0f, 180.0f);
player-&createdObject();
this-&addChild(player);
// Start main game loop
this-&scheduleUpdate();
return true;
void GameScene::makeBox2dObjAt(Point p, Size size, bool d, float r, float friction, float density, float restitution)
auto sprite = Sprite::create();
auto body = PhysicsBody::createBox(size, PHYSICSBODY_MATERIAL_DEFAULT);
body-&getShape(0)-&setDensity(density);
body-&getShape(0)-&setFriction(friction);
body-&getShape(0)-&setRestitution(restitution);
body-&setDynamic(d);
sprite-&setPosition(p);
sprite-&setPhysicsBody(body);
this-&addChild(sprite);
void GameScene::drawCollisionTiles()
TMXObjectGroup *objects = tileMapNode-&objectGroupNamed(&Collision&);
float x, y, w, h;
ValueVector objectsPoint = objects-&getObjects();
Value objPointMap;
for each(objPointMap in objectsPoint)
ValueMap objPoint = objPointMap.asValueMap();
x = objPoint.at(&x&).asFloat();
y = objPoint.at(&y&).asFloat();
w = objPoint.at(&width&).asFloat();
h = objPoint.at(&height&).asFloat();
Point _point = Point(x + w / 2.0f, y + h / 2.0f);
Size _size = Size(w, h);
this-&makeBox2dObjAt(_point, _size, false, 0, 0.0f, 0.0f, 0);
void GameScene::addScrollingBackgroundWithTileMap()
tileMapNode = TMXTiledMap::create(&scroller.tmx&);
tileMapNode-&setAnchorPoint(Point(0, 0));
this-&addChild(tileMapNode);
void GameScene::update(float dt)
Point pos = player-&getPosition();
this-&setPosition(-1 * pos.x + 100, this-&getPositionY());
void GameScene::onEnter()
Layer::onEnter();
auto listener = EventListenerTouchOneByOne::create();
listener-&setSwallowTouches(true);
listener-&onTouchBegan = CC_CALLBACK_2(GameScene::onTouchBegan, this);
auto contactListener = EventListenerPhysicsContact::create();
contactListener-&onContactBegin = CC_CALLBACK_2(GameScene::onContactBegin, this);
auto dispatcher = Director::getInstance()-&getEventDispatcher();
dispatcher-&addEventListenerWithSceneGraphPriority(listener, this);
dispatcher-&addEventListenerWithSceneGraphPriority(contactListener, this);
bool GameScene::onContactBegin(EventCustom* event, const PhysicsContact& contact)
return true;
bool GameScene::onTouchBegan(Touch *touch, Event *event)
Point touchLocation = this-&convertToWorldSpace(this-&convertTouchToNodeSpace(touch));
if (touchLocation.x &= screenSize.width / 2)
player-&moveRight();
player-&jump();
return TRUE;
这里有本教程的。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:118728次
积分:1665
积分:1665
排名:第19789名
原创:41篇
转载:41篇
评论:26条
(1)(2)(49)(4)(6)(2)(1)(17)多人游戏关卡设计干货:用地图去吸引玩家
来源:游戏陀螺
  控制单人玩家的关卡设计方法已经广为人知的准则,但多人游戏的关卡设计方法与单人游戏不同,必须遵循特定的架构。那么,优秀的多人游戏关卡设计是怎样的?与单人游戏关卡设计又有什么不同?
  技术局限性
  第一个技术壁垒就是让人深恶痛绝的宽带限制。一部游戏设备也许功率极大,能够处理庞大的信息,但假如它连接到其他设备的“通道”变窄或者被掐断,那它就无从与对方流畅 地交换信息,从而导致游戏速度下降甚至无法进行。
  多人游戏有哪些环节最消耗网络带宽?首先就是角色的动作和动画效果。在大部分多人FPS游戏中,角色的动画效果都很有限,它们的主要动作无非就是跑、跳或蹲。但对《分裂细 胞》这种多人游戏来说,丰富的动画效果却是其核心魅力所在。
  游戏中的角色可以捕捉对方,耍些杂技,彼此攻击等等。这种丰富的动画效果非常占用带宽。但我深信这种高质量的动画效果在未来的多人游戏中将更为普遍,因为它们不但可让 游戏呈现更多真实感,而且还扩展了游戏玩法,《分裂细胞》中的对抗模式便能体现这一点。
  特效元素也很占用带宽,例如爆炸场景中的颗粒效果、关卡中的动态事件。后者属于地图动画效果,比如说起重机、电梯的移动,或者墙壁的爆炸。如果要与这些事件进行互动(注:例如向电梯间扔一枚手榴弹或者让一名角色站在移动的物体上),那么地图上这些移动内容的精确位置就必须挨个衔接在一起。在此,我也深信未来多人游戏的地图会 包含更多特效和地图动画元素。
  特效在游戏中可不只是起点缀作用而已。它们可用制造错觉,暗化或亮化游戏环境等。总之它们对游戏玩法的贡献不容忽视。
  地图事件的情况也同样如此。《分裂细胞3:混沌理论》中的多人地图广泛采用了这些元素。例如在Aquarius地图中,关卡设计师在一个上锁的门旁设置了一个可爆破的通风格子窗 ,它后面隐藏了一个地图任务目标(如下图所示)。假如守卫在这个格子窗旁边用手榴弹解决了一个敌人,那么他就可以同时摧毁格子窗,并为后者开辟实现其目标的捷径。
  从这一点上看来,地图事件的建设性用法可以通过改变地图布局和防守的策略,引进新的游戏玩法。《分裂细胞3:混沌理论》和《分裂细胞2:潘朵拉计划》就大量采用了这种互 动性,用这些特效丰富了游戏玩法。
  游戏设备之前的信息交流与参与游戏的玩家数量成正比。网络带宽瓶颈带来的直接影响之一就是,我们设计游戏时需将玩家数量和游戏内容丰富程度(注:例如动画效果、 特效、地图引导等)这些因素考虑入列。
  第二个技术局限性就是游戏事件的同步性。在动作类游戏中,如射击等关键事件的同步性,直接决定游戏质量的高低。同步性问题也是招致许多玩家不满的主要原因之一。当一名 高手级的玩家将光标指向其瞄准对象并扣动扳机时,他当然希望子弹准确无误地命中目标,稍有半秒钟的延时都会让他感到不快。资深玩家已经摸透了游戏特点,假如游戏系统并 未像他们预想的那样迅速作出反应,他们就会产生一种“受骗”之感。Xbox平台上的《命运战士》等一些游戏很巧妙地处理了这个问题。
  第三个技术局限性就是失去对玩家下一步行动的控制。假如过多玩家同一时间扎堆聚集在地图上的同个地点,并在该区域进行轰炸,生成大量的地图事件,那么游戏设备之间的交 流信息就会过于膨胀,而图像的刷新率也会大幅下跌。
  单人游戏并不存在这个问题,因为其关卡设计师可以在地图上均衡分配那些可能会降低设备运行速度的事件。但在多人游戏关卡中,什么事情都有可能发生。设计师很难避免玩家 因超载的CPU和带宽而让游戏被卡的现象,但优秀的关卡设计可以通过鼓励玩家分布到地图上的不同区域,最小化此类超载现象带来的风险。
  地图设计失误及漏洞
  现在我要区分一下单人游戏与多人游戏地图设计的主要不同之处。在单人游戏中,玩家经历一个关卡时心里只有一个目标,实现目标然后闯入下一关。他每一关都不需要耗费太长 时间。但在多人游戏中,每个地图聚集了大量玩家,他们在其中投入了成百上千个小时,地图中的纰漏也因此无所遁形。
  因此,玩家很容易钻设计失误和漏洞的空子,在游戏中采取作弊手段,并与其他玩家交换这些信息。过度使用地图功能的另一个结果就是,假如地图设计缺乏丰富的策略,玩家很 快就会失去兴趣。多人游戏地图必须避免经得起玩家成百上千个小时的游戏体验,不可让他们心生厌倦。《分裂细胞2:潘朵拉计划》发布一年后,每天仍有成千上万玩家光顾其多 人游戏模式,它和《光晕2》都可以算是地图设计的成功典型。
  玩家追求高效游戏策略
  多人关卡设计的第三个典型局限性体现在这种游戏类型特有的高度竞争性注:多人协作模式例外)。多人游戏的本质是摧毁竞争对手,这就要求玩家找到最有效的制敌策 略。但在单人游戏中,玩家一般都希望根据自己的节奏探索游戏中的内容。
  这种多人游戏特点会造成什么结果?首先,玩家可能会完全忽略了游戏中的许多功能(例如,武器、动画、地图特效功能等),即使这些功能也真的很强大。他们只会去选择那些 最有效率的功能。
  第二个结果就是,它是玩家作弊动机的来源,或者诱使玩家利用地图中的漏洞让自己获益。这个问题甚至还导致大量多人游戏的难度分级系统失效。
  难以说服普通玩家参与多人游戏
  第四个局限性就是难以说服普通玩家参与多人游戏。原因很简单――没有人愿意反复在其他玩家面前丢脸输掉游戏。与人类竞争对手玩游戏当然更有紧迫感和刺激感,但也会增加 新手级玩家的心理压力。
  我们很难让菜鸟级玩家同时应对三项挑战:控制用户界面,了解地图情况,制定游戏策略。因此有许多游戏根据玩家级别设置了难度分级系统,但多数游戏仅为初学者提供了一些 不完整的解决方案。
  就目前来看,多人游戏主要还是硬核玩家的天下。如果我们想让多人游戏摆脱这种用户局限性,那就必须在设计游戏时就考虑到普通玩家的需求,而不是事后再迁就他们。
  玩家社区的影响力
  最后的一个主要局限性就是玩家社区的份量。多人游戏的存在得益于其玩家群体的支持,后者十分渴求游戏的新内容(新关卡),他们希望游戏不断完善,并提供更多适合自己玩 法的竞争元素等。因游戏而生的玩家社区地开发者和发行商帮助极大,但游戏开发过程中就必须考虑到这个因素。
  优秀多人关卡地图设计应当克服以下3个挑战:
  1、耐用性。地图可以玩上数千次而不让玩家感到乏味。地图必须持续提供战术挑战。
  2、易用性。地图中的导航应当清晰。记住,对于新玩家来说,复杂的地图设计本身就是个难题。
  3、娱乐性。这个需求是显而易见的,但是却很难确定其规则。
  挑战1:耐用的地图
  先来分析地图的耐用性。哪些关卡设计规则可以克服这项挑战呢?
  1、我首先要推荐的是,合理使用第三维度,这或许也是最为重要的规则。利用和开拓地图的垂直维度,给予玩家使用地图容积的理由,不要单纯使用二维布局。
  以下范例是出现在《细胞分裂:明日潘多拉》和《细胞分裂:混沌理论》中的博物馆地图。运用这个规则,可以在这个中型房间中利用移动和伪装创造出丰富的游戏玩法。玩家可 以在地图中垂直移动,比如攀爬楼梯和柱子,或从高处跳下。房间中还有许多可供玩家藏匿的物体,也可以利用这些物体来弹射手榴弹。
  (《细胞分裂:明日潘多拉》和《细胞分裂:混沌理论》中的博物馆地图合理利用了第三维度。)
  这个规则也可以运用到外部场景中,比如在《战地》的地图中,玩家可以爬上屋顶、起重机或高塔,也可以乘坐飞行交通工具。
  2、接下来,我要推荐的方法是,构建开放地图,增加玩家可以选择的移动路径。仓库、工厂或其他类型的建筑可以使用这种类型的地图。
  以《细胞分裂:明日潘多拉》和《细胞分裂:混沌理论》多人版中发布的Deftech地图为例。虽然内庭院的设计简单,但是玩家的移动路径选择非常多。地图中包含3个主移动路径 ,分别是院子、人行桥和集装箱顶,还有2个次移动路径――地下网状隧道和庭院上空的电缆。这些不同的移动路径丰富了移动可能性,从而增加了可采用的战术数量。因而, Deftech庭院成为死亡竞赛粉丝最钟爱的地图之一。
  细胞分裂:明日潘多拉》中Deftech地图庭院显示户外场景中同样可以创造垂直移动。
  3、增加地图中事件的数量,尤其是那些让玩家改变策略的事件。《细胞分裂:混沌理论》中的Aquarius地图便是事件使用的绝妙例证。在我的上篇文章中,我解释过在这个地图中 防御者某些不妥的动作可能为攻击者的渗透提供新的机遇。然而,Aquarius还提供了其他直接影响玩家战术的地图事件。
  攻击者每次到达地图中的任务目标时,他们都会触发对防御者不利的地图事件,比如释放烟雾、门锁开启和灯光熄灭等。《细胞分裂:混沌理论》中所有的地图都带有此类互动, 其中有两个地图还可以用于《细胞分裂:明日潘多拉》中。调查显示,玩家确实很欣赏这种额外维度的游戏玩法。
  游戏设计本身必须为地图的耐用性做出贡献,可以通过设定关卡设计中特别元素的功能来实现。在《孤岛惊魂》多人版的Assault模式中,工程师可以在预定地点构建防御工事或炮 塔。当关卡设计为这些战术性举措提供施展地点时,游戏设计就变得更有意义。炮塔可以防守路口,墙体可以阻挡进攻口,这样防御者就可以将注意力集中在敌人的其他进攻口上 。
  《细胞分裂:混沌理论》中Aquarius地图某房间出于正常状态下。光照充足,攻击者可以找到的藏身之处并不多。对防御者来说,这样的房间相对较安全。
  攻击者抵达任务目标之一后的房间状态。弥漫的烟雾使防御者的处境更加危险。
  挑战2:导航清晰的地图
  多人地图设计师需要克服的第2个挑战是易用性。对首次接触新地图的玩家来说,这是他们面临的主要问题,尤其是新手玩家。设计师需要明白,压力和游戏节奏会影响玩家对场景 做出恰当的分析。
  关卡设计师的目标就是,无论玩家身处地图何处都能够回答3个基本问题:我身在何处?我应当前往何处?我要如何到达目标地点?
  我身在何处?
  玩家应当可以通过观察周围的环境来判断当前所处位置以及在地图中的方位。在《细胞分裂:明日潘多拉》中,Krauser Labs地图有3个藏匿任务目标的房间。这些区域的装饰颜色 各不相同。因而玩家很容易就可以判断出自己的当前位置并找到合适的通道。
  在外景地图中,让玩家断定所处位置依然是件很简单的事情,可以通过增添远距离可视的场景元素,比如这个《光晕2》中的多人地图。
  第2种可以采用的技术是构建不对称地图或区域。我的团队中有个关卡设计师利用《细胞分裂:明日潘多拉》中的免费关卡编辑器制作了地图Long Run,地图平面倾斜,像是个巨大 的楼梯。通过自身位置与地图中其他楼层的对比,玩家就可以迅速明白自己所处的位置。
  在《光晕2》的这个地图中,所有地方可以看到塔,玩家很容易就能够判断出自己的位置。
  Long Run虽然复杂,但不对称设计使导航变得简单。
  第3种是在地图中设置清晰的障碍物,如下图所示。
  我应当前往何处?
  我们刚刚讨论了部分可帮助玩家判断自己在地图中位置的技术。现在我们来看看如何帮助玩家找到实现任务目标的方向。
  许多多人游戏都会要求玩家实现某种目标,比如获得旗帜、放置炸弹或攻击终端电脑。玩家应当能够通过简单地分析地图布局来识别和猜测目标的位置。
  应当运用2条规则:
  1、任务目标或相关场景元素应当是远距离可视物体
  2、任务目标本身应当与周围环境有显著的区别
  《战地》中的旗杆设计完美运用了这两条规则。如果游戏中的目标是放置炸弹之类的任务,可以在地点附近的物体上添加标志。
  《战地》中的游戏目标相当显眼。
  现在我们已经看到,户外游戏目标的设计相当简单。室内目标设计更为复杂,因为墙体会阻挡玩家的视线。这个问题的解决方案是,在地图布局和目标间创建显而易见的连接。比 如,地图分为3个区域,其中每个区域都含有一个目标。只要玩家掌握了这种规律,将其引向目标就变得更为容易。室内目标设计的第2个规则是,任务目标与周围环境有一定的差 别,这会直接将玩家引向目标。
  《细胞分裂:明日潘多拉》的Deftech地图成功运用了这些规则。任务目标分布在3个独立的建筑物中。它们都位于底层。虽然游戏的地图很大,但是在游戏测试中几乎没有出现导 航问题。我曾经观看过该地图的测试,发现玩家很快便学会导航,正确地找到任务目标。
  最后,我要说的是自己对使用图标来帮助导航的做法的看法。我们在《细胞分裂:明日潘多拉》和《细胞分裂:混沌理论》中大量使用这种方法,但它们的有效性确实值得商榷。 事实上,在室内地图中,图标指出的最短路径往往需要玩家穿墙。这些图标或许有一定用处,但并非导航问题的绝妙解决方案,而且满屏的图标可能会让玩家感到心烦意乱。
  我要如何到达目标地点?
  目标导航还有个挑战:帮助玩家理解他可以通过哪些途径到达任务目标地点。最佳的解决方案是,同时向玩家展示目标和到达目标地点的方法。方法之一是设计大小中等的地图, 让攻击者可以看到地图全景。下图便是River Mall地图,这是《细胞分裂:明日潘多拉》Xbox版本的流行地图,攻击者从首个区域顶端进攻。这样,他们可以看到有图标标志的任 务目标和通向目标的所有路径,包括楼梯和人行桥等。
  细胞分裂:明日潘多拉》和《细胞分裂:混沌理论》地图River Mall中,攻击者可以同时看到他们的游戏目标和获得路径。
  挑战3:有趣的地图
  对我们来说,最大的挑战是创造地图的趣味性。如果都采用上述部分描述的规则,那么所有地图之间将极为相似,但玩家希望在地图中看到惊喜和挑战。玩家的想法是,拥有大量 相似的地图还不如只有少量多样化地图。
  我的首个建议是,尽可能地让地图多样化。在《细胞分裂:混沌理论》中,我们将探索原创图像主题视为关键部分。Aquarius地图呈现的是海洋博物馆,Orphanage的场景是森林中 荒废的学校,Missile Strike的主题是古老的复杂地堡。
  但是,仅仅将图像主题多样化是不够的。各地图游戏玩法差异化设计也是必要的。幸亏我们在游戏设计方面有丰富的经验,为多人地图赋予不寻常玩法的目标才得以实现。每个地 图都会强迫玩家在作战中采用特定战术。以下内容总结了《细胞分裂:混沌理论》中某些地图游戏玩法方面的主要特征。
  《细胞分裂:混沌理论》发布1年后,没有一个地图被玩家抛弃。
  我的第2个建议是,在地图中设置只有对游戏精通才能发现的秘密或动作。地图的这个层面特别吸引资深玩家,而这正是游戏的目标用户。
  《孤岛危机》中有某些理想的狙击手隐蔽点,他们可以靠草木隐藏起来。在《细胞分裂:混沌理论》中,我们设计了某些特别地点,供间谍在执行最吸引人但最危险的攻击任务时 使用,比如将雇佣兵撞下人行桥。Factory地图的任务目标只有在两名攻击者合作开展动作才可以触及,这在Versus多人模式中是种危险的行为。
  我的第3个建议是规划许多地图事件,比如移动元素或可破坏背景物体。这些事件必须对游戏玩法目标做出响应,否则它们只是徒增地图视觉效果而已。我在阐述Aquarius地图时已 经提到了可以改变游戏玩法的地图事件,以下是其他可以使用的方法:
  在《细胞分裂:混沌理论》多人地图Club House中,攻击者正准备将防御者抛下栏杆。
  在Factory中,攻击者可以开动挖掘机毁坏墙壁,清理出前往新任务目标的路径(注:见以下屏幕截图)。除了看起来很壮观外,从游戏玩法的角度上说,这种类型的事件也 非常有趣。开动挖掘机就会使攻击者暴露在防御者的射程内,但是如果他的动作成功,那么就使防御者需要顾及的范围扩大,从而让队伍的胜利变得更加容易。
  在Club House中,攻击者可以通过摧毁悬空式天花板或升降地板来开辟新路径,但是这么做也会让防御者发现他们的位置,防御者可能会向他们抛手榴弹。在Bank中,攻击者可以 攻击主机来引起照明故障,让位于任务目标所处房间的防御者处于弱势。因为这些动作只能在主房间内做出,所以防御者必须做出艰难的选择:是防守这些次级目标,削弱任务目标的防御还是专注于防御后者,不顾对手的行为。
  在《细胞分裂:混沌理论》Versus模式多人地图Factory中,两个任务目标在游戏开始时无法获得。它们位于墙后。要摧毁墙,攻击者必须起动挖掘机。
  如上图,只要挖掘机起动,墙壁就会被攻破,攻击者可以触及两个新的任务目标,同时使防御者所需防御的空间增加30%。
  基本上,《细胞分裂:混沌理论》的所有地图和那些可下载地图都包含此类事件。这种设计得到玩家的高度认可,《细胞分裂:明日潘多拉》和《细胞分裂:混沌理论》开发商 Ubisoft Annecy studio在多人Versus模式中展现出关卡设计的天赋。
  协调性
  平衡性是指任何玩家或者群组都不能始终保持游戏中的优势,不论是利用游戏参数(例如武器的能量等)还是寻找地图上的漏洞。这一问题在多人游戏中特别明显,因为玩家会花 大把的时间于游戏中并因此能够找到这些漏洞,而让自己获得竞争优势。因为玩家已无数次玩遍地图,他们很容易从发现任何缺陷。
  地图漏洞可能会因此抹杀了整体地图的作用,而让玩家或群组够获得暂时的竞争优势。《细胞分裂2:明日潘朵拉》游戏中的仓库地图就出现了这种问题。这一地图中供划分了3块 领域,而第一游戏区旁边的小房间里是专门用于制造更多防御者。显然这个房间是专门留给防御者,所以攻击者不能够轻易靠近。
  但是在玩了几周的游戏后,我们发现攻击玩家找到了一个进入这个房间的技巧,即利用防御者走出房间的那个时刻。只要玩家能够进入房间,他们便能在防御者诞生时刻轻松地杀 掉他们。而这种漏洞会让游戏失去可玩性。幸运的是,很少玩家会这么做,因为地图上划分了不同区域,所以只要玩家完成了第一个区域的任务,他们便会自然地移动到下一个区 域。
  糟糕的游戏平衡性会让玩家对此失去兴趣,因为没有人会愿意与那些拥有倾斜优势的游戏角色抗争。但是我们还应该注意,平衡性并不是关卡设计中唯一需要重视的内容,游戏系 统和游戏设计也很重要。创造出一款平衡的多人游戏需综合考虑三大元素:关卡设计、游戏设计和游戏测试。
  关卡设计
  能够影响游戏平衡性的首个关卡设计方案是关于地图的尺寸以及它可容纳的玩家数量。小地图更难维持游戏的平衡,因为地图中任何微小的细节都会因玩家活动的密度和速度而加 倍放大。相反地,如果地图尺寸过大,玩家也会很容易感到厌烦,因为他们能够遇到的目标实在太少了。所以玩家的数量以及地图的尺寸之间的比例非常重要。大部分情况下,我 们总是会选择较大的地图。因为它们能够提供更多战术机遇,并且让玩家难以从地图漏洞中占到便宜。
  地图布局本身也能够维持游戏平衡性。开放性地图(如户外场景)以及三维空间的使用更是让玩家难以从中找到漏洞。比起“单调的”室内地图,这种地图能够提供更多策略性的 机遇。
  最后,地图同样也应该提供给玩家各种机遇以更好地使用游戏设计功能:武器,装备,移动等。《细胞分裂2:明日潘朵拉》以及《混沌理论》的多人游戏版本的地图中都设置了许 多场所,让攻击者可以更好地
  躲藏起来而伏击防御者;他们还可以在较高的人行桥上监视更广泛的区域并准确地向目标投射手榴弹;并且沿着管道爬上防御者藏身的房间天花板,从上跳跃进行攻击。
  游戏系统,平衡对立力量
  这个观点是指提供给玩家足够的“道具”,帮他们找到解决不平衡性的对策。致力于《细胞分裂2:明日潘朵拉》以及《混沌理论》的多人游戏版本的游戏设计师很好地控制着这种 游戏系统。即游戏既提供给玩家角色一些具有巨大潜能的装备,同时也提供给其对手一定的机遇。以下是一些例子:防御者所拥有的激光能够帮助他通过扫射周边区域而迅速找到 攻击者的藏身处;但同时攻击者也能够从远处明显地看到这个激光而发现防御者的地理位置,并观察他在寻找什么。攻击者通过隐形服掩饰能够减少暴露身份的风险,但是这么做同时也会限制他的行动速度。防御者在分布激光矿井时非常谨慎, 但是攻击者却可以通过激活电子视觉轻松地找到到它的射线。这种方法能够进一步约束任何拥有超强能量的特定装备。
  游戏测试,游戏QA
  即使你投入再多的时间去“规划”游戏或关卡设计以避免潜在的游戏漏洞,也比不上让资深玩家帮你测试游戏,并且在游戏中寻找各种漏洞来得有效。
  一般来说,在游戏开发阶段进行游戏测试非常重要。特别是对于多人游戏来说。玩家,通常来说是指硬核游戏玩家,总是愿意花费许多时间去探索地图上的每一个细节内容,并利 用这种类型游戏中的各种策略:测试所有武器和装备,寻找关卡设计中的任何漏洞,并因此而获得竞争优势。如此,游戏或关卡设计的缺点便会够迅速暴露出来,而让游戏变得越 来越无趣。所以,适当的游戏测试能够帮助设计师更好地找到关卡设计中的缺陷,或者游戏参数中的糟糕设置,如武器的能量,生命级别等。
  除了作为《细胞分裂2:明日潘朵拉》和《混沌理论》的首席关卡设计师,我同时也参与了游戏测试的执行和监管工作。育碧D’Annecy工作室的主管了解游戏测试的重要性,同时 他们也希望测试团队能够位于同一栋办公楼,以便开发团队和测试团队能够保持直接联系。
  我们是如何利用游戏测试?
  在《细胞分裂2:明日潘朵拉》中,烟雾弹的设置便经过了多次的游戏测试。
  我们对成功策略(注:让玩家能够系统性获取胜利,并因此让他们对游戏或地图保持长久兴趣的策略)展开系统性研究。玩家在游戏中最频繁遇到的便是“营地”点,这让 他们能够以最低的曝光度发现1个或多个任务目标。
  我们在游戏设置上下足了功夫。根据经验,我知道游戏特定功能(武器,装备以及行动等)的广泛使用也会根据玩家状态,玩家用于熟悉游戏的时间以及游戏设置发生巨大变化。 只有由经过挑选的玩家所进行的长期游戏测试,方能确保游戏设置在经过几个小时的游戏后还能保持准确性。《细胞分裂2:明日潘朵拉》中的烟雾弹设置便经过了多次的游戏测试 。事实上,这些烟不仅会模糊玩家的视野,如果停留时间过长,也会让防御者感到窒息。烟雾的影响范围以及持续时间便是游戏中的一些参数,而如果设置不合理的话,便会带来 很多负面影响。如果手榴弹的威力过大,它便会成为游戏中一种力量失衡的武器,即攻击者只要投射出一个手榴弹就有可能完全至防御者于死地。相反地,如果手榴弹的效率过低 ,这种战术也会变得不再有趣,且玩家也不会选择使用它了。我曾经提到过,玩家总是会不惜任何代价去获取胜利。所以为了胜利,他们会快速放弃那些没有用的装备,而这时候 我们投入开发这些装备的资源以及特效储存空间也就白白浪费了。
  最后,我们将测试地图以及游戏控制方式的易用性。
  对于开发团队来说,执行游戏测试活动是一次特别有帮助的经验。观察玩家是如何选择使用游戏道具以及如何改变道具的最初功能,以此了解他们为何不选择开发者在设计讨论会 中所认可的特定装备。游戏测试是一种工具,可以用来区分我们在设计会议上所规划的优秀内容以及那些玩家真正使用的内容。
  关于技术限制因素的解决方案
  在这个系列文章的第一部分中,我们处理了多人游戏关卡设计中的相关问题,我提到了3个影响设计的技术限制因素:
  带宽瓶颈
  事件同步需求
  失去对玩家行动的控制
  让我们着眼于一些能够解决这些限制因素的方法:
  带宽瓶颈
  我们发现以前的开发者总是会维持玩家数量与行动(动画,地图事件,特效等)复杂性的平衡。而今天的开发者比起地图上的行动,反而更加关注玩家的数量。我相信这种选择将 会发生变化,因为玩家也希望在多人游戏模式中体验到单人游戏中的体验,如地图动画,可破坏的背景以及物理管理等。所以,以下是一些解决带宽问题的方法。
  我们可以通过一道光或者一团烟掩蔽一个复杂的动画,而避免带宽出现超负荷的情况。我们可以在《细胞分裂2:明日潘朵拉》的工厂地图上最大限度地使用这种技巧,而工厂会因 为其中一名防御者引起的爆炸遭到破坏。整个房间里都是爆炸滚桶,如果一名防御者用子弹打击它们或者朝着它们发射手榴弹,这些滚桶便会爆炸。但是显然玩家对此并不感兴趣 ,因为房间的布局将会发生改变,而防御者的移动也会受到最大限度的约束。而如果不消耗带宽,便不能执行这些地图事件。负责地图设计的关卡设计师将能够成功处理这个事件 ,即设置让房屋被炸毁时,屋内的所有东西都会消失殆尽。因此,玩家不能够看到爆炸过程,而且如果玩家选择从房间外部发射弹药,烟雾也会阻挡他的视线而让他难以看到自己 行动的结果(如下图所示)。
  (在工厂地图的房间里,防御者可以轻松地移动:那里只有少数的地面障碍,人行桥环绕于整个房间的高处。但是如果其中一个防御者选择引爆爆炸滚桶,房间便会发生彻底的改 变)
  (因为受到各种倒塌下来的墙壁碎片以及被炸裂成一块块废金属的人行桥的阻挡,他们在地面上的移动速度将会放缓,并因此使得他们防御房间的任务变得更加困难。)
  第二个解决方法是在地图周围分散消耗带宽的元素。用这种方法便不会同时出现两个复杂的元素。同时还必须确保这些元素彼此之间不会产生相互影响。
  另外一个办法便是尝试着隐藏特定移动物体的移动,如电梯的移动可能会被一些非透明的墙隐藏起来。最后,还应该考虑到玩家可能会在电梯准备移动时向其投射手榴弹。但是爆 炸却不应该干涉这种移动。
  最后一个解决方法是努力压缩那些交换于游戏设备之间的数据信息。
  事件同步需求
  同步问题是让许多游戏玩家感到不满的重要因素。当一名优秀的玩家将准星置于移动目标上,并扣动扳机时,他肯定希望子弹能够立刻射中自己所瞄准的目标。如果你正致力于创 造一款第一人称射击游戏,那么这一问题便将成为游戏开发过程的核心问题。其中主要有2大解决方法:
  创建一个多服务器架构。传统意义上讲,在多人游戏期间,其中一个游戏设备充当着服务器的角色,并同步所有因用户机器引起的交互行为。这种架构能够保证所有机器间的同步 性,但是却会因此减慢数据的转移速度,因为关于用户A和B的交互信息必须先通过服务器进行传输。在多服务器架构中,每台机器同时扮演着服务器和用户的角色。按照这种方法 ,当玩家A与玩家B进行互动时,并且其他玩家并未参与其中,那么数据将直接在A、B玩家之间进行交换。这种方法曾经用于《Soldier of Fortune》的Xbox版本游戏中,这款游戏 因为高精确度而大受第一人称射击游戏群体的赞赏。比起传统的架构,多服务器架构还有一大优点便是,不会因为服务器的连接失败而破坏整体游戏进程。在多服务器架构中,玩 家可以根据自己的想法随时开始并结束任何一段游戏过程。
  从技术角度来看,一个较不讲究的方法便是使用仅在有效范围内有效的武器,如猎枪,火箭发射器或者手榴弹发射器。
  失去对玩家行动的控制
  这种做法的目标是避免太多玩家发现自己出现于相同区域,使他们之间的互动频率受到限制。关于这个问题的解决方法也同样与游戏和关卡设计两个方面密切相关。
  增加任务目标的数量,并将其分散于地图上。《细胞分裂》和《战地》等系列游戏成功落实了这两大机制。在《战地》中,当玩家选择工程师角色时他便能够接近许多次要目标, 如摧毁雷达站等。另外一个能够让玩家分散开来的方法便是允许玩家使用某些武器,但是前提是他们必须与同伴保持一定的距离。《战地》同样也使用了这一机制,即让玩家驾驶 飞机或者控制炮台。
  我最后的建议是避免使用小规模的地图。然而,你还必须谨慎地处理地图尺寸与所维持的玩家数量之间的平衡,因为如果地图太大而玩家数量太少,那么玩家便很快会对此感到厌 烦。
  但是这两个“优秀的”解决方法并不能长久解决多人游戏中所存在的特定技术问题。当然还存在其它解决方法。本质上来看,我的目标是关注这些问题以便它们能够在游戏的早期 开发阶段得到重视。
  吸引休闲游戏玩家
  我认为让多人游戏变得更易亲近才是最大的挑战。
  多人游戏的本质是让各种级别的玩家能够聚集在一起相互竞争。这也是这类型游戏的乐趣所在,但是它同样也难倒了不少游戏新手。与真人进行游戏对抗真的会比较有压迫感,即 使这些人都是隐藏在游戏代号背后。
  而休闲游戏玩家在挑战多人游戏的结果也很明显。当他们面临一个比自己厉害许多的对手时,便会屡遭打击。因此,毫无疑问,多人游戏更适合于硬核游戏玩家。如果我们希望多 人游戏能够迎合更多不同类型玩家的需求,我们就必须正视这一问题。解决方法也是关于游戏和关卡设计。
  我认为关于这个问题有两个解决方法:
  添加有利于新手的功能
  开发一款专为休闲玩家设计的游戏,但同时也具有能够满足资深玩家的深度机制。
  新手功能
  让我们回顾一些曾经出现在多人游戏中致力于让游戏变得更易亲近的功能。这也是我们在创造《分裂细胞3:混沌理论》多人游戏模式中曾经尝试过的。
  第一个解决方法很简单也特别有效。即在游戏中添加一些协作模式。玩家与玩家间不会进行真正的血肉之战,因为这是对待敌人(即受游戏AI控制的bots)的方式。这种解决方法 让各种级别的玩家能够一起游戏,并且不会因为某些玩家更厉害而备受打击,敌人就不再像人类的对手那样危险且难以预知了。同时,资深玩家还能够将自己的经验与游戏新手进 行分享。最后,这种协作游戏也能够给玩家带来一定的乐趣,因为朝着一个共同的目标相互合作是人类冒险的主要推动力。育碧加拿大工作室便创造了《分裂细胞3:混沌理论》的 “合作”多人游戏模式,并取得了巨大的成功。
  第二个解决方法较为传统。创造一种游戏机制,即根据玩家的成绩将其进行分类,并允许他们选择与自己同级别的玩家进行游戏。这种机制常出现于多人游戏中,但它却存在着许 多不足之处。所以很多玩家常常会发现,尽管自己选择的是具有相同“级别”的对手,但是最后面对的其实是非常厉害的资深玩家。实际上,在一个不熟悉的地图里玩游戏自然意 味着最后的失败。创造一个能够正确评估玩家级别的分类系统其实很难。正是意识到了这个问题,微软才提出了“TrueRanking”这一创造性分类机制,其中利用了许多有效参数以 便有效区分玩家等级。
  第三个解决方法就是提供给玩家新手教程。在《混沌理论》的“对抗”模式中,因为我们知道游戏较为复杂,所以我们便认真思考了这一问题。因此,包含有新手教程的游戏便能 够帮助玩家学习并理解如何控制角色。我们添加了一个模式让玩家只要循着一条光路以及屏幕下方的解释便能够轻松地访问游戏地图并寻找主要功能。除此之外我们也详细说明了 玩家可使用的任何装备的相关元素。并且在玩家真正进入多人游戏挑战前,我们还设置了地图考核机制,玩家通过测试之后才算是真正掌握游戏设置的基本内容。
  (《分裂细胞3:混沌理论》多人游戏版本中的地图新手教程。玩家可以遵循光路或者根据每隔一段时间出现的解释一步一步前进)
  而大量的辅助内容会带来何种结果?新手教程虽然能够让新手玩家更轻松地开始游戏,并让他们不会轻易迷失于游戏地图中,但是却不能直接帮助他们与资深玩家进行对抗。毕竟 ,只是阅读一本驾车指南并不意味着你马上就能开车。《战地2》中出现了更妙的解决方法,即提供一些具有前后关系的帮助内容。当玩家从一座建筑物跳下或者从飞机上跃下时, 他可以打开降落伞以避免受到重伤。但是如果玩家不能够打开降落伞而死亡后,系统就会提示他降落伞的存在及其控制方式,以便玩家重玩游戏时能够利用这一功能。如果能够考 虑到这点,那么新手教程便能够发挥更大作用。
  第四个解决方法便是整合一个正面或负面的“差点系统”(注:其目的是允许程度不同的所有业余高尔夫球员能在任何球场公平竞争,从而使高尔夫运动更加富于乐趣)。 根据玩家的分类,他能够受益于额外的生命值或者较少的弹药。这种机制能够让不同级别的玩家趋于部分平衡。然而,为了能够同时满足资深玩家,游戏同样也需要补偿给这些玩 家新弹药或者新装备。《孤岛危机》的设计师正在利用这一方法为这款游戏的多人游戏版本创造一个智能系统。
  最后一个解决方案是提供一个变量的几何控制界面。对于此类游戏的一种解决方法便是提供两种版本的用户界面,即面向于初学者的简单界面以及针对资深玩家的完整版本。虽然 这种方法并不适用于所有游戏,但是却终归值得一试。
  设计能够迎合所有玩家的游戏
  添加一些能够帮助初学者更好地面对硬核游戏玩家的功能在某种程度上看来是有效的,但是如果我们希望多人游戏能够得到大多数玩家的认可,我们就必须在开发阶段就明确这一 目标。我将列出新手玩家在多人游戏中所面临的三大问题:
  用户界面
  对于地图的认识
  对于获取胜利策略的理解与执行
  让我们看看如何才能解决这三大问题。
  首先是用户界面。它的设计必须围绕一些容易理解的原则。我们都知道通过掌机上的两个模拟摇杆便能够控制游戏角色,但是对于新手来说这就不是一个简单的机制。通过实验性 的游戏测试你能够了解到初学者对于游戏界面的理解与看法。一大解决方法便是创造一个自动适配的用户界面,让新手能够执行一些基本行动,并随着级别的提高而给予他们更多 新功能。语音命令或者控制器,如Wii-mote的使用能够彻底改变我们与游戏间的互动。而如果你认为这些方法都过于理想化,那么你也可以选择单纯地简化用户界面。《光晕2》的 界面便是一个优秀的直觉型界面,因为它并未设置过多的控制内容。
  接下来是地图。我先列举出几个能够帮助玩家理解地图的方法:选择大地图而不是复杂布局,使用一些容易识别的任务目标,通过提供清晰明了的结构而维系起任务目标和地图布 局间的联系,玩家能够自己定位目标,创造一个易识别的导航网络体系,提供给玩家一个地图全局布景或部分内容,或者选择非对称性地图。《战地》系列游戏中便提供给玩家一 副较大的地图,但同时也提供了简单的导航体系以及清晰明了的目标。所以不要再把地图当成是什么难以解决的大问题了!
  Long Run是一张复杂但却容易通航的地图,因为它采取了不对称性设计方法
  最后便是策略问题。这是一种难以控制的游戏维度问题。在《分裂细胞》等游戏中,这一问题真的对玩家产生了巨大的影响。我认为主要有两种可能的解决方法。
  第一种方法是技术条令。主要是指设立一个智能代理帮助玩家分析游戏过程并有针对性地提供建议。举个例子来说,如果第一人称射击游戏玩家长时间未有任何行动,那么智能代 理便会提醒他现在很容易遭到狙击手的攻击。而如果代理发现玩家总是在使用相同的方法,它也会帮助玩家寻找新的方法。但是所有的这些都是理论上可行的内容,真正实践起来 并没有那么容易。而就像我们在《战地2》中所看到的,提供给玩家一些前后关系的信息便是一种合理的方法。
  第二种方法是基于概念的内容。现在已经出现了一些能够满足休闲玩家需要的多人游戏,如《反恐精英》以及《战地》系列游戏,它们主要基于一些设计选择:提供一种所有PC玩 家都熟悉的游戏类型,第一人称射击游戏,容易理解的任务目标,地图布局以及清晰的导航,能够容纳更多玩家的大规模地图和游戏过程。
  如果从创造易用性多人游戏的角度来看,后面两个因素便特别重要。大规模的地图能够让玩家更容易注意到并避免远处敌人的攻击。例如在《战地》中,玩家经常因为不知道敌人 的所在位置而遭到攻击死亡。第二个元素是,如果游戏地图能够容纳更多玩家,那么便能够同时整合进更多休闲玩家了。实际上,当玩家是一个庞大群体的一份子时,他便能够加 入团队并跟随那些了解地图以及地图策略的人而行动。
  我希望通过这篇文章让设计师更加清楚地了解到多人游戏地图的设计不同于单人游戏地图,必须遵循特定的架构。地图的成功依赖于合理控制每一个参数内容。设计师必须清楚, 玩家可能会进入地图无数次(甚至可能同一个玩家就会这么做),所以任何一个设计漏洞都有可能被挖掘出来。
  我还想补充一句,没有所谓的完美地图,但是如果遵循上述描写的这些要点,你便能够将缺陷降低至最少。
(责任编辑:刘鹏)
&&&&&&</div
网络视频正在成为一块炙手可热的蛋糕...[]
客服热线:86-10-
客服邮箱:}

我要回帖

更多关于 游戏关卡设计师 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信