【游戏引擎之路】登神长阶(十一)——C++大师教程:真正的大师,永远保持一颗学徒的心
2024年 5月20日-6月4日:攻克2D物理引擎。
2024年 6月4日-6月13日:攻克《3D数学基础》。
2024年 6月13日-6月20日:攻克《3D图形教程》。
2024年 6月21日-6月22日:攻克《Raycasting游戏教程》。
2024年 6月23日-7月1日:攻克《Windows游戏编程大师技巧》。
2024年 7月2日-7月6日:攻克《雅达利2600汇编游戏开发》。
2024年 7月7日-7月11日:攻克《x86/x64汇编语言》。
2024年 7月11日-7月22日:学习《3D游戏编程大师技巧》(阶段性)。
2024年 7月14日-7月18日:学习《游戏引擎架构》(完成)。
2024年 7月23日-7月30日:攻克Python语言学习。
2024年 7月31日-8月5日:攻克《3D游戏编程大师技巧》。
2024年 9月10日-9月20日:攻克游戏动画绑定
2024年 10月27日-10月31日:攻克《C++大师教程》
(一)近况总结
这次的学习感悟比较简短,所以就不分多段了。十月的净工作时间是180小时。除去国庆的假期,加上看全球总决赛期间因为玩《英雄联盟》手游耽误了些时间,总地来说是好的。可是我也越发越觉得自已的身体经不起折腾了。工作疲惫之后如果玩游戏,必然会头痛,百分之百。
也不关是头痛的问题,玩游戏之后因为疲惫导致的精神萎靡也非常难恢复。我真的很难想象我年轻的时候是怎么过来的,我年轻的时候晚上可以打游戏,然后第二天起来照样一点问题也没有。正是因为这种习惯害了我,当我因为自已的身体变差,抑郁症非常轻的时候,我不把这个状态归到自已的抑郁症里面,反而觉得是自已的意志出现问题。我不想工作,想玩游戏,那不是我的精神疲惫了,需要休息,而是因为我的思想有问题。后来就在折磨自已的路上越走越远了。
想想看,我如果早10年就清楚地认识到自已的病症,我应该还能发挥多大的能量啊。现在我晚上10点睡觉,早上5点起床。年轻的时候也不曾做到这一点。但即便如此健康的作息,给自已带来的专注力也是有限的。每个人虽然每天都是24小时。但是只有拥有专注力的时间才是关键。而我的专注力仅仅只剩下了半天。而我只能在这半天之中,想办法去完成自已的事业。
现在我的作息是上午进行建模,我是5点起床,工作到12点,有6小时左右的专注时间。这个是极限了。而下午则进行一些学习,就比如现在在学的c++。当然还有一个重要的原因就是我的肩膀伤,我如果长期进行建模,肩膀很快就会剧痛。当然,这还算好的,如果是前几年,我什么也不干,肩膀也会痛。
(二)C++的学习
“真正的大师,永远保持一颗学徒的心。”这是《英雄联盟》中剑圣的一句台词,而我在“烧水学习法”中学到的另外一句就是,如果想学有所成,唯一的作法就是模仿大师。所以大师做什么,你就做什么。其实“学习”这样东西就是这样简单。
我是学c++起家的,最早学c++的时候,还是我读初中的时候。后来开发网页游戏,用了十多年的Java,现在终于转回到c++里面来了。这个教程有58小时。我最初被吓了一跳,想着这么长的教程我哪有时间学啊。后来想想,我也许可以跳过自已已经学习过的部分,于是还是开始了学习。而使我坚定自已决心的,就是游戏中这句始终萦绕着我的话。
c++11我之前也学过。但是,我学的时候,还没什么“现代c++”的说法,这次教程里面就明确说了,c++11之后的c++版本叫“现代c++”,拥有着一些不同的编程指导。我琢磨着,我使用c++的经历都属于“经典c++”,所以看现在这些人的c++代码的时候,总觉得有些隔阂。
就比如lambda表达式,我也用,C#中也有lambda表达式,Java中也有(但Java那个完全是另外一个东西),但是我对c++中的lambda表达式是个什么东西始终搞不明白,所以使用的时候总有些隔阂,总不能放开手脚去用。这次学习之后,我完全明白lambda表达式是什么东西了,不禁惊叹这个设计的精妙。也非常大胆地使用了。
又比如说智能指针。我自从研究引擎以来,一直用c++写东西,但是从来没有用过智能指针。想想看真的非常Old School,没办法,我学c++的年代根本就没这个东西,而new delete的组合已经深入自已的骨髓了,这个是c++编程者必须要掌握的习惯。现在用上了智能指针,终于觉得自已的操作习惯能够和我最近这些年用的Java,C#靠近了一点。
古人有句话,磨刀不误砍柴功,希望这句话是对的,希望我的c++的学习能够让我的基础更好一点。
加油吧。