如何学习游戏编程
题主问怎样系统学习游戏编程想必是对游戏编程感兴趣,正所谓兴趣是最好的老师,和题主分享一些系统学习知识。
现在游戏的种类越来越多样,想要学习游戏编程知识,就要先全面了解一下游戏编程然后找到自己的学习方法来系统全面学习。游戏编程指利用计算机编程语言,如C编程语言、C++编程语言、汇编等,编制计算机、手机或游戏机上的游戏。
给题主推荐一本书《游戏引擎架构》。《游戏引擎架构》同时涵盖游戏引擎软件开发的理论及实践,并对多方面的题目进行探讨。本书讨论到的概念及技巧实际应用于现实中的游戏工作室,如艺电及顽皮狗。虽然书中采用的例子通常依据一些专门的技术,但是讨论范围远超于某个引擎或API。文中的参考及引用也非常有用,可让读者继续深入游戏开发过程的任何特定方向。
《游戏引擎架构》为一个大学程度的游戏编程课程而编写,但也适合软件工程师、业余爱好者、自学游戏程序员,以及游戏产业的从业人员。通过阅读《游戏引擎架构》,资历较浅的游戏工程师可以巩固他们所学的游戏技术及引擎架构的知识,专注某一领域的资深程序员也能从本书更为全面的介绍中获益。
通过分类的系统学习会对题主有很大的帮助:
游戏开发中的大规模C++软件架构
游戏编程所需的数学
供调试、源代码控制及性能剖析的游戏开发工具
引擎基础系统、渲染、碰撞、物理、角色动画、游戏世界对象模型等
中国游戏产业经过了二十多年的发展与沉淀,从原来只能代理国外游戏到目前各个游戏开发商都能自主研发游戏,这进步确实非常惊人。目前中国也非常重视中小学计算机编程教育,而游戏编程又是其中最能够吸引学生的一门分支。今天我们就来讨论下在如今这个科技飞速发展的时代如何系统的学习游戏编程。
1. 选择一款游戏开发引擎
作为新手开发者,你是没有能力去开发游戏底层的框架,这些通常需要多年的编程经验。不过不用担心,市面上已经有了许多现成的开发引擎。例如Unity3D、cocos-2dx、unreal,这些都是免费的开发引擎,而且目前的学习资源也是相当丰富的。在这里我推荐大家使用Unity3D,原因很简单,就是上手容易,配置要求低,学习资源丰富。
2. 培训还是自学
既然是系统的学习,那就不得不考虑是去培训还是自学。先说说培训,优势就是教师会提供相应的学习资源;可以找到一起学习的伙伴;有问题可以直接问老师;督促自己学习;学期结束时还能做个项目让老师点评。但确定也很明显,收费相对较高;需要脱产去上课;运气不好碰上水平较差的老师。再来说说自学,需要你有非常强的自律能力,不然的话是学不好的。网上资源非常丰富,你可以找适合自己的进行学习。弹性学习,不用辞职专门来学,可以利用碎片化时间学习。我在这里给大家推荐的是自学,毕竟省钱。
3. 编程语言
如果大家选择Unity3D作为开发引擎的话,那么你就要去学习C#,它是作为Unity3D的脚本开发语言,游戏中所有的移动、行走都是用C#来完成的。你可以去网上找一点C#相关的资料或者买一本入门的书学习。
4. 学习Unity编辑器
网上也很多是讲如何使用Unity的,把里面的功能都熟悉一下,把demo都跟着做一遍,相信这个对你来说不难。
5. 做自己的项目
编程语言也会了,也知道如何使用unity了,那现在就可以构思一个小项目了。然后把它完成。
6. 拓展自己
去网上多看看大牛的博客,技术贴。游戏编程的路还很长,加油吧!
我认为可以先学习一下pascal,这个语言比较严谨,适合初学者。pascal它被称为教学语言,结构严谨,不像C语言那么灵活,易于理解和学习。 然后可以继续学习C语言,这个语言比较灵活。有了pascal的基础,在进行C语言编程就不会因为C语言的灵活而有问题 。后面的就可以学习VC什么的了。
C语言的书推荐谭浩强的,比较好。
我当时学习pascal和C语言的时候是将书后的习题都做了一遍,感觉效果很好。
当然了,学习什么语言也要看你具体准备从事什么行业。例如你要进行嵌入式开发,C就是很好的选择,如果是Windows开发,那么VC就不错。还有数据库方面的开发、网络开发等等。不同的语言适合不同的方面。要看自己的选择的,呵呵 。
还有很多人说自己的基础很差,甚至中学毕业什么的。其实这个并不重要,比较说英语,在计算机语言里所用到的单词量很少,而且都是常用词,经常使用就记住了。当然,如果你要看原文资料或者帮助的话,专业词汇比较多,不过在金山词霸的帮助下,经常看,也是没什么大的问题的。至于数学什么的,其实数学只是培养你一个逻辑思维能力,在初学编程的时候影响不是很大。况且,作为一个基础编程人员来说,上面还有系统分析师、项目经理,他们会把需求分析、概要设计和详细设计做好的,你只要按照文档写代码就OK了。不过,要上更上一步的话,其他基础知识就非常重要了,毕竟你不能写一辈子代码。
在你学习好C语言以后,个人建议好好学习一下数据结构和软件工程。这两门对你的水平提高都是很有帮助的。特别是软件工程,它能够使你按照科学的工程方法进行软件开发,对今后的发展很有好处。
只是一家之言,有不到之处,还望见谅!
参考资料: