本系列文章由zhmxy555(毛星云)编写,转载请注明出处。

http://blog.csdn.net/zhmxy555/article/details/7672101

作者:毛星云 邮箱: happylifemxy@qq.com 期待着与志同道合的朋友们相互交流

本篇文章讲解游戏开发主题的相关内容,DirectX开发环境的配置以及依旧由《暗黑破坏神3》延展讲解一点游戏开发的知识。

事情繁多很多天之后,今天浅墨开始接着进行专栏的更新。

上篇文章一发出来,就有很多朋友在文章的评论中讲到了很多这个专栏系列的行文走向方方面面的问题,浅墨就在文章开头简要说明一下。

一,关于游戏开发的主题

既然大家都比较关注这个专栏系列的行文走向,就让我们先从单机游戏与网络游戏的联系与区别讲起吧。

我们都知道,游戏编程分为服务器端编程和客户端编程。传统的单机游戏一般都只会用到客户端编程,本系列专栏就注重这方面知识的讲解。

(若有必要,在介绍完游戏客户端编程的知识之后,浅墨也许会再开一个网络游戏开发的专栏,当然这还需要很久的时间,具体事宜到时候再与大家讨论商榷。)

客户端游戏编程需要掌握的主要是Win32编程, 计算机图形学,DirectX,算法与逻辑实现等方面的知识。

PC游戏界的后起之秀网络游戏显然包含了服务器端编程和客户端编程两部分。

服务器端编程需要掌握的主要是网络编程,数据库,多线程编程和Linux编程等知识。

(感谢yuan5531750提供给浅墨的多线程,网络编程等相关知识讲解的思路,但是浅墨觉得目前讲解这方面知识还不太妥当,若浅墨在结束这个专栏之后决定再写一个网络游戏开发的专栏,这方面知识将是重头戏。但多线程和网络编程在这个专栏里目前还不会涉及,浅墨得对yuan5531750暂时说声抱歉了,希望得到他的理解。)

好了,我们继续讲,近10年以来,随着互联网技术的迅猛发展,自从第一款轰动全球的网络游戏《传奇》横空出世以来,网络游戏逐渐代替了单机游戏曾经的霸主地位,成为了PC游戏的中流砥柱。从此之后,很多朋友开始乐此不疲地在魔兽世界,穿越火线,龙之谷,地下城与勇士等网游中消遣着业余的时光,丰富自己的生活。当然网络游戏的出现也催生了5173等网络游戏交易平台,游戏打金工作室,盗号工作室等网络游戏相关的第三方产业。

讲完这个知识点,我们来看下主线的任务,DirectX 11.

二、最简化的DirectX 11开发环境的配置

在编写基于DirectX 11的应用程序之前,我们当然需要在IDE中加入DirectX SDK函数库的支持,让编译器在编译我们的代码时候,认识我们在代码中调用的DirectXSDK中的函数。否则,编译器会报出undefined XXX等错误,因为如果我们不进行DirectXSDK的配置,编译器是不会聪明到认识这些函数的。

之前浅墨发表过一篇《DirectX开发环境快速配置》的文章,其实那篇文章中把DirectX SDK的配置说复杂了,由于目前是面向Visua Studio 2008以上的版本,配置过程将是非常的简单。

<第一步>下载和安装DirectX SDK

从微软官方网站上下载最新的DirectX SDK,我们选择目前最新的 DirectXSDK_June10 (截止2012年6月16日)。

下载地址是 http://www.microsoft.com/en-us/download/details.aspx?id=6812

下载完成后得到一个名为DXSDK_Jun10.exe的安装包,然后双击此文件进行安装。

安装目录浅墨设定的为 D:\Program Files\Microsoft DirectX SDK (June 2010) ,可以任意设定,但要记好目录,下一步会用到这个安装目录。

<第二步>进行相关的配置

打开Visual Studio(浅墨在这里示例的是Visual Studio 2010),依次点击【工具】(快捷键 Alt+T)->【选项】(快捷键O)->【项目和解决方案】->【VC++目录】

(英文版的为【tools】->【option】->【projects and solutions】->【VC++Directories】)

我们会得到如下窗口:

,需要的只是在【包含目录】和【库目录】中添加相关目录即可,浅墨在图中用方框标出了,添加的具体步骤如下:

<1> 在【包含目录】中加入安装的DirectX SDK目录下的include文件夹的路径,根据DirectX SDK的安装路径,即添加D:\ProgramFiles\Microsoft DirectX SDK (June 2010)\Include

这里如果是不同的安装路径需要部分进行修改,示意图如下:

