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 ...
随机推荐
- MSSQL和MYSQL数据库降权
在服务器上如果是 system 用户在运行 MySQL ,这个是非常危险的,一旦Mysql 出现漏洞,或被其他模式提权,直接就是 system 权限.所以我们现在要给MySQL降权! 作用:增强服务器 ...
- ux.form.field.Password 密码与非密码状态切换
效果如图: 扩展源码: //扩展 //密码按钮扩展 //支持在密码与非密码之间切换 Ext.define('ux.form.field.Password', { extend: 'Ext.form.f ...
- ASP.NET MVC+Vue.js实现联系人管理
接触了一天vue.js,简单浏览了一本关于vue的电子书,就开始动手使用ASP.NET MVC和Vue.js开发一个联系人管理的小程序. 先看一下这个联系人管理的小程序的界面,也就是我们大概要实现什么 ...
- 关于4A网络安全管控平台控件加载失败的解决方法
最近电脑重装系统后,到公司登录4A管控平台提示"控件加载失败","无效的参数为:Null","点击资源无任何反映"等等问题 别人的电脑用的好 ...
- Python中的test测试
不知道怎么回事,打开的工程中出现了pytest,难道是检测到了我的命名中有test吗? 参考博文:https://blog.csdn.net/weixin_41605937/article/detai ...
- js 画布与图片的相互转化(canvas与img)
使用js将图片拷贝进画布 //将图片对象转化为画布,返回画布function ImageToCanvas(image) { var canvas = document.createElement(&q ...
- inner_product
版本1: template < class InputIterator1, class InputIterator2, class T> T inner_product(InputIter ...
- C# 让String.Contains忽略大小写
在C#里,String.Contains是大小写敏感的,所以如果要在C#里用String.Contains来判断一个string里是否包含一个某个关键字keyword,需要把这个string和这个ke ...
- [学习] 从 函数式编程 到 lambda演算 到 函数的本质 到 组合子逻辑
函数式编程 阮一峰 <函数式编程初探>,阮一峰是<黑客与画家>的译者. wiki <函数编程语言> 一本好书,<计算机程序的构造与解释>有讲到schem ...
- shell编程之awk命令详解
shell编程之awk命令详解 a:focus { outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; out ...