签到

05月06日
尚未签到

共有回帖数 0

    孤单的狼

    等级:


    许多新人可能在一开始接触游戏编程的时候都会认为需要从C语言或C++学起,然后再一点点啃算法、数据结构甚至汇编等等,其实这种学习方式初期上手都比较难,并且成效慢,容易挫败自己的积极性,作为一个从未接触过编程、美术等领域的新人,对于游戏制作的各个环节几乎没有多少概念,所以学习和认识游戏制作的方式最好从框架开始,弄清楚游戏从制作到运行的大致流程,这样一来就更容易弄清楚游戏开发的来龙去脉,等到后面再深入学习也会更加容易找准方向。所以这里给一些建议。


    1.第一个阶段,先选择一种容易上手的游戏引擎
    目前可选择的专业游戏引擎有许多,这里推荐unity3d、gamemaker、或html5(construct2)、UDK中的其中一种引擎。
    unity3d优点:既能做3D游戏也能做2D游戏,比较专业向,可以用来开发有规模的商业游戏。缺点:功能庞大,略显冗繁,引擎内部有许多复杂的机制,深入进去的话就需要比较深厚的功底。
    gamemaker优点:简洁易懂,工具简便,制作2D游戏十分方便。缺点:虽然也能做3D游戏,但3D并不是gamemaker的强项。
    html5(construct2)的优点和gamemaker很像,都十分简洁易懂,工具齐备,制作2D游戏方便而又高效,并且跨平台,能在windwos、网页、手机等各个平台上运行。缺点:不擅长3D部分。
    UDK优点:各种工具编辑器很完善,3D方面功能十分强大(渲染以及画质上超过unity3d),缺点:上手比较困难,udk自带的脚本框架远没有unity3d设计的人性化,所以建议适合有一定程序基础或者3D美工领域方向的新人使用。


    unity3d的编程脚本语言是C#和javascript,所以你在学习unity3d的同时需要学习C#这门语言(C#和javascript选择其一,这里建议学C#)


    这些引擎的优点都是工具齐全,编程组件接口规范,都能比较快速的制作出一个大致的游戏雏形,所以一开始选择一个较好的游戏引擎,是一条循序渐进的方式,这样既避免了漫长的C/C++等基础学习所带来的巨大的枯燥和挫败感,也不容易偏离游戏制作的正确方向。(过去有不少新人都是在啃完C/C++、数据结构等这些枯燥的基础之后,又去学习了其他杂乱的编程技术,因此最后迫于时间和工作压力,彻底偏离了游戏开发的正确路线,而最终成为了与游戏制作毫不相关的软件程序员


    2.第二个阶段,对游戏引擎的使用入门之后,再深入学习游戏编程所需要的核心基本功
    例如D3D或openGL图形API的使用(几乎所有的游戏引擎的最底层都是基于这两个东西),
    了解2D/3D图形学的原理(搞清楚游戏中的图像是如何一帧帧的被做为像素绘制在屏幕上的)
    而学习以上的内容,则需要有比较扎实的C++编程功底,所以需要适当的学习C++的语法结构、VS等编译器工具的使用。


    (PS:这个阶段也许有许多人直接忽略而继续第一阶段的深入,但这里给新人的建议是,无论用何种引擎,游戏编程所需要的核心理论都不会变,理解了计算机游戏最本质的运作原理,才能真正的运用好引擎和工具)


    下面则是 第二阶段开始可能会用到的学习资料:
    国外和国内经典的中文游戏开发类的学习资源应该都在这里面了。拿出来分享给还徘徊在游戏编程领域边缘的新同学们,顺便贴上我自己总结的学习指南,另外其他相关的学习指南都已经放在共享的资源里了。

    编程书籍下载地址(百度网盘链接,都已分类整理好了,可以方便查阅自己需要的资源):http://pan.baidu.com/s/1sj8ZtmP

    (注:以下建议都是针对于专业向的游戏编程领域(C/C++、DirectX、OpenGL),暂时在用flash、GameMaker或rpgmaker等制作游戏的同学可以不用看)

    需要代码资源的可以下载directX sdk或nvidia sdk(里面涵盖了当今大部分主流的3D渲染技术),里面有许多sample,直接用Visual Studio C++打开.sln文件即可看到源码(VC的版本最好高于6.0),自己修改编译方便学习。
    当需要学习引擎的时候可以下载irrlicht、HGE或OGRE(都为开源游戏引擎),相对来说比较适合新人。

    学习步骤:
    第一阶段.编程基础目录
    1.C++ primer 这本书必读吧,建议学C++的第一本书,学C++其他的书都可以不用看了(包括谭浩强,XX宝典等等)。
    第1章到第15章都是重点,16章包括16章以后可以暂时不用看(等有很多年经验了后面的部分可以作为参考来学习)。

    2.林锐的高质量编程
    当会写些简单的程序时可以看看这本书,简单易懂,难得国人写的书里十分优秀的,里面有许多现今很多IT公司的笔试题范例,新手看此书可以避免编程中很多的低级错误。

    3.数据结构
    我这里建议 等有一定编程经验再看,一开始新手肯定会不知所云,学习数据结构之前强烈建议把C++里的STL搞清楚(方便理解数据结构的本质),STL相关可以参考C++ primer里的第6章(抽象容器类型)。核心的部分还是数组、链表、二叉树这三种,其他的可以忽略,实际开发用的并不多。所以这本书应该是边实际开发边做为工具书参考。并不需要流水线的学习。

    4.编程规范
    可以放到以后看,也可以开始参考参考,主要是代码风格和一些细节规范相关,如果时间不够可以直接忽略这本书。

    第二阶段.windows平台编程
    通常游戏都是运行在windows系统上,所以windows是游戏开发的主要环境,需要理解windows 基本api的使用和原理,这里十分不建议学习MFC,新手应该想办法绕过MFC(MFC是个既耗时间又对游戏开发没有多少帮助的东西),游戏开发领域,MFC几乎可以不被用到(这也是以后的趋势),窗体UI方面可以用基本的win api来实现。
    1.windows 程序设计
    这本书我这里没有收录,网上有下载,学习的时候不必全部看,找些基础的篇章范范看看,只要会搭建基本win32编程程序环境,理解窗体消息系统原理即可。
    2.windows核心编程
    windows更加深入的学习,可以作为参考学习,当然前期如果想尽快做游戏DEMO,可以暂时忽略这本书。

    第三阶段.3D图形相关
    这个目录里的教程并不是所有都必须看,有些是可选其一。《directx实时渲染技术详解》和《3dgame.pdf》可选其一,两者都是directx编程学习的好入门教程,《GPU1精粹》《GPU2精粹》是作为进阶的学习(可最后看)。《HLSL基础教程》是shader(GPU着色器语言)的基础教程,《实时地形引擎》是地形编程相关的基础教程,《DIRECTX9.0 3D游戏开发编程基础》可以作为参考工具书看,里面有很多基本3D知识的解释和运用(例如矩阵、向量、基本变换的原理、directx api的基本运用),《3D游戏编程大师技巧》这本书十分经典,早已绝版,是3D图形编程的原理级别的好书,书中都是代码和理论穿插,比起纯粹的图形学习原理书籍更加容易理解。

    建议学习流程:
    1.《3D游戏编程大师技巧》如果想要更深入的理解3D图形的底层(包含了很多数学的运用),包括如何用代码构筑一个软渲染管线等等,务必看看。
    2.《3dgame.pdf》中间穿插《directx实时渲染技术详解》、《DIRECTX9.0 3D游戏开发编程基础》,哪个觉得容易就看哪个,根据个人而定。
    3.《OPENGL红宝书》这本书这里没有收录,是非常好的图形编程入门书(个人觉得这本书可以算做新手学习3D编程最好的入门书籍),网上可以下到(建议购买实体纸质版)。
    4. GPU精粹系列。

    另外《DOOM启示录》是描写了id software游戏公司的几位创始人成长励志的真实故事。

    以上这些教程并不都是按流水线的步骤学习,很多时候都应该互相穿插的看,每本书里都有对应的知识点,彼此可以互补。
    编程工具还是推荐visual studio 2010或更新版本, VC6不建议,功能老旧,调试不便。

    学习游戏编程最重要的并不是看书,而是3分看书7分实际编码,书中有很多实例,最好能亲自在电脑上编码调试,这是游戏编程入门最快速最捷径的手段,很多书中的原理知识,在实际编码调试前,都很难真正理解。

    游戏编程学习应该是,渐进实践的方式,一旦有了非常基本的编程基础,就应该立即放下书本从最简单的游戏小程序写起(可以从修改其他游戏源代码的方式开始,多看别人写的程序也是快速提升编程水平的好方法),遇到了技术瓶颈再去看书查资料,然后回过头来再进一步改善自己的游戏程序,写代码和看书并行交叉,而不是闷着头看书(闷头看书是永远不可能入门的),这种学以致用的方式才能真正的走捷径。

    以上



    原文转载出处:
    http://fuyoufeichuan.com/read.php?tid=25&fid=22

    楼主 2015-07-07 18:11 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知