【浅墨著作】《逐梦旅程:Windows游戏编程之从零开始》勘误&配套源代码下载...

2023-05-16



I'm back~~恩,几个月不见,大家还好吗?

这段时间真的好多童鞋在博客里留言说或者发邮件说浅墨你回来继续更新博客吧。woxiangnifrr童鞋说每天都在来浅墨的博客逛一下看有没有更新,“每天都来就像看女神那般不依不舍”,弄得我再不更新都不好意思了,哈哈~怎么说呢,前段时间忙毕设,回国,暑假,间隔年旅行休整,然后是适应新的生活,各种事情,也真正没有心境来更新博客了,最近正好心境安定下来,就继续开始写博。额,关于思想汇报改天我专门写一篇文章和大家交流交流,现在先打住说正事吧~

首先是大家关心的博客回归问题,博客会在这段时间继续开始更新,《Visual C++游戏开发》专栏的第三季,更新时间暂定依旧是每周一。



然后这篇博文主要是用于《逐梦旅程:Windows游戏编程之从零开始》一书的维护工作,勘误和源代码下载两个方面。

这本书浅墨用了一年多时间完成,最近刚出版,已经陆续在当当,淘宝,亚马逊,京东上架了,各大实体书店也渐渐有了货。{各大网店目前还是没有把书正式上架,但是显示的有货状态,已经可以购买了但是记录和评论都在后台上没有更新到界面里,囧}

放一张样书的玉照吧,浅墨自己构思的封面哦,很梦幻吧:

恩,来做一个简单的介绍吧:





一、自序:我有一个梦想——致终将由我们去复兴的国产游戏



All our dreams can come true, if we have thecourage to pursue them.

我们所有的梦想都可以成真,只要我们有勇气去追求它们。

————沃尔特·迪斯尼


依稀记得那还是F4红遍大街小巷,满城都飘扬着《流星雨》的年代。

那个时候的电子游戏,无论是投币式的街机游戏,还是网吧里的《反恐精英》、《流星蝴蝶剑》、《仙剑奇侠传》、《星际争霸》、《帝国时代》等引领时代的游戏界的璀璨明珠,总能深深地吸引住每个纯真无邪孩童的心,绚烂的游戏画面总是让孩童们流连忘返。

那个时候,每次放学后唯一单纯的想法,就是悄悄溜到学校附近的网吧,和电脑游戏亲密接触。口袋里有邻花钱的时候就能玩上一会儿,没有零花钱的时候就痴痴地站在屏幕前面看别人操纵着荧幕前的剑侠闯荡世界。年少的我单纯地认为,游戏世界中存在着一个无比恢弘的世界,那是可以装下梦想的地方。应该是我对游戏的痴迷,对游戏开发梦想的虔诚,让我走向了研习游戏开发的这条道路。

还记得那个香樟树覆盖的夏天,年幼无知的我在一帮同学中吹牛说:我长大后,一定要自己开发出比这些还牛还要好玩的游戏。

现在想想,这几年走过的路途,真应了那句话,“现在的努力,都是为了小时候吹过的牛逼”。

这些年来,在学习游戏编程的道路上有过惊喜,有过坎坷,有过自豪,有过怅惘,走了不少弯路,也算是最终走上了正途,小有所成。于是,我单曲循环着五月天的《有些事情现在不做一辈子都不会做了》,打开Word,打开Visual Studio,把自己这么多年来的游戏开发经验和心得用文字凝聚起来,开始为大家写这本书。

而这么一写,就是一整年。

经过一年夙兴夜寐,终于,赶在22岁生日之前,近百万字的书稿随着一声响指而初具雏形。

“谨以此书献给父母,因养育之恩无以回报。谨以此书献给母校南京航空航天大学和乌克兰国立航空航天大学,因赐予我一颗不甘平庸、上下求索的心。谨以此书献给所有怀揣游戏开发梦想的人们,因为,你们不是一个人在战斗。”

当在书稿的开头写下这三个“谨以”的时候,我终于开始觉得,这一年的夜以继日,这一年的披星戴月,都是值得的。

然而,因为岁月积累的关系,这本书中渗透的编程思想或许不能和编程界中的泰斗们同日而语。但是,我可以捂着胸口问心无愧地说,我把这些年自己悟出来的关于游戏编程的学习方法和真知灼见,毫无保留地呈现给了大家。大家能看到的眼前的这些句子和代码,全都是经过一遍又一遍的深思熟虑,一遍又一遍的修改,然后小心谨慎地敲出来的。

详细研究过游戏编程的朋友们都应该有这样的共识:“中国人写的书水平上不去,外国人写的书水平有了,但是翻译得往往都强差人意,理解不了”。也许正是这个原因,国内游戏编程的入门门槛一直很高,DirectX一直被人们认为是很难学的。很多怀揣游戏开发梦想的热血青年们,信誓旦旦地开始着手学习游戏编程的时候,却被晦涩难懂的游戏编程教材拒之梦想门外,碰了一鼻子灰,从此和最初的梦想失之交臂。我想,这正是导致国产游戏业界的萎靡,国产游戏一直很难成长起来的原因之一。

在这样的环境的激励下,这本倾注我一年多心血的书出现了,它的创作初衷便是渴望能够改变这样的现状。

愿这本书,能帮到那些热爱游戏编程、怀揣游戏开发梦想,却苦于难以入门的人们,让他们少走弯路。

愿这本书,能为国产游戏、国产游戏引擎的崛起,开启一扇门,迎接新的黎明。

我有一个梦想,将来的某一天,大家都能玩到蕴含着中国上下五千年本土文化的优质游戏大作。

我有一个梦想,有一天,西游记能出ACT,让老外去体会中国文化西游记中”斗战胜佛”的打击快感,那一定比西方的动作巅峰之作《战神》、《鬼泣》更加深邃。

我有一个梦想,有一天,上海滩能出沙盒游戏,而不是玩《GTA》感受美国梦,亦或是玩着《热血无赖》体验国外公司强行塞给我们的“中国文化”。

我有一个梦想,有一天,不少3A大作不需要汉化,因为是我们自己的游戏,配音是中文,文化也是中国的。

我有一个梦想,将来的某一天,国产游戏能像中国的其他产业一样,以一个领跑者的姿态,面对全世界,面对全宇宙,器宇轩昂,扬眉吐气。

这会是由我们一起去完成的梦想。

我等着我们的好消息。

浅墨 2013年5月于乌克兰



二、逐梦 · 导读

这本书分为六大篇章,26个章节。六大循序进阶的篇章分别为:

篇章序:逐梦 • 游戏开发梦想的重量

篇章一:起航 • 夯实游戏程序之根

篇章二:初探 • GDI 2D游戏编程

篇章三:飞跃 • DirectX游戏编程基础

篇章四:致用 • DirectX游戏编程应用

篇章五:升华 • 致我们的游戏开发梦想

以下的书本导读内容可以帮到大家更好的对当前的学习阶段进行定位,让自己对号入座,快速、科学地开始自己的游戏编程逐梦之旅。

l如果你的编程经验为零:

毫无编程经验的朋友,请先阅读介绍C++编程语言的相关书籍,再来延续我们的梦想,阅读这本书。学习C++推荐书目:《C++ Primer》与《C++ Primer Plus》,或各大高校的C++程序设计教程。

l有C++编程经验但不熟悉Windows 下编程:

有C++编程经验但毫无Windows编程经验的朋友,可以重头到尾顺畅的阅读这本书。因为这本书最准确的定位就是有一点C++编程经验之后从零开始掌握Windows游戏编程。

l如果你有Windows 编程经验但不熟悉GDI:

但不熟悉GDI有Windows 编程经验但不熟悉GDI的朋友,推荐适当阅读第一章之后,推荐从第四章开始征程。

l如果你想了解Windows GDI游戏绘图技巧:

想了解Windows GDI游戏绘图技巧的朋友,请阅读第五章。

l如果你想了解Windows游戏动画技巧:

想了解Windows游戏动画技巧的朋友,第六章会满足你的好奇心。

l想了解Windows小游戏键盘鼠标编程相关知识:

需要了解Windows中小游戏对键盘鼠标编程相关知识的朋友,第七章会给你答案。

l想看看Windows GDI如何写出好玩的程序:

想看看Windows GDI可以弄出哪些好玩的玩意儿的朋友,第八章会给你惊喜。

l想了解一个GDI小游戏完整的开发过程:

想了解一个结构完整的小游戏的开发过程的朋友们,第九章会超出你们的期待。

l如果你想开始学习DirectX游戏编程:

有一定Windows编程经验,并且了解GDI编程,已经准备好迎接挑战,想开始DirectX3D游戏编程学习的朋友,请从第十章开始阅读。这本书从第十章往后的内容组织起来是一个系统的DirectX游戏编程教材,其实可以单独成书的。

l想了解DirectX的进阶应用技术:

如果你已经打好DirectX的编程基础,想了解DirectX的进阶应用,请从第21章开始阅读。

l想了解游戏引擎技术:

如果你通过自己的不懈追逐,已经有了不错的C++/DirectX基础,想适当了解游戏引擎技术,第26章正是为你准备的。

l想搜寻进阶的游戏编程书籍

如果你已经完成本书的学习,并且信心满满,想知晓世界范围内有哪些进阶游戏编程书籍可以进一步提高自己的“段位”,总结全面的附录A.2和A.3正是为你准备的。




三、详细注释的书本配套源代码下载

源代码包是400多Mb的rar格式压缩包,完全解压后近1G,是和书一样的大块头了。

每个程序浅墨都有用心为大家准备,代码都经过详细注释,每个程序示例运行的时候都有精选的,独一无二的背景音乐播放。


配套源代码包解压后是如下的样子:



那么,《逐梦旅程:Windows游戏编程之从零开始》一书配套源代码下载地址:


1.百度网盘



暂时用百度网盘先顶着,其他下载方式会陆续放出~:)


先放一些程序截图吧:



















然后这里是配套示例程序的一些说明:


第3章:

1.【FirstBlood!】 一个简单的Windows API示例程序,并附有dota中第一个击杀会播放的很酷的“FirstBlood”音效。

2.【GameCore】 用代码勾勒出游戏开发所需的核心框架程序

第4章:

3.【GDIdemoCore】实现GDI游戏开发所需的核心框架程序

4.【GDIdemo1】GDI基本几何绘图示例程序

5.【GDIdemo2】GDI文字输出示例程序

6.【GDIdemo3】GDI位图绘制示例程序


第5章:

7.【GDIdemo4】透明贴图两套体系之:透明遮罩法示例程序

8.【GDIdemo5】透明贴图两套体系之:透明色彩法示例程序

第6章:

9.【GDIdemo6】游戏动画技巧之 定时器动画显示示例程序

10.【GDIdemo7】游戏动画技巧之 游戏循环动画显示示例程序

11.【GDIdemo8】游戏动画技巧之 透明动画示例程序

12.【GDIdemo9】游戏动画技巧之 排序贴图示例程序

第7章:

13.【GDIdemo10】Windows消息处理之键盘消息处理示例程序

14.【GDIdemo11】Windows消息处理之鼠标消息处理示例程序


第8章:

15.【GDIdemo12】愤怒的小鸟弹球之物理匀速运动模拟示例程序

16.【GDIdemo13】愤怒的小鸟弹球之重力环境模拟示例程序

17.【GDIdemo14】愤怒的小鸟弹球之摩擦力环境模拟示例程序


18.【GDIdemo15】粒子系统初步之雪花飞舞示例程序

19.【GDIdemo16】粒子系统初步之星光绽放示例程序

第9章:

20.【GDIdemo17】小型回合制游戏:《勇者斗恶龙》程序源码

第11章:

21.【D3DdemoCore】Direct3D程序的核心框架

22.【D3Ddemo1】Direct3D初始化四步曲 示例程序

23.【D3Ddemo2】Direct3D渲染五步曲 示例程序

