文章著作权归作者所有。转载请联系作者,并在文中注明出处,给出原文链接。
本系列原更新于作者的github博客,这里给出链接

通过上一节的学习,我们对游戏美术和游戏开发已经有了比较基本的了解。那么,该如何开发一款游戏呢。

游戏是如何被开发的

世界上第一款游戏《SpaceWar》是在一台小型计算机上运行的,在当时,只需要编写少量的代码即可写出一款游戏。尽管如此,游戏开发也并不容易。现在,游戏已经成为第九艺术,游戏行业也是一个正在蓬勃发展的行业。一个现代的游戏,工程量是相当庞大的,如果要我们靠代码一行行堆砌出一个游戏,我相信很多人都会望而却步。但是人是有智慧的,重复的事情我们会选择让机器完成,重复的细节我们会选择抽象出接口,游戏引擎(Game Engine)就是这样诞生的。

游戏引擎是一个高度集成的游戏开发环境,它是现代游戏开发的有力工具,能够让开发人员不必理会一些技术细节,从而把中心放在游戏构思上,降低开发成本。目前比较流行的开发引擎有很多:3A大作的佼佼者UE4(Unreal Engine 4)、近几年大热的引擎U3D(Unity 3D)、老牌2D游戏引擎Cocos2Dx,甚至有不少大公司的自研游戏引擎。在游戏引擎中,引擎开发者已经为我们搭好了基本的游戏框架,其中包括场景、动作、渲染、资源加载等等。

游戏中的美术

回到之前的话题,引擎已经为我们抽象出了很好的接口,游戏中的渲染也变得容易很多。用Unity作为例子,Unity是基于场景的游戏引擎,它为我们抽象出了灯光、物体、渲染方式等。在场景中摆放的物体,会基于摄像机、灯光,以及我们编写的着色器代码,生成游戏窗口。因此,我们只需要和这些东西打交道就行了。

在渲染阶段,Unity为我们提供了Sahderlab平台。Shaderlab是Unity内置的Shader(着色器)语言,着色器对应着上一节提到的计算机图像处理部分,它是我们和GPU(图形显卡)打交道的媒介,通过Shaderlab,我们可以调度GPU,修改顶点数据、计算片元颜色。

最后

有了这些最最基础的了解,我们可以开始投入到Unity Shaderlab的学习中了。需要注意的是Unity为我们提供了Shaderlab这个便捷的平台,这也就意味着我们学习的不是传统的Shader编程(如:DX,OpenGL),这些差异也会在后续的章节中说明。

0.2:Game and Art的更多相关文章

  1. css隐藏元素display:none,opacity:0;filter:alpha(opacity=0-100;,visibility:hidden的区别

    在CSS中,让元素隐藏(指屏幕范围内肉眼不可见)的方法很多,有的占据空间,有的不占据空间:有的可以响应点击,有的不能响应点击.我们一般有三种方式:display:none, opacity:0;fil ...

  2. SignalR 2.0 系列: 开始使用SignalR 2.0

    这是微软官方SignalR 2.0教程Getting Started with ASP.NET SignalR 2.0系列的翻译,这里是第四篇:开始使用SignalR 2.0 原文:Getting S ...

  3. Common Lisp学习笔记(0):从SLIME开始 | 优哉·幽斋

    Common Lisp学习笔记(0):从SLIME开始 | 优哉·幽斋 Common Lisp学习笔记(0):从SLIME开始

  4. [渣译文] SignalR 2.0 系列:SignalR的高频实时通讯

    原文:[渣译文] SignalR 2.0 系列:SignalR的高频实时通讯 英文渣水平,大伙凑合着看吧…… 这是微软官方SignalR 2.0教程Getting Started with ASP.N ...

  5. [渣译文] SignalR 2.0 系列: SignalR 自托管主机

    原文:[渣译文] SignalR 2.0 系列: SignalR 自托管主机 英文渣水平,大伙凑合着看吧…… 这是微软官方SignalR 2.0教程Getting Started with ASP.N ...

  6. [渣译文] SignalR 2.0 系列: 开始使用SignalR 2.0

    原文:[渣译文] SignalR 2.0 系列: 开始使用SignalR 2.0 英文渣水平,大伙凑合着看吧…… 这是微软官方SignalR 2.0教程Getting Started with ASP ...

  7. [渣译文] SignalR 2.0 系列: 支持的平台

    原文:[渣译文] SignalR 2.0 系列: 支持的平台 英文渣水平,大伙凑合着看吧,并不是逐字翻译的…… 这是微软官方SignalR 2.0教程Getting Started with ASP. ...

  8. [渣译文] SignalR 2.0 系列: SignalR简介

    原文:[渣译文] SignalR 2.0 系列: SignalR简介 英文渣水平,大伙凑合着看吧,并不是逐字翻译的…… 这是微软官方SignalR 2.0教程Getting Started with ...

  9. .Net 2.0实例学习:WebBrowser页面与WinForm交互技巧

    原文:.Net 2.0实例学习:WebBrowser页面与WinForm交互技巧 最近看到博客园入门教学文章比较流行,自己最近又偷懒比较多,没啥心得,不妨写一篇没啥深度的入门文章吧. 话说有了WebB ...

随机推荐

  1. c++ 模板相关

    https://blog.csdn.net/lezardfu/article/details/60466161 https://www.cnblogs.com/ymy124/p/3632634.htm ...

  2. git checkout --theirs(ours)

    假设原来有文件A,程序员甲把A进行了完全的重写,而甲在自己的branch工作的同时,他的同事程序员乙则对A进行了一个优化.这样,当甲想要merge的时候,A文件就有很多的冲突,可能多达几百行. 这时候 ...

  3. php数组函数大全

    一.数组操作的基本函数 数组的键名和值 array_values($arr);获得数组的值 array_keys($arr);获得数组的键名 array_flip($arr);数组中的值与键名互换(如 ...

  4. 6.1 Pandora 实操 - 数据收集

    添加机器 添加机器命令,在 linux 机器上执行此命令 添加成功 添加收集器 采集机器数据 解析数据 转换数据 发送数据 接着,下一步即,成功创建收集任务. 分发机器 确认收集人物,绑定到机器上. ...

  5. 腾讯地图key秘钥

     腾讯地图key:5WNBZ-2JYR6-SPUSL-M3WGH-U4KDT-K2FYV 

  6. 13 form表单

    form表单中可包括 <input > 类型包括 text(name,value) password(name,value) checkbox(name,value) radio(chec ...

  7. 蒜厂年会|计蒜客2019蓝桥杯省赛 B 组模拟赛(一)

    样例输入: 3 1 -2 1 样例输出: 2 方法一: 将环形数组拆分成为普通数组,(通过搬运复制数据到尾部),再求前缀和,找出最大前缀和.因为枚举了每一个起点,所以最大连续和也一定出现在前缀和中.. ...

  8. poj2109 【贪心】

    Current work in cryptography involves (among other things) large prime numbers and computing powers ...

  9. 洛谷P3919 【模板】可持久化数组(可持久化线段树/平衡树)

    题目背景 UPDATE : 最后一个点时间空间已经放大 标题即题意 有了可持久化数组,便可以实现很多衍生的可持久化功能(例如:可持久化并查集) 题目描述 如题,你需要维护这样的一个长度为 N 的数组, ...

  10. Python------excel读、写、拷贝

    #-----------------------读excel-----------------#1 打开方式 索引.名字#2 获取行数据 sheet.row_values(0):获取某行第n到m列(n ...