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

news2024/11/23 7:59:56

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.coloradmin.cn/o/1880002.html

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

相关文章

【WPF】Windows系统桌面应用程序编程开发新手入门-打造自己的小工具

电脑Windows系统上的桌面程序通常是用Visual Studio 开发工具编写出来的,有两种开发方式供选择,一种是WindowForm,简称WinForm,另一种是Windows Presentation Foundation,简称WPF,这里将学习WPF项目。 文章…

安全不“放假”!暑期安全老师就用秒报小程序提示学生的安全

随着暑假的到来,孩子们如同出笼的小鸟,迫不及待地投入到广阔天地的怀抱。然而,作为老师,我深知这段时间虽然孩子们得到了放松和游玩的机会,但安全问题却不容忽视。如何让孩子们在享受假期的同时,又能确保他…

SpringBoot(一)创建一个简单的SpringBoot工程

Spring框架常用注解简单介绍 SpringMVC常用注解简单介绍 SpringBoot(一)创建一个简单的SpringBoot工程 SpringBoot(二)SpringBoot多环境配置 SpringBoot(三)SpringBoot整合MyBatis SpringBoot(四…

FairGuard游戏加固无缝兼容 Android 15 预览版

2024年6月25日,谷歌发布了 Android 15 Beta 3 ,作为Android 15 “平台稳定性”的里程碑版本,谷歌建议所有应用、游戏、SDK、库和游戏引擎开发者都将“平台稳定性”里程碑版本作为规划最终兼容性测试和公开发布的目标。 安卓开发者博客提供的版…

PostgreSQL安装教程及文件介绍

Ubuntu 安装和配置 PostgreSQL 以 Ubuntu Server 20.04,PostgreSQL 12 版本为例。 1. 安装 使用如下命令,安装指定版本的 PostgreSQL sudo apt install postgresql-12在 Ubuntu 20.04 中安装 PostgreSQL 登录您的 Ubuntu 系统并使用以下 apt 命令更新…

[HBM] HBM TSV (Through Silicon Via) 结构与工艺

依公知及经验整理,原创保护,禁止转载。 专栏 《深入理解DDR》 全文 3300 字。 1 概念 1.1 什么是HBM TSV 使用 TSV 堆叠多个DDR DRAM成为一块HBM, 成倍提高了存储器位宽, 一条位宽相当于高速公路的一条车道, 车道越多&#xff…

npm安装依赖报错——npm ERR gyp verb cli的解决方法

1. 问题描述 1.1 npm安装依赖报错——npm ERR! gyp verb cli 登录后复制 npm MARN deprecated axiosQ0.18.1: critical security vuLnerability fixed in v0.21.1. For more information, npm WARN deprecated svg001.3.2: This SVGO version is no Longer supported. upgrade …

汽车电子工程师入门系列——汽车操作系统架构学习研究-AUTOSAR

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

6-14题连接 - 高频 SQL 50 题基础版

目录 1. 相关知识点2. 例子2.6. 使用唯一标识码替换员工ID2.7- 产品销售分析 I2.8 - 进店却未进行过交易的顾客2.9 - 上升的温度2.10 - 每台机器的进程平均运行时间2.11- 员工奖金2.12-学生们参加各科测试的次数2.13-至少有5名直接下属的经理2.14 - 确认率 1. 相关知识点 left …

5 数字滤波器的基本结构

目录 系统框图表示法 系统框图求系统函数 系统框图的其他结构形式 IIR数字滤波器的基本结构 直接型系统框图 级联型系统框图 并联型系统框图 信号流图 信号流图表示法 信号流图代数运算基本规则 系统框图表示法 系统框图求系统函数 系统框图的其他结构形式 IIR数字滤…

30分钟学习如何搭建扩散模型的运行环境【pytorch版】【B站视频教程】【解决环境搭建问题】

30分钟学习如何搭建扩散模型的运行环境【B站视频教程】【解决环境搭建问题】 动手学习扩散模型 点击以下链接即可进入学习: B站视频教程附赠:环境配置安装(配套讲解文档) 视频 讲解主要内容 一、环境设置 1.本地安装&#xf…

grpc学习golang版( 二、入门示例 )

系列文章目录 第一章 grpc基本概念与安装 第二章 grpc入门示例 第三章 proto文件数据类型 第四章 多服务示例 第五章 多proto文件示例 第六章 服务器流式传输 第七章 客户端流式传输 第八章 双向流示例 文章目录 一、环境二、编写protobuf文件三、编写server服务端四、编写Clie…

SpringBoot入门实战:SpringBoot整合SpringSecurity

1.背景介绍 SpringBoot是Spring官方推出的一款快速开发框架,它基于Spring框架,采用了约定大于配置的开发方式,简化了开发过程,提高了开发效率。SpringBoot整合SpringSecurity是SpringBoot与SpringSecurity的集成,可以实…

Ubuntu24.04 C++ 编译并使用OpenCV

Ubuntu24.04 换源 Ubuntu24.04 apt换国内源 清华源 阿里源 中科大源 163源-CSDN博客文章浏览阅读49次。作为 LTS 版本,它会有 5 年的常规维护和安全更新。如果订阅 Ubuntu Pro,还能享受额外7年的支持。也就是说, Ubuntu Pro将享有长达 12 年的系统更新保障!接下来,我们将…

注意力机制之ECA-Net:Efficient Channel Attention for Deep Convolutional Neural Network

论文link:link code:code 1.摘要 近年来,通道注意机制被证明在改善深层卷积神经网络(CNN)的性能方面提供了巨大的潜力。然而现有的大多数方法都致力于开发更复杂的注意模块以获得更好的性能,这不可避免地增…

观测云产品更新 | Pipelines、智能监控、日志数据访问等

观测云更新 Pipelines 1、Pipelines:支持选择中心 Pipeline 执行脚本。 2、付费计划与账单:新增中心 Pipeline 计费项,统计所有命中中心 Pipeline 处理的原始日志的数据大小。 监控 1、通知对象管理:新增权限控制。配置操作权…

智慧商场导航:基于3D可视化与iBeacon技术的商场导航营销方案

在数字化时代,商场导航系统正经历着一场技术革新。维小帮凭借其先进的定位技术和地图引擎技术,为商场提供了一套全方位的智慧导航解决方案,旨在提升顾客体验,增强商场品牌形象,并推动经济效益的增长。 实现原理 1、3…

【目标检测】DN-DETR

一、引言 论文: DN-DETR: Accelerate DETR Training by Introducing Query DeNoising 作者: IDEA 代码: DN-DETR 注意: 该算法是在DAB-DETR基础上的改进,在学习该算法前,建议掌握DETR、DAB-DETR等相关知识…

缺少msvcp140一键修复方法,快速解决msvcp140.dll丢失问题

日常中电脑已经成为我们生活和工作中不可或缺的工具。然而,在使用电脑的过程中,我们常常会遇到一些问题,其中之一就是电脑运行软件时提示找不到msvcp140.dll。这个问题会导致软件无法启动运行,但只要我们了解其原因并采取相应的解…

antd DatePicker日期选择框限制最多选择一年

实现效果 实现逻辑 import React, { useState } from react;const ParentComponent () > {const [dates, setDates] useState(null);const disabledDate (current) > {if (!dates) {return false;}const tooLate dates[0] && current.diff(dates[0], days) &…