设为首页收藏本站喵玉殿官方微博

 找回密码
 少女注册中
搜索
查看: 17082|回复: 14

[提问其他] 新人打算学习游戏编程

[复制链接]
发表于 2016-6-9 12:59:17 | 显示全部楼层 |阅读模式
大家好,我是一个……有接触 C++的,大学专业是计算机科学的,但是因为太懈怠成绩太差被停学一年的,菜鸡
怎么说吧,我最近突然燃起了“不能这样下去了,老子要学编程,爸爸要做游戏”的想法,于是认真研读了大学遗留下来的C++教材,下来之后是懵逼的……
有读过C++ primer,现在想试图开发年代记啊夜神雪啊那样的RPG游戏,但是光凭着C++教材又无从下手,想自学却又苦于找不到合适的书籍或者教程()也想过用引擎,但本着一种“如果全部都由自己开发出来的话不是很帅气吗”的想法而打算放弃依靠引擎,想要从代码开始自己一点点做下去
现在在研究windowsAPI之类的,可还是一脸懵逼,不知道有没有大神能给我推荐一本游戏制作的入门书籍让我看看,充实一下自己呢?虽然感觉上来说有点急于求成,但是我已经迫不及待想要试图学到一些能够做出游戏的知识啦——
所以想知道!像年代记那样的游戏都是怎么着手开发的呢,各位程序猿都是如何开始学习的呢,有没有推荐的教材呢?可能凭一己之力并不能开发出那么庞大的游戏,但哪怕有个框架我也就很满足了,求大家帮帮忙啦!谢谢!
发表于 2016-6-9 16:19:50 | 显示全部楼层
本帖最后由 elegame 于 2016-6-9 16:29 编辑

1.最流行,可以学到最多知识,最实用的话就学Unity3D,推荐4.x入门,因为目前教程都是4.x较多,熟练后转5.x没压力,讨论见贴吧,蛮牛,官方英文论坛,教程见蛮牛和Youtube。

优点:入门后对一般游戏制作有一个基本的了解,学完Unity Shader对将来转DX,OpenGL有很多帮助,因为基本光照方程,材质shader差不多。

缺点:深入底层后表现得力不从心,优化问题较难,新版本bug较多,虽然对个人开发者来说可能用不到或遇不到

前置科技:任意程序语言基础,3天C#语言基础语法

个人学习路线参考:蛮牛,Unity官方视频例子,基本插件使用,Shader光照方程,像素着色特效,最后别忘了自己定个项目,比如弹幕或者塔防,RTS,RPG之类的,插件,贴吧,youtube等也有相关教程
因为有编辑器和脚本,所以想实现一般的游戏还是比较快的


2.有志青年,想真正学习游戏开发,想玩底层C++,DX,Opengl,虽然不是很推荐上手就底层,我是Unity一年后转的C++和DX,OpenGL,虽然之前也直接折腾过DX,但是明显什么也不会的情况下玩不明白,学完一通Unity后再看DX,Opengl简单多了。

优点:所有内容都受控制,大量第三方类库可用,许多开源项目可参考,许多C++游戏教材可参考

缺点:入门时间过长,学习周期过长,深入后所需相关知识过多...虽然这是后话...但是不会图形和学数学玩底层很吃亏,进步龟速

前置科技:任意程序语言基础,C++面向对象基础

个人学习路线参考:DX教材《Introduction to 3D Game Programming with Directx 11》和12,如果你只用Win10的话,还有youtube视频,
OpenGL教材《OpenGL编程指南》及youtube和网络一些系列文章,注意找Opengl3.x++的教材,老版的1.x教程一定不要学,比如Nehe,虽然这教程不错,但是因为年代过于久远,不适合学习,现在学直接找最前沿的学就好,DX同理,不要再学DX9了,DX10也只做了解,上手就从11,12开始
碰撞检测《Realtime Collision Detection》中文版叫《实时碰撞检测算法技术》,引擎设计《3d Game Engine Design》这个有第二版,好像还有中文版,不过没看过,书中大量数学公式,要有心理准备
Shader进阶书籍:ShaderX系列,GPU GEMS系列,GPU Pro系列,虽然一本也没看过,但是据说想深入Shader编程必看
其他没看过但也相当有名的书籍:《Real-Time_Rendering》《TheMagicOfComputerGraphics》
看过一点,但是可能不是很有用,可以粗略读读,知道了解的书《3D游戏.卷1.实时渲染与软件技术》《3D游戏.卷2.动画与高级实时渲染技术》
蛋疼扩展阅读:全局光照,GI相关《Physically.Based.Rending》主要学习光线追踪和BRDF等离线渲染,《3D游戏编程大师技巧》这本不是很建议,因为同样过于古老,但是如果你想学习软件光栅化渲染,这本可以略读一下,因为实在又臭又长,代码还运行不了,DX8这年头也根本找不到,虽然我居然都看过两遍了......但是讲的确很详细,虽然这年头基本没人写软件渲染器了

