C#方法的参数修饰符-out

无修饰符:如果一个参数没有用参数修饰符标记,则认为它将按值进行传递,这将意味着被调用的方法收到原始数据的一份副本

out:输出参数由被调用的方法赋值,因此按引用传递,如果被调用的方法没有给输出参数赋值就会出现编译错误。 out 最大的用途就是调用者只使用一次方法的调用就能获得多个返回值。

private void btnOut_Click(object sender, EventArgs e)
{
    Sub(3, 1, out int res);
    MessageBox.Show(res.ToString());
}

void Sub(int Num1, int Num2, out int res)
{
    res = Num1 - Num2;
}

经济系统中的四个功能

经济系统普遍含有四个能够影响资源并转移资源的功能。

来源(source)

一种能凭空产生出新资源的机制。在特定的时刻或者条件下,一个来源可以生产出新资源。

消耗器(drain)

与来源正相反,它将实体中存储的资源从游戏中永久消除。

转换器(converter)

能将一种资源变换成其他形式。

交易器(trader)

根据一个交换规则将某种资源从一个实体转移到另一个实体,同时将另一种资源转换回来的机制。

内部经济的构成要素

游戏经济的基本构成要素:资源实体以及四种使资源得以生产、流通和消费的机制。

资源(resource)

一切经济机制都涉及资源的流动。资源是指任何能用数字来衡量的概念。游戏中几乎任何元素都能成为资源,例如金钱、能源、时间、玩家控制的单位、物品、增益道具、敌人等等。玩家能够生产、积累、收集或破坏的任何东西都可能是某种形式的资源,但并非所有资源都处于玩家的控制之下。例如时间资源有自行流失的特性。速度也是一种资源,它通常是物理引擎的一部分。

实体(entity)

资源的具体数目储存在实体中(从程序员的角度来看是一种变量)。

反馈循环与系统稳定性

维持系统平衡的反馈循环叫做负反馈循环(negative feedback loop),例如生态系统中捕食者增加导致猎物减少,反过来造成捕食者减少,最终捕食者和猎物的数量保持平衡。在游戏中例如文明的人口。

正反馈循环会使系统平衡失稳,因为其自身反馈效应会使效果加强。啸音现象就是一例。在游戏中的例子比如国际象棋,一旦吃掉了对方一个棋子接下来再吃掉一个就会更容易。

大多数涌现游戏中,都有若干个不同的反馈循环在同时运转。

一致性高于写实性

玩游戏是一种玩家让自己沉浸在游戏机制构筑的模拟世界中的活动,玩家并不希望游戏机制分毫不差的模拟现实。

例如,一个完全写实的、要求玩家必须花费数年时间练习才能掌握足够技巧从而上场比赛的F1赛车游戏对于绝大多数玩家来说不会有趣。但火箭跳这类奇特的现象是游戏乐趣的一部分。

但需注意玩家期望游戏机制是连贯一致的,如果机制显得牵强随意,玩家就会感到沮丧和失望。

复杂系统和涌现结构

下文探讨涌现游戏机制的结构游戏可玩性着三者的关系。

为了使可玩性从机制中生发出来,游戏机制必须在秩序和混沌之间保持平衡。

涌现行为具有一个重要特征:只有当系统实际运转时,它才会显现出来。

秩序和混沌之间

有序系统很容易预测,混沌系统即使完全理解其系统各个部分工作原理的情况下也无法预测。涌现系统是在这两者之间的某一点处产生出来的。

秩序周期涌现混沌
机械钟表季节循环每日天气风的流动
渐进型游戏
事先设计好的关卡
《地产大亨》棋盘上的路线循环《文明》中的玩法阶段掷骰子的结果
从秩序到混沌的四个阶段

在数学、计算机科学和游戏理论的交界处,有一个特殊的学术领域,它研究的对象是细胞自动机(或译元胞自动机)。可以用来体现涌现现象。

涌现型游戏和渐进型游戏

突现

术语涌现(emergence)出自复杂性理论。它是指一个系统的行为特性无法通过它的各组成部分直接推导出来的现象。

不要把涌现现象和游戏设计师没有预料到的现象混淆。游戏和其他复杂系统一样,其整体大于部分之和

围棋、国际象棋和俄罗斯方块等,这些游戏的构成元素相对简单,但策略却千变万化,每次的过关流程都毫不重复。所以可玩性中的涌现特性并非源于游戏单个组成部分的复杂性,而是源于游戏各部分之间互相作用所产生的复杂性。

结构

结构这个词用来指代游戏设计师为使多个游戏机制能够相互影响或控制,而设置规划这些机制的各种方式。

涌现型游戏和渐进型游戏的结构差异

涌现型游戏仅仅用数条规则就能构建出来。在一个涌现型游戏中,复杂度是由规则之间的各种联系和相互作用产生的,而不是由大量规则堆砌而成。当规则的复杂度超过某一点后,玩法的复杂度会突然提升。这种现象被称为复杂度屏障。在越过某一点后,规则之间的交互作用产生了一种效应,叫做概率空间激增。

涌现型游戏通常流程较短(《文明》是一个罕见的例外)。如果一个涌现型游戏的流程很长,就会出现玩家由于在早期犯了个小错,而导致游戏久久不能获胜的情况,这属于一种设计缺陷。

渐进型游戏经常有很多规则,但规则之间的交互关系相当少。在某一关卡中控制玩家进度的机制几乎不会和游戏其他机制进行交互。很多机制只有一个作用:在玩家完成必要的任务之前,阻止玩家达到某个地点。渐进特性的优点在于设计师可以指定玩家遭遇,并且能把逐渐提升的挑战难度于故事情节有机结合起来。

总结

涌现型游戏是由较少的规则、许多相互关联的游戏元素和一个大而广的概率空间所构成。

渐进型游戏则是由较多的规则、关联性较低的元素和一个规模较小、通常窄而深的概率空间构成。

现代电子游戏既包括涌现因素,也包括渐进因素。如何两者结合使玩家同时体验到两者的乐趣是设计游戏的一个重点难点。

关于游戏机制的一些概念

游戏的定义

规则是游戏的本质特性。游戏是一个基于规则的系统,产生一个不定的且可量化的结果。不同的结果被分配了不同的价值,玩家为了影响游戏结果而付出努力,其情绪随着结果而变化。

游戏是不可预测的

游戏的结果不应该一开始就明了。一定程度上游戏应该是不可预测的。要让游戏的结果不可预测一个简单的方法是假如偶然因素,例如掷骰子。然而,在更长的游戏中,玩家会期望用技巧和策略来影响游戏。当玩家觉得他们在游戏种的决策和技巧根本无关大局时,就会很快陷入沮丧。游戏流程越长越明显。

除了偶然性以外,还有另外两种深奥一些的方法能使游戏产生不可预测性:让玩家做选择,以及设计出能衍生复杂玩法的游戏规则。

当游戏规则十分复杂时,也会产生不可预测性。复杂系统通常包括许多可交互的组成部分。单个组成部分的运作规则可能简明易懂,但是组成一个整体之后,其运作机制就会相当高深难以预测。例如国际象棋。

规则和机制

规则是玩家应当知晓的。

机制事实上是对玩家隐藏的。设计游戏机制必须足够详尽,并明确说明所有必须细节,以使程序员能够清晰明确的将他们转化成代码。

五种游戏机制

1. 物理

关于运动和力的科学。例如愤怒的小鸟。

2.内部经济

游戏元素的收集、消费和交易等机制构成了游戏的内部经济。游戏内部经济通常包括金钱、能源、弹药等常见资源,但除了这些有形的物品外,健康、声望、魔力等抽象概念同样属于游戏经济。

3.渐进机制

关卡设计规定了玩家能够如何行动。这类游戏中有很多用来封闭或解锁前往某一区域的通路和机制,玩家的进度被这些机制牢牢控制着。

4.战术机动

这种机制使玩家可以将单位分配到地图上的特定位置,从而获得进攻或防守上的优势。策略类,角色扮演,棋类游戏中都经常用到。星际争霸也用到了该机制。

5.社交互动

机制和游戏类型

物理经济渐进战术机动社交互动
动作控制移动、设计跳跃等动作的细致物理机制增益道具;收集要素;得分;生命值包含难度递增任务的预先设计好的关卡;为玩家设定目标的故事情节
策略控制移动和战斗的简单物理机制单位建造;资源采集;单位升级;将单位至于战斗的风险之中为玩家提供一系列挑战的情景剧本为获得进攻或防守优势而对单位位置的调动经过协调的行动;玩家间的结盟和竞争
角色扮演用于处理移动和战斗问题的相对简单的物理机制,经常基于回合制用装备和经验值来定制角色或队伍为玩家设立目标的故事情节和任务团队战术表演
体育细致的模拟队伍管理赛季团队战术
驾驶模拟细致的模拟在任务之余对座驾进行维护调整任务;挑战;锦标赛
经营模拟资源管理;经济建设为玩家提供一系列新挑战的故事情节资源管理;经济建设经过协调的行动;玩家间的结盟和竞争
冒险管理玩家的道具库用来推动游戏发展的故事情节;控制玩家进度的锁-钥匙机制
益智解谜简单的、常常是非写实的和离散性的;物理机制产生挑战一系列短小的关卡,关卡的挑战难度逐渐递增
社交资源采集;单位建造;花费资源来定制个性化内容为玩家设立目标的故事情节和任务玩家相互交易游戏内资源;游戏机制鼓励玩家间协作或冲突

机制和可玩性

以玩家为中心的设计方法。这种方法将重点集中在玩家所扮演的角色,以及他们从中体验到的可玩性上。

可玩性就是游戏施加给玩家的一系列挑战的组合,以及允许玩家做的事情。

机制产生可玩性。例如马里奥跳过一个沟壑时的情况的情况:关卡设计或许能决定沟壑的外形,但是是游戏中的物理定律(即物理机制)决定了马里奥能跳多远,重力如何产生作用,以及某次跳跃是成功还是失败。

UV展开,贴图和材质的概念

UV展开:
把三维模型展开到一张平面上。

贴图(texture):
像素组成的图片。
如果是写实的贴图可以通过相机拍摄获取,或者在网上进行素材的下载。
写实风格的素材网站Textures for 3D, graphic design and Photoshop!
如果是风格化或者卡通一些的贴图,通常需要自己进行手动的绘制。
贴图的尺寸需要是2n
(一般手游贴图质量为512 * 512;顶级3A能用到4096 * 4096)

常见的贴图:
S代表Specular Map(高光贴图),
用来控制物体的高光部分的反射程度的贴图。
D代表Diffuse Map(漫反射贴图),
用来控制物体的基本颜色的贴图。(一般的漫反射贴图适不适合配置在Unity的基础贴图有待验证)
N代表Normal Map(法线贴图),
用来控制物体表面法线方向的贴图。
法线贴图的使用场景是,让低模具有类似高模的效果。
在建模时保留两个模型,一个低模一个高模。在高模上丰富细节,生成它的法线贴图,再贴在低模上。

材质(material):
材质是一种根据用户输入的贴图和数值,通过算法渲染出相应视觉效果的程序。