<2> 在【库目录】中加入安装的DirectX SDK目录下的Lib文件夹的路径,根据DirectX SDK的安装路径,即添加 D:\Program Files\MicrosoftDirectX SDK (June 2010)\Lib

这里如果是不同的安装路径依然需要部分进行修改,示意图如下:

添加完这两个目录,DirectX开发环境的配置就成功了,我们就可以在Visual Studio中运行基于DirectX的运用程序了.

PS: 如果在执行第二步的时候,也许会出现“VC++ 目录编辑功能已被否决”的情况。我们可以不采用上述的方案进入VC++Directories,转而采用如下方案:

执行菜单栏中的<视图>--<属性管理器>,在新出现的“属性管理器”工作区中,点击项目->Debug|Win32->Microsoft.Cpp.Win32.userDirectories即可打开vc++Directories

三、由《暗黑破坏神3》的衍生讲解

今天的讲解是基于浅墨在NGA上看过的一篇帖子,个人感觉写得很中肯,在这里感谢帖主精彩的行文,原文链接是:

http://bbs.ngacn.cc/read.php?tid=5264899&_fp=1

如下是精彩部分的摘要:

“每个程序都会有bug,哪怕它仅仅是个helloworld,如果程序没有bug,操作系统就会有bug,如果连操作系统都没有bug,世界就会毁灭。”

引用这句话是想告诉大家,游戏是个大型软件,是超越所有软件研发行业研发难度的系统工程,集“通信”“图形”“audio” “物理” “字符集”等难点于一身,这些东西光是分散开来形成一个单独学科都够任何一个人研究一辈子,而在游戏研发中,要把这些难点全部做到淋漓尽致,实在是对研发者的重大考验,更何况是暗黑3这样的大型项目,你们看看光是开发者列表有多少人,要协同这么多人一起工作更是一件非常具有难度的事情。而bug本身具有如下分类:

A类bug: 导致程序崩溃、死循环、系统当机、通讯断开、存储错误、流程无法继续等

B类bug: 主体逻辑正确,但分支逻辑不完善或缺失无法形成体系

C类bug: 设计不恰当、造成影响游戏体验

D类bug: UI排版、文字、图形的错误

F类bug: 术语及语言表达不当

目前看来,卡进度这个归结于B类bug,属于分支逻辑不完善,白话一些就是程序员没想完善所有可能的操作,而踢馆子这种事只能算做C类bug导致的游戏平衡性问题,说到这里,想起对不平衡的定义:让玩家产生单一或唯一选择就是不平衡。

怎么说呢?比如一个机枪兵造价50 攻击力10 一个坦克造价50 攻击力20 就让玩家产生了唯一选择 我想傻子才会去造机枪兵吧。踢馆子属于这类,在权衡了难度,成本,产量后,踢罐子成为大多数人的唯一选择,那么暴雪修掉这样的“bug”是非常正确的选择。

我们再来看看卡进度这个事情,很显然是因为负责这块逻辑的程序员没考虑到退出公共游戏后的进度保存问题,和之前的正常逻辑冲突了导致了所谓卡进度的“bug”。

接着我们来看看大家喷的最多的登录问题37,12,108,33,3007,3014等:

大家应该能看出这是我对一些数值的宏定义,那么为什么需要他们呢?

比如我在写代码,要创建一个1024×768的窗口,那么简单的填上1024×768就可以了吗?不,虽然可行,但不是最优的解决办法也不利于同事来读懂我的代码,如果我定义一个宽为1024 再定义一个高为768 那么我在代码中只需要写宽和高 而不用写具体的数值,这样一来,同事既可方便读懂,又可以非常快捷的修改这些参数,无论代码里引用了多少次我只需要在定义的地方修改数字就可以了,不是很方便么。同理37,12,108,33,3007,3014这些只是对状态的一种定义,比方说:

37:服务器满员

34200:维护中

315300:多国语言问题

以及等等。

以上就是本文的全部内容,谢谢欣赏。

另外,近期留过邮箱需要浅墨发送游戏开发入门到深入学习资料的数百位读者会在近三天内收到浅墨的邮件,前段时间由于事情繁多,没有及时发送,请见谅。

感谢一直支持【Visual C++】游戏开发笔记系列专栏的朋友们。

【Visual C++】游戏开发 系列文章才刚刚展开一点而已,因为游戏世界实在是太博大精深了~

但我们不能着急,得慢慢打好基础。做学问最忌好高骛远,不是吗?