GPU并行系列,CUDA,OpenCL,刚入门不好说具体实不实用,但是学完shader后看看CUDA不错,书籍《CUDA by Example.An Introduction to General-Purpose GPU Programming》加youtube视频,
GPU并行有个很叼的地方就是,比如求一个点在一堆点集中,距离哪个点最近,用GPU比CPU快N倍,youtube视频有例子,比如一万个点中,随机生成一个点找这个点距离这一万个点中最近的距离是哪个点,
我的渣笔记本Release下CPU算法大概要2000ms,GPU只要5ms,但是不是所有算法都能搞成并行,所以具体怎么用,用在哪是个问题

另外说个题外话,搞底层很容易就把重点从做游戏变成做引擎了,比如我,刚学游戏开发时,还只是个想写个牛逼游戏的二逼青年,现在变成一个,一心想写引擎的中二青年了......


点评

好详细,赞!  发表于 2016-6-10 19:02

评分

参与人数 2积分 +2 喵玉币 +11 收起 理由
玉笛横吹 + 1 + 5 辛苦了~
caiyang1997 + 1 + 6 辛苦了~很详细

查看全部评分

回复 4 0

使用道具 举报

 楼主| 发表于 2016-6-9 17:37:23 | 显示全部楼层
elegame 发表于 2016-6-9 16:19
1.最流行,可以学到最多知识,最实用的话就学Unity3D,推荐4.x入门,因为目前教程都是4.x较多,熟练后转5.x ...

受教了!还是非常有帮助的,果然一上手就是unity最好嘛?2D的RPG游戏用这个也可以实现吗?印象里Unity是做3D游戏比较多啊.......
最近搞到一本二手的windows编程书,里面有介绍基础的API,和用GDI来实现简单的回合制游戏的源码,还有基础的DX入门,不知道是不是有帮助,这样的书值得一看吗?
回复

使用道具 举报

发表于 2016-6-9 20:20:41 | 显示全部楼层
上手你也可以选任何工具,比如rpgemaker,gamemaker,各种开源,但是其实你折腾一圈后主要还是回归主流,也就是Unity和底层DX或Opengl,几年前学过一点rpgmaker和gamermaker,感觉都不适合我,当然也有人学成了,但是我个人感觉,这些人有些积累的也都转Unity了,说明真的是主流,主流的一个好处就是教材资料比较多,量产游戏也多,相关工具也基本齐全。
某群高一学生在用Unity做3D机器人游戏了

书什么都可以,能看懂就有用,就值得。

个人感觉变化较大的学习阶段:
1.会用基本函数API,能基本实现一定的功能,比如加载声音,图像,像素操作,精灵移动,二进制读写,任何工具语言不限,达到这说明游戏开发基本入门了,说明你已经基本掌握一个开发工具

2.了解2D,3D向量,了解点乘,叉乘在游戏中的使用,了解平移,缩放,旋转矩阵,能应用基本数学物理公式,均速,变速,圆周运动,了解Bezier曲线,Catmull–Rom曲线,等等...达到这说明终于可以写点像样的东西了,说明你对基本算法有一定了解

3.了解三角形,知道2D方面三角形可以变形做特效,3D三角形正反面,顶点,三角形索引,纹理,顶点经过WVP矩阵就能在视口中看到相机中的东西了,基本碰撞检测等等,达到这说明3D初入门了,知道3D是什么

4.了解Shader,知道光照方程,知道VS,PS,能实现基础材质,高光,反射,环境贴图等,能实现简单后处理,亮度,对比度,模糊,水纹等基本后处理,达到这说明3D已经不再神秘,可以看更深入的书或者引擎结构了

对于你说的游戏,只要达到第一阶段,基本熟练掌握一个工具,然后看具体游戏的算法就行了,比如这个RPG,如果是Tile走格子的游戏,很可能会有一个2维数组保存,敌人AI很可能用个寻路算法,A*或者xx树,玩家移动很可能会用Lerp插值,玩家对话很可能做成一个外部脚本或可修改的文件等等
回复

使用道具 举报

 楼主| 发表于 2016-6-9 20:36:46 | 显示全部楼层
elegame 发表于 2016-6-9 20:20
上手你也可以选任何工具,比如rpgemaker,gamemaker,各种开源,但是其实你折腾一圈后主要还是回归主流,也就 ...

GET,虽然说了一大堆我不是很能理解的术语,苦笑
但大体方向和思路我能够理解了,差不多就是从开始研究Unity的一些内容着手比较好吧?
那还是想问一问,之前提到的蛮牛,是个啥.......?
回复

使用道具 举报

发表于 2016-6-9 21:27:57 来自手机 | 显示全部楼层
断剑君 at 半小时前
引用:

elegame 发表于 2016-6-9 2...

