高新企业立项报告收入ps的立项文件怎么弄

甲级单位编制PS印刷版材感光材料项目可行性报告(立项可研+贷款+用地+2013案例)设计方案_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
甲级单位编制PS印刷版材感光材料项目可行性报告(立项可研+贷款+用地+2013案例)设计方案
您身边的投资咨询顾问|
总评分0.0|
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩43页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢多图预警。&br&长文预警。&br&&br&上一次更新:日。&br&这次没有更新本回答的正文内容,但是我在我的专栏&a href=&/studygame& class=&internal&&自学游戏开发 - 知乎专栏&/a&中,发布了&a href=&/p/& class=&internal&&一个游戏是如何被设计和开发出来的 - 知乎专栏&/a&。里面比较详细地展示了游戏的开发流程,以及人员分工、每个岗位的工作内容和能力要求。那篇文章共28900字,附带50个视频,希望有所帮助。&br&&br&这篇回答还在龟速更新中,大家如果特别想了解哪一部分,或者对已提到的部分还有疑问,可以在回答下留言。收到反馈能帮我更好地解答~另外,好多人加我好友,一上来打招呼就问应该怎么开始学习。其实我正文中说得很清楚了,请仔细参考程序部分。&br&&br&&br&&b&以这篇真诚的回答,致敬每一个 愿意把人生奉献给游戏事业的人。&/b&&br&&img src=&/v2-e9ede9be7fbc9d7b8bbd6d44fd554ce7_b.jpg& data-rawwidth=&1920& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&/v2-e9ede9be7fbc9d7b8bbd6d44fd554ce7_r.jpg&&&br&&br&&br&题主你好~很想分享下学习经验。&br&我学习游戏设计到现在有五六年了,主要研究游戏的核心玩法设计,学过编程学过美术也学过音乐音效制作。曾经在游戏行业呆过一段时间,当时负责一款MMORPG游戏的土耳其市场。我的目标是做一个全能游戏设计师——什么都懂的游戏策划。目前的个人最高水平可以一人独立做出CS、Rust这样游戏的Demo。细分说技能的话,我会的东西有:&br&&ul&&li&编程(C、C++、C#、Java、JavaScript、HTML、Perl、Shell、SQL,&a href=&///?target=http%3A//ASP.NET& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&ASP.NET&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&网站制作,计算机图形学背景,熟悉Unity、Unreal4引擎)&/li&&li&美术(原型概念设计/不太熟练,素描还可以,色彩/应用不太熟练;3ds Max 建模、骨骼、蒙皮; C4D-Bodypainter贴图绘制;Maya建模;Zbrush雕刻在学,Substance Painter贴图绘制在学)&/li&&li&声音(学过音效处理,会用Au,给电影做过音效配音; 音乐是我目前最薄弱的一项,懂些乐理、识谱,知道鼓组、提琴阵、贝斯等基础编排,会用FL,平时没时间练习,打算2017年专项学习)&/li&&li&其他(以前玩摄影摄像,曾经做过大型舞台摄像、随行摄影;会用AE、PR、会声会影,做过不少视频。 我热爱户外运动。)&/li&&/ul&上面这些是我的技能树,每一个单项技能和专业人士是没法比的,但基本都往就业水平去学了。重要的是基本上&b&所有这些技能我都是自学的&/b&,所以我还算比较了解自学游戏设计与开发怎样才能避免走弯路。我也很想给同样选择了游戏事业,志同道合的朋友一些帮助。我也曾经少年过,做过游戏梦,心怀过”伟大的“游戏想法。五六年过去,现在我已经具备独立开发游戏的能力了。这个时间还不算久,因此我还能记得六年前的我,在站门外是什么感觉。我理解你们。发自内心地想要帮助你们实现游戏梦。有的知友在看完回答后私信我说,找到了人生的方向,今后几年的奋斗目标。我很感动,真诚地希望中国出现越来越多真正的游戏人,优秀的游戏设计师。这篇回答从2015年7月开始写,一直写到现在,六个月过去了,期间我一直在推敲我给出的学习方案的合理性以及效率最大化,并跟踪了一些刚入门的学习者的学习进度,学习体验。以此为基础来完善我们的学习路线。这也是为什么我更新得如此缓慢。我原本就计划是在两年之内完成本回答,包括美术和音乐的全部内容。为此我需要亲自去走一遍每个领域的学习路线,再总结成适合自学的方法论。在理论经过亲自验证之前,我不会公开宣扬,这是我坚持的做事原则。在过去的半年内,我把美术方面从概念设计到次时代级模型制作的整个流程通学了一遍,现在我正试着亲自带几个人来一次全面的学习。做这些事情,花费了我大量的精力,但我仍然坚持拒绝接受任何资金回报,以免变了味,成了个人商业培训。我做这些事的目的很纯粹,如前文所说,就是希望看到中国出现更多优秀的游戏设计师。&br&同时,我也发现了一些非常不好的现象:&b&许多私信联系我的学习者,连此篇回答都没能认真看完,就来问我应该如何开始自学,是否能提供学习资源。我通篇都在讲述如何自学,每一个板块后面都贴了资源。&/b&让人气愤的是我写了几个月的回答,如果连花费一小时阅读的耐心都没有,那么我也只能认为他更没有耐心来学习几年的游戏开发了。因此在私信提问我之前,请认真阅读此回答,这是一种对他人工作的尊重。&br&&br&现在开始严肃地讨论。看了题主的问题,我看得出题主是一个&b&真正想做游戏的人,而不是一个只想通过游戏赚钱的人。&/b&确实是这样的话,题主不需要去趟国内游戏行业这趟浑水,更不用通过进游戏公司来学习。在你什么都不会的情况下,就算进公司你也只能做苦逼体力活(比如:黑盒测试、配表、客服),成长很慢。而且国内游戏行业是一个聊钱聊产品聊运营的地方,不是聊游戏设计的地方。现在我&b&假设你的目标和我一样是做一个“全能游戏设计师”,并且假设你是高中刚毕业,什么都不会。&/b&这个假设的期望比较高,要高于你单纯地做出一款游戏来。应该能满足你的需求吧?&br&&b&在这样的前提下,你要达到你的目标,需要哪些的能力?我先给你展示一下&/b&:&br&&br&这是A大的游戏开发日记视频列表:&a href=&///?target=http%3A///%21/video/0//1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&AliveGameStudio的个人空间&i class=&icon-external&&&/i&&/a&&br&A大就是一个既会编程,又会美术,又会策划,又会音乐的人。这系列视频就展示了一个全能游戏设计师需要具备的所有“硬”技能以及技能应该达到的熟练程度。(A大:Q币已到账)&br&题主你先看几期他的视频,了解一下他所具备的能力。等等,请收好这副星星眼,也许能用得着。&br&&br&这里我先罗列一下一个全能设计师所应掌握的最基本技能,然后后面再逐个给相应技能的&b&学习途径&/b&:&br&硬技能分为四个大块:&br&1、&b&程序&/b&&br&4、&b&设计&/b&(核心玩法、交互等)&br&2、&b&美术&/b&&br&3、&b&音乐&/b&&br&这里我把这四项以重要程度做了一个排序(仅对新人设计师而言)。这四项技能可以顺序专项学习,也可以交叉混合学习。优先级依次往下。我下面就来逐个分享学习方法。&br&&br&&br&&br&&br&&b&————Part1 你必须会编程—————&/b&&br&&b&程序&/b&,对目前你的情况来说,是这些技能里面&b&最重要&/b&,最&b&迫切需要&/b&,也是&b&最好学习&/b&的一项。为什么是它呢,因为你只有会编程、掌握了一款游戏引擎,你才会真正明白:游戏,作为一款软件来说它的本质是怎样的,它是如何运作的。你不知道汽车是如何工作的,你就制造不出一辆车。了解程序,就是了解一款游戏在电脑上工作的原理。并且&b&当你编程能力过关,掌握了一款游戏引擎后,即使你其他什么都不懂你也已经能够做出简单的游戏demo了&/b&。实现这些,只需要几个月的时间。但是如果你先攻学其他几项,这都不可能。&br&那么编程应该如何开始学呢?&br&有很多种打开方式,我在第一版回答中给出了一些可选项,但是我后来我考虑到纯新人不具备判断和抉择的能力,很容易到处撞墙。所以现在我只给出一条学习路线。设置这条路线的指导思想是:&br&在保证知识稳固的前提下,最快速地学以致用。&br&编程学习路线分两步:&br&1、学习C#&br&&b&2、学习Unity&/b&&br&&b&3、学习C#&/b&&br&&br&“明明是三步嘛!” &br&“额~是这样的,请听我慢慢道来。” &br&一般来说C#编程能力是学Unity的前置条件。但是,对于什么都不懂的人来说,直接学习C#会感到无聊、迷茫、没有尽头,不知道现在所学的这些东西在以后实际做游戏时会怎么用到,很可能会让理想之路产生动摇。然而直接学Unity就不会无聊了,因为所学的东西我们能很直观地了解今后会如何发挥作用。但是因为没有编程基础,所以需要写脚本的地方学起来会比较吃力。这个时间吶,我们就会想到要去学习编程。然后带着目标去学C#。我突然想起我和一个知友的聊天记录好像能解释这样安排的原因。&br&&img src=&/v2-7babdf6eaaac7c20f30ea31d_b.png& data-rawwidth=&1080& data-rawheight=&5589& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&/v2-7babdf6eaaac7c20f30ea31d_r.png&&&br&这是一个大一的学生,之前只跟学校的课程学过一点C++,我估计也就几节课的程度。加我好友之后,我给他指点了一下学编程的路径,然后一个月后他就能做点东西出来了。来看下面这张图。第一屏是他的发的说说,是刚学Unity几天时发出来装X的,被我批了一顿+鼓励了一顿。后面是一个月后他找我来汇报学习进度的记录。注意看时间,真人实践证明按我给的路线是可以做到短时间内上手游戏开发的。&br&&img src=&/v2-507aca8e305c1b5a1cee0_b.png& data-rawwidth=&1080& data-rawheight=&6060& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&/v2-507aca8e305c1b5a1cee0_r.png&&&br&OK,再文字总结一下&b&程序学习路径&/b&:&b&我们先从C#学起,初学的编程的时候可以不求甚解,先记住形式,之后会慢慢自行理解。当C#学到无聊、乏闷的时候(会发生在任何进度点)就先放下,转而去学Unity。&/b&&b&Unity中有相当一部分功能是不需要懂编程也能用的,我们可以学到不少东西。当稍微进阶的时候,我们就会接触到编程的部分,这时之前学的C#一定会让我们感到熟悉。通过Unity教程,我们也能反哺巩固C#的知识。但是更多时候,我们会发现Unity教程中关于编程的部分,我们实在跟不走了,很多代码不能理解。那么我们自然会想回去学好C#。这是一个相辅相成的过程。&/b&避免了专门学编程语言时的痛苦。下面是一些教程资源。&br&&br&&br&&br&&br&&b&—————C#教程:———————&/b&&br&C#是一个编程语言,编程语言有很多种,每一种都有自己的特色,这里不一一介绍。我们先学习C#就好了,它是Unity开发中最热门的语言。&br&先给学习资源:&br&&ul&&li&第一季:&a href=&///?target=http%3A///course/240& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&/s/1hrXeOGc&i class=&icon-external&&&/i&&/a&&br&&/li&&li&第二季:&a href=&///?target=https%3A///s/1o6GLFWe& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/s/1o6GLFW&/span&&span class=&invisible&&e&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& 密码:2536&/li&&li&第三季:&a href=&///?target=https%3A///s/1kVxscJl& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/s/1kVxscJ&/span&&span class=&invisible&&l&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& 密码:tpol&/li&&li&第四季:&a href=&///?target=https%3A///s/17HyA6& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/s/17HyA6&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a& 密码:wtap&/li&&li&备用链接:&a href=&///?target=http%3A///s/1nuL9UVR& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/s/1nuL9UV&/span&&span class=&invisible&&R&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& 密码:xf7r&/li&&/ul&这些是泰课在线联合创始人Siki老师的教学视频,泰课在线是我阅了无数教学视频后发现质量比较有保障的。Siki的课讲得很细致很耐心,十分适合零基础初学者。关于编程方面的技能,完全可以在泰课在线这个网站学到毕业。他还有其他课程,可以在个人微信公众号(devsiki)和官网找到,官网:(&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&泰课在线 - 国内专业的Unity在线学习平台|Unity3d培训|Unity教程|Unity教程 Unreal 虚幻 AR|移动开发&i class=&icon-external&&&/i&&/a&)。&br&听说Siki已经离开了泰课在线,那么再贴一个他的个人网站吧:&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&siki -
游戏开发视频教程&i class=&icon-external&&&/i&&/a&(Siki:Q币已到账)&br&针对C#学习再给一些免费资源:&br&&ul&&li&&a href=&///?target=http%3A//www.51zxw.net/list.aspx%3Fcid%3D548& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&C#入门教程-我要自学网&i class=&icon-external&&&/i&&/a&-我曾经没钱或找不到其他教程的时候在这个网站学过很多东西。几乎全免费,收费也相当便宜,几毛钱一节课。&br&&/li&&li&&a href=&///?target=http%3A///csharp/csharp-tutorial.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&C# 教程 | 菜鸟教程&i class=&icon-external&&&/i&&/a&-百度搜索“C#教程”第一个网站&br&&/li&&li&下面这个是传智播客的教学录屏。很早以前的,但是讲课质量很高。(侵权立删)&br&&/li&&/ul&
链接:&a href=&///?target=http%3A///s/1csqO0Y& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/s/1csqO0Y&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a& 密码:nuy4&br&
链接:&a href=&///?target=http%3A///s/1ge3vIEJ& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/s/1ge3vIE&/span&&span class=&invisible&&J&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& 密码:0clu&br&&ul&&li&&a href=&///?target=https%3A///zh-cn/library/67ef8sbd.aspx& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&C# 编程指南&i class=&icon-external&&&/i&&/a&-这个是微软的C#官方手册,如果在学习过程中遇到任何知识点偏差,应该优先参考这份官方说明。&br&&/li&&/ul&&br&上面这些教程,加上大家自己百度或淘宝一些资源,应该足够大家把C#学毕业了。&b&不过记住!我们的目标是:全能设计师。而不是专职程序员。所以我们学习编程,最开始不需要面面俱到。只要学习一些最基础的。&/b&哪些知识是最基础的呢,我做了一个目录供以参考(见下表)。无论大家跟哪套教程,都只要先掌握这些知识点:&br&&ul&&li&&b&变量与常量&/b&&/li&&li&&b&表达式与运算符&/b&&/li&&li&&b&&b&字符类&字符串&/b&&br&&/b&&/li&&li&&b&流程控制语句&/b&&/li&&li&&b&数组和集合&/b&&br&&/li&&li&&b&类(&/b&属性和方法、面向对象特性&b&)&/b&&/li&&li& 命名空间&引用&br&&/li&&/ul&&br&按照这个顺序学习下来。其他的知识点可以在以后需要的时候现学现用。好了,现在你就可以着手开始试学了,在学习过程中如果遇到任何问题也可以加入我的兴趣交流群找我,群号:。(为避免无聊人士,设置了5元入群费)&br&&b&———————以上是C#教程—————————&/b&&br&&br&&br&&b&————————Unity教程————————&/b&&br&Unity3D是一款比较全面的游戏引擎,功能强大,使用简单,开发流程快,社区资源丰富,是世界各地的独立开发者最喜爱的游戏引擎。暴雪的《炉石传说》是用这个引擎开发的。steam上热门的《Rust》(中文名:《腐蚀》)也是用这个引擎开发的。&br&仍然是先给免费学习资源:&br&&ul&&li&&b&&a href=&///?target=http%3A///course/429& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Unity3D初级课程之新手入门&i class=&icon-external&&&/i&&/a&&br&&/b&&/li&&li&&a href=&///?target=http%3A///course/431& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Unity3D初级课程之新手进阶&i class=&icon-external&&&/i&&/a&&br&&/li&&/ul&学到这个进阶课程会做下面这个的小射击游戏demo&br&&img src=&/b92d8ca1ac93e8eabad8877adef7accb_b.png& data-rawwidth=&952& data-rawheight=&529& class=&origin_image zh-lightbox-thumb& width=&952& data-original=&/b92d8ca1ac93e8eabad8877adef7accb_r.png&&&br&&ul&&li&&a href=&///?target=http%3A///course/63& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Space Shooter 太空射击&i class=&icon-external&&&/i&&/a&&br&&/li&&/ul&学完这个会做下面这个打灰机游戏demo(我大一时自己做的第一个完整游戏就是用这个Demo改造出来的)&br&给个玩耍链接吧:&a href=&///?target=http%3A///s/1skDokYp& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/s/1skDokY&/span&&span class=&invisible&&p&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&(里面有个rar是电脑版,apk是手机版。玩法是活过120秒,并没有什么彩蛋奖励。有一个懒得修复的已知BUG,会导致飞船消失但不判定失败,我并不会告诉你们触发条件是什么hiahia。)(不要妄想一直躲在角落活过120秒,我的AI会识别你的行为的~)&br&&img src=&/v2-cf91ecdd8d4b3157cad03_b.jpg& data-rawwidth=&542& data-rawheight=&730& class=&origin_image zh-lightbox-thumb& width=&542& data-original=&/v2-cf91ecdd8d4b3157cad03_r.jpg&&&br&&b&砰砰,看黑板,回到正题!&/b&&br&&ul&&li&&b&&a href=&///?target=http%3A///course/302/lesson/list& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Unity入门案例-Tanks坦克大战&i class=&icon-external&&&/i&&/a&&br&&/b&&/li&&li&&a href=&///?target=http%3A///course/304/lesson/list& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Unity2D游戏开发2D Roguelike拾荒者&i class=&icon-external&&&/i&&/a&&br&&/li&&/ul&OK,上面这四个都是免费的新手教程,顺序学习就好了。学完这些,对Unity以及游戏开发就会有一个初步的认识了。再之后要进阶学习,开发更大型的游戏,大家可以根据个人的胃口来挑选合适的教程进修。现在百度“Unity教程”,很多内容,好好挑一挑吧。(当然,优质的教程是需要付费的)&br&比如说:&br&&ul&&li&&a href=&///?target=http%3A///course/91& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&RPG游戏黑暗之光&i class=&icon-external&&&/i&&/a&&br&&/li&&li&&a href=&///?target=http%3A///course/90& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CS之战局域网射击游戏(unity就业班)&i class=&icon-external&&&/i&&/a&&br&&/li&&li&&a href=&///?target=http%3A///course/119& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&年度史诗MMO ARPG 课程《泰斗破坏神》&i class=&icon-external&&&/i&&/a&&br&&/li&&li&&a href=&///?target=http%3A///course/282& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Unity3d MOBA游戏泰斗英雄联盟&i class=&icon-external&&&/i&&/a&&br&&/li&&li&&a href=&///?target=http%3A///course/113& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&unity 赛车race(手游)&i class=&icon-external&&&/i&&/a&&br&&/li&&li&&a href=&///?target=http%3A///course/268& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Unity3D ACT动作游戏《武士2》已完结&i class=&icon-external&&&/i&&/a&&br&&/li&&/ul&上面这些教程呢,新手肯定hold不住。我是搬过来给大家看看未来的,并且证明一下&b&Unity也能做很不错的端游,能够胜任各种类型的游戏&/b&。关于Unity的学习,我这篇回答不直接教学,但是有一点一定要提一下。在学习的过程中,大家肯定会遇到各种各样的问题和疑惑,这时官方文档会帮上很多忙:&br&&a href=&///?target=https%3A///Manual/index.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Unity - Manual: Unity Manual&i class=&icon-external&&&/i&&/a&——这是&b&官方手册&/b&,就是Unity的使用说明书,追根溯源所有的教程,都是源自于这份官方手册。如果在必要的情况下要自己研究某个系统,阅读这份手册就是第一步。&br&&a href=&///?target=https%3A///ScriptReference/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Unity - Scripting API:&i class=&icon-external&&&/i&&/a&——如果有任何的官方编写的&b&类&/b&或&b&函数&/b&不认识,不理解,不知道如何使用,应该在这里先搜索一下。&br&&i&API(Application Programming Interface,&a href=&///?target=http%3A///view/330120.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&应用程序&i class=&icon-external&&&/i&&/a&编程接口)是一些预先定义的&a href=&///?target=http%3A///view/15061.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&函数&i class=&icon-external&&&/i&&/a&,目的是提供&a href=&///?target=http%3A///view/330120.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&应用程序&i class=&icon-external&&&/i&&/a&与开发人员基于某&a href=&///?target=http%3A///view/37.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&软件&i class=&icon-external&&&/i&&/a&或硬件得以访问一组&a href=&///?target=http%3A///view/1582587.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&例程&i class=&icon-external&&&/i&&/a&的能力,而又无需访问源码,或理解内部工作&a href=&///?target=http%3A///view/79349.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&机制&i class=&icon-external&&&/i&&/a&的细节。&/i&&br&&a href=&///?target=http%3A///Manual/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Unity3D Manual 中文用户手册&i class=&icon-external&&&/i&&/a&——官方手册和API的中文版,供英文能力差的同学参考。(赶紧开始学英文吧。我曾经因为考虑到韩国游戏业发达,想辅修韩语,但是我们教授告诉我:世界上高级的游戏开发人员都会英语,包括韩国,所以你学好英语就行了。)&br&&a href=&///?target=https%3A///cn/community& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Unity - Community&i class=&icon-external&&&/i&&/a&——&b&Unity官方论坛&社区&/b&。国外学unity的都在这里提问、解答、交流经验,所以百度和google没有答案的时候不要忘了这里哟。&br&&b&———————以上是Unity教程 & 程序部分的教程————————&/b&&br&&br&&br&&br&&br&************************************章节分割线****************************************&br&&br&&br&&b&————Part2 设计理论—————&/b&&br&最开始我们假设了,我们的目标是:成为一个&b&全能游戏设计师&/b&。那么本质还是一个游戏设计师。&b&一个游戏设计师和常人的核心区别在于哪里呢?&/b&我认为有两点:&b&1、实践性能力&/b&,他能够带领团队把一项设计转换为具体的游戏软件(和导演类似)&b&2、思考与判断力&/b&,一个合格的游戏设计师应该具备自己的设计理念,同时深谙普适法则。 这和任何领域的艺术家都一样,比如说美术,每一个美术艺术家都有自己独特的绘画风格,但他们都知道如何做视线的第一落点第二落点。一个游戏设计师应该有自己的理念更应该具备&b&基础的理论&/b&。我相信一句话:&b&每一个玩家在游戏设计上都有自己的想法&/b&。如果说这个“想法”是一个成熟的理念&设计灵感,而他想要通过开发把这款游戏做出来,那么我通常会建议他首先去研究一下最基础的游戏设计理论,&b&看看自己的设计是否有违背一些基础法则&/b&,&b&哪些部分和前人总结的道理相顺应&/b&。然后通过基础理论来完善自己的设计。&br&设计理论如何习得呢?对新手而言,两个方法:&b&1、阅读;2、思考&/b&。&br&我先说说读书。这里推荐一个顺序阅读的书单:&br&&ul&&li&第一本:&b&《快乐之道:游戏设计的黄金法则》&/b&,这是一本启蒙级的设计丛书。它不会教你如何一步一步地设计出一个游戏,但它会在思想层面上醍醐灌顶,让你重新认识你所钟爱的“游戏”,以及发现“游戏”的更多可能性。我认为&b&游戏设计师,应该为这个世界带来更美好的价值&/b&。利益攻心是无法做出游戏的。所以先阅读这本书洗礼一下内心,开始建立今后在游戏设计上的道德基础,这是一个游戏设计师的必修课。 建议配合阅读《金刚经说什么》。&br&&/li&&/ul&&img src=&/b7ddc1b3211_b.png& data-rawwidth=&638& data-rawheight=&631& class=&origin_image zh-lightbox-thumb& width=&638& data-original=&/b7ddc1b3211_r.png&&&br&&br&&ul&&li&第二本:&b&《游戏改变世界》&/b&(《Reality Is Broken》)。阅读第一本书,目的是先建立正确的设计师价值观,第二本书是真正让我们开拓视野,更进一步地&b&发现“游戏”的更多可能性&/b&。这很重要,&b&我们理想的高度,限制于我们视野之所及&/b&。如果我们生于十九世纪上叶,压根儿没有见过电子游戏,如今便不会立志做游戏。如果我们现在看不到游戏在更多领域的价值,看不到游戏的更好形式,也很难在思想/设计上超越现在市面上的游戏。《游戏改变世界》这本书的使命,就是让我们看到游戏让世界变得更好的可能性。补充:作者Jane曾经在TED有个演讲,可以说是这本书的浓缩版,时长20分钟。大家也可以在TED看看她的其他演讲。&br&&/li&&/ul&&a href=&///?target=http%3A///talks/jane_mcgonigal_the_game_that_can_give_you_10_extra_years_of_life& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Jane McGonigal: The game that can give you 10 extra years of life&i class=&icon-external&&&/i&&/a&&br&&img src=&/bd51cfe218aeecfc85ea0f1_b.png& data-rawwidth=&664& data-rawheight=&614& class=&origin_image zh-lightbox-thumb& width=&664& data-original=&/bd51cfe218aeecfc85ea0f1_r.png&&&br&&br&&ul&&li&第三本:&b&《全景探秘游戏设计艺术》&/b&。在通过前两本书打了一些基础之后,应该可以开始尝试来讨论我们语境下的游戏了。这是一本从“思想”到“设计”的关键过渡书籍。书中作者谈论了游戏的四大基本元素以及元素的耦合、玩家的分类、&b&设计师所应具备的基本素质&/b&(不同于我们讨论的技能)、游戏迭代设计的过程等等内容,实在是非常充实。作为第一本了解游戏设计工艺流程的书非常合适。&br&&/li&&/ul&&img src=&/bcddc737e2581_b.png& data-rawwidth=&666& data-rawheight=&505& class=&origin_image zh-lightbox-thumb& width=&666& data-original=&/bcddc737e2581_r.png&&&br&&ul&&li&第四本:&b&《电与剑——角色扮演游戏设计艺术》&/b&。通过第四本,我希望能够更深入地讨论游戏的设计过程。推荐这一本书,是因为 一、他的语言简单幽默,充满鸡血,游戏路上坎坷难行,你需要在适当的时候来一碗;二、RPG游戏是各种游戏类型中系统较为全面的一类,无论做什么游戏,研究RPG游戏都有帮助,而且我知道过半想学做游戏的人都想过做RPG游戏,所以我也是特意挑选了这本豆瓣都没收藏的书放这里。(常年缺货,弥足珍贵)&br&&/li&&/ul&&img src=&/fdfbe0d53c6fbc_b.png& data-rawwidth=&998& data-rawheight=&356& class=&origin_image zh-lightbox-thumb& width=&998& data-original=&/fdfbe0d53c6fbc_r.png&&&br&推荐书单暂时到此结束,先小结一下书单的设置目标:&br&&ul&&li&&b&第一阶段&/b&:&b&建立正确的设计师价值观&/b&&br&&/li&&li&&b&第二阶段&/b&:&b&扩展眼界,看见游戏的更多可能&/b&&br&&/li&&li&&b&第三阶段&/b&:&b&系统地认识电子游戏,设计&开发流程,了解设计师基本素养&/b&&br&&/li&&li&&b&第四阶段&/b&:&b&深入研究自己感兴趣的游戏类别,专项问题研究&/b&&br&&/li&&/ul&我心中有一个怀疑,就是真完全的没有接触过游戏设计,而且平时也没有主动在网上搜索过相关内容的朋友,估计对于游戏的开发流程真的全无概念,那么我推荐的第三本书《全景探秘游戏设计艺术》还并不能帮你达到第三阶段的目标。针对这种情况,我想再推荐一下下面这本《游戏设计基础》,顺带它的两兄弟吧。 ╮(╯_╰)╭其实我个人是不喜欢第一本书的,因为它几乎是地毯式地普及了一遍游戏设计&开发的所有内容。我当时看的时候感受就是:你把所有东西都摆了出来,说几句大家都知道的道理,然后就切下一个话题?嗯~~不过~~但是~对于真的没有了解过游戏设计的朋友,也许书中说的东西还是对你很有帮助的,这很百科全书。《游戏开发核心技术》属于第四阶段读物,是讲故事与剧情的,建议配合阅读《故事》——罗伯特·麦基。&br&&img src=&/eb848aa064c531f780734cc_b.png& data-rawwidth=&1090& data-rawheight=&342& class=&origin_image zh-lightbox-thumb& width=&1090& data-original=&/eb848aa064c531f780734cc_r.png&&&br&第四阶读段物补充:《游戏运营管理》。我首先需要提一下游戏运营。因为我们辛辛苦苦做的游戏总是要给人玩的,也理所应当通过它来赚取我们应得的收入。&b&毕竟我们用一生来奋斗的事业,也应该能养活我们一生,不然理想就会被面包打败。&/b&游戏如何赚钱呢?在这方面国内的游戏领域真是处于宇宙领先的地位。而撑起国内游戏行业的支柱就是游戏运营。暂且不谈各种臭不要脸到没有下限到起死回生的运营手段,我觉得最需要了解游戏运营的不是专门的运营人员,而是总设计师。对一款游戏最了解的人,是总设计师。一个半途接手的运营人员,永远无法比总设计师更了解这款游戏,所以他要去做游戏调优,要去添置运营活动,要去促进消费,总是或多或少地会对游戏的生命周期造成损伤。而如果设计师在游戏设计的过程中就预设好了针对性的运营方案,那么不但不会缩短生命周期,反而会更大地促进玩家活跃度等运营指标。运营能力对于设计师的重要性不言而喻。但是考虑到一说专项问题研究,估计朋友们就会去死磕打击感、可重玩性、心流线路、玩家交互等设计问题而忽视运营问题,所以这里需要特别提一下。下面这本书建议配合阅读《营销管理》——Kotler P. / Keller K.L. &br&&img src=&/e8e8770471cbafe2a64df525f542dbb9_b.png& data-rawwidth=&635& data-rawheight=&532& class=&origin_image zh-lightbox-thumb& width=&635& data-original=&/e8e8770471cbafe2a64df525f542dbb9_r.png&&&br&继续补充:游戏领域是一个超过硬科幻小说写作领域的更庞大的领域。因此&b&需要我们设计者具备各种各样的素养和知识。&/b&光是上面这基本书是远远不够的,我们需要养成终生阅读的好习惯。下面是扩展的书单,我也不尽都读过,一起来读一读吧:&a href=&/question//answer/& class=&internal&&关于游戏策划的书有哪些推荐? - 陈灼的回答&/a&。然后除了书,我们还需要去发现国内外最新的思想成果,往往这些东西都不在书里,而是在论文与论坛里。所以我们不仅要逛论坛,还要养成&b&逛论文库&/b&的习惯。至于途径和资源,从百度和谷歌出发,去寻找自己喜欢的吧~(中文论坛我以前喜欢逛&a href=&///?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&,可是最近越来觉得深度变浅了~)&br&&b&——————————以上为阅读部分——————————&/b&&br&&br&&br&&br&&br&&br&&br&&b&&br&2、思考&/b&&br&设计师是需要有思维训练的,做思维训练的时候我们在练什么?先贴一个有意思的问答在这里,这是作家在进行思维训练时干的事情。对游戏设计师来说也是非常值得借鉴学习的。&br&&a href=&/question//answer/& class=&internal&&作家都是如何提高构思能力的? - 马伯庸的回答&/a&&br&不过需要总结一下,他的回答中说的到思维训练是对于世界背景架构、剧情设计的训练,就是那些不懂游戏的投机者们常常挂在嘴边的IP创作。&br&&br&下面我们来正式讨论关于思维的话题。&br&每一个游戏设计师应该思考的一个问题:&b&游戏设计方法论&/b&。&br&有人说“设计游戏没有一个固定的方法可循。” “如果有那么一个方法的话,那么按此方法设计出来的游戏都是一个样。” “那种方法还没有出现,也几乎不可能出现。” ……&br&以上那些话,都是废话。我们作为职业游戏设计师的,本职使命就要找到这样一个方法,然后去实践它。设计游戏的过程,就是实践自己的设计方法论的过程。许多在职的设计师会说并没有自己的方法论,也能设计。那样的设计师一般分两种。一种是心里有数但是没有主观地成文地去总结出来。另一种,压根就没有,他们设计游戏的过程,往往会前后矛盾,前期要求所有已知的功能所有在其他游戏中出现过的系统;中期陷入迷茫,不知道自己游戏的真正的乐趣该在哪里,应该往什么方向设计下去。后期发现之前做的许多功能都是白做了,整个游戏自己都不觉得好玩,面临推翻重来的窘境。&blockquote&方法:为达成某个特定目的,可以用来实践(实际操作)的模式或过程(步骤),并包括使用的工具或技巧。&br&&/blockquote&设计/开发游戏,其实和任何艺术创作、项目工作一样,就是一系列的行为实践的过程。任何一个过程都是可以总结成一套模式的(即方法论)。就像电影创作,可以形成好莱坞模式、日式、法式、冯小刚式、源氏。通过某种模式产出的电影,多多少少会带有该模式的印记,让人能够感觉出它是通过该模式制作出来的,比如好莱坞模式就是印记很强的一种。但是印记太强,并不是一件很好的事情。印记强意味着它容易趋于刻板,它的创作空间,它的变化空间受到了更多的限制。反过来说,也是这些限制、这些规则铸成了该模式。&br&&b&那么一个好的模式应该是怎样的呢?&/b&&br&&ol&&li&&b&它应该能提供模式最基本的功能,即对一系列行为过程的总结。&br&&/b&&/li&&li&&b&它应该能适用于更多的对象。越是接近真理的东西,越能在更多的地方体现。&/b&(就像相对论和进化论)&br&&/li&&li&&b&基于第二条,它指出了创作空间的范围。&/b&(这是它指导实践和自身进步的重要条件)&/li&&/ol&作为游戏设计师,或者是准游戏设计师,我们的一个本职使命就是要寻找这样一种模式(游戏设计方法论)。这不是顶尖的游戏设计师才能做的事情,而是每个敢自称游戏设计师的人都应该做的事情。也正是这个事情,自己的设计方法论的形成,让一个游戏设计师不同于其他的游戏设计师。大家耳熟能详的一些游戏设计师:&br&&ul&&li&宫本茂(超级马里奥系列)&br&&/li&&li&小岛秀夫(合金装备系列)&br&&/li&&li&陈星汉(旅、花)&br&&/li&&li&&b&Jade Raymond&/b& 女制作人(&a href=&///?target=http%3A///subview/93025.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&刺客信条&i class=&icon-external&&&/i&&/a&系列)&br&&/li&&li&Will Wright(模拟人生系列、模拟城市系列)&br&&/li&&li&Sid Meier(文明系列)&br&&/li&&/ul&试着想一想,他们哪一个的游戏不是都有着自己别致的风格?是什么导致他们所做的游戏在风格上差异那么大呢?甚至我们可以说,如果他们不是要特意尝试完全不同的风格,那么他们开发的下一款游戏(即使是非系列作品)也将带着他们个人的风格。这一点宫本茂就是个行走的例子。那么是什么让他们的游戏即成功又保持了个人风格?&br&是他们自己的设计方法论。&br&上面花了一些篇幅强调方法论的重要性,以及我们应该寻找、创立自己的方法论。那么我们应该如何做这个事情呢?我希望抱砖引玉,给出一个自己的经验和建议:&br&即回答一些问题,并且在整个职业生涯中不断地修正自己的答案。这些问题如下面这样:&br&&ul&&li&&b&游戏是什么?&/b&(我的定义能否同时用在文字冒险游戏、FPS游戏和扔沙包上)&/li&&li&&b&判断游戏好坏的标准是什么?&/b&(这个标准能否同时用在《魂斗罗》和《模拟人生》上)&/li&&li&&b&构成游戏的要素有什么?&/b&(某两种要素是不是可以归纳成一种)&/li&&li&&b&构成游戏的必须要素是什么?&/b&(《俄罗斯方块》和《Flap Bird》有这些要素吗)&/li&&li&&b&游戏的终极目标是什么?&/b&(为什么是这个,可不可以是其他的)&/li&&li&&u&《EVE(星战前夜)》&/u&&b&和&/b&&u&《Rust(腐蚀)》&/u&&b&在哪些地方是相似的?&/b&(还有哪些完全不同的游戏存在相似的体验)&/li&&li&&b&我为什么做游戏?&/b&&/li&&li&&b&……………………&/b&&/li&&/ul&希望最后一个问题没有轰击到你。通过对自己提问,和回答上面这些问题,通过看书阅读和研究别人的理论,我们会不断地修正自己的回答,不断地形成自己的思想体系。&b&千万!不要满足于自己现在给出的答案! &/b&思维训练,这些问题就能让我们在地铁上、公交车上、夜不能寐的晚上致身于游戏事业。&br&思维训练——游戏设计方法论,暂时就说到这里。刚刚提出的最后一个问题:我们为什么做游戏?是我别出心裁,想要引出下一个话题:&b&游戏设计理念&/b&。&br&&br&&b&游戏设计理念&/b&,不同于游戏设计方法论。方法论是指导我们行为和实践的一套理论。设计理念是驱动我们设计游戏的初始动力,也是我们追求的目标。每一个设计师,会有自己笼统的设计理念方向,每一个作品也会有自己的一个或多个设计理念。我们往往会批评一个游戏没有灵魂,其中这个“灵魂”就是设计理念。它是设计师在构想和整个创作过程中不断倾注的东西,也是设计师用来指导改进游戏的顶层因素。&br&那么设计理念在游戏中是如何得到体现的呢?那很微妙,就是我们在游戏中的获得的体验。游玩游戏的过程,可以说就是一个体验的过程(和游乐场一样)。我们从中获得什么样的体验,原则上取决于设计师想让我们获得怎样的体验。设计师通过在游戏项目中贯彻一种设计理念从而把&b&目标体验&/b&加入游戏。(这是如何做到的呢?回答这个问题,需要先对游戏的构成要素具备深刻的理解。这已经超出了本文的范围。)&br&我们来继续介绍设计理念,以及看一下不同的理念会对游戏设计产生什么影响。&br&&br&&br&(未完待续,以上部分更新于12月13日,下次继续)&br&&br&&br&先挖好坑,以后想分享的:&br&High Level Design&br&心流&br&&br&&br&&br&&b&&br&——————————以上为 思维训练 &设计 部分——————————&/b&&br&&br&&br&&br&&b&**********************************章节分割线***************************&/b&&br&&br&————&b&Part3 美术&/b&—————&br&如果我们有了编程能力,有了设计理论,有了一个游戏的想法……我们要把它表达出来。我不是说写案子给别人看,而是把想法可感官(受)化,可视化。那我们必然需要视觉元素的设计能力。游戏中所有对应视觉元素的工种都可以叫做美工(当然,准确的说需要除去计算机图形技术的编程人员)。美工下又有许多细分,比如:概念设定、人设、场景、建模师、贴图绘制、动作动画、特效制作、UI设计……这是一个庞大开发团队中的岗位列表。作为一个全能设计师,(坐稳扶好)我们需要掌握以上所有工种的核心技能。等等,你说你想放弃?别别别,这些事情没有想象中那么难。以我的经验,要拿下美工所有成就,是能在一年内就做到的。实在不行就两年!那么我们应该如何开始呢?&br&开头说啦,我们是高中生,除了做题什么都不会,所以也不会用PS(Photoshop)。然而PS的运用是每一个美工岗位都需要掌握的技能,甚至很多岗位完全就是在PS上工作的。所以我们先要熟悉一下PS。少年请收好这两发PS教程。&br&&b&Photoshop教程:&/b&&br&&a href=&///?target=http%3A//www.51zxw.net/list.aspx%3Fpage%3D7%26cid%3D339& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&PhotoshopCS5视频教程_Page7-我要自学网&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=http%3A//www.51zxw.net/list.aspx%3Fcid%3D524& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&PhotoshopCC案例教程&i class=&icon-external&&&/i&&/a&&br&这两份教程并不一定要先看完,但是最后你们总会知道要回来学的。&br&&br&对PS有一定了解了之后再去学什么呢?我假设你已经花了不少时间学习了程序,学习了Unity的使用,并且在学习过程中接触了3D游戏的开发。那么,你现在肯定会想知道3D模型到底是什么鬼。所以我建议这时先去学习一下3Dmax这款软件。&br&&b&3Dsmax 教程:&/b&&br&&a href=&///?target=http%3A//www.51zxw.net/list.aspx%3Fcid%3D431& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&3Dsmax2012基础教程&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=http%3A//www.51zxw.net/list.aspx%3Fcid%3D324& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&3Dmax高级建模教程&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=http%3A//www.51zxw.net/list.aspx%3Fcid%3D357& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&3DS MAX三维动画教程&i class=&icon-external&&&/i&&/a&&br&大家注意啊,虽然这几个教程都是来自“我要自学网”,但是我为大家选教程不是随便找的,而是有设置目的的。PS和3Dmax的教程网上都是一抓一大把,大家找的时候也要注意甄别。像上面这三套教程,第一套普及3Dmax大部分知识点,第二套深入高模制作的技术手段(不光是软件工具的使用了,还包括了制作思路和经验),第三套了解3D动画的知识点。整体难度呈螺旋上升。边学边跟着做,学完并掌握这些大概需要全天两到三个月(已经算上了偷懒和怀疑人生的时间)。如果谁在学这些的期间,没有怀疑过理想没有怀疑过人生,那么我建议顺手把“动画原理”也学了,这会帮助理解3Dmax里面的工具的工作原理。其他人就算了,后来还有很多东西等着我们呢~&br&&br&3Dmax掌握了,现在知道unity里面那些模型、动作都是怎么一回事了,感觉我好像什么都知道了呢。这时候你已经很棒了,真的很棒了,但这还不够。因为你只是知道了一些制作原理,让你设计一些真正的东西你还是会懵逼的。不要急,我们马上就来学习设计!&br&设计怎么学呢?CG美术怎么学我们就怎么学。学习步骤:&br&&b&1、学习线稿绘画,能够用线稿表达任何实物。&/b&(就是让你画什么你就能画什么,用线画出来)&br&下面我要献丑了:这是我从零开始学习,正好学了一个月时设计的东西。用线表达清楚所有结构,外形设计,内形切割要符合形式美法则(然而我这并不美,除那坨热翔)。&br&&img src=&/v2-b332d8eed873b9369f07e_b.png& data-rawwidth=&1172& data-rawheight=&957& class=&origin_image zh-lightbox-thumb& width=&1172& data-original=&/v2-b332d8eed873b9369f07e_r.png&&&br&&img src=&/v2-7dbffa3dc_b.png& data-rawwidth=&1919& data-rawheight=&537& class=&origin_image zh-lightbox-thumb& width=&1919& data-original=&/v2-7dbffa3dc_r.png&&&br&&b&2、学习素描。&/b&(不是这样的素描:传统纸上素描)&br&&br&&br&而是这样的素描(PS里绘画)&br&这是我第三次画素描几何体。&br&&img src=&/v2-2f8cff53ed4cafd5368250_b.png& data-rawwidth=&1222& data-rawheight=&464& class=&origin_image zh-lightbox-thumb& width=&1222& data-original=&/v2-2f8cff53ed4cafd5368250_r.png&&&br&右图中电视机下面两个几何体那样的素描。(学素描第一周的练习作品)&br&&img src=&/v2-772fa6af28aa7839fcca018dd0893dec_b.png& data-rawwidth=&1401& data-rawheight=&522& class=&origin_image zh-lightbox-thumb& width=&1401& data-original=&/v2-772fa6af28aa7839fcca018dd0893dec_r.png&&&br&&br&学到后面要能够用素描画出各种实物。比如下面右边这个是我用15分钟临摹的,左边是原物。&br&&img src=&/v2-d6d53a7c54004acff8d2dbbde6e65b3b_b.png& data-rawwidth=&451& data-rawheight=&622& class=&origin_image zh-lightbox-thumb& width=&451& data-original=&/v2-d6d53a7c54004acff8d2dbbde6e65b3b_r.png&&&br&当能够用素描自己设计东西的时候就算及格了。(学习半个月时自己设计的作品)&br&&img src=&/v2-cbedeaf03cd97_b.png& data-rawwidth=&1000& data-rawheight=&963& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&/v2-cbedeaf03cd97_r.png&&&br&下面这个是我学习一个月时设计的作品,第一个是我设计的刺客套装(其他三个是队友设计的)&br&&img src=&/v2-b2012b87abbed59b432d1c_b.png& data-rawwidth=&2616& data-rawheight=&1262& class=&origin_image zh-lightbox-thumb& width=&2616& data-original=&/v2-b2012b87abbed59b432d1c_r.png&&&br&&b&3、学习色彩。&/b&&br&是不是放图太多了?这一步我还正在学习中,潦草的练习作品倒是很多,先不放了(保护大家眼睛要紧)。&br&&br&其实我很想谈一谈自学美术应该如何进行。无论以什么方法,大的过程就是上面三个步骤:线稿、素描、色彩。而关于设计的能力,从线稿开始就要一直贯穿学到最后。我最开始自学是找了一套“名动漫”的公开教程,断断续续看了两个月。&br&这是名动漫现CEO张聪讲的“自学的方法和途径”: &a href=&///?target=http%3A///s/1jItyNky& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/s/1jItyNk&/span&&span class=&invisible&&y&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&(快去看一下吧,非常专业细致)&br&看完了这个讲解相信你已经心里有谱了,就差一个手绘板了。当时我和你的想法差不多。但是后面你会发现,自学美术真的不容易。特别是对于我们这种带着不纯正的目的心(不是因为热爱而学)的人。因为你会懒于下笔,你会怀疑是否正确,你会感到无聊烦躁,你会爱上自己的画,你会少一个人来鞭笞你纠正你鼓励你。那怎么办?名动漫没有给我发Q币,我就不给它做宣传了,不过去上一个暑假班、周末班,把他们的基础课学完基本就够了。(张聪:Q币稍后到账)&br&我在这里先放一下我看过的自学资源。&br&&b&CG美术教程:&/b&&br&链接:&a href=&///?target=http%3A///s/1c1HbvZq& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/s/1c1HbvZ&/span&&span class=&invisible&&q&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& 密码:a26n&br&少年收好不谢!&br&&br&(又码累了~我去泡个脚下次接着更~○( ^皿^)っHiahia…)&br&&br&(这篇回答还远远没有完成。因为近段时间在学美术,早八晚九,平时都是在坐地铁的时候写回答,所以更得慢,大家也可以养肥了再看~如果这篇回答对你有帮助的话,也点个赞鼓励一下我呗&br&关于书单,希望各位大神能够一起推荐,只要符合每一阶段的阅读目标就好)
多图预警。 长文预警。 上一次更新:日。 这次没有更新本回答的正文内容,但是我在我的专栏中,发布了。里面比较详细地展示了游戏的开发流程,以及人员分工、每个岗位的工作…
&img src=&/v2-72c7f541bdea7b55c949aa_b.png& data-rawwidth=&1912& data-rawheight=&883& class=&origin_image zh-lightbox-thumb& width=&1912& data-original=&/v2-72c7f541bdea7b55c949aa_r.png&&&p&想法创意都有了,就差一个程序员了?有没有想过:也许你配不上一个程序员。&/p&&p&成为一个独立游戏开发者,我认为他自己首先应该成为半名程序员。&/p&&p&这里是知乎专栏《自学游戏开发》,在上一篇文章&a href=&/p/& class=&internal&&《一个游戏是如何被设计和开发出来的》&/a&中,我们已经概览了一个大型游戏的开发过程。但是由于程序方面的内容不便可视化展示,所以那篇文章主要是展示了设计和美术制作流程。现在我们需要来讲一讲的程序方面的事情。首先,我们需要认识到:&/p&&h2&1、掌握编程技能的重要性&/h2&&p&如果你想成为一个独立游戏开发者,不会编程几乎是不可能的事情。就像一个厨师不会用刀案锅铲。 “电子游戏”是一个什么?我们这里不谈玩法设计,它的物理本质就可以说是一个计算机应用程序(程序是一串CPU指令、指令是一串代表01的电磁信息集合;请勿再溯源)。开发游戏其实就是开发一个程序(软件)。而开发程序的过程,我们把它叫作 &b&编程&/b&。只有学会了编程、掌握了一款游戏引擎,我们才会真正明白:游戏,作为一款软件来说 它的本质是怎样的,它是如何运作的。你不知道汽车是如何工作的,你就制造不出一辆车。了解程序,就是了解游戏在电脑上工作的原理。掌握这些知识,不单单是程序员的立身之本,也应该是每一位游戏设计者的基本素养。再者,如果你从未接触过游戏开发,现在开始学习任何其他游戏开发知识,你是不可能在两个月之内自己动手制作出一款可玩的游戏的。但是,你学习编程与游戏引擎的使用,你便能做到。群友真实经历,&a class=&member_mention& href=&/people/a6c9afa1af& data-hash=&a6c9afa1af& data-hovercard=&p$b$a6c9afa1af&&@小小故事汇&/a& 在我的引导下从职业厨师开始学做游戏,经历两个月的学习之后已经能够独立做出“飞机大战”那样可玩的小游戏了。你若学习美术、或是“设计”,这都不可能实现。这是编程的强大之处。&br&&/p&&p&作为一个专职的“游戏设计师”(游戏策划),并不是只会拍脑袋出主意就行了。我认为一个合格的“游戏设计师”至少应当能够编写&b&逻辑脚本&/b&,把自己设想的主意用代码实现出来,不要把任何细小的事情都塞到专业程序员的待办事项里。职业的程序员会为设计师提供底层的服务,让设计师不用操心计算机底层的事务,只要把精力放在游戏逻辑本身上。事实上,现在各大游戏引擎的设计思路都是如此,比如 Unreal Engine 4 强大的Blueprint系统和CryENGINE推出的Flowgraph和Schematyc系统,都是为设计师们服务的,让他们不用敲任何代码就能编写出基本的游戏逻辑(基于可视化编程)。 为了让设计师们能够自己动手丰衣足食,程序员们已经做出了许多努力,想成为设计师的你,有什么理由不学习一下基础编程呢?千万不要想:程序的事情就交给专业的人来做吧。“我”就不需要学了。这种人,就是那种常常说“就差一个程序员了”的人;这种人,也常常是那种只会空想,给团队制造试错成本的那种人。因为他们不懂程序,但要让别人来为他的想法买单。他们不知道他们临时冒出的一个“好主意”可能要让一整个团队忙活好几个月。所以,我建议,每一个想要成为游戏设计师的朋友,都接触学习一下编程。&/p&&p&&br&&/p&&p&你只是想静静地画图,做一个安静的&b&美术人员&/b&?如果你只是想平静地度过这一辈子,顺便在游戏制作领域出一些力,贡献一些艺术力量,那么你只需要专注于升华自己的艺术上限就好了。如果你想对这个领域搞点事情,比如说优化一下美术资源的制作流程,提升游戏画面的行业标准,那么你就不能只是会用Photoshop画画图、用3Ds max建建模,你需要知道Photoshop这款软件是怎么被开发出来的,它的每种图层混合模式采用了什么算法,这些算法用代码如何实现,如果我要扩展它的调色盘功能应该从哪里开始编写。一个能回答这些问题的艺术家,和一个只会用PS画画的艺术家,对于工具的理解是完全不同的(假设他们的艺术修养一样高)。而前者,更有可能推动整个数字绘画领域向前步进。为什么那些艺术创作软件都出自于国外的开发者呢?开发一款艺术创作软件,不仅需要专业的程序员,更需要具备编程素养的艺术家们来领导。而我国的艺术从业者们,有几个具备扎实的编程能力? 而往往一说到这些,那些“大师”们就会开始贬低工具的重要性,转而强调艺术本身。从“从艺动机”层面,许多选择艺考的人其实就是因为文化成绩太差;从思想层面,几乎少有艺术家会想去改进他们所用的工具。如果你不是这样的人,如果你想要成为一个推动数字艺术领域进步的人,有机会的话,你就应当认真了解一下计算机的世界。另外,回到游戏美术本身,一个游戏最终如何展现你画的图、你做的模型,这完全是由渲染管线和Shader脚本来控制的,这些都是代码写出来的。所以你认为游戏美术只是画画?那只是其中的一个小环节。当然了,说这些只是希望你能对游戏美术具备更多的认识。至于初学,我还是不会给你徒增痛苦让你去学编程的。别紧张,从窗户上下来吧朋友。&/p&&p&包括做音乐也是,现在编曲软件之强大,无不是具备音乐素养的程序员们的功劳。奥巴马说每一个现代人都应该学一下编程,不是随便说说的。写到这里,&b&我希望每一位读者都已经在心里提升了掌握编程能力的重要性。&/b&&/p&&p&在后文中,我们开始来认识一下&b&计算机与编程的世界&/b&,再之后是&b&编程与游戏制作的关系,&/b&最后是&b&编程学习路径&/b&。我会力图让每一个高中生看到下面的文字时也能够理解我在说什么,你不用具备什么前置知识,嗑着瓜子顺序看下去便好。&/p&&h2&2、计算机与编程的世界&/h2&&p&是先学C还是C#?还是JAVA?还是Python?还是Unity?还是OpenGL?首先你都知道这些是什么吗?每一个想学游戏编程的人都经历过这样的问题:入门编程语言该学什么?我在知乎问答&a href=&/question//answer/& class=&internal&&想要自己做一款游戏,需要学习哪些知识?&/a&中明确说明了先学C#再学Unity。但是仍然有无数人私信问我到底该先学C还是C#。这不是因为他们没有认真看我的回答,而是他们不知道为什么要这样安排,以及很多其他前辈建议他们要先学这样或那样。道听途说,只言片语的回答是解决不了大家心中的困惑的,因此在本篇文章中我想为大家介绍一下计算机和编程语言的世界,这可能会花费一些功夫,因为从来没有人能够在一篇文章的篇幅内完整地介绍整个计算机的世界。我也只能尽力尝试,让大家了解那些语言各是什么,之间是什么关系。在此章节完成之后,我再会解释我们学习安排是如何设置的。&/p&&p&请注意,我现在要开始装逼了:这件事情如果要溯源的话最早可以追溯到&b&亚里士多德&/b&开创出“&b&逻辑学&/b&”;19世纪的&b&乔治·布尔&/b&(George Boole)在此基础上发展出“&b&数理逻辑&/b&”(如果你已经开始学编程的话一定会知道关键字:bool;3ds Max里也有“布尔”运算。就是以此人之名。);20世纪&b&克劳德·艾尔伍德·香农&/b&(Claude Elwood Shannon)在“数理逻辑”基础上发展出“&b&逻辑电路&/b&”。“逻辑电路”就包括了我们高中所学的:继电器、与门、或门、非门、异或门等等。利用这些工具,我们就能够制造出会计算加法、减法的逻辑电路。&i&(还有非常重要的“触发器”、“振荡器”等等。后来的一系列发明,比如说:电子管、晶体管、集成电路可以统统看成是对前面技术的升级和替换。)&/i&我们得到了会计算的&b&逻辑电路&/b&,又经历了一系列的升级和优化,那么现在我们的计算机是如何运作的呢?首先可以分为两个层,一层是CPU&存储器的电路实现,一层是0与1的世界。如果我在这里讲电路设计的问题,我想很多只是单纯想做游戏的人可能会疯掉(其实是我讲不来)。有一本很好玩的书,叫《穿越计算机的迷雾》,作者以闲谈扯淡的方式,从电与磁的发现一直讲到了CPU的实现,作为计算机硬件入门是一本不错的兴趣书。关于硬件,我们业余选手可以不用知道那么多,只要知道:&b&CPU会执行我们的一些命令,我们的命令是存在“存储器”里的1001010…这样的数字来代表&/b&。&/p&&p&作为常识我们知道,计算机只认识0和1(至少你现在知道了),那么我们就来看一下它是如何运用0和1来工作的。&/p&&h2&汇编:&/h2&&p&请注意为了方便讲解我就自己创造例子了,可能和实际情况有出入,但是更容易帮助理解。先看一下这一行代码:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&10
&/code&&/pre&&/div&&p&看不懂?普通人类当然看不懂,但是机器看得懂,而且机器就只能看懂这种形式的信息。这个叫做机器语言,也是二进制码。二进制码是构成如今计算机世界的基础,我们电脑里的任何文件、应用程序归根结底的都是以二进制码的形式存在的。比如:我们常常能够在电脑的文件夹里看到这样一个文件夹:&/p&&img src=&/v2-98f2b5aea217fa50_b.png& data-rawwidth=&470& data-rawheight=&209& class=&origin_image zh-lightbox-thumb& width=&470& data-original=&/v2-98f2b5aea217fa50_r.png&&&p&&br&&/p&&p&这其中“&b&Bin&/b&”就是单词“&b&Binary&/b&”的缩写,意思是二进制文件。打开bin文件夹,我们会看到各种.exe和.dll文件。对于我们来说,.exe就是一个应用程序嘛,比如说:QQ.exe、LOL.exe。&/p&&img src=&/v2-ba8a9aadda_b.png& data-rawwidth=&584& data-rawheight=&561& class=&origin_image zh-lightbox-thumb& width=&584& data-original=&/v2-ba8a9aadda_r.png&&&p&&br&&/p&&p&大家难道没有好奇过:为什么应用程序的的后缀是“exe”呢?原因:“exe”是英文词组“Executable File”的缩写,意思就是可执行文件。“可执行文件”的意思是:可以被CPU执行的文件。我们前面说过,CPU只能执行0101001这样的指令。所以“可执行文件”其实就是这种指令的集合,也就是是一堆二进制码 “10 10011 ……”。所以它才会常常被放在bin(binary)文件夹里。(有没有发现,那些曾经我们看不懂的文件夹结构、文件名后缀,其实设计得都是有道理的)&/p&&p&&br&&/p&&img src=&/v2-602e2c3fac7d68ef0254_b.jpg& data-rawwidth=&1443& data-rawheight=&255& class=&origin_image zh-lightbox-thumb& width=&1443& data-original=&/v2-602e2c3fac7d68ef0254_r.jpg&&&p&&br&&/p&&p&我们玩的每一个游戏,它们的本质都是这样的二进制文件。所以编写一个游戏,其实最终最本质就是编写出这样的文件:……可是……&/p&&p&我知道这也太特么为难人了!鬼看得懂这些01是什么意思啊!(鬼:我也看不懂啊~)但没有办法,现代的计算机只能识别这种简单的机器语言。(即便是量子计算机也是玩01这样的量子比特) 为了让这些机器语言更容易被我们人类所理解,先驱们发明了&b&汇编语言&/b&。(对,就是那个大家都说最难写的编程语言“汇编-Assembly Language”)但其实汇编语言很简单,有了汇编,我就能跟你解释前面的0011是怎么回事了。再来看之前的那行代码:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&10
&/code&&/pre&&/div&&p&请注意这不是一串随便瞎写的0和1,它是有规律的!&i&你们看,以八个0或1为一组,每组中间有个空格。这其中,&b&每一组&/b&我们叫做一个“&b&字节&/b&”(&b&byte&/b&),&b&每一个0&/b&或者&b&1&/b&,我们叫做一个“&b&比特&/b&”(&b&bit&/b&)。&/i&第一个字节:,假设我们规定,它代表一个&b&命令&/b&:加法(ADD)。我们再规定,如果CPU遇到“加法”命令,它就把后面两个&b&字节&/b&相加,把结果存到前一个字节所在的地方。于是我们的CPU就能够计算加法了。规则是给它这三个数:&/p&&img src=&/v2-3c518ddec3da31d224f896d_b.png& data-rawwidth=&515& data-rawheight=&64& class=&origin_image zh-lightbox-thumb& width=&515& data-original=&/v2-3c518ddec3da31d224f896d_r.png&&&p&&br&&/p&&p&第一个是表示加法命令的“”,第二个A和第三个B是两个加数,每次都不同,所以我用x表示那些比特位。同样的道理我们能够制定出减法命令、乘法命令、复制命令等等。比如复制命令:我们规定“”代表复制命令,如果CPU遇到“”,它就把后面&b&第二个&/b&字节的数据,复制到后面&b&第一个&/b&字节的&b&&u&数据所表示的位置&/u&&/b&上(&b&注意这些字节里的二进制数不仅可以当数字用,也可以当命令用,也可以用来表示储存位置&/b&)。于是我们就有了复制数据的功能了。&/p&&img src=&/v2-765de40db4ad102fee2b9_b.png& data-rawwidth=&536& data-rawheight=&58& class=&origin_image zh-lightbox-thumb& width=&536& data-original=&/v2-765de40db4ad102fee2b9_r.png&&&p&&br&&/p&&p&这些功能,都是CPU中的&b&逻辑电路&/b&为我们提供的,我们只需要发送规定好的指令便能使用这些功能。&b&注意,指令的本质是一串0和1代表的信息,但是我们很难去记忆和区分001101这样的数字,所以我们就用“ADD”代表(加法指令),用“COPY”代表(复制指令)&/b&。Add和Copy在英文里本来就是加和复制的意思,这就很好记。&b&而“ADD”、“COPY”等这些指令集合起来就形成了汇编语言&/b&。它实际上就是把机器语言(一串0和1)直译成了英文单词。一般CPU认识的指令不多,就那么十几个(加上变种一般也就几十个)。所以汇编语言中的指令一一对应也不多,大致分为三种:&/p&&ol&&li&数据传输类:复制、加载、存储……&/li&&li&算数/逻辑类:布尔运算、加法运算、自加运算……&/li&&li&控制类:转移、停止……&/li&&/ol&&p&就这么几个指令能干啥?你别说,我还真有办法能让你亲自见证一下,就这么几个指令,可以让CPU干些什么事。首先,下载&a href=&/?target=http%3A///s/1eS1jXGQ& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《Human Resource Machine》&i class=&icon-external&&&/i&&/a&这个小游戏。然后开始玩吧。我已经让群友们验证过了,不管有没有学过编程都可以玩几下。而游戏的主体内容,其实就是以一种有趣的方式在写汇编代码。在过关这个游戏之后,你会发现你自己用这几个最简单的指令,让计算机实现了一些简单的功能,诸如:比较两个数字的大小、判断一个数字的正负、让计算机数数、用加法实现了乘法运算、从一组数中找到最小的数……如果你在游戏里过五关斩六将实现了这些功能,那么你就相当于解决了上个世纪计算机科学早期那些先驱们所面对的问题。给自己一个奖励吧,点击文章末尾的“赏”就会看到编程学习大礼包!额,你说你没有通关?没关系,最后几关是比较难,而且这个游戏只是为了让你体验一下汇编编程的感觉。&/p&&p&现在你会发现,汇编语言其实没有多复杂,而且比起那些0011的代码,真是太好识别了。但是那还不够,比如我要计算一个:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&X=Y*Z+(Q/10.5)+P-2
&/code&&/pre&&/div&&p&这个自然的表达式人人都能看懂吧?但是用汇编语言写出来就不那么好看了:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&Mov
&/code&&/pre&&/div&&p&一眼看上去不知道是在干嘛。而且汇编语言也不够“自然”,比如我要做一个赋值操作:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&X=Y;
&/code&&/pre&&/div&&p&上面这种写法很自然,我们在学数学的时候就是这么写的,但是在汇编语言中它是这么写的:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&Mov
&/code&&/pre&&/div&&p&直译就是:把Y移动到X的存储位置(这是计算机硬件能够实现的操作)。再比如:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&if
如果x&y那么x=y否则y=x
&/code&&/pre&&/div&&p&这几行命令,我们用自然语言就能读懂它在干嘛:比较两个数的大小,然后把大的数赋值给小的数。用汇编语言写就是这样:&/p&&div class=&highlight&&&pre&&code class=&language-c&&&span&&/span&&span class=&n&&Cmp&/span& &span class=&n&&X&/span&&span class=&p&&,&/span&&span class=&n&&Y&/span&
&span class=&n&&JLE&/span& &span class=&n&&LessCase&/span&
&span class=&n&&Jmp&/span& &span class=&n&&SkipCase&/span&
&span class=&nl&&LessCase&/span&&span class=&p&&:&/span&
&span class=&n&&Mov&/span& &span class=&n&&X&/span&&span class=&p&&,&/span&&span class=&n&&Y&/span&
&span class=&nl&&SkipCase&/span&&span class=&p&&:&/span&
&span class=&n&&Mov&/span& &span class=&n&&Y&/span&&span class=&p&&,&/span&&span class=&n&&X&/span&
&/code&&/pre&&/div&&p&用自然语言写很简单的三行命令,用汇编写就需要这么多行才能实现。&/p&&p&还记得当初我们为什么需要汇编吗?因为机器只能识别0和1构成的指令,但是那种数字指令对我们人类来说很难识别和记忆,所以我们用英文单词来一一对应那些数字指令,那些英文单词构成的指令集合就成为了汇编语言。新的知识点:当我们写出汇编代码后,在真正交给CPU运行之前,我们得把汇编代码翻译成机器码,因为CPU只认识0和1构成的机器语言。(因为机器指令和汇编指令是一一对应的,所以翻译过程很简单,就像把简体字翻译成繁体字)。&/p&&p&先驱们尝试把汇编语言简化的过程中,想到:既然要翻译,那么我们能不能创造一种更简洁的语言,然后把它翻译成相对复杂的汇编呢?就像把文言文翻译成语素成分更复杂的现代文。&/p&&p&&私见张良,具告以事&———&i&&u&翻译为&/u&——&/i&—&&私下会见张良,把事情详细地告诉了他&&br&&/p&&img src=&/v2-f6b4abceca11596abdb2fb_b.png& data-rawwidth=&651& data-rawheight=&326& class=&origin_image zh-lightbox-thumb& width=&651& data-original=&/v2-f6b4abceca11596abdb2fb_r.png&&&p&从这个想法出发,&b&C语言&/b&诞生了。&i&(实际上C语言是在B语言的基础发展出来,B语言是在BCPL的基础上发展出来的,BCPL是在CPL的基础上发展出来的。在CPL之前还有个十几种其他编程语言。不要管辣么多,静静听我吹就好。)&/i&&/p&&p&(在这儿停顿,看到这里,新手朋友们可能已经费尽了许多脑细胞了,如果你已经阅读/思考疲劳的话,可以在这儿停顿,起来走一走看看窗外。也许你并不能全部理解上文的内容,那没有关系,那不会影响你学习编程,但如果能理解的话,对今后学习将会有助益。我能保证后面的内容将会越来越简单。你大可以带着疑问先阅读完全文,再回过来读一次。)&/p&&p&&br&&/p&&h2&C语言&/h2&&p&你们看,汇编语言多复杂,因为它和机器硬件实现的指令一一对应,所以光改造它而不改造机器指令的话毫无意义。所以我们不如创造一种新的语言,然后把它翻译成汇编吧!C语言帮助我们实现了设想。C语言有许多强大的优点。但是在此,(顶着老师和同行们的压力)我想让新手知道的是:函数。&/p&&p&函数是什么?当我们在写代码的时候,可以想象为&b&我们写的每一行都是一个指令&/b&。我们写十几行指令来实现一个乘法运算,用二十几行写一个排序操作。程序猿是世界上最懒的物种,他们不想每次要做乘法时都写十几行代码。能不能用一行指令代表十几行指令?就像:&br&&/p&&img src=&/v2-01b9d1c7ba3b27c9ef2ad1_b.jpg& data-rawwidth=&1162& data-rawheight=&676& class=&origin_image zh-lightbox-thumb& width=&1162& data-original=&/v2-01b9d1c7ba3b27c9ef2ad1_r.jpg&&&p&指令集A和指令集B所描述的就是完全同样的事情。但是A用了7个指令,B用了5个指令。如果你要在这件事件上偷懒,你是愿意以A的形式还是B的形式来写这个指令集呢。我不知道你的选择是什么,但是作为世界上最懒的物种来说,程序猿在编程的时候,能少写一行就不会多写,能少敲一个字母就绝对不会敲两个。所以在碰到上面这个问题时,采用B的写法无疑。那么如何实现呢?假设指令集A中的每条指令都是计算机能够识别的指令,指令集B中的第3条“把大象装进冰箱”是计算机不能识别的,是我们自己虚构的。但是我们要使用这条指令,因为它对于我们来说很省事。现在很简单,只要规定:我们每次写“把大象装进冰箱”这条虚构指令,就自动把它翻译成“打开冰箱、把大象塞进去、关上冰箱”这三条原生指令。翻译过程不用担心,前人们已经写好了各种翻译器能够现实这种效果。&/p&&p&那么,上面我们虚构出来的那条指令:把大象装进冰箱。其实就是我们所谓的函数!下面展示的是在C语言中创建一个函数的形式。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&把大象装进冰箱(大象x)
打开冰箱;
把 大象x 塞进去;
关上冰箱;
&/code&&/pre&&/div&&p&下次想干这件事件的时候,就只要写一句:&u&把大象装进冰箱(大象巴拉)&/u&。括号里写哪头大象,就装哪头。 那么&u&把大象装进冰箱()&/u&就是一个函数。&/p&&p&有了函数这个东西,世界上任何复杂的任务都可以被拆分成最简单的单个任务。当我们学C语言的时候,一定要把函数的用法学好。我认为这也是新手学习C语言的主要任务。&/p&&p&&br&&/p&&h2&更高级的编程语言&/h2&&p&按照学院派的编程学习路线,计算机专业基本都是先学C语言,然后学C++,(然后学数据结构),然后学C#/Java/Python/JS....,然后回去再学汇编呀、电路呀什么的。想必大家都熟悉这套方案。&/p&&p&其实学习一个东西,从根源开始了解接触,从底层学到顶层是一个自然的遵循逻辑的学习方式。在计算机世界中,如果说从真正的根源开始学的话,估计真得从逻辑电路开始了,然后学到汇编语言,再学到C语言,再学C++。但是为什么学院们都选择从C语言开始呢?一是因为相比起汇编语言,C语言更能够学以致用,使用起来更方便;二是因为,现在许多流行的编程语言,比如C++、JAVA、C#、Python都是&b&类C语言&/b&的,首先是&b&语法上都是仿照C语言的风格来设计的,其次它们的一些技术原理是建立在C语言的基础之上的&/b&。它们之间的关系就好比“汉语”与“北京话”、“四川话”、“重庆话”、“广东话”之间的关系,其中C语言就是汉语。所以C语言作为广大语言的根基,把它当做入门编程语言来学习是没有问题的。再以它为中心,向高层语言和底层原理来扩展学习,往往计算机专业的同学到大三就能把整个计算机体系打通。&/p&&p&&br&&/p&&img src=&/v2-96ecdede30b88e2e_b.jpg& data-rawwidth=&5000& data-rawheight=&3000& class=&origin_image zh-lightbox-thumb& width=&5000& data-original=&/v2-96ecdede30b88e2e_r.jpg&&&p&&i&编程语言发展史&/i&&/p&&p&刚刚我们才讲到了C语言。并且说了游戏领域中比较重要的几种语言与C语言的关系。从这张图中我们应该能够更清晰看到这几种语言的发展脉络。每一种新的语言诞生,都摒弃了一些前者的弊病,加入了自己优秀的特性。但无论怎样,每一次编程语言的发展和进步都是在前人的基础之上进行改良和创造,很少有几个语言是凌空出世的。正因为这样,所以编程语言之间的差别,并不是天差地别。&b&并不是我选择了学习JAVA,就意味着放弃了C#;也并不是我如果不先学C语言,我就学不懂C++。&/b&编程语言之间都是触类旁通的,只要先掌握了其中一种,那么其他的语言就能很快掌握。&/p&&p&再看一眼上面的图,接下来我来讲讲C、C++和C#、Java、JS、Python的关系。&/p&&h2&C++&/h2&&p&首先经过我们上面一顿瞎BB,已经知道了C语言是怎么来的,而且知道了C语言的语法比较接近我们的自然语言,更容易读懂了。C语言写的代码,在被CPU运行之前,需要翻译成汇编代码,再翻译成机器码。我们对这个设计很满意,使用了好多年。后来在使用中,特别是开发一些大型项目,比如用C语言开发一个计算机操作系统时,发现有问题处理起来很麻烦,先辈就对C语言进行了改进。&b&有一次改进后新增了一个叫“类(class)”的功能&/b&,这个功能很牛逼,导致那个版本的C语言直接脱胎换骨。这种与众不同的牛逼需要在名字上体现出来,所以他们学习iPhone的起名策略,在名字后面加了个“Plus”。“C Plus”=“C+”。一个不够,那就两个“C Plus Plus”=“&b&C++&/b&”。(顺便剧透一下C#的起名策略:“C#”=“C Plus Plus Plus Plus”=“C++++”。)&b&所以!C++是C的升级版,多了一个核心功能:类。语法没有变,本质的东西没有变,&/b&还需要被翻译成汇编,然后翻译成机器码,再交给CPU执行。所以学校里安排先学C语言,再学C++,其实这种说法是有点狗屎的,就好像是说:我们先学习“浮水”,再学习“游泳”。本来我们学习游泳的过程中就会学习浮水,但是就要把学习“浮水”先说一遍,让人误解为这是两个差别很大的东西。所以懂了吗?我再说明白一点:&b&学习C++就是学习一个高级版本的C语言,学C++的过程中,就会先把C语言的那些东西学到。&/b&所以&b&不存在:如果不学C语言打基础,就学不好C++。&/b&如果再有人问这个问题,就把这一章节贴到他脸上去。&/p&&p&另外补充:C++从C发展出来后,C语言也没有闲着,自己还是在不断发展,比如后来发展出了Objective-C。严格意义上来说,“学习C语言”和“学习C++”确实是不一样的,因为要去研究它们不同的语言特性。但是!对于没有学过任何编程的初学者来说,最开始就是学习个语法认识几个关键字而已,根本到不了研究语言特性的程度,所以两者说法对他们来说几乎没啥差别。&/p&&h2&C#&/h2&&p&我们知道现在CPU厂商Inter和AMD两方对峙,操作系统是Windows、Mac OS和Android三足鼎立(我们不知道Linux)。 可是你们知道上世纪八九时年代,计算机市场是繁花绽放,各种各样的硬件、操作系统充斥在硅谷整条小吃街。那个年代的码农,随手写一个程序,并不是写完就能到处用的啊。就算现在也不是啊。原因很多,可能CPU不一样,操作系统不一样....那怎么办?先辈们想到了一个胆大包天的方法:&b&我写一个软件,这个软件去模拟CPU硬件,然后再写其他的程序,把这些程序编译成这个虚拟CPU能够执行的机器码,然后让虚拟CPU去执行程序。&/b&(请再读三遍)&/p&&p&&br&&/p&&img src=&/v2-ebedc4b893d9_b.jpg& data-rawwidth=&2480& data-rawheight=&835& class=&origin_image zh-lightbox-thumb& width=&2480& data-original=&/v2-ebedc4b893d9_r.jpg&&&p&&br&&/p&&p&这样,只要所有的电脑都提前装好我这个虚拟CPU软件,那么其他那些杂七杂八的软件统统都在我上面可以运行了!完美解决跨平台问题。&/p&&p&有了这个想法之后,先辈们就开始动手去写这个牛逼哄哄的虚拟CPU软件了。&b&他们用C语言或C++来写这种后来被称作“虚拟机”的软件。&/b&这种事情都能干得出来,他们就顺便又为自己的“虚拟机”发明了专门的编写程序的语言(真实因果关系是先发明语言,从而开发对应虚拟机)。Java语言对应JVM(Java Virtual Machin),&b&C#语言对应 &a href=&/?target=https%3A///item/.NET%2520Framework& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&.&i class=&icon-external&&&/i&&/a&NET Framwork&/b&(你们玩游戏的时候肯定装过这个),Python对应Python Virtual Machine......&/p&&p&看到这里,聪明的你已经看破了真相,原来&b&C#、Java、Python编写的程序都不是直接交给真正的CPU运行的,而是交给了一个模拟CPU的软件运行的&/b&!嘛了个巴子,难怪那些程序猿都说C#没有C++快。顿时豁然开朗但是心里又一阵堵得慌:&b&那,为什么,这个专栏的作者,要推荐我们,学C#?&/b&&/p&&p&&br&&/p&&img src=&/v2-4a152ece56e05e19ff159_b.jpg& data-rawwidth=&500& data-rawheight=&500& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&/v2-4a152ece56e05e19ff159_r.jpg&&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&i&作者并非职业程序猿,也不是计算机科班出生,若文中有任何错误,望先辈们在留言中指出,以帮助我修正文章、传播正确有用的知识。&/i&&/p&&p&扩展阅读:&/p&&p&1.&a href=&/?target=http%3A///s/1eRYO7su& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《穿越计算机的迷雾》&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&p&那么,下一节再见。&/p&&p&&br&&/p&&p&这里是知乎专栏&b&《自学游戏开发》&/b&第三篇文章:&b&《自学游戏开发·程序篇一——了解计算机的世界》&/b&。我是 &b&窦月汐 。&/b&如果你是第一次看到本专栏,建议你跳转到&a href=&/p/& class=&internal&&自学游戏开发--关于本专栏&/a&进行了解。如果这篇文章和本专栏对你所帮助,希望你在看到其他游戏人需要帮助时 也能把本专栏推荐给他,向每一个游戏人致敬。&/p&&p&我公开了我的一个兴趣交流群,群号为:。(为避免无聊人士,设置了5元 群费)&/p&
想法创意都有了,就差一个程序员了?有没有想过:也许你配不上一个程序员。成为一个独立游戏开发者,我认为他自己首先应该成为半名程序员。这里是知乎专栏《自学游戏开发》,在上一篇文章中,我们已经概览了一个大型游…
&img src=&/v2-aaaa2e7f6a49c536aa6291_b.jpg& data-rawwidth=&1920& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&/v2-aaaa2e7f6a49c536aa6291_r.jpg&&&p&本专栏是着重于讨论“&b&开发一款游戏需要怎样的能力&/b&”,以及“&b&如何学习开发游戏所需的所有技能&/b&”。欢迎来到知乎专栏《&b&自学游戏开发&/b&》的第二篇文章。在开始讨论我们的两个主题之前,我认为非常有必要让初学者了解一下:&b&一个游戏是如何被设计和开发完成的。 &/b&&/p&&p&温馨提示:本文共28900字,包括50张配图,40段视频,建议先收藏再阅读。为了保证阅读体验,建议在桌面浏览器环境下阅读。&/p&&br&&p&我在知乎回答“&a href=&/question//answer/?group_id=941376& class=&internal&&想要自己做一款游戏,需要学习哪些知识&/a&”下面简单列举了四个能力,分别是:程序、设计、美术、音乐。但是碍于篇幅限制,我并没有详细展开来说明每一项能力具体是如何发挥作用,以及发挥作用的形式和功效。如果在学习之前,我们对即将学习的东西一无所知的话,会导致学习中产生不小的迷茫感:不知道为何而学,不知道学了有什么作用,不知道该学习到什么程度。带着这样的迷茫去学习,会导致学习效率低下,容易受挫,甚至会在达到一定程度后动摇自己理想,怀疑自己的学习能力是否有问题。作为以“&b&引导自学游戏开发&/b&”为使命的一个专栏,我认为非常有必要解除初学者对于游戏开发的朦胧认识。这也是&b&自学游戏开发&/b&专栏第二篇文章的意义之所在,让初学者了解:&/p&&ul&&li&&b&一个常规的游戏开发团队有哪些人,每个人具备怎样的能力&br&&/b&&/li&&li&&b&一个游戏从最初构想到最终完成开发,会经过一个怎样的过程&/b&&/li&&li&&b&团队中的每个人在游戏开发过程中的什么时间,发挥了怎样的作用&/b&&/li&&/ul&&br&&p&在了解完以上三个问题以后,我们会对自己的情况做一个判断,根据自己的情况,再对未来的方向做一个规划。比如说,你是一个喜欢画画的人,想从事游戏相关的美术工作,那么你就应该知道不同的美术工作在游戏开发流程的哪一步需要画什么样的东西 做什么样的美术资源,设计师和技术人员拿到你做的美术资源又会加以怎样的修改和使用,你在后面的学习中应该着重练习哪方面的技术和能力;再比如说,你想成为像我一样技能覆盖面比较广,各个方面都知道一点的开发者,那么你应该如何去组织你的技能,在众多的技能中考虑到你的性格和你的特长,你更喜欢亲自做哪一项工作内容,应该选取哪个作为核心能力,如果今后不做独立开发而是进游戏公司工作,你会站在哪个位置工作?在阅读完本篇的正文后,你会开始思考这些问题,并尽快找到一个大致的答案。&/p&&p&预先了解我们即将从事的工作,预先概览我们即将学习的知识,这件事对于引导我们前进有重大的意义。为了完成这个环节,我从第一篇文章发布后到现在一直都在筹备此事(边看春晚边做配图)。要让任何一个从没接触过游戏开发的人,在一篇文章的篇幅内了解整个游戏开发的全过程,这件事情真的是非常难。我认为真正要做好这件事情,需要一个纪录片的工作量。要完整地记录下一个游戏从设计师的头脑中 转换到电脑中的过程,然后展现给别人。我本人的搜索能力有限,到目前为止并没有找到一个非常理想的此类纪录片,但是在知乎问题 “&a href=&/question/& class=&internal&&有哪些介绍游戏开发过程的纪录片或视频?&/a&” 下面,&a href=&/people/ccaaa2aa1492& data-hash=&ccaaa2aa1492& class=&member_mention& data-title=&@windleavez& data-hovercard=&p$b$ccaaa2aa1492& data-editable=&true&&@windleavez&/a& 的回答中有非常多零零散散的相关纪录片(在此也感谢他为这些视频做的字幕)。在后文中,我会适当地引用其中一些视频片段以及YouTube上的相关视频来辅助讲解。下面正文开始。&/p&&h2&一、游戏开发团队的

我要回帖

更多关于 高新项目立项书 的文章

 

随机推荐