【游戏引擎之路】登神长阶(五)

5月20日-6月4日:攻克2D物理引擎。
6月4日-6月13日:攻克《3D数学基础》。
6月13日-6月20日:攻克《3D图形教程》。
6月21日-6月22日:攻克《Raycasting游戏教程》。
6月23日-6月30日:攻克《Windows游戏编程大师技巧》。

下个目标:汇编语言学习。

今天收工,这周完成了80小时的净工作时间,没有一点的水份。

去年过年之后,我开始了骑行,那时候我只是骑了十公里就非常疲惫,而现在的我骑个60公里也没有任何压力。当时我爬上一座小的山坡的半山腰,然后内心绝望与希望交织。

我绝望的是我当时感觉自已的抑郁症是好不了了。我从2017年抑郁症正式爆发之后,一直想着恢复,我年年都觉得“今年能够恢复”了。可是一年一年地过去,自已的状况也没什么根本的改变。当然,好是一点点在好起来,不然去年也不会有动力骑行了。

我当时觉得,抑郁症就这样伴随我一生吧。我也不挣扎了。我向众神祈祷,我不求别的东西,只要我每天能够坚持工作8小时,我就满足了,我就能实现自已的愿望。

诸神回应了我。

自从骑行之后,我的身体状态是越来越好了。到了今年的六月,我感觉自已又恢复到了一个新的高度,我从2号开始,到现在已经没有一天休息了。这一周更是打破了自已的记录,工作了80小时。不过这样的“拼命”只能用在破记录这一次。我年轻的时候,这样的工作状态一点不是问题。但现在不行了。为了破记录,昨天晚上工作到9点多(我是5点起床的),然后今天早上就开始偏头痛了,真的是不能透支一点。

我现在晚上根本不敢玩游戏,短视频也戒了。戒短视频可能是我养成的最好的习惯。为什么不敢玩游戏,因为游戏太消耗精神了,我如果晚上不养好精神,用最低能耗的状态休息,身体就一定会崩溃。所以我晚上只能听听书,做那种干一会就想睡觉的事情。现在这些日子,我根本上都在9点到10点钟就睡觉了。没有超过10点的。这种作息简直想都不敢想。我年轻的时候经常晚上1-2点睡觉,然后早上9点起。

之所以能够有这么大的动作,除了自已把自已的身体调理好之外,还在于我找到了人生的方向。我终于完成了自已的“龙场悟道”。孔子说“四十不惑”,我现在终于明白那个“不惑”是什么意思了。

我几年前刚刚接触Unity的时候,那时候是我人生的一个重大转型。我之前是搞页游手游的,也赚了一些钱。但是,我总觉得这些游戏并不是“真正的游戏”。不是我想做的。所以当时自已的身体崩溃之后,我在那样的环境中,有一种“非宁静无以致远”的态度,然后做出我的人生中的一个重大决定,我决定不再搞自已的手游,而是追逐自已的梦想,开发独立游戏。

当时我开始学Unity,之后的几年里面,也一直在捣鼓Unity。每日也有进步。但是,我当时有那么一种心态,觉得这个时代就是可以“速成”的时代。不止我在内,这个时代的所有人都这么想,就包括Unity的设计思路,虚幻引擎的设计思路,就是可以让你“速成”。而这个时代也有无数这样的成功者。

用虚幻引擎做做FPS,不需要有多大的技术力,也能够获得成功。也有题材选得好的人,做做视觉小说类的游戏也能成功。这样的事情在游戏界很多很多,以至于大家开发游戏的思路都是那种“我要寻找到一种成功的方程,我找到这个密码,我就能成功”。

大家更加痴迷于题材,创意,把这些东西拔高到很高的地步。也美化了追求这些的游戏开发者。我其实并不怪这些人,因为我自已也是这么想的。我也想利用我的编程经验,快速上手Unity,然后快速地出作品。我脑子里面有很多好的想法,那种“我觉得这一定受欢迎”的点子有就箩筐。

