0.2:Game and Art
文章著作权归作者所有。转载请联系作者,并在文中注明出处,给出原文链接。
本系列原更新于作者的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的更多相关文章
- css隐藏元素display:none,opacity:0;filter:alpha(opacity=0-100;,visibility:hidden的区别
在CSS中,让元素隐藏(指屏幕范围内肉眼不可见)的方法很多,有的占据空间,有的不占据空间:有的可以响应点击,有的不能响应点击.我们一般有三种方式:display:none, opacity:0;fil ...
- SignalR 2.0 系列: 开始使用SignalR 2.0
这是微软官方SignalR 2.0教程Getting Started with ASP.NET SignalR 2.0系列的翻译,这里是第四篇:开始使用SignalR 2.0 原文:Getting S ...
- Common Lisp学习笔记(0):从SLIME开始 | 优哉·幽斋
Common Lisp学习笔记(0):从SLIME开始 | 优哉·幽斋 Common Lisp学习笔记(0):从SLIME开始
- [渣译文] SignalR 2.0 系列:SignalR的高频实时通讯
原文:[渣译文] SignalR 2.0 系列:SignalR的高频实时通讯 英文渣水平,大伙凑合着看吧…… 这是微软官方SignalR 2.0教程Getting Started with ASP.N ...
- [渣译文] SignalR 2.0 系列: SignalR 自托管主机
原文:[渣译文] SignalR 2.0 系列: SignalR 自托管主机 英文渣水平,大伙凑合着看吧…… 这是微软官方SignalR 2.0教程Getting Started with ASP.N ...
- [渣译文] SignalR 2.0 系列: 开始使用SignalR 2.0
原文:[渣译文] SignalR 2.0 系列: 开始使用SignalR 2.0 英文渣水平,大伙凑合着看吧…… 这是微软官方SignalR 2.0教程Getting Started with ASP ...
- [渣译文] SignalR 2.0 系列: 支持的平台
原文:[渣译文] SignalR 2.0 系列: 支持的平台 英文渣水平,大伙凑合着看吧,并不是逐字翻译的…… 这是微软官方SignalR 2.0教程Getting Started with ASP. ...
- [渣译文] SignalR 2.0 系列: SignalR简介
原文:[渣译文] SignalR 2.0 系列: SignalR简介 英文渣水平,大伙凑合着看吧,并不是逐字翻译的…… 这是微软官方SignalR 2.0教程Getting Started with ...
- .Net 2.0实例学习:WebBrowser页面与WinForm交互技巧
原文:.Net 2.0实例学习:WebBrowser页面与WinForm交互技巧 最近看到博客园入门教学文章比较流行,自己最近又偷懒比较多,没啥心得,不妨写一篇没啥深度的入门文章吧. 话说有了WebB ...
随机推荐
- linux telnet检测与某个端口是否开通
转自:http://blog.51cto.com/meiling/1982402 一:telnet此法常被用来检测是个远端端口是否通畅. 测试域名: # telnet baidu.com 80 Try ...
- C#Windows Service服务程序的安装/卸载、启动/停止 桌面客户端管理程序设计
C#Windows Service服务程序的安装/卸载.启动/停止 桌面客户端管理程序设计 关于Windows Service程序的安装与卸载如果每次使用命令行操作,那简直要奔溃了,太麻烦而且还容易出 ...
- JPA唯一索引更新删除的问题
本来的功能是更新,我的做法是先删除再新增.表设置了字段A和字段B的唯一主键,先删除这个字段再新增一一模一样的值(包含字段A和字段B)时会报唯一主键的值重复了,百度了下,没找到原因,于是就不删除记录了, ...
- Logistic 最大熵 朴素贝叶斯 HMM MEMM CRF 几个模型的总结
朴素贝叶斯(NB) , 最大熵(MaxEnt) (逻辑回归, LR), 因马尔科夫模型(HMM), 最大熵马尔科夫模型(MEMM), 条件随机场(CRF) 这几个模型之间有千丝万缕的联系,本文首先会 ...
- 11.17 flask (1)
2018-11-17 18:38:42 开始学习进行玩前面项目 开始进军flask flask是一个小型的web框架,,但是有很多第三方组件 最后组装组装就和django一样啦!!!!!!! pyt ...
- python3的Cryptodome
简介 python3的PyCryptodome库用于密码学,属于对PyCrypto库的扩展. 安装 Linux上安装: pip install pycryptodome Windows上安装: pip ...
- vue2中使用 better-scroll
使用时有三个要点: 一:html部分 <div class="example" ref="divScroll"> <div> <p ...
- luke下载使用
网上内容太多,下载了却不管用,即使下载了,也不知道怎么用.(对我这种小白来说,大神就一笑而过吧) 下载地址:http://www.xdowns.com/app/253909.html(如若下载不到可以 ...
- [No0000198]swagger api一键导入postman
在用postman进行接口测试时,对于参数较多的接口时第一次添加接口参数是比较繁琐的,可利用swagger一键导入api接口,事例如下: 1.获取swagger地址 2.打开postman,点击imp ...
- (一)juc线程高级特性——volatile / CAS算法 / ConcurrentHashMap
1. volatile 关键字与内存可见性 原文地址: https://www.cnblogs.com/zjfjava/category/979088.html 内存可见性(Memory Visibi ...