如何成为一个游戏制作人——第一章:如何选择你的路线(编程)

小故事:

        记得还是小时候幼儿园就开始玩游戏的吧。第一款游戏玩的是暗黑破坏神,后来是三国赵云传,再后来是暗黑破坏神2。三年级玩的是魔兽世界,四年级接触了war3(魔兽争霸3),然后到现在一直工作。我的游戏路程相比很多80后来说都比较长。

        家里从幼儿园开始就有电脑了,我爸也是个游戏疯子。经常玩游戏玩到凌晨一两点。所以我的童年深受我爸的毒害,曾一度沉迷于网游不能自拔。

        既然沉迷了,我的学习成绩也一样被拖了下去。。经常考不过90分。永远处于班级的中上游(一直到高中)

        不过相比于很多沉迷游戏的人来说,我一直非常想自己做出一个游戏来。有这个念头的时候大概是三年级吧,那时候啊,兴冲冲的去买了一本书。好像叫做<>至于为啥我会去买那本书呢。基本是这个流程。 我想要做游戏——做游戏需要啥——编程——那啥是编程——听人家说c语言就是编程——就去买了。

        然后买回家,翻了两页,完全看不懂啊。于是就扔在那边了。一直到六年级才翻起来。


本章概要:
1.制作游戏需要学会编程吗?

2.学习编程一定需要英语、数学好吗?

3.如何学习编程呢?

4.如何选择自己的学习路线

5.什么是游戏引擎?

6.如何选择游戏引擎?


题一:

1.制作游戏需要学会编程吗?

    如果你想要当一个独立开发人,可以明确地回答。是的。如果你想当一名专业的策划,也可以明确的回答,是的。如果你是一个美工,说实话美工虽然是游戏制作团队里不可或缺的人物,但是真正让游戏运转起来的依旧是程序员。(当然我指的是计算机游戏。桌游啥的就不算进去了。)

    所以,事实上在游戏里,从头到尾一直参与游戏制作的人,对游戏最了解的人,一般也是程序员。(如果不服可以来打我)

    所以,如果你真的想要制作一个游戏,请不要想任何理由来拒绝编程。即使你用war3的世界编辑器,sc2的银河编辑器这种东西。你依然逃脱不了编程。只是换了个形式而已。


2.学习编程一定需要英语好吗?

    不,当然不。只要你认识abcdefg,懂得拼apple,iphone,god,fu*k,sh*t这些单词,会一点音标。在编程入门里,学习英语对你就根本构不成障碍。

    数学也一样,在入门的时候,你只要会加减乘除,一元一次、二元一次方程。有个高中对函数的理解。绝对不会对你构成任何阻碍。小学六年级的知识就够你入门了。(当然我仅仅说的是入门)。