然而,在开发的过程中,我却渐渐地感觉到了不对劲。我不知道怎么样形容这种感觉,就好像修仙小说里面,大家都很痴迷于学得更好的技能,什么天地玄黄,得到一个天阶技能,就能打遍天下。这种所谓“天阶”“地阶”,就是游戏的灵感,题材。

除了功法技能之外,大家也追求速成的道路。比如Unity里面,很多很多插件。能够让你“速成”,不需要你去开发。你想要物理材质,有Magical Cloth,你要攀爬系统,动作系统,骑乘系统,都有。我最初也是觉得我能够好好地利用这些插件快速地让自已的作品成型。

这些东西,就像是修仙小说里面那奇怪的能够快速提升实力的东西。然而,这些东西都有巨大的负作用,你每次使用这些东西提升自已,最终就会让你背负一样负担。最终你的系统会不堪重负。

我看到中国的独立游戏界,真的就像是看到修仙小说里面那些人在不择手段向上爬一样,每个人都想追求到什么功法,什么天材地宝,让自已一步登天。而事实上,每年也都有爆款,每年也都有成功者,这让这些人更加的狂热。

而时间一晃,如果从我开始学Unity的2020年,到现在已经4年了。这4年,诞生了很多成功的作品,可是,放眼中国独立游戏圈,这个圈子真的成长了吗?又诞生过多少大神呢?又有多少人从心底里面觉得,如果“照个这趋势发展下去,我们中国独立游戏界也能拿TGA”。

在我看来,中国独立游戏圈这些年,它的实力没有多少成长。

很多人会怪这是市场的趋势,那只是一部分原因。收益的成长不代表实力的成长,真正的成长是实力的成长。就像那些主角从来不会去服用那些追求短期利益而损失未来的丹药一样,我也不想成为那样的人,我想成为主角一样的人,我认为,这个世界是有“道”的。

所以当我一年前我骑上山坡的时候,我做了一个决定,一个我自已以前从来不敢想的决定,我决定,我要去攀登那座我之前只能仰望,而不能去攀登的山峰,我想要了解3D游戏制作的一切。

所有的武侠小说也好,修仙小说也好,都会告诉你,“基础”最重要。这些小说中的“道”,并不是虚假的,他是真实的“道”的印射,至少,我相信如此。想要做出最好的游戏,基础太重要了。

包括我的一些游戏制作的朋友,我在和他们聊这些的时候,都没有什么共同语言,而这些人,其实放在圈子里面,都属于相当有技术的人了。他们觉得他们手里面的技术够了,觉得做游戏最缺少的只是资源,又或者说,想游戏爆火,缺少的只是一个“点子”。

但我觉得,真正能够让游戏上一个台阶的,是真正的技术,不是那种能够运用引擎做出东西的技术,而是真正能够理解一切,才能够做出来最好的东西。我在自已做动作游戏的过程中,对这个就深有体会。我渐渐地知道了为什么国产的动作游戏和其它国外的游戏相比,总是差那么点意思,总是被人说打击感不行。这些东西你要做好,要用到3D知识里面最底层的东西。Unity的碰撞检查,连判定有时候都判定不准,我当时自已去找了一本3D数学的知识,然后自已写了一段我的物理引擎,给游戏附加了一套判定机制,这样才让自已满意。

而这,只是其中一样东西而已。游戏是靠无数这样的东西来组成的。

我不知道怎么说,因为有时候这个话题我自已都不清楚。如果你找一个人来和我辩论游戏怎么样才能成功,我也许也不能辩论过他。

可是,随着我自已做游戏,我越来越相信这一点,我越来越相信基础的重要。

于是一年前,我下定决心,从头开始。

直到现在,我仍然觉得这是一个需要勇气的决定。要知道,我已经很多年没有收入了。我现在就靠着自已仅剩的那点积蓄,苟活于世。我现在每个月的开销就是500。照这个开销,我想坚持多久就坚持多久。古时有人,一箪食一瓢饮,人在陋巷,不改其乐,我小时候学到这个的时候,我觉得这样的人真的好了不起,真的做不到。不过,我没想到自已有一天我也能做到了。哈哈。

