软工2019作业二
最想学的:游戏开发
对游戏以及图形界面的认识:
游戏开发最主要的有三个分支:策划,程序和美工。但是想要制作一个游戏,这三个方面是无可避免地需要去了解的。
我暂时只会程序这一部分,可能掌握的不完整,但是经过阶段学习,我会完善自己的技能。一提到游戏开发,很多人都会想到游戏引擎,Unity,虚幻,cocos等。但是我对游戏引擎了解的并不多,我能想到的只有自己怎么用代码实现所有功能。既然我能想到,基于好奇与激动我就会去写。
还没开始我就遇到了问题——我唯一会的C/C++好像实现不了那么美观的游戏画面。从学C开始,我们一直面对的是黑框,它没有界面,最多也只能改变字体背景颜色看起来稍微炫酷一点。我去网上了解了一下,发现很多有着图形界面的游戏或者程序都是用C++写的,那么它的界面是怎么来的呢?答案就是:图形库。
网上有很多C++能用的图形库,我第一入手的是Easyx,一个基于2D界面,非常基础的图形库,库函数调用十分简单,就像在画板上画画一样。有了图形库,我们就能做很多“好玩”的东西了。
逐渐地,我对这些“好玩”的东西的要求从二维升到了三维,然而三维空间里的参数可没二维的简单。三维空间最重要的就是三维模型设定,最关键的就是三维向二维投影显示。简单的图形库中是没有提供这些模板的,需要自己定义与计算。我试着写了一些,点,线,面,向量等,但是它们之间的关系越到后面越复杂,觉得之前写得太烂了又回去重构理清一下关系。反复折腾几次后,我的目光渐渐投向了之前被我忽略的游戏引擎,看懂之后稍微有了一点逻辑关系,我在干什么?建立一个三维世界的模型,建立模型之后能不能用得上得看它有没有被主函数调用,那我这是在写游戏库函数,相当于基础游戏引擎。于是有些函数和数学公式我去从其他游戏引擎借鉴,一看,其实有很多处理都很相似,emmm,我辛辛苦苦推导出来的公式其实网上一搜就都有,之前我都没关注过,这就是闭门造车的尴尬。
##学习计划: + ###第一个月和第二个月 #### 自己想写的引擎,必然是要再继续下去的,所以第一个月和第二个月,我决定继续构建我的游戏引擎去,深入了解一下游戏内部的运行机制。 + ###第三个月 #### 学习Unity3D和学习C#,因为Unity3D需要C#。网传UE4很难入手,但它是支持C++的,所以我还是去了解了解。 + ###第四个月 #### 学习游戏相关元素的制作,模型,贴图之类的。还想学学Direct3D库和OpenGL库。 + ###第五个月 #### 学习游戏设计策划。模型世界是模型世界,三维游戏是三维游戏,我可能会对我自己建出来的模型非常满意,但是玩家们可不会玩模型都能玩一整天,从模型到游戏除了程序以外,还得要有相应的剧情,让玩家有体验感。