第12章:

24.【D3Ddemo3】Direct3D顶点缓存的逆袭 示例程序

25.【D3Ddemo4】Direct3D索引缓存的故事 示例程序

第13章:

26.【D3Ddemo5】迈向三维世界:Direct3D四大变换 示例程序

第14章:

27.【D3Ddemo6】Direct3D中几种几何体的快捷绘制示例程序

28.【D3Ddemo7】绘制真实质感的三维世界:光照与材质示例程序

第15章:

29.【D3Ddemo8】游戏输入控制利器 : DirectInput 示例程序

30.【D3Ddemo9】对DirectInput的封装 示例程序

第16章:

31.【D3Ddemo10】为三维世界添彩:纹理映射示例程序之一

32.【D3Ddemo11】为三维世界添彩:纹理映射示例程序之二

第17章:

33.【D3Ddemo12】网格模型和X文件使用面面观 示例程序

第18章:

34.【D3Ddemo13】水融的艺术:alpha混合技术 示例程序

第19章:

35.【D3Ddemo14】横看成岭侧成峰:深度测试和Z缓存 示例程序

第20章:

36.【D3Ddemo15】虚实结合的光影 : 模板技术 示例程序

第21章:

37.【D3Ddemo16】翱翔于三维空间:第一人称摄像机的实现示例程序

第22章:

38.【D3Ddemo17】钟灵毓秀的世界:三维地形系统的实现示例程序

第23章:

39.【D3Ddemo18】向碧蓝的苍穹致敬:三维天空的实现示例程序第24章:

40.【D3Ddemo19】让唯美的雪花飘扬:三维粒子系统的实现示例程序

第25章:

41.【D3Ddemo20】造物主的降临:多游戏模型的载入示例程序



四、纠错·交流

由于浅墨水平有限,书中难免会有疏漏之处。希望电脑屏幕前热心的你,能够指出书本中错误,评论在这篇文章中。
浅墨会及时对这一部分的内容进行更新,以便在书籍下一版印刷的时候,以一个更完美更严谨的样子,呈现在懂得她的人
的面前。




文章最后依旧是送大家一个句子:


希望你,能在二十岁出头的生命里,做一些到了八十岁想起来还会微笑的事情。

电脑屏幕那端的你,晚安:)


