自娱自乐——《windows游戏编程大师技巧》学习笔记(一)

  折腾了许久,终于可以开始写这个系列的博客了。书买回来很长一段时间,都只是随意翻翻,内心一直有深深的罪恶感。那么今天就开始写这份学习笔记啦。

 

  首先呢,每一篇博客并不对应书的一章,基本是看到哪里写到哪。而且因为这本书有些章节的内容实在是太多太多太多了。。。而这份学习笔记希望能把每一章涉及到的知识都记录下来,所以就算出现一章对应10多篇博客的情况也不奇怪啦~

 

  那么,翻开书,序言和简介,唔 跳过,其实已经看过好多遍了。不过也没必要记录这部分吧。接下来是目录。作者把书分成了4个部分,第一部分 windows编程基础 第二部分 DirectX和2D基础 第三部分 核心游戏编程  第四部分 附录 。

  全书第一章 叫做 学海无涯。。好吧  首先就是对游戏发展的回忆,回忆了各种旧时代游戏,还放了2张图片 是unreal引擎和DOOM的游戏图。我确实听说过DOOM在国外游戏人心中有着很高的地位。

  接下来的一节是 设计游戏。 一开始作者就这样写道“编写视频游戏最难的工作之一就是设计。的确,3D数学很难,但是策划和设计一个有趣的游戏可谓同样困难、重要。如果一款游戏的确好玩,谁又会在意游戏中是否用了最新的容积光子和跟踪算法呢?其实,想出一个游戏点子并不特别难。关键是细节、最终实现和视觉效果这些东西确定了游戏的归宿,是被扔到垃圾桶里,还是出现在《PC Gamer》的封面?” 这段话我深表赞同。这也是应该时刻记住的东西,游戏的本质是获得乐趣的程序。

 

  然后呢 作者介绍了各种游戏类型。以及提供了建议 如何去构思一个游戏——集思广益。

 

  有了想法之后,就要把这些想法记录下来啦~这时候就需要设计文档和一些图档啦,唔,程序员们也很熟悉这个,就当做是UML图、类图、需求分析这类的东西看待吧~

 

  下面,终于到死程的领域了。游戏的构成。作者画了一个简单的游戏循环结构图示。并提供了一段C++的程序清单。

简单的游戏事件循环
 1 #define GAME_INIT
2 #define GAME_MENU
3 #define GAME_STARTING
4 #define GAME_RUN
5 #define GAME_RESTART
6 #define GAME_EXIT
7
8 int game_state=GAME_INIT
9 int error=0;
10
11 void main()
12 {
13 while(game_state!=GAME_EXIT)
14 {
15 switch(game_state)
16 {
17 case GAME_INIT:
18 {
19 Init();
20 game_state=GAME_MENU;
21 }break;
22 case GAME_MENU:
23 {
24 game_state=Menu();
25
26 }break;
27 case GAME_STARTING:
28 {
29 Setup_For_Run();
30 game_state=GAME_RUN;
31 }break;
32 case GAME_RUN:
33 {
34 Clear();
35
36 GetInput();
37 Do_Logic();
38 Render_Frame();
39 Wait();
40 }break;
41 case GAME_RESTART:
42 {
43 //this section is a cleanup state used to
44 //fix up any loose ends before
45 //running again
46 Fixup();
47 game_state=GAME_MENU;
48 }break;
49 case GAME_EXIT:
50 {
51 Release_And_Cleanup();
52 error=0;
53 }break;
54 default:break;
55 }
56 }
57
58 return error;
59 }

  跟在代码之后的是一堆C++的技巧,主要是为了加快处理速度节约内存等等。。。

  然后是软件工具的介绍,程序开发推荐的是MS VC++6.0  好吧 我使用的是VS2010 我想应该会有一些不一样。 然后是图形声音和3D模型处理软件,显然因为成书较早加上作者对于中国肯定是不熟悉的。。推荐的都是便宜的软件,一再提到那些软件太贵了如何如何。。。。

  

  接下来就是实战了~介绍了如何用VC++6创建项目,以及Directx的引用。

 

 然后是一个小游戏的完整代码~游戏被命名为FreakOut 好吧。。我没法理解这个名字。不过这不重要。下面是代码清单

 

posted @ 2012-03-21 22:46  西瓜老虎  阅读(190)  评论(0)    收藏  举报