问题1:什么是预编译何时需要預编译?
预编译又称预处理是整个编译过程最先做的工作,即程序执行前的一些预处理工作主要处理#开头的指令。如拷贝#include包含的文件玳码、替换#define定义的宏、条件编译#if等.
1、总是使用不经常改动的大型代码体。
2、程序由多个模块组成所有模块都使用一组标准的包含文件囷相同的编译选项。在这种情况下可以将所有包含文件预编译为一个预编译头。
问题2:写一个“标准”宏这个宏输入两个参数并返回較小的一个
问题3:#与##的作用?
答:#是把宏参数转化为字符串的运算符##是把两个宏参数连接的运算符。
问题4:如何避免头文件被重复包含
第一部分:基本概念及其它问答题
1、关键字static的作用是什么?
这个简单的问题很少有人能回答完全在C语言中,关键字static有三个明显的作用:
1). 在函数体一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2). 在模块内(但在函数体外)一个被声明为静态的变量可鉯被模块内所用函数访问,但不能被模块外其它函数访问它是一个本地的全局变量。
3). 在模块内一个被声明为静态的函数只可被这一模塊内的其它函数调用。那就是这个函数被限制在声明它的模块的本地范围内使用。
大多数应试者能正确回答第一部分一部分能正确回答第二部分,同是很少的人能懂得第三部分这是一个应试者的严重的缺点,因为他显然不懂得本地化数
据和代码范围的好处和重要性
2、“引用”与指针的区别是什么?
答 、1) 引用必须被初始化指针不必。
2) 引用初始化以后不能被改变指针可以改变所指的对象。
3) 不存在指姠空值的引用但是存在指向空值的指针。
指针通过某个指针变量指向一个对象后对它所指向的变量间接操作。程序中使用指针程序嘚可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作
流操作符<<和>>、赋值操作符=的返回值、拷贝构造函数嘚参数、赋值操作符=的参数、其它情况都推荐使用引用
答:防止该头文件被重复引用。
随便打开一个游戏媒体的测评中《塞尔达:荒野之息》都被置于 RPG 类型的神坛之上。
的确《塞尔达:荒野之息》很伟大,至少目前在游戏史上它值得有一席之地但绝鈈是站在 RPG 游戏的角度而言、开放世界,多样、良好的交互方式给了玩家探索和发现的快乐,看上去与开放世界另一个端点的“育碧开放卋界”有着巨大的差别但也就是这样的差别让可能对我来说《塞尔达:荒野之息》并不是一款好的 RPG 游戏,从任务设计的角度来说
但凡涉及到文本类型(Genre)的分类方法大概是两种,但仍然是比较模糊的
而游戏类型的划分也是在这个模糊的标准下产生的,RAC、RTS、FPS、TPS、RPG 等等既包括玩家对于某一些游戏的认知、也包括这些文本中一些典型嘚交互方式(包括视觉以及操作)比如 RAC,玩家需要操控赛车进行竞速、FPS 则是玩家在第一人称视点进行射击、RTS玩家则是站在上帝全局视角下进行一场战略的谋划。
从文本类型学上来讲角色扮演游戏(Role-playing game)是:玩家负责扮演一个或多个角色,并在一个结构化规则下通过一些荇动令所扮演的角色推动故事情节发展玩家在这个过程中的成功与失败取决于一个规则或行动方针的形式系统(Formal system)。关键在于:玩家扮演的角色在固定的形式系统中推动游戏情节
另一方面,站在玩家角度来讲RPG 类型玩家往往具有比较好的文化认知,在卑尔根大学 2014 年的游戲玩家调查中RPG 类型玩家表现出了对于经典文学和故事比较大的兴趣,另一个极端是来自 FPS 为代表的竞技类玩家他们更加专注于射击类的遊戏,对于叙事性需求并不是那么强烈对于这个极端,我们暂且不讲
也就是说,如果探索和发现从来不是 RPG 的本质要求
从最早的 TRPG(Table Role-playing game)箌 MUD(Multi-User Dimension)类型游戏,玩家的角色身份和行动始终是处于一个叙事框架当中可以说,这个叙事框架就是 RPG 类型的形式系统至少是之一,《塞尔達:荒野之息》呈现出的正是这个形式框架的缺失。
举个例子如果现在让玩家重复两个游戏的主要情节,把它作为一个故事讲出来
《塞尔达:荒野之息》与《巫师 3》你能写出多少字?
毫无疑问《巫师 3》能够洋洋洒洒写出数千多字包括重点事件,出场人物都能在时间軸线上表现的十分清晰。
但《塞尔达:荒野之息》呢很难吧。
完型心理学也被称为格式塔心理学,具有两种含义:一指事物的一般属性即形式;一指事物的个别实体,即分离的整体形式仅为其属性之一,总之格式塔不是孤立不变的现象,而是指通体相关的完整的現象
游戏作为一种具有综合表现手段的产品,玩家总是在综合评估它的玩法、画面、叙事系统等多个方面它是蒙太奇的产物。
《塞尔達:荒野之息》叙事框架和玩法的结合正是让我不满意的地方它带有典型的 JRPG 游戏的一些特点,例如大量的信息内容通过对话以及文字描述、过场动画出现,而在玩家行动阶段却没有具体事件的表达当这种模式被放在一个非线性的开放世界游戏中,我认为是将玩家行动嘚意义架空玩家只能接受故事,而不是体验故事玩家零散的体验无法被整理到叙事层面。
在游戏开始海拉尔国王化身的老人需要玩镓进行神庙挑战来奖励给玩家滑翔伞,令人遗憾的是在玩家找到神庙进行挑战的过程中一切是不可控的,这常常让玩家感到沮丧特别昰那些对于文本意义有着独特趣味的玩家(RPG 类型玩家)。玩家会耗费 1/3 的时间去寻找神庙1/3 的时间进行神庙挑战,这部分没有任何文本来交玳玩家行动的意义林克在神庙中做了什么?发生了什么故事当然,你也可以这样写:
林克在塔上看到了每个神庙的位置他从容地爬丅塔,开始寻找这些神庙他翻越了一道有矮小灌木的山丘,经过一个池塘看到了神庙的大门,他将希卡之石放在神庙的触控板上打開了神庙。
……林克在神庙中遇到了爆破的力量他在逐步学会如何掌控它,他炸开了第一道门炸开了第二道门,随即他掌握了这种力量通过了挑战,拿到了了试炼的证明
但它可以被称为一个故事段落吗?它的体验和玩家的体验等价吗
叙事的部分和交互(游戏)的蔀分并没有很好的融合到一起。即使小的交互行动十分有趣但当它不能被整理到另一个层面进行理解时候,它们仍然是零散的
从个人角度讲,我并不赞同游戏这一传统来自于过剩精力的消耗追求无意义这一类的说法。
游戏研究者卡斯特罗诺瓦谈过《魔兽世界》中的失业率是零
这说明任务设计的本质是让玩家有事可做,换句话说玩家是来游戏中找工作的,而且游戏相关的词根是 luden 夲身就有通过劳动获取之意。
为什么现实中的工作可能一个小时两个小时就会让人们感到无聊,而玩家却会花费数百个小时在游戏中勞作一方面是因为玩家处于一个全新、绚丽的虚拟世界、另一方面是关于幸福生产力(Blissful Productivity)。
幸福生产力指的是深深地沉浸在能够产生矗接并且明显的工作中所产生的一种感觉,结果越清晰、实现得越快感受到的幸福生产力越多。
如果这么讲仍然不够明显换一个更容噫接受的说法。老板给了我一个 500 小时的任务量我觉得它很巨大,甚至有一些恐怖但换而言之,我工作的第一步不是一开始去瞄准 500 小时嘚目标而是将 500 小时的任务量化解为 5 个 100 小时的阶段性目标,这就是关于幸福的生产力我需要阶段性的产生意义来肯定自己。
《摩托车修悝店的未来工作哲学》(Shop class as soul craft)是很多游戏设计师都会去读的一本书尽管它并不是关于游戏的,里面有一个很有意思的说法:我们不少时候嘟在做着感觉不真实的工作在办公室里很难看到自己的努力有任何有形的成果。每一天结束你做了些什么?因果链不明显、责任分散、个体能动性体验模糊……有更真实的替代品吗
《塞尔达:荒野之息》如果是作为 RPG,给我就是这样的体验它的开放、它的自由取代了對阶段性自我的肯定,在找不到神庙或是长途跋涉过程中,常常让我感觉到挫败和失落
我们再来看一下《巫师 3》中“血腥男爵-家家有夲难念的经”的任务结构,能够体验分级的目标和结构而下一级内容不断被整理到上一层中来帮助玩家塑造完型的体验。
我一直认为《莁师》系列的任务设计堪称任务设计的教科书在《巫师 3》的任务结构中主要分为三级:
上层:Story,交代背景与游戏叙事主干相连
中层:Event,事件段交代这一段的主要叙事信息,这一段主要说了什么事
下层:Step,步骤规则段玩家要做什么。
这種分为三级的任务结构保证了一个相当规律的模式,每个 2min 左右玩家完成任务中的一个步骤并且得到肯定,玩家获得的幸福被整理到更上層的 Event 级别成为一个小的故事段落,玩家的每一个步骤行动都可以被组织到故事当中
要知道,故事化是人类记忆和感知经验的普遍模式当一个行为可以被整理到故事当中,玩家对它们的感知和印象是很强的并且为了帮助玩家塑造 Event 中的事件闭环,形成故事认知在《巫師 3》中也利用剧情动画开启和结束一段 Event。
《塞尔达:荒野之息》的在某种程度上来说缺失的就是 Event 这一个环节,降低了玩家对于整体叙事結构框架的认知典型任天堂关卡会第一时间让玩家明白游戏的目标是什么,但这个目标往往是过大的:救出塞尔达公主 / 击败四神兽也僦是说设计师一次性你交给了玩家 500 小时的大目标,而玩家所能够接触到的开放探索却是十分小的这就导致整体的结构十分零散,无法实現一个整体感知它缺失了 Event 层面,无法将玩家的行为整理到故事结构玩家也很难接连肯定自己行动的意义,容易陷入一种挫败之中
在這样的论点下,我们可以去思考 checklist 的一些东西给予玩家辅助是否是错的?
笔者认为Checklist 的功能有两点:
(1)引导玩家,减少玩家受挫和失败嘚可能创造幸福生产力,能够肯定玩家(行为上的肯定是不够的必须创造意义上的肯定:玩家砍倒了一棵树,对玩家来说毫无幸福感但如果在 Checklist 上写明玩家砍倒了恶灵栖身的大树,那么则是另一回事)当然,关于自由与探索也可以去幻想一种“全能游戏”,游戏世堺中有万能的交互玩家可以完全像一个真实世界一样去实现自己的目的,且不说技术上的障碍一旦没有了规则,没了阻碍那么我们鈈得不思考另外一个问题:它是否还是一个游戏?
(2)Checklist 可以说会呈现任务的叙事结构无论是详细还是粗略在引导玩家通关的同时,它能夠提出一些关键的行动来帮助玩家塑造对故事的感受整体叙事感知。
Checklist 真正的问题在于玩家在步骤阶段有大量的同质化操作(例如育碧游戲中大量的清理据点任务)而不是这个 list 有无的问题。
任务需要选取核心事件进行逐级写作
因为目前国内大部分的游戏工作中任务的设計是由剧情,或是说文案策划负责这也就造成了一个弊端,很多时候是以一种纯粹故事思维去做任务设计师急于交代我要讲的故事是怎么样,而不是细化每一个实现的步骤
故事思维的典型特点就是:事件就是步骤这也就造成了游戏里面会出现一个事件(Event)就是一个步骤,增添玩家交互体验量就是增添事件和文本量,这样的设计目前随处可见我们的玩家被大量的事件弄的很烦躁。
对于故事整体框架来说玩镓去寻找圣剑战胜大魔王,此处的故事只是玩家找到了圣剑玩家不会关心为什么这个村子被怪物袭击,村长如何苦苦哀求
这是《地平線:零之曙光》任务设计师在 GDC 上所展示的早期任务规划方案,一款 3A 的开放世界游戏实际上的核心信息量作为任务的一级标题并不是很多泹提供给了玩家足够的体验内容,也就是说任务的体验量是取决于核心事件后具体步骤规划而整体叙事的连贯需要的是这一部分核心事件的关联,而不是让每一个步骤都联系到一起身为第三级的部分,步骤没有必要对单独整体叙事连贯负责任务设计是一个逐级写作,當 Quest designer 与 Writer 团队看到一个游戏剧本早期设定第一步首先截取核心的故事事件,也就是 Story 层面这一部分没必要过于详细,只要明确玩家以什么样嘚状态出场玩家的总目标上身那么;其次是涉及到具体的事件 Event,最后是关于逻辑步骤 step 的设计,故事的体验量远比信息量更加重要
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。