下周一,回归季,游戏开发笔记第三季,我们,不见不散。




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【浅墨著作】《逐梦旅程:Windows游戏编程之从零开始》勘误&配套源代码下载... 的相关文章

  • 如何在 Windows 上检查子进程是否被信号杀死

    问题 给定一个在 python 中启动的子进程 其代码类似于 import subprocess p subprocess Popen command stdout subprocess PIPE stderr subprocess PIP
  • shutdown.exe 参数带有破折号或斜杠?

    我使用的电话shutdown exe重新启动安装了不同版本 Windows 的计算机 对于 Windows XP 命令是 shutdown exe r f t 01 对于其他版本的 Windows 我使用 shutdown exe L R
  • 无法在 Windows 7 上安装 Android USB 驱动程序

    所以我想使用我的新 Nexus 5 来调试我的应用程序 我尝试通过以下方式安装 Android USB 驱动程序装置经理 http developer android com tools extras oem usb html Win7但我
  • Windows docker:权限被拒绝 /var/run/docker.sock

    当我尝试使用自动发现运行 filebeat 时 出现以下错误 退出 自动发现提供程序设置中出现错误 已获得权限 尝试连接到 Docker 守护程序套接字时被拒绝 unix var run docker sock 获取http 2Fvar 2
  • 如何在 RTMP 流中嵌入 pic_timing SEI 挂钟时间码?

    我需要将我的桌面流式传输到 AWS MediaLive 服务 并且根据要求 我必须在流中包含挂钟时间码 AWS 支持人员善意地通知我 对于 h 264 编码流 我需要提供时间码作为 pic timing SEI 消息 我在 Windows
  • 在VB.net中动态添加用户控件

    我在 Vb net Windows 应用程序 中制作了自定义 UserControl 如何将其动态添加到表单中 UserControl 本质上只是另一个类 它继承自 Control 因此您可以使用控件执行各种操作 但除此之外它只是一个类 因
  • 在 Windows 上使用“perl6”命令和 Git Bash

    使用 Windows 我安装了乐道之星 https rakudo org files和 Git 并确保C rakudo bin and C rakudo share perl6 site bin位于我的 Path 环境变量中 现在 输入pe
  • 如何使用批处理文件创建 EXE 可执行文件? [复制]

    这个问题在这里已经有答案了 我希望能够简单地运行 Windows 批处理文件并让它创建 exe 可执行文件 我知道您可以使用以下脚本批量创建文件 echo off echo This will be in a text file gt gt
  • 如何以编程方式清除 Kerberos 票证缓存

    有谁知道如何使用托管 非托管代码清除本地计算机上的 Kerberos 票证缓存 提前致谢 我相信你需要打电话给LsaCa llAuthentication包 http msdn microsoft com en us library aa3
  • 从某个文件夹启动随机批处理文件

    问题是这样的 我有一个名为 abc 的文件夹 其中包含几个批处理文件 它们的命名如下 abc1 batabc2 batabc3 batabc4 bat 等等 我需要一个脚本 当我单击它时 它会随机启动其中一个批处理文件 我需要的脚本将存储在
  • Windows 控制台支持 ANSI 吗?

    Windows 控制台支持 ANSI 控制字符吗 默认情况下它不支持许多 ANSI 控制字符 维基百科文章中也提到了这一点 http en wikipedia org wiki ANSI escape code http en wikipe
  • 虚拟内存澄清——大连续内存的分配

    我有一个应用程序 我必须在 Windows 上分配 使用运算符 new 相当大的内存空间 数百 MB 该应用程序是 32 位 我们现在不使用 64 位 即使在 64 位系统上也是如此 我启用了 LARGEADDRESSAWARE 链接器选项
  • 第三方库应该放在哪里?

    我为一个相当规模的 C 项目 http github com nickgammon mushclient具有许多依赖关系 问题是 该项目包含其所有依赖项的源代码 例如 pcre zlib 等 我想将项目精简为与程序本身相关的内容 是否有一些
  • 如何在Windows 7中使用批处理脚本获取本地连接名称

    我正在编写一个简单的批处理脚本来检索 Windows 上的所有网络接口 但我只需要本地连接名称 本地连接接口名称不是默认名称 有没有办法使用批处理脚本仅检索本地连接名称作为字符串 不完全确定您在问什么 但我认为您的问题是您想要获取网络接口的
  • 命名管道客户端无法连接到作为网络服务运行的服务器

    我有一个服务在网络服务帐户下运行 该服务只是设置一个命名管道并侦听连接 NamedPipeServerStream listeningPipe new NamedPipeServerStream ourservicepipe PipeDir
  • 获取文件夹及其子文件夹中最长文件路径的长度

    我正在寻找一个可以从命令行 批处理 PowerShell 运行的脚本 该脚本将遍历文件夹及其子文件夹 并返回一个数字 该数字是最长文件路径的长度 我已经看到了一些批处理和 PowerShell 脚本 例如 如何在 Windows 中查找路径
  • 使用 Linq to XML 将 XElement 添加到 XML 文件

    使用 Linq to XML 我尝试将 XElement 添加到现有 XML 文件 它必须在 Windows Phone NET 框架中完成 目前我的 XML 文件如下所示
  • 无法打开 Python。错误 0xc000007b

    我最近一直在学习 Python 3 我在我的上网本 32 位 Windows 7 上创建简单的小程序没有任何问题 当我将它安装在我的上网本上时 我没有遇到任何问题 但现在我已经开始使用它了 我想将它安装在我的台式机上 并且我有一个 我的桌面
  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • select() 可以在 Windows 下使用 Python 中的文件吗?

    我正在尝试在 Windows 下运行以下 python 服务器 An echo server that uses select to handle multiple clients at a time Entering any line o

随机推荐