偶然发现了本很棒的游戏编程入门书 - 《Windows游戏编程大师技巧》。说是大师技巧,其实还是很深入浅出的。
它涵盖了Windows图形编程的方方面面,从Win32的Helloworld程序,到GDI简介,再到DirectX的API。很适合我
这种Windows编程的菜鸟,所以很喜欢这本书的内容。
觉得这本书好的另一个原因是:虽然内容丰富,但没有涉及Windows编程比较繁琐的地方,基本就是Win32加DirectX。
这对于不想深入学习COM、MFC等等Windows平台上众多繁杂的技术的人来说很适合。尤其是刚学完C语言,需要一些
练手的小项目。Windows下的C编程与Linux下相比,比较有趣,图形化看起来也比较有成就感。
历史一瞥
早期的PC机落后于家用游戏机,最强大的游戏机统治了游戏市场。
DOOM的出现和成功证明了一点:只要足够聪明,人们可以使PC机做任何事。
在DOOM热的冲击下,微软开始重新评价自己在游戏编程上的地位,它意识到娱乐产业的巨大。
但Win95实时处理视频音频的能力很差,于是微软制作了一个叫Win-G的软件,但失败了。
事实上,它不过是一堆用于画位图的图形调用而已。
随后DirectX诞生了,最初的两个版本有太多糟糕的缺陷,微软低估了视频游戏编程的复杂性。
直到DirectX 5.0发布,人们才从DOS上转到Windows上进行开发。
设计游戏
3D数学很难,但策划和设计一个有趣的游戏可谓同样困难、重要。
想出一个游戏点子并不特别难,关键是细节、最终实现和视觉效果。
游戏的构成
编写MS Word程序虽然难,但是编写Unreal游戏则要比编写我所知道的其他任何程序都要难。
大多数情况下,游戏循环是一个含有大量状态的有限状态自动机。
常规游戏编程指导规范
视频游戏是超高性能的计算机程序。不能在对运行时间或内存要求特别严格的代码段中使用高层API。
特别是与游戏内循环有关的代码大都需要手工编写。除此之外,还应留意下列技巧。
技巧1 全局变量代替参数传递
不要怕使用全局变量,许多视频游戏不让对时间要求严格的函数使用参数,而用全局变量来传递参数。
由于参数要被压栈、出栈,执行这个函数体的时间小于调用函数的时间。所以可以设立一些全局变量,
在调用前赋值以传递参数。
技巧2 内联函数
使用内联函数inline指示编译器用函数体代码去替换函数调用。这样做会使编译后的程序变大,
但却有效地提高了运行速度。
技巧3 尽量用32位变量
奔腾处理器是全32位架构的,较小的变量会降低寻址速度。
这个结构没有注意字节对齐,一共5字节。
一共12字节。浪费了许多内存,但换来了速度的提升。
技巧4 使用二进制移位运算
技巧5 设计算法
设计高效率的算法,没有任何一种汇编语言能使复杂度为O(n²)的算法运行的更快。
开发环境配置
1.安装DirectX运行时。
2. 安装DirectX SDK包。
3. 新建Win32工程,将SDK目录下的Lib文件夹中的库函数和Include文件夹中的头文件导入到工程中。
4. 开始开发!具体编译链接过程如下图所示。
分享到:
相关推荐
在“Windows游戏编程”的第一章“学海无涯”中,我们将会探讨进入游戏开发领域的基础知识。这是一份专为新手设计的学习资源,旨在帮助初学者理解游戏编程的基本概念和技术。以下是一些关键知识点的详细说明: 1. **...
本项目为“学海无涯”主题的编程学习资源整合设计源码,采用Python作为主要开发语言,并融合JavaScript进行功能扩展。项目包含21个文件,涵盖4个DS_Store、4个Markdown、4个XML配置、4个Python源码、1个JavaScript...
本书是对游戏编程爱好者入门的好教程,内有多个实例,五子棋,走迷宫。。。。
一个flash文件,很有动漫色彩,画面清丽,值得细细品味!
"学海无涯-网络教育总站"是一个集丰富学习资源、灵活学习模式与先进教育技术于一体的综合性在线学习平台。该平台秉承“知识无界限,学习无止境”的理念,致力于为全球学习者提供一个便捷、高效、个性化的学习环境。 ...
针对这一现象,我们以“学海无涯乐作舟”为主题,设计了一堂旨在帮助学生正确应对学习压力、化解考试焦虑的道德与法治课程复习教案,以苏教版教材为蓝本,面向七年级学生。 教学目标的设定是课程设计的首要环节。本...
在Windows环境下,串口编程是实现计算机与外部设备通信的重要手段,尤其在嵌入式系统和单片机应用中十分常见。本文将深入探讨串行通信的基本原理,以及如何使用Visual C++6.0中的MFC库在32位系统下进行串口编程,...
这篇名为“国外学者将500万篇CS论文搬进了毕业论文,结论:学海无涯‘卷’作舟”的研究工作,揭示了计算机科学(CS)领域内知识的庞大性和持续增长趋势。该研究涉及的领域广泛,包括人工智能生成内容(AIGC)、...
实验是培养学生动手能力、分析解决问题能力的重要环节;实验报告是反映实验教学水平与质量的重要依据。为加强实验过程管理,改革实验成绩考核方法,改善实验教学效果,提高学生质量,特制定实验教学管理基本规范。...
- 例如,引用名句如“书山有路勤为径,学海无涯苦作舟”,或者用生动的比喻如“像微风拂过竹叶”。 3. **作文形式的创新** - 作文的创新不仅限于内容,形式的创新同样重要。它可以是日记体式,通过连续的日期记录...
Java经典编程题-学生.doc 本文件讲解了 Java 编程语言的经典问题和解决方法,涵盖了多个领域,包括算法、数据结构、控制结构、函数编程等。下面是对每个程序的详细分析: 程序 1:兔子繁殖问题 分析:本程序使用...
MySQL 5.0是MySQL数据库管理系统的一个早期版本,专为Windows操作系统设计。在这个版本中,MySQL提供了一个用户友好的安装程序,使得在Windows环境下安装和配置数据库服务器变得更加简单。接下来,我们将深入探讨...
windows 版本安装 包含的包 openjdk-14.0.1_windows-x64_bin nginx-1.18.0 graviteeio-full-3.5.0 elasticsearch-7.10.1.msi mongodb-windows-x86_64-4.4.2-signed.msi 亲测可以安装, 安装步骤 1、 jdk 2、 ...
- **深化阶段**:进入驱动开发和Linux内核分析,这一阶段要求较高的编程能力和对操作系统原理的深刻理解。 ##### **资源推荐**: - **书籍**:《深入理解Linux内核》、《Linux内核情景分析》、《Linux内核设计与...
例如,当你面临一个需要解决的问题时,可以尝试将问题拆解,从中提取核心词汇作为关键词,这样更可能找到相关的解决方案。同时,将口语化的表述转化为专业术语,以及选择有明显特征的词汇,都能帮助提高搜索效率。 ...
1. **WinDbg**:WinDbg是Debugging Tools for Windows中的核心组件,它是一个功能全面的调试器,可以用来调试用户模式和内核模式的应用程序。你可以用它来查找崩溃的原因,分析内存泄漏,甚至进行实时性能监控。...
1. 引入主题:通过讨论名人名言,如“书山有路勤为径,学海无涯苦作舟”,激发学生对学习主题的兴趣。 2. 朗读古诗:教师示范朗读《劝学》,学生跟读,教师纠正发音并指导学生感受诗歌的节奏。 3. 学习生字:逐字...
7. 高被引论文的竞争:论文的引用次数是衡量其影响力的一个重要指标。超过1000次引用的论文非常罕见,而引用次数超过100的论文也仅占少数。大部分论文的引用量不足10次,表明大部分研究可能并未获得广泛认可。 8. ...
【标题】:“小学一年级格言.pdf”通常是指一份面向小学一年级学生的、包含激励性语句或格言的教育资料,旨在启发孩子们的学习热情和道德观念。这类文档可能包含各种简短而富有深意的句子,旨在帮助孩子们形成积极的...