一个自学DirectX图形渲染引擎开发2D游戏的程序员,非系统化学习的迷茫

时间从2019年10月说起,这是我开始学习的日子;

  • 兴趣爱好:

2009年上高中以来,家里买了一台电脑!接触到电脑游戏之后(传奇外传2.0),就喜欢上了开发游戏,其中自学lua语言,使用当时一款某大神开发的 em (Edgame Maker),仅仅制作了传奇登录界面!由此萌发了开发游戏的浓厚兴趣!选大学专业时就选了软件技术!对大学专业迷茫的我,上大学期间百度提问,大佬回答说,想开发游戏,先学C/C++!于是踏上自学C++道路!

  • 自身情况:

2015年毕业于,计算机软件技术专业,主要专业课程:C语言,网页设计,C#,Asp.net;自学PHP,Java

毕业后:由于大学期间学过C/C++,没有努力的历练项目!导致毕业后就业时遇到了问题,先就业与.net企业,后发现当时想在重庆找份.net好职位,一职难求;于是不想放弃继续留在it行业,进了PHP外包公司!经过5年PHP的磨练~,于2019年10月,重燃兴趣爱好;

  • 开始求学之路

2019年9月,突然在B站上搜索到好多编程教程,于是10月份离职,在家里每天视频学习C++,练习等;

https://github.com/babulin/Cplusplus    【学习的练习】

后来又了解到了游戏开发,可以用 DirectX/Opengl 开发图形渲染,于是毫无犹豫选择了DX,没有想太多,就想着如果2套api都要学,那就干脆先选一门。但当时对C++做实际项目开发一直存在着认知的缺陷,无法下手。

我手里有一本Direct9的 红龙书籍,于是开始学习DX。学到纹理阶段的时候就开始有点懵逼了。感觉无法理解系统是如何将图形2进制数据读出来,然后贴图到三角形上。什么又是surface等。

再后来,群内认识一名大佬,(非常感谢这位大佬:"系统消息".....  )认真的带着我从11月份开始学习GDI入门。带我了解了bmp图形结构,以及绘制图片DC的,内存缓冲DC,拷贝图片,位图运算等。然后又教我使用windows wave音频文件,了解wave文件数据结构,和自己生成噪音,加载wave文件解析出音源数据播放,暂停,停止,异步播放等等。

后来教我使用windows消息机制中的按键消息,以及到后来教我使用DX9纹理,以及3.0的 HLSL 着色器语言入门。

  • 定个小目标

我自己的方式是,首先要定个目标,由于CQ素材比较经典,又完整,于是目标定位,学习CQ-2D游戏开发,于是我就在网上搜索各种文章,已经CQ圈内咨询朋友,最后得以解析资源素材包。然后就开始尝试用Direct9图像渲染,来做一版Demo。经过我2020年2月-4月 长达1个半多月的奋战(因为上班,所以就周末和晚上编码)。中间遇到各种问题,如何将bmp 8位图,16位图的二进制数据,转换成dx9的Texture,如何去除透明背景,图像绘制偏差0.5像素(DX9的问题),动画对不齐,地图异常等等问题。经过我使用PS将一个像素一个像素的对绘制图像的进行对比排查bug之后,终于在某一天成功完成了地图绘制,地图动画,障碍物,人物动画,行走,奔跑的功能。这一刻回头望去,我的代码像弹坑一样,到处是坑。随后对第一版进行了改进,加入了部分使用C++ STL 进行缓存机制;

https://github.com/babulin/dx-game-engine       【我的这一版练习demo】

下期继续!先发一下博客试试水!!!

[最后!我写博客其实是想说,我慢慢迷失在了系统化学习开发的道路上,希望朋友们给些建议,另外想找寻志同道合的朋友(一起从C++ 与 DirectX 开发游戏)]

 

猜你喜欢

转载自blog.csdn.net/u011607960/article/details/106644427