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 ...
随机推荐
- nginx的https和http共存反向代理配置
一.设置http反向代理: upstream ly.com { server ; server ; } upstream home.ly.com { server ; server ; } 对应增加: ...
- Ubuntu 安装mono
Ubuntu 安装mono 我的系统:Ubuntu 16 Mono参考: http://www.mono-project.com/docs/getting-started/install/linu ...
- yum安装mysql-5.6(centos7)
centos 7.3 安装mysql 5.6 rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm yu ...
- Xcode - Xcode10上传应用到AppStore
Xcode 10 如何上传应用到AppStore?Product->Archive 后,原来Xcode 10 之前的版本是直接有两个按钮,一个upload to AppStore,另一个叫Exp ...
- 线程锁Lock
from threading import Thread, Lock import time def func(): global n n -= 1 n = 10 t_list = [] for i ...
- 把项目挂载到composer上
1.打开composer的安装包列表网站,点击submit 2.把刚才初始化了composer的项目push到github上(至于怎么push,最简单就是用git了) 3.然后把github的网址复制 ...
- spring-boot(三) HowTo
Spring Boot How To 1. 简介 本章节将回答一些常见的"我该怎么做"类型的问题,这些问题在我们使用spring Boot时经常遇到.这绝不是一个详尽的列表,但它覆 ...
- oracle 存储过程分页
将分页的存储过程封装到包中,包规范 create or replace package pkg_query as type cur_query is ref cursor; PROCEDURE prc ...
- 传纸条---(dp)
题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个mmm行nnn列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了. ...
- pythonic operations
变量交换 >>> a, b = b, a 循环遍历区间元素 >>>for i in range(10): ... print (i) 返回的是生成器对象,生成器比列 ...