游戏蛮牛,是国内比较大的一家主攻unity的网站
另外说到unity啊,它应该算是最好的【非计科专业】游戏开发环境了,主要的一点就是它是以components为核心的编程体系,不需要太高的逻辑,再加上所见即所得,基本上上手就能做个能玩的东西
当然,有利有弊,简单的逻辑对于复杂的游戏会显得有些力不从心,基本上走到后期都是大段大段的代码,这个时候图形界面反倒成了负担(最典型的就是那个animation系统)
当什么时候你用unity用到感觉那些方便的东西对自己的效率提升很小,而不方便的地方很不方便的时候,恭喜你,少年,你已经进入dx和opengl的世界了(
回复

使用道具 举报

 楼主| 发表于 2016-6-9 21:29:37 | 显示全部楼层
tinyAdapter 发表于 2016-6-9 21:27
游戏蛮牛,是国内比较大的一家主攻unity的网站
另外说到unity啊,它应该算是最好的【非计科专业】游戏开 ...

感谢感谢,受教了,感觉一下子就找到了方向呢
回复

使用道具 举报

发表于 2016-6-9 23:56:14 | 显示全部楼层
本帖最后由 elegame 于 2016-6-10 00:03 编辑

说的太复杂了么,那说简单点好了。

1.跟着教材学习比自己研究效率更高,喜欢看视频就看看蛮牛的教程,好像100多节,又是又臭又长系列,只看前面基础就好了,或者现用现看,只学自己用得到的,喜欢看书的话搜搜,我入门看的视频,自己选一个效率更高的吧

2.讨论论坛,这里肯定没什么讨论的,国内我知道的
主要就是蛮牛论坛
http://www.manew.com/forum.php
贴吧
http://tieba.baidu.com/f?kw=unity3d&fr=ala0&tpl=5

看看其他新手主要问什么问题,有没有对自己有用的关注下,另外会提到很多相关的知识或者工具注意收集下。

懂英语就泡泡官方英文论坛
http://forum.unity3d.com/
然而并不比国内强太多,小白问题基本一样,难度问题也差不多没人会,所以基本是国内搞不定,想试试运气可以去官方再问一般鸟语版

另外如果能翻墙听得懂英语,强烈建议youtube自学,教程比国内强不止一个等级,不止Unity,各方面都比国内强,基本想自学入门的知识都能找到,从C,C++,Java,C#,Unity,UE4,光线追踪等等,基本都能找到教程

入门跟着教程走相当于写字学临摹,跟着练多自然就能自己写了,万事开头难,可能刚接触会比较痛苦,各种找不到选项,想要的功能实现不了之类的,这些问题一般慢慢积累知识就能解决,另外Unity3D插件众多,有自己解决不了的,80%的机率可以找到插件解决,或者找到有参考价值的插件减少开发时间,不过这些第一天说了你也体会不了,等学1个月左右可能才有体会。

总结起来
1.跟住教材
2.注意观察别人的问题,积累(最好记笔记,因为游戏编程知识点又多又杂,开个博客随时记比较好)
3.一定要有自己的项目,比如你的RPG为目标,不要只学教材内容,不做自己项目,这样过1-2个月有可能60%忘掉,一定要把学到的知识用到自己的项目才算真正学会了
4.代码一定要打出来,只看教材,不写代码,1-2个月后还是忘光白看,一定要多写代码
5.注意分类积累各种小例子,如上所说,游戏开发,知识点又多又杂,一定要注意整理,比如今天实现了个游戏截图功能,明天实现了XML读写,后天写了个GPU粒子,大后天实现了液化特效等等,如果只是把工程随便起个名,扔到哪个角落,1-2个月后突然想用这个功能,找不到放哪还要重写是很蛋痛的事,所以一定要分类,比如
一,鼠标事件相关
二,碰掸检测相关
三,后处理相关
四,AI相关
五,动画相关
六,材质相关
七,UI相关
......等等,马上可以找出来用的,注意Unity不支持中文路径,所以备注你要么英文,要么写个文件自己记录下或者其他什么方法,总之可以马上用到想用的功能就行了

工程代码也最好常备份,丢到个什么github之类的,国外网慢丢到个百度云啥的也行,总之记得备份工程和代码,备份这种东西一开始可能没感觉,死一次就完全理解其重要性了,相当于你的2T女朋友动漫硬盘突然阵亡那么有趣,不备份死的时候会很难看

这样你才能最高效的学习和开发
回复

使用道具 举报

 楼主| 发表于 2016-6-10 08:48:58 | 显示全部楼层
elegame 发表于 2016-6-9 23:56
说的太复杂了么,那说简单点好了。

1.跟着教材学习比自己研究效率更高,喜欢看视频就看看蛮牛的教程,好 ...

哦哦哦!这样一来就搞明白要怎么做了,非常感谢!感觉自己似乎找到了方向!受教了!
回复

使用道具 举报

 楼主| 发表于 2016-6-10 08:49:02 | 显示全部楼层
elegame 发表于 2016-6-9 23:56
说的太复杂了么,那说简单点好了。

1.跟着教材学习比自己研究效率更高,喜欢看视频就看看蛮牛的教程,好 ...

哦哦哦!这样一来就搞明白要怎么做了,非常感谢!感觉自己似乎找到了方向!受教了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 少女注册中

本版积分规则

合作与事务联系|无图版|手机版|小黑屋|喵玉殿

GMT+8, 2025-10-31 03:40

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表