当前位置: 首页 > news >正文

【游戏引擎之路】登神长阶(九)——《3D游戏编程大师技巧》:我想成为游戏之神!

5月20日-6月4日:攻克2D物理引擎。
6月4日-6月13日:攻克《3D数学基础》。
6月13日-6月20日:攻克《3D图形教程》。
6月21日-6月22日:攻克《Raycasting游戏教程》。
6月23日-7月1日:攻克《Windows游戏编程大师技巧》。
7月2日-7月6日:攻克《雅达利2600汇编游戏开发》。
7月7日-7月11日:攻克《x86/x64汇编语言》。
7月11日-7月22日:学习《3D游戏编程大师技巧》(阶段性)。
7月14日-7月18日:学习《游戏引擎架构》(完成)。
7月23日-7月30日:攻克Python语言学习。
7月31日-8月5日:攻克《3D游戏编程大师技巧》。

下个目标《DirectX12 3D 游戏开发实战》。

(一)近况总结

从6月开始的时候,我当时不知道为什么,好像找到了人生的目标,所以动力非常足。从6月4号开始,到今天为止,我没有休息过一天。星期六,星期天都在工作。但是我终于被我的抑郁症反噬了。本来《3D游戏编程大师技巧》还有阴影一个小节我还没有实现。但是当我学习的时候,脑子里面一波一波地头痛,这是我的抑郁症和神经衰弱的并发症,只要一透支脑力,就会痛。

本来我打算到国庆之前都不休息的,来一个史诗级的远征。但是看来坚持不下去了。于是,这个里程碑到此结束,我的最长工作记录——2个月不休息。即便是没有抑郁症之前,我也没有2个月不休息过,只不过那时我只是不想做,而不是没能力做。

休息两天,再整装出发吧。

(二)《3D游戏编程大师技巧》学习总结

今天终于把《3D游戏编程大师技巧》全部攻略完成。最后一个实现的是透明材质,其实还有阴影部分没有实现。但是阴影部分因为都需要Alpha混合,而我的引擎加上了Alpha混合之后变得巨卡,我也不打算做下去了。反正这个软光栅的学习也是一个学习,并不是真正制作引擎。

我的下一个学习目标是《DirectX12 3D 游戏开发实战》,这是真正能够用于制作实用的引擎了。其实《3D游戏编程大师技巧》(还有他的姐妹篇《Windows游戏编程大师技巧》)被称为游戏编程四大坑书之首不是没有道理的。因为里面用到的技术不仅老旧,在现在看来也没什么价值。比如说8位模式,我的显示器已经没办法支持8位模式了。

但是,如果你知道自已想要什么,这本书仍然不失为一个经典。他坑的原因不仅是因为难,而且因为繁杂,其实这本书的前半,作者还坚持给每个渲染管线8位和16位的版本,到后面他自已可能都觉得麻烦了,只留下了16位版本。

我在学这本书之前还学了《3D图形教程》。这也是一个软件光栅化的教程。比这本书深入浅出得多。只不过内容并没有这本书里面的丰富。

但是这段旅程我相信是有价值的。

(三)游戏之神是什么?

在这本书里面,序言中提到了这样一个事情。在游戏行业中,有两种人,一种是擅长技术的,一种是擅长设计的。很多擅长技术的人,游戏感不一定很好,他们不会设计有意思的游戏。而“游戏感”强的人,也很少有人有强大的动手能力,能自已捣鼓出游戏。而《3D游戏编程大师技巧》的作者正好是这两者都非常强的人。

其实这在游戏行业里面,这并不是什么问题。因为游戏不是一件艺术品,他是一个工程,是需要很多人通力合作做出来的。就像是卡马克有他自已的搭档罗梅洛一样。

在我心中,卡马克是游戏行业中的唯一真神,不仅仅是因为他的能力,而且是因为他的理念,我的自由软件的理念受他的影响很大。我的《薪火引擎》自然也会开源的。

然而,即便是卡马克,他离真正的“游戏之神”也有一定的距离。因为他的技术力虽然非常强,但是对于游戏设计却并不痴迷。

“游戏之神”是什么?

但在我的心中,游戏之神一定是“制作游戏”“设计游戏”都非常强的人。如果说一个设计者自已都做不出来游戏,怎么能称为游戏之神呢?那只是伪神而已。

当然了,这仅仅是我自已的信念,不能用这个去评价别人,而且也没有事实上的操作价值。因为每个人专精于自已的领域,比如说设计游戏的专精于设计,制作游戏的专精于制作,然后两人合作,才是是正道。

可是,游戏之神是什么,这是人类向上帝的提问,没有人拥有权威,谁都可以定义自已心中的游戏之神。

我真的希望自已成为那个“真神”。当我有天用自已的引擎做出《三千神界》的时候,我就可以说我做到了这一点。

因为我相信,当有一天我能站在那个地方的时候,能够看到不一样的风景。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【JavaEE精炼宝库】网络原理基础——UDP详解
  • QT实现一个系统参数管理窗口
  • 深入理解单元测试与JUnit:从基础概念到实践操作
  • 计算机网络408考研 2014
  • 解密RCE漏洞:原理剖析、复现与代码审计实战
  • Android.mk(TODO)
  • 秋招复习笔记——八股文部分:网络IP
  • 09.XSS跨站脚本攻击(超详细!!!)
  • 充电不再难,高质量充电体系‘智’领绿色出行新时代
  • Mathtype安装教程/常见使用问题及快捷键大全
  • linux 011 注释13:缺页中断,新设计艺术团队第二版,第四章 4-39 至 4-
  • 大学生实验报告模板分享
  • java关于前端传布尔值后端接收一直为false问题
  • 公交车辆4G无线视频监控系统应用解决方案(视频监控统一接入平台)
  • 部署伪分布式 Hadoop集群
  • 【5+】跨webview多页面 触发事件(二)
  • egg(89)--egg之redis的发布和订阅
  • laravel 用artisan创建自己的模板
  • Laravel核心解读--Facades
  • SQL 难点解决:记录的引用
  • Vim 折腾记
  • 代理模式
  • 高性能JavaScript阅读简记(三)
  • 老板让我十分钟上手nx-admin
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 使用parted解决大于2T的磁盘分区
  • 微信小程序实战练习(仿五洲到家微信版)
  • 消息队列系列二(IOT中消息队列的应用)
  • 一个JAVA程序员成长之路分享
  • 硬币翻转问题,区间操作
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • UI设计初学者应该如何入门?
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​queue --- 一个同步的队列类​
  • ​低代码平台的核心价值与优势
  • $.ajax,axios,fetch三种ajax请求的区别
  • (19)夹钳(用于送货)
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (55)MOS管专题--->(10)MOS管的封装
  • (delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第2节(泛型类的类构造函数)
  • (蓝桥杯每日一题)love
  • (十一)图像的罗伯特梯度锐化
  • (原)本想说脏话,奈何已放下
  • (转)fock函数详解
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .net core 6 redis操作类
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .NET 使用 XPath 来读写 XML 文件
  • .Net转前端开发-启航篇,如何定制博客园主题
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成
  • @Transactional 参数详解
  • @vue/cli 3.x+引入jQuery