浅墨希望看到大家的留言,希望与大家共同交流,希望得到睿智的评论(即使是批评)。

你们的支持是我写下去的动力~

精通游戏开发的路还很长很长,非常希望能和大家一起交流,共同学习,共同进步。

大家看过后觉得值得一看的话,可以顶一下这篇文章,你们的支持是我继续写下去的动力~

如果文章中有什么疏漏的地方,也请大家指正。也希望大家可以多留言来和我探讨相关的问题。

最后,谢谢你们一直的支持~~~

——————————浅墨于2012年6月17日

【Visual C++】游戏开发笔记二十五 最简化的DirectX 11开发环境的配置相关推荐

  1. 【Visual C++】游戏开发笔记二十五 最简化的DirectX开发环境的配置

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7672101 作者:毛星云    邮箱: h ...

  2. JVM 学习笔记二十五、JVM监控及诊断工具-命令行篇

    二十五.JVM监控及诊断工具-命令行篇 1.概述 性能诊断是软件工程师在日常工作中经常面对和解决的问题,在用户体验至上的今天,解决好应用软件的性能问题能带来非常大的收益. Java作为最流行的编程语言 ...

  3. 【Visual C++】游戏开发笔记四十五 浅墨DirectX教程十三 深度测试和Z缓存专场

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8607864 作者:毛星云(浅墨 ...

  4. 【Visual C++】游戏开发笔记二十四 由DirectX的几个版本说开去

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  5. 【Visual C++】游戏开发笔记二十 游戏基础物理建模(二) 重力系统的模拟

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7496200 作者:毛星云    邮箱: h ...

  6. 【Visual C++】游戏开发笔记三十五 站在巨人的肩膀上:游戏引擎导论

    看到在留言中很多朋友提到不太清楚DirectX与游戏引擎的区别的问题,在这里浅墨就专门把自己对游戏引擎的一些理解写成一篇文章,作为我们<Visual C++游戏开发>专栏的游戏引擎导论,也 ...

  7. 【Visual C++】游戏开发笔记二十六 DirectX 11各组件的介绍 第一个DirectX 11 Demo的创建

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  8. 【Visual C++】游戏开发笔记二十六 DirectX 11各组件的介绍第一个DirectX 11 Demo的创建

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7688515 作者:毛星云    邮箱: h ...

  9. 【Visual C++】游戏开发笔记二十二 游戏基础物理建模(四) 粒子系统模拟(一)

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7585937 作者:毛星云    邮箱: h ...

最新文章

  1. DNS信息探测工具DNSRecon常用命令
  2. leetcode算法题--Triangle
  3. 【最短路】【spfa】小vijos P1447 Updown
  4. pat天梯赛L1-054. 福到了
  5. 极端原理_为极端而设计
  6. Linux的sigevent结构----mq_notify()实例
  7. Lync 2010升级到Lync 2013POC计划-过程!
  8. 【已解决】STM32芯片下载 Flash Download failed -“Cortex-M3”问题
  9. 联想重装系统去掉保护_关于联想品牌电脑无法重装系统的几点注意
  10. 日期格式化在高并发场景下的解决方案
  11. linux命令 mml,微软开源用于Spark的深度学习库MMLSpark
  12. 关于字符集的测试报告(转)
  13. linux之CLUSTER(集群)一
  14. 微信小程序原生表格组件
  15. 【数学与算法】向量内积(点乘)和外积(叉乘)概念及几何意义
  16. 幂等性问题和解决方法
  17. 如何通过VB合并Excel单元格以及设置Excel行高?VB创建Excel表格,合并单元格,生成图形等操作
  18. 让你的LCD1602显示用户自定义字符 Arduino-LiquidCrystal库的createChart()介绍
  19. 计算机维修商业计划书,电脑维修店创业计划书
  20. STC 51单片机58——旋转LED

热门文章

  1. 2020.5.9测试 T3 数星星
  2. 安装和使用所见即所得WYSIWYG的 Web 创作软件 BlueGriffon
  3. [转帖]中国民间秘术
  4. 问题 B: 沈老师的岛
  5. Symantec Backup Exec 报Access denied to directory xxx Error Code E0008488
  6. 巴蜀3540 -- 【Violet 6 最终话】蒲公英
  7. 若要赞美晴天 请等到黄昏之后
  8. 大学综评自招面试 计算机专业,沪9高校举行自招面试 高中学生综合素质纪实报告成重要参考...
  9. 用Proxifier只代理PC端部分软件
  10. 不要提前交卷!!!曾有人在最后35秒,拿到了13分!!!(祝所有考生顺利)...