3.如何选择自己的学习路线?

        编程语言很多,非常多,成千上万。从流行的java、c#、python、ruby,erlang到那些老不死c++、c、ada、fortan,再到那些小众的不能再小众的haskell、scheme、common lisp,再到那些猎奇的要死的 草泥马language、道语言、shen语言、禅语言等等(以上这些语言都是真实存在的)数好几天都数不完。更别说各种erp、专家系统自带的dsl,各种引擎自带的script(脚本)。

        要说把这个世界上所有语言都学一遍,这几乎是不可能的。

        但是如果有人对你说,语言只是工具,学啥并不重要。我觉得你可以去抽他两个大嘴巴。对于老鸟可能说是的(仅仅是可能,大多数时候他们并没有认识到自己的问题),对于新手这个实际上是影响未来路线的大事。

        为什么这么说呢,在《黑客与画家》(这本书是超级软文,可以看一看,但是别全信)这本书里说过,一个程序员学一种语言,他的思维模式就会非常贴合那个语言。不同语言造就的程序员是完全不同的。就像经常用c++,用c语言的少年,对内存有天生的敏感性。但是反观python、ruby程序员,他们根本不需要去考虑到内存相关的东西。导致他们很多时候在遇到语言的坑时完全不知道为什么。也并不是说学c++、学c有多厉害。其实这仅仅是c/c++这些语言的落后而已。

        在此不想多评论xx语言多好多屌。其实各有各的优势没啥好说的。

        对于游戏开发来说,我们应该选择什么语言呢。

        答案很明确,c++/java。个人更加推荐c++。

        原因有以下几点:

               1.学习c++你会更了解底层相关的知识。

               2.因为c++这语言的繁杂性,你以后去接触任何语言都会觉得如沐春风。

               3.可以在其它oo语言面前秀优越(当然遇到大神了你就完了)

        其实你关注第一点就可以了。

        在现有的图形标准里中,opengl是基于c的,directx是基于c++的。所以想要了解底层的话,c++是基本必须要学的(逃也逃不掉)。

        另外用C/C++来实现一些算法和数据结构时,印象会更深刻一些。

        那么接下来就要提到,学习游戏编程,我们的路线该怎么选择。

        第一条路线:粗略的学习一下c/c++,然后投入cocos2dx、unity3d 、cryengine、ue等等的怀抱。

        第二条路线:认真的学习c/c++,接着学习数据结构、常用算法、编译原理、图形接口、计算机图形学……(帕拉帕拉,一大堆)然后四五年后,你终于开始想到自己要做个游戏了。

        那么下面分析

        第一条路线的优势和劣势:

       优势:学习成本低,出产速度快。

       劣势:人变懒,变得很浮躁,被技术潮流淘汰

       典型的培训机构快速出产码农之法,可以干活,但是干不了精活。月薪3k-1w,很难超过。有上进心的人,会在中途跳入第二条路线,没有上进心的人,会一直在码农阶级徘徊,然后转行。


       第二条路线的优势和劣势:

       劣势:学习成本高

       优势:学成后,就像学内功一样,不会被技术潮流所淹没找不着方向,学那些花花架子也和吃饭一样简单。

       基本跑啥公司啥公司都要,稍微混混就是个主程,再多学学架构,出两产品。基本就在行业内吃的开了。


       分析了两条路线,相信大家都明白了。


       下面给出我的学习路线

       c/c++  ------>  数据结构 --------> 基础算法 ---------->编译原理(这边有点脱节)------->做了个小脚本语言--------> 图形接口(opengl,directx)-------->计算机图形学-------->线性代数------>做了个游戏引擎--------->工作


       推荐入门书籍:<>  <>  <<算法:C语言描述>>

       推荐进阶书籍:<<算法导论>> <<计算机程序构造和解析>> <<编译原理>> <> <<计算机图形学>>  <<设计模式>>(四人帮的那本)

       推荐数学不好的人自虐的书籍 <>

       推荐数学书籍<<托马斯微积分>> <<线性代数>> <<离散数学与应用>>

       推荐闲的时候看看的书籍:<> <<黑客与画家>> <<人月神话>> <<游戏编程大师>> <<游戏编程精粹系列>> <<编程珠玑>> 还有好多就不打了

     

      只是列出了一些比较我比较常看的书籍,还有一些我看看就不看的就不打上去了

      那么这个问题也就回答到这里了。

     ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


     3.什么是游戏引擎

      其实很简单,游戏引擎这东西囊括了很多。什么物理引擎啊,AI引擎啊,图形渲染引擎,音效引擎啊。不过外行人比的都是图形渲染引擎。说到底游戏引擎就是把各个功能都做完,然后来驱动游戏的一个‘引擎’罢了。

      以前大多数公司都是自己做游戏的时候,把各个游戏驱动底层分开来做了。还有一些场景编辑器啊UI编辑器啥的。到后来要做新游戏的时候,这些工具依然可以使用,把他们组装到一起了,完善一下,就是一个公司自制的游戏引擎了。

   

    4.如何来选择游戏引擎

      实话说呢,这东西很虚。如果你基础不好的话,你学一个引擎,过几年那个引擎又被淘汰了。你又要重学一个新引擎。这种事情很常见啊喂。

      不过近期来看呢,unity3d是最佳的选择,次佳的是cocos2dx,再次一点的就是cocos2d、flash。

      未来引擎呢,可能UE4会秒杀Unity3d,当然也不排除有更屌的公司搞出来了个更屌的东西。

      如果现在想赚钱养家呢,unity3d是挺好的选择,易学易用。cocos2dx反而还要一些c++基础。



结尾:

写这个其实只是想回答很多新手一直疑惑的问题罢了,如果能提供给看官一些帮助,那就非常荣幸了。


转载请注明出处 by Brainthread

     





你可能感兴趣的:(教程)