从去年开始,我开始学习建模。在所有的知识之中,这是最难的一个。因为我是业余的。如果说到编程相关,我有十多年的经验。而建模,我完全一窍不通。

我开始学习Blender,然后其它所有的软件,什么Zbursh,Substance Painter,DAZ,能用的都用了。到了现在我已经能够做出《原神》那样的角色。我是真的没有想到,我居然还蛮适用干这个的。

学习了建模之后,我就再开始学习Shader。把技术美术的这一个关卡攻略下来。能够自已写Shader。我在这个过程中,真的是越来越感觉要做3D,有关3D知识,3D数学的基础实在太重要了。

到了今年。我把我的建模第一系角色做得差不多了之后,开始学习引擎部分。

我是卡马克的粉丝,在游戏行业,卡马克是我认可的唯一的真神。当时看《DOOM》启示录的时候,我就希望,要是自已有天也能像他那样就好了。我说的“像他那样”,不是指他的成就,而是指他的能力。我当时看到《DOOM启示录》里面说他“两个星期就能手搓引擎”的时候,我真的是惊为天人。

现在,我终于可以沿着神走过的路,去攀登这个登神长阶了。

我以前在B站,说自已要做能够上TGA的游戏。我真的是这样想的。我知道自已需要什么,就好像人这一生来到这个世界上,他是有自已的使命的,而我感觉自已就像找到了它一样。

最近这一个多月学的东西,我感觉比自已半年学的东西还多。我以前觉得那些学霸学东西好快啊,后来我才明白,学东西就是滚雪球,很多人以为别人学东西快,那是别人有天赋,其实不然,有人学得快,是因为他之前掌握的有东西,他所有的东西,都不是“全新”的,而只是“半新”的。所以他才学得快。

就比如说,我学这些东西,需要两个语言,C和c++。这两种语言我都十多年没用过了。以前我做页游,手游,用的是Java,我用了差不多十年。然后学Unity,我用的是C#。可是,我虽然已经不用C/C++十多年了。可是,当初我学编程的时候,我就是学C/C++起手的啊!这东西就像自已的母语一样,不可能忘记的。

C是这个世界上最优雅的语言,没有之一。即便我这些年用了无数其它的语言,我还是觉得这样。

3D数学这东西是看得头大。可是,当自已的知识一点一点积累起来之后,渐渐地也变得没那么可怕了。

我以前做动作游戏时,那些想做又做不出来的东西,随着自已的基础知识的增加,一点一点地变得清楚起来。

我希望自已的路没有走错。

这次《Windows编程大师技巧》,其实我毕业之后也买了这么一本。他后面还有《3D游戏编程大师技巧》,我以前也有,还用这个做了一个小小的3D战棋DEMO,当然,根本玩不了,可是,毕竟能够控制一个机器人在棋盘上走。可是那之后我就去做页游,这一晃就是十多年过去了。

这本书其实学完只学到了怎么用DirectX,几乎没有3D的内容。我学完之后做了一个《光明战神》的射击游戏。其实如果用Unity,最简单的初学者也可以做出这样的游戏,不过,对于我来说却是意义非凡,因为这就是我自已手搓的第一个引擎。这是真正的引擎。我在里面有很多引擎方面的构架,比如说,我就做了一个SpritePack,能够用XML定制Sprite的合集,这是以前我用COCOS或者Unity,要用附加工具才能做的,但是,我用一种非常灵活的方式做出来。这就是引擎的思路。

我觉得自已能够做的事情真的太多了。

而且有时候深入了底层,真的能够看到很多不一样的风景。比如说,上面显示的FPS是4000多,这不是BUG,是真的有4000帧率。就算我再渲染更多的东西,帧率还能这么高。

这就是底层的力量。因为我是用最底层的东西在加速,他的性能真就能这么变态。我的机器可是1080TI的老机器了,以前有钱的时候买的,随我征战多年,现在经济条件不好,所以也没得换了。

这次学完了这本,本来应该继续学《3D游戏编程大师技巧》的,可是我的书居然因为一些意外情况到不了,只好再重新买一次。所以我把之后应该学的汇编提上日程。学汇编,我想到这个事情,我自已都觉得有点好笑。我是这辈子真没想到自已会学汇编。因为汇编实际上对现在代的编程影响并不大了。

不过,我现在有点像《阿甘正传》里面的主角,觉得自已反正已经跑了这么远。那再跑远点又有什么呢?

我真的想看看,我自已一个人能够走多远。

我真的想看看,那不一样的风景。

我的《光明战神》,一个小小的成果:

虽然说Unity随便也能做出这种东西,但它已经拥有了一个引擎应该有的东西。至少,你不用因为下载量而付费了吧。哈哈。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/39246.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Qwen2部署实战】Qwen2初体验:用Transformers打造智能聊天机器人

系列篇章💥 No.文章1【Qwen部署实战】探索Qwen-7B-Chat:阿里云大型语言模型的对话实践2【Qwen2部署实战】Qwen2初体验:用Transformers打造智能聊天机器人3【Qwen2部署实战】探索Qwen2-7B:通过FastApi框架实现API的部署与调用4【Q…

从任意用户注册到任意密码重置

写在最前面一句话 To be or not to be ,it‘s a question . 哎呀,放错台词了,应该是 true or false , 在最近的测试中遇到了一个很有趣的点 “将 false 改为true ”就可以成功绕过验证码了。 T rue or false ??? …

「51媒体」企业举行新闻发布会,如何邀请媒体到场报道

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 媒体宣传加速季,100万补贴享不停,一手媒体资源,全国100城线下落地执行。详情请联系胡老师。 企业举行新闻发布会时,邀请媒体到场报道是一个…

MySQL常用操作命令大全

文章目录 一、连接与断开数据库1.1 连接数据库1.2 选择数据库1.3 断开数据库 二、数据库操作2.1 创建数据库2.2 查看数据库列表2.3 删除数据库 三、表操作3.1 创建表3.2 查看表结构3.3 修改表结构3.3.1 添加列3.3.2 删除列3.3.3 修改列数据类型 3.4 删除表 四、数据操作4.1 插入…

day62--若依框架(基础应用篇)

若依搭建 若依版本 官方 若依官方针对不同开发需求提供了多个版本的框架,每个版本都有其独特的特点和适用场景: 前后端混合版本:RuoYi结合了SpringBoot和Bootstrap的前端开发框架,适合快速构建传统的Web应用程序,其…

Qt加载SVG矢量图片,放大缩小图片质量不发生变化。

前言: 首先简单描述下SVG: SVG 意为可缩放矢量图形(Scalable Vector Graphics)。 SVG 使用 XML 格式定义图像。 给界面或者按钮上显示一个图标或背景图片,日常使用.png格式的文件完全够用,但是有些使用场景需要把图…

QChartView显示实时更新的温度曲线图(二)

文章目录 参考图说明1. 项目结构2. TempChartView.pro3. main.cpp4. TemperatureSeries.qml5. main.qml详细说明 参考图 说明 Qt Charts 提供了一系列使用图表功能的简单方法。它使用Qt Graphics View Framework 图形视图框架,因此可以很容易集成到用户界面。可以使…

基于小波分析的纹理和颜色反射对称性检测(MATLAB R2018A)

对称物体在自然图像和合成图像中普遍存在。作为对称物体最重要的全局特征之一,对称性检测长期以来都是计算机视觉领域的研究热点,并在图片的语义提取、图像语义理解以及情感识别等任务上具有广泛的应用。对称物体的检测技术,就是将图片中所蕴…

【前端】HTML+CSS复习记录【3】

文章目录 前言一、from(表单)二、style属性1、标签中直接定义(内联样式)2、定义在head中3、外部链接引用 四、 class 选择器系列文章目录 前言 长时间未使用HTML编程,前端知识感觉忘得差不多了。通过梳理知识点&#…

qq文件传输助手在哪里?详细图文教程告诉你(2024新版)

QQ作为一款功能强大的社交软件,不仅提供了聊天、语音、视频等多种通讯方式,还内置了文件传输助手这一实用工具。通过文件传输助手,用户可以在不同设备之间轻松传输文件,实现跨平台的便捷操作。 那么,qq文件传输助手在…

【@AutoWired和@Resource的区别】

AutoWired和Resource的区别 这两个我们在项目中,经常去使用。很少有人知道他们有什么区别。下面我们将从 来源依赖查找顺序支持的参数依赖注入的用法支持 这四个方面来说明他们俩个的区别 来源 Autowired: 这是Spring框架自带的注解,用于实现自动依…

绝区零 Mac 下载安装详细教程(MacOS IPA 砸壳包 playCover 完美运行)

绝区零 7.4 号开始公测,但刚刚就可以开始下载了,我也是第一时间就迫不及待的安装到了我的 Mac 电脑上,感兴趣的朋友可以跟我一起安装试试 我这里是通过 playCover 的形式在 Mac 上安装运行的,根据之前原神的经验所以这次还是同样…

惠海 H6912 升压恒流芯片IC 支持2.6-40V升12V24V36V48V60V100V 10A 摄影灯 太阳能灯 UV灯 杀菌灯

1.产品描述 H6912是一款外围电路简洁的宽调光比升压调光LED恒流驱动器,可适用于2.6-40V输入 电压范围的LED恒流照明领域。H6912可以实现高精度的恒流效果,输出电流恒流精度≤士3%,电压工作范围为2.6-40V.可以轻松满足锂电池及中低压的应用需…

嵌入式Linux系统编程 — 6.1 信号的基本概念

目录 1 信号的概念和作用 1.1 什么是信号 1.2 信号的目的 1.3 信号如何处理 2 信号的分类 2.1 可靠信号与不可靠信号 2.2 实时信号与非实时信号 3 常见信号与默认行为 3.1 信号本质上是 int 类型数字编号 3.2 常见信号 1 信号的概念和作用 1.1 什么是信号 信号是一…

艾体宝干货 | 解析Redis企业版的多租户技术

在多租户架构中,一个软件实例为多个不同的用户组(或“租户”)提供服务。每个租户的数据都被安全地隔离,确保它们对其他租户不可见且无法访问。可以将其想象为一栋公寓大楼,每个人都住在共享建筑中独立且隔离的单元中。…

大模型时代的基础架构,大模型算力中心建设指南重磅来袭!

什么是最畅销商品?什么是高毛利商品? 我们来看一个例子: 一件T恤使用成本为100元的原料,价格为140元。另一件T恤使用成本为80元的原料,但在样式、颜色、图案的设计上比较有特色,价格也为140元。 当这两件…

【JVM-04】线上CPU100%

【JVM-04】线上CPU100% 1. 如何排查2. 再举一个例子 1. 如何排查 ⼀般CPU100%疯狂GC,都是死循环的锅,那怎么排查呢?先进服务器,⽤top -c 命令找出当前进程的运⾏列表按⼀下 P 可以按照CPU使⽤率进⾏排序显示Java进程 PID 为 2609…

苏东坡传-读书笔记七

苏堤和西湖之与杭州,正如美女花容月貌上的双眸。我常想,倘若西湖之是空空的一片水——没有苏堤那秀美的修眉和虹彩般的仙岛,一画龙点睛增其神韵,那西湖该望之如何?几百年来的中国游客,春季到来之时,向西湖…

如何在Python中实现一个简单的爬虫程序

如何在Python中实现一个简单的爬虫程序 随着互联网的发展,数据已成为当今社会最宝贵的资源之一。而爬虫程序则成为了获取互联网数据的重要工具之一。本文将介绍如何在Python中实现一个简单的爬虫程序,并提供具体的代码示例。 确定目标网站 在开始编写爬…

【Python】已解决:urllib.error.HTTPError: HTTP Error 403: Forbidden

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决:urllib.error.HTTPError: HTTP Error 403: Forbidden 一、分析问题背景 在使用Python的urllib库中的urlopen或urlretrieve函数下载文件时,有时会遇到…