友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
飞读中文网 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

夜半鬼入梦-第483章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!



”与“北京话”、“四川话”、“重庆话”、“广东话”之间的关系,其中c语言就是汉语。所以c语言作为广大语言的根基,把它当做入门编程语言来学习是没有问题的。再以它为中心,向高层语言和底层原理来扩展学习,往往计算机专业的同学到大三就能把整个计算机体系打通。

    编程语言发展史

    刚刚我们才讲到了c语言。并且说了游戏领域中比较重要的几种语言与c语言的关系。从这张图中我们应该能够更清晰看到这几种语言的发展脉络。每一种新的语言诞生,都摒弃了一些前者的弊病,加入了自己优秀的特性。但无论怎样,每一次编程语言的发展和进步都是在前人的基础之上进行改良和创造,很少有几个语言是凌空出世的。正因为这样,所以编程语言之间的差别,并不是天差地别。并不是我选择了学习java,就意味着放弃了c#;也并不是我如果不先学c语言,我就学不懂c++。编程语言之间都是触类旁通的,只要先掌握了其中一种,那么其他的语言就能很快掌握。

    再看一眼上面的图,接下来我来讲讲c、c++和、python的关系。

    c++

    首先经过我们上面一顿瞎bb,已经知道了c语言是怎么来的,而且知道了c语言的语法比较接近我们的自然语言,语言写的代码,在被cpu运行之前,需要翻译成汇编代码,再翻译成机器码。我们对这个设计很满意,使用了好多年。后来在使用中,特别是开发一些大型项目,比如用c语言开发一个计算机操作系统时,发现有问题处理起来很麻烦,先辈就对c语言进行了改进。有一次改进后新增了一个叫“类”的功能,这个功能很牛逼,导致那个版本的c语言直接脱胎换骨。这种与众不同的牛逼需要在名字上体现出来,所以他们学习iphone的起名策略,在名字后面加了个“plus”。“c plus”=“c+”。一个不够,那就两个“c plus plus”=“c++”。(顺便剧透一下c#的起名策略:“c#”=“c plus plus plus plus”=“c++++”。)所以!c++是c的升级版,多了一个核心功能:类。语法没有变,本质的东西没有变,还需要被翻译成汇编,然后翻译成机器码,再交给cpu执行。所以学校里安排先学c语言,再学c++,其实这种说法是有点狗屎的,就好像是说:我们先学习“浮水”,再学习“游泳”。本来我们学习游泳的过程中就会学习浮水,但是就要把学习“浮水”先说一遍,让人误解为这是两个差别很大的东西。所以懂了吗?我再说明白一点:学习c++就是学习一个高级版本的c语言,学c++的过程中,就会先把c语言的那些东西学到。所以不存在:如果不学c语言打基础,就学不好c++。如果再有人问这个问题,就把这一章节贴到他脸上去。

    另外补充:c++从c发展出来后,c语言也没有闲着,自己还是在不断发展,比如后来发展出了objective…c。严格意义上来说,“学习c语言”和“学习c++”确实是不一样的,因为要去研究它们不同的语言特性。但是!对于没有学过任何编程的初学者来说,最开始就是学习个语法认识几个关键字而已,根本到不了研究语言特性的程度,所以两者说法对他们来说几乎没啥差别。

    c#(和其他高级语言)

    我们知道现在两方对峙,操作系统是 os和android三足鼎立(我们不知道linux)。 可是你们知道上世纪八九时年代,计算机市场是繁花绽放,各种各样的硬件、操作系统充斥在硅谷整条小吃街。那个年代的码农,随手写一个程序,并不是写完就能到处用的啊。就算现在也不是啊。原因很多,可能cpu不一样,操作系统不一样。。。。那怎么办?先辈们想到了一个胆大包天的方法:我写一个软件,这个软件去模拟cpu硬件,然后再写其他的程序,把这些程序编译成这个虚拟cpu能够执行的机器码,然后让虚拟cpu去执行程序。(请再读三遍)

    这样,只要所有的电脑都提前装好我这个虚拟cpu软件,那么其他那些杂七杂八的软件统统都在我上面可以运行了!完美解决跨平台问题。

    有了这个想法之后,先辈们就开始动手去写这个牛逼哄哄的虚拟achine。。。。。。

    看到这里,聪明的你已经看破了真相,原来on编写的程序都不是直接交给真正的cpu运行的,而是交给了一个模拟cpu的软件运行的!把我们的程序交给了另一个程序来运行!把我们的程序交给了另一个程序运行!明白吗,为什么那些程序猿都说c#没有c++快。因为c#写的程序交给了c++写的一个程序来运行!java写的程序也交给了c++写的程序来运行!python写的程序也交给了c++写的程序来运行!再重复一遍就疯了……

    到现在为止,我们解开了一个新手十大困惑之一:为什么c++比其他语言更快。现在我们还在章节“计算机与编程的世界”中,接下来,我们要聊一聊那几种高级语言的不同点,以帮助我们搞清楚新手十大困惑之首:我应该选哪个语言开始学编程!

    不同高级语言使用感受

    这么说吧,当年我才大二的时候,只学过c++。从没有专门学过一天其他语言。y写小游戏,我还用oid studio里写过一个贪吃蛇。我可是一天的c#和java都没学过。为什么我能做到呢?因为主流编程语言的语法基本都一毛一样,根本就不用怎么学啊。那种差别就像东北话和天津话的差别一样,大家都是从汉语出来的,谁听不懂啊。为了证明几种语言语法上真的很像,我写了一段伪代码,并翻译成不同语言版本,请找不同:

    看,这三份代码是在干同样一件事情,是用三种语言所写的。除了第6行比较特殊,其他部分你们能看出什么区别吗?是不是真的很像?如果掌握了其中一中语法,另外两种有什么难的呢?无非就是注意一些细节不同点。总有些人问第一个编程语言学什么,我通常回答“都行都行”,看看上面这张图,我不是瞎说的啊,对于学习些基本语法,了解基本概念,先学哪个真的都行(反正都一样)。如果把我们学做游戏比喻成学做饭,语言呐、环境呐这些东西,就可以看做是厨具厨房。学做饭的时候,重要的是学习菜肴怎么做,烹饪方法心得,厨具工具的用法是基本的也是次要的。我们随便选个厨房开始学做饭,一旦学会了,那么在另一个陌生的厨房里难道就做不出饭菜了吗?不会的。就算是另一个厨房,就算那个厨房里的锅、碗、灶、铲奇形怪状从未见过,习惯习惯也不影响我们做饭呀,因为工具毕竟还是那些,变其形式而不变其本质。

    那么在这种情况下,我们应该选那个语言开始学习呢?总要有一个选择。这个选择就是c#。y是用c#写代码(不考虑js)。y是我最推荐新手学习的游戏引擎。y咯。如果有人问:“我想用ngine,我能不能从c++开始学呢?” 当然可以呀。y来开发,也能很快上手。但是我不推荐这样,因为c++细节非常多,更繁琐一点。学起来没有c#轻松。而ngine呢,用起来也更麻烦一点,也不建议新手拿这两个引擎来考验自己的自信心。

    下次继续……

    作者并非职业程序猿,也不是计算机科班出生,若文中有任何错误,望先辈们在留言中指出,以帮助我修正文章、传播正确有用的知识。

    扩展阅读:

    1。《穿越计算机的迷雾》

    那么,下一节再见。

    这里是知乎专栏《自学游戏开发》第三篇文章:《自学游戏开发·程序篇一——了解计算机的世界》。我是 窦月汐 。如果你是第一次看到本专栏,建议你跳转到自学游戏开发……关于本专栏进行了解。如果这篇文章和本专栏对你所帮助,希望你在看到其他游戏人需要帮助时 也能把本专栏推荐给他,向每一个游戏人致敬。

    我公开了我的一个兴趣交流群,群号为:474891082。(为避免无聊人士,设置了5元 群费)

    明确两点:

    1。游戏开发只是借助了电脑和图形学,没有这两个,一样可以开发游戏。

    2。图形学是为了在电脑里模拟物体而形成的一门研究领域。

    目前,游戏公司偏重于成熟稳定的框架,这样更有利于快速开发游戏,毕竟根本是为了赚钱。只有很少一部分大公司需要自己去搞游戏引擎,只有当开发或者定制游戏引擎的时候,才会用到一点图形学的知识,不过总的来说,游戏只用到了很少一部分图形学知识。更多的图形学知识,会用于建模/电影之类的。如果你感兴趣于游戏,那么图形学会让你走的更远,不过短期来看并没有什么卵用,不如踏踏实实把一款游戏引擎用好,这样游戏公司大部分的工作才适合你。

    上面全是废话,下面才是我想说的:

    首先,无论外部环境如何艰难,作为一个有志于游戏开发的程序员,你都不该自暴自弃,学习更高深的东西,有百利而无一害。同时,作为社会人,你需要提供高质量的服务,这是你应该承担的责任。下面主要是针对对游戏开发和图形学有兴趣,却不知如何下手的同学的一些小小的建议。

    ……………………………………………………………………………………………………游戏工程………………………………………………………………………………………………………………………

    在中国,游戏在很大程度上是服务业,不是制造业。一款游戏更多的是内容驱动(美工,策划),程序员反而成了辅助,为游戏的实现而提供技术方案。

    其次,1。游戏顾名思义是为了娱乐而制定的一套规则,它的可玩性高于一切。可玩性是游戏施加给玩家的挑战组合,一个游戏如果能让玩家觉得有无限的可能性,那么就说明这个游戏可玩性比较高。一个规则可能很简单,但是当多个规则组合起来,就会产生不可预测的结果,这就是游戏的魅力。。可以试试用�
返回目录 上一页 下一页 回到顶部 赞(3) 踩(2)
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!