• 游戏开发,原理学习笔记


    游戏开发原理--Alan Thorn著,学习笔记

     

     

    游戏与游戏设计

     

    游戏类型与平台

    游戏的概念很大,而现在的游戏,通常是指视频游戏

     

    类型和子类型

    视频游戏的种类,通常说的 “这是什么种类的游戏”,实质上问的是游戏类型(玩法)。

    视频类型包括,一些具体的例子,射击游戏FPS ,角色扮演游戏RPG,即时战略游戏RTS,智力游戏PUZ,模拟游戏EG,冒险游戏AG。

     

    子类型一般指某个类型下细分的分类型,比如 设计游戏下,细分的子类型,第一人称设计游戏,如使命召唤,第三人称设计游戏,生化危机。

     

     

    出品类型

    游戏的生产类型主要涉及的是制作游戏的开发人员类型而非游戏本身或游戏内容。

    常用的术语:AAA,3A大作;独立制作。

     

    平台

    平台,硬件平台,指可成功允许游戏的系统,平台包括 游戏机;计算机系统;移动设备,和未来的云计算。

     

    图形类型

    “图形” 指游戏的 视觉表现,包括游戏中的一切可见的东西。

    比如,写真图形,主要目的是让由计算机渲染的图形尽可能真实,表现的和实际生活中存在的近似。

    与写真图形相反的有,绘图,另一个派别就是寓意图形,比如像素,卡通画风。

     

    交付方式

    玩家付钱后,游戏公司把游戏产品交给玩家的手段

     

    视角

    第一人称视角,第三人称视角,俯视视角,自由视角等通常说的是 游戏摄像头视角。

     

    第一人称视角是一种 将 虚拟摄像头与主角 眼睛 同步的视图配置。

    第三人称视角是通过摄像头追逐视角展示世界,通常第三人称摄像头会追随主角,从其顶部,后侧,边侧进行定位。

    俯视视角,一般用在战略游戏,比如文明,星际争霸。

    自由视角,用于传统无人物,无世界,空间的卡牌,益智游戏,比如俄罗斯方块。

     

     

    视频游戏刨析

    游戏 由 引擎驱动,而引擎的下方则是资产和规则集。

     

    引擎

    将游戏中所有的根本共性,集合成的基础框架。根本共性,比如跳跃规则,一个人物跳跃后,必定受到重力的影响,会落地,这就是一条根本共性。

     

    资产

    游戏开发过程中产生的一切有价值的物品,比如图形,声音,故事,设计,动画,脚本,视频等。

     

    引擎的通用性和基础性强,资源是特异性的,引擎和游戏内容无关,资产是静态的,无生命的。

     

    规则

    规则集包含以下条件:取胜条件,失败条件,达到取胜条件或失败条件的可接受方法。

     

     

    游戏开发阶段

    基本设计与头脑风暴

    原型设计: 作可行性分析,作故障排查

    完善设计

    引擎开发

    资产创建

    脚本制作

    测试与调试

    营销与分销

     

    游戏设计

    游戏设计目的

    让游戏开发人员知道开发游戏的目的,减少不必要的麻烦

     

    游戏设计文档GDD

    针对开发人员,技术上独立的方式展现 出 游戏内容。

     

    游戏名称,平台,和受众

    总结与故事

    游戏的背景和环境,人物活动都依赖背景和环境

     

    人物,设备和地点

    补充游戏设计文档

     

    游戏软件开发

     

    项目管理

    项目需要的元素:专业人士,工具,概念,时间,财务

     

    通过RAMS创建一个计划

    Recyclability可复用性 Abstrantness抽象性 Simplicity简单性 Modularity模块化

     

    瀑布模型

    敏捷开发

     

    发布周期

    Pre-Alpha版

    技术预览版本,是一个代表发布周期前所有开发阶段的版本总称,包括除错,测试,发布阶段前的所有版本。

     

    Alpha版

    预览版本,这个版本是开发人员进行白盒测试辅以黑盒版本。

     

    Beta版

    用户测试版本。

     

    发行版

    候选发布版本

     

    最终版

     

     

    游戏编程

     

    游戏编程的世界里,3种主要的程序语言。

    编码,脚本,可视化脚本。

     

    编码

    通常认为是使用可编译语言进行的编码,而不是使用解释语言或脚本语言进行的编码。比如Java,C语言等。

     

    脚本

    通常指不需要进行编译和优化的,直接通过解释运行,比如JavaScript,Python等。

     

    可视化脚本

    使用开发工具进行设置,不需要编写代码。

     

    开发游戏的编程思想 OO CBD

    OO面对对象

    CBD面对组件(比较适合开发游戏)

     

    开发一款游戏的目的是创建一个虚拟世界,这个工作,这项工作可以细分为3个主要步骤:

    1. 定义所有出现和即将出现在游戏世界中的任何东西。

    2. 在游戏时间中创建一个时间流。

    3. 定义所有存在的东西是如何随着时间而改变的。

     

    时间,事件和动作

     

    时间:对象的状态随着时间变化而变化

     

    事件和动作,如果发生了X,那么就做Y, 前面的X通常是 事件,而后面的Y是指动作。

    游戏的事件通常 是 游戏世界里的重要事件发生时候的一个通知或一个时刻。如玩家按下了某个按钮,世界就会发生爆炸,爆炸就是一个动作。

     

    开发游戏或者游戏编码的工作,3个步骤

    首先,开发者必须定义虚拟世界里存在的所有事物。

    其次,开发者必须建立一个一致的时间系统。

    最后,开发者必须建立一套时间规则或者一套对象和时间的关系,该关系决定了某一特定的对象会经历特定改变的时间和环境。

     

    游戏数学

     

    二维和三维坐标空间

    坐标系2D,3D

    原点,全局和局部坐标系,不同坐标系的位置转换,利用原点关系。

     

    一个对象的位置:位置,方向,尺寸。

    位置,对象在坐标系的坐标;方向,对象在游戏中的朝向;尺寸,对象在游戏的高,宽。

     

    变换:位移,旋转,缩放(一致性缩放,非一致性缩放) 利用矩阵变换进行变换

    非一致性缩放,对象的高,宽不成比例 倍增或者缩小。

     

    向量:方向和位移,向量运算,向量归一化。

    向量归一化:把某个范围的数值 映射到 0-1 的范围。

    解决速度,距离和时间的问题:使用向量运算。

     

     

    图形,像素,和色彩

     

    像素:图形的最小单位

    分辨率:用来表示像素网格的大小,比如800*480等

    屏幕宽高比:如4:3

     

    分辨率和宽高比带来的问题:

     

    色彩,图片的品质

    颜色空间:RGB色彩空间,CMKY彩色空间,印刷使用的。

     

    色相,饱和度,色彩值。

    饱和度,描述色相密度和强烈程度的值,比如大红色就是完全饱和的。

     

    位深度,Alpha通道,遮罩。

     

    图片格式,无损和有损

     

    伽马和伽马校正

     

    颜色混合,颜色运算 和 图片重采样

     

    矢量图片: 矢量 栅格图

     

    图片纹理,纹理和UV映射

     

    网格,操纵和动画

     

    网格:建成游戏世界模型的最小单位,可以是等边三角形。

    网格的4个信息通道:几何,UV映射,操纵,和动画

     

    几何通道,及构成网格的基本信息,比如三角形的顶点坐标和边的信息。

     

    UV映射:二维对象映射到三维空间,或者逆转。

     

    操纵:网格的运动

     

    动画通道:网格随着时间变化而变化。基于时间点编码

     

    特克赛密度,一致性的像素密度

    校准像素密度

     

    照明和补光

     

    阴影的组件

    形态,材料和纹理,照明

     

    形态:形状,轮廓和结构

     

    材质和纹理

    照明:直接照明和 间接照明

    照明规则,光源,

    光照绘图,实时光照,法向映射,渲染方法,正向渲染,延迟渲染

     

    声音和音乐

    声音,音乐,音频

    文件格式及音频工作流

    WAV,OGG格式,加载和码流

    2D音频和3D音频,2D声音,3D音声

    3D:音量和衰减,平移和方向,混响和音质

     

    特殊效果和后期处理

    粒子系统,制作下雨,爆炸等特效

    粒子系统:粒子,发射器,行为

     

    后处理:模糊,景深,泛光,渐淡,渐晕,染色效果

     

  • 相关阅读:
    学习java的第二天
    第一天学习JAVA
    java小知识字符串,比较object,equalsIgnoreCase()拼接concat /截取substring
    java小知识api Scanner Random ArrayList
    java小知识对象
    java小知识数组
    java小知识方法
    java基础知识循环语句
    java小知识语句
    java基础小知识
  • 原文地址:https://www.cnblogs.com/lin7155/p/13921527.html
Copyright © 2020-2023  润新知