准备开始写一个win8游戏开发教程了,现在这里整理一下思路。

需要在开篇解释的问题就有一大堆了,先尝试一个个把他们写下来。

1.阅读这个教程需要什么样的基础?

2.这个教程能带来一个怎样的DEMO,结束之后能开发什么游戏?

3.这个教程覆盖哪些知识,使用什么语言和工具开发?

问题1: 首先是编码能力,这不是一本程序教材,编码基础不讲,选择c#作为主要开发语言,读者需对c#有一定的了解。其次一定的动手能力,有时需要一定的c++开 发,会提供详细的代码,如果你跳过这些代码,最起码你应该能够编译他们,使用他们。第三、探索精神,重点是针对win8 游戏开发这个专题,专题以外的知识一定有更合适的资料去了解和学习。

问题2: 这个教程不会带来一个完美的游戏,但一定会向你展示开发一个Win8 Metro 游戏所需要的方方面面。带来一个 2D 3D 绘图、音乐音效、多点触控,资源、线程管理的一系列例子,以及把多个示例穿起来的演示项目,挑选一个简单的游戏方式来说明如何把这些例子穿成一个游戏。理 论上来讲,你可以开发任何游戏了,只差一点,你的持续努力。

问题3:

这个教程会覆盖一定的算法、数据结构、图形学。

开发工具涉及DirectX、winrt、xaml、xml、winmd

开发语言工具涉及c#、c++,

环境要求 windows 8、vs2011 for windows8

其他工具:

图片、模型处理工具:简单点就是2D 3D美术工具,毫无意外的,这些东西程序员必须会使用,美术规格都应该由使用相关资源的程序员提供,自己当然要先熟悉。未免不必要的麻烦,虽然我基本都使 用一些大牌美术工具,考虑到版权问题,教程中介绍时均采用免费工具,你可以用大牌工具完成一样的工作。

版本管理工具:即使你只是在本机写一些练习,也强烈要求你使用版本管理工具(比如svn),保存自己的每一步操作,学习一个版本管理工具花不了几个钟头,坚持使用他吧。

文本比较工具:版本管理的延伸,检查两个版本之间的差异,是一种非常实用的手段,当你搞不清楚改了什么出问题了,看看上个版本吧。

工作记录工具:文本、邮件、blog,随便什么,无论多少,把自己的点滴进展记录下来,经常回顾,坚持做计划,坚持执行计划。否则,几乎不可能完成一个需要 10天以上的工作。30项工作你的大脑会把他拧成麻花,但是记录在纸上不过半页,而且很容易有条理,你今天只需关注今天的事情,别让大脑在这件事情上折 腾,我们要思考的东西还多着呢。

嗯,工具说了一大堆,我在教程中并不会告诉你工具怎么用,我会尽量在教程中提示该使用哪些工具,但这些使用工具习惯的养成终究要靠你自己。

让我们开始说重点吧

为什么需要 windows 8 游戏开发教程

windows 8 使用的主要的界面叫做metro,传统的界面称为desktop,仅在win8桌面版支持,作为对老操作系统的兼容和过渡。Metro UI程序的开发,始于windows phone 7,和过去的windows桌面程序开发有比较大的不同。并且和windows phone 7也有很大的不同,甚至有种说法,windows phone 8 也会升级为和windows 8 类似的界面。

引入了winmd接口形式,c++的加入,dotnet性能的劣势部分和winrt、dotnet ramework中没有提供的功能,可以很容易的补上。winmd作为一个新的接口形式,还没有充足的资料,此教程也将作为winmd的资料。

有什么是新的

Metro UI :摒弃了窗口的概念,基本UI形式还是按控件组织,用xaml组织,从wpf->silverlight->metro ui这样发展而来。

WINMD:新的接口技术,像是com和dotnet的混血,使用c++、dotnet、js 都可以直接调用winmd接口。目前使用c++和dotnet都可以生产winmd接口的类库,dotnet可以生产跨平台的winmd接口类库,c++需要针对不同平台编译。

windows kits:非 全新,有很大一部分来自windows sdk win32API,,c++头文件和lib,还有WINRT,这次提供了三种平台的lib(x86 x64 arm),并不包括所有的WIN32 API,Metro UI仅能使用windows kit,不要尝试使用传统win32 api。

winrt:用 winmd接口包装的面向对象形式的windows api,基本上取代了dotnet framework或者说是dotnet framework中的大部分改成了winmd接口。现在c#开发metro ui应用,大部分调用都是winrt。c++ 和 js 应用开发,也需要调用winrt。

2012-1-16 15:41 上传

下载附件(26.94 KB)

2012-1-16 15:41 上传

下载附件(28.67 KB)

从容量上对比,就可以看出dotnet framework的大部分功能都瘦身掉了,瘦身掉了的部分就由winrt补上了,开发中调用的 windows命名空间中全部是winmd接口,他们就是winrt。

c++ cx:c++和 winmd 通讯的扩展,典型语法"^“ “ref new xxx”

看 上去很可怕,一大堆新东西,其实呢,你根本不用关心winmd winrt都是什么东西,他们都是api,调用时都以命名空间的形式组织,作为类库来说扩展名是winmd,实际使用dotnet类库和winmd类库从 编码角度没有差异,winrt中的lib 也是标准的c++类库。和c++以前链接库也没有差异。

有什么旧的可用

c++开发知识没有变化,毫无变化,唯一不同的是提供了三种平台的lib 多了arm。

c# 和dotnet 开发知识没有变化,dotnet framework 还是那么工作的,不过是有一部分被winrt替代了。而且替代部分也不影响你的开发,最多命名空间不同,重新找一下。

directX 知识,目前winrt中没有提供绘图API,dotnet framework中删去了绘图api,XNA还没有登陆win8的消息。所以使用c++ 调用 DX 来开发图形部分,成为目前开发windows 8 游戏的必然选择。

由 于winmd接口的引入,混合编程变得容易,c++ 和 DirectX 积攒了大量的游戏、引擎,我们可以大胆预测,XNA4或许是最后一个版本,XNA5恐怕会以winmd接口形式出现,退回MDX的模式,作为DX的 winmd接口版本,总之按照这个发展势头,XNA不再是平台唯一解决方案,他将面对无数的竞争,包括本教程^_^。

还可以大胆预测winmd这么华丽的形式,一定会登陆 windows phone 和 xbox,然后,dotnet的XNA会逐渐变成可选项,然后就没有然后了,还是那句话,XNA5可能就变成了DX的winmd包装。

转载于:https://www.cnblogs.com/yangkai-cn/archive/2012/11/11/4017359.html

win8游戏开发教程开篇相关推荐

  1. Windows8 游戏开发教程-开篇

    准备开始写一个win8游戏开发教程了,现在这里整理一下思路. 需要在开篇解释的问题就有一大堆了,先尝试一个个把他们写下来. 1.阅读这个教程需要什么样的基础? 2.这个教程能带来一个怎样的DEMO,结 ...

  2. 仙剑奇侠传 游戏 开发 教程 Xianjian qixia development Game development tutorial

    仙剑奇侠传 开发  游戏 开发 教程 Xianjian qixia development Game development tutorial 作者:韩梦飞沙 Author:han_meng_fei_ ...

  3. Unity 2D游戏开发教程之摄像头追踪功能

    Unity 2D游戏开发教程之摄像头追踪功能 上一章,我们创建了一个简单的2D游戏.此游戏中的精灵有3个状态:idle.left和right.这看起来确实很酷!但是仅有的3个状态却限制了精灵的能力,以 ...

  4. 微信小游戏开发教程-游戏实现3

    微信小游戏开发教程-游戏实现3 对象池 由于游戏过程中会创建很多临时对象,这些对象很快又不再使用,垃圾回收器也能帮我们主动回收这部分垃圾,但是回收时间不可控制,同时增大了创建对象的开销,所以我们使用对 ...

  5. 微信小游戏开发教程-游戏实现2

    微信小游戏开发教程-游戏实现2 绘制地面 类似于绘制背景,读者自行完成代码.src/runtime/land.js 简易View系统 坐标布局对于复杂的页面来说维护相当困难,因此这里我们引入布局的概念 ...

  6. 微信小游戏开发教程-游戏实现1

    微信小游戏开发教程-游戏实现1 概述 微信开发者工具官方提供一个飞机大战的游戏Demo,这里我们不再使用这个demo,我们以FlappyBird为例,为了让读者更加容易理解. 源码 https://g ...

  7. 微信小游戏开发教程-2D游戏原理讲解

    微信小游戏开发教程-2D游戏原理讲解 原理 为了更加形象的描述,这里先上一张图: 背景 a. 首先,我们看到背景好像是一张无限长的图片在向下移动.实际则不然,这是一张顶部和底部刚好重叠的图片.这是一种 ...

  8. 微信小游戏开发教程-新建项目

    微信小游戏开发教程-新建项目 1. 新建小游戏项目 我们这回使用空项目,不要勾选使用模板创建. 2. 添加小游戏必要文件 项目创建好以后我们发现缺少一些必要的文件,我们手动添加即可: game.jso ...

  9. Unity 2D游戏开发教程之游戏中精灵的跳跃状态

    Unity 2D游戏开发教程之游戏中精灵的跳跃状态 精灵的跳跃状态 为了让游戏中的精灵有更大的活动范围,上一节为游戏场景添加了多个地面,于是精灵可以从高的地面移动到低的地面处,如图2-14所示.但是却 ...

  10. Unity 2D游戏开发教程之为游戏场景添加多个地面

    Unity 2D游戏开发教程之为游戏场景添加多个地面 为游戏场景添加多个地面 显然,只有一个地面的游戏场景太小了,根本不够精灵四处活动的.那么,本节就来介绍一种简单的方法,可以为游戏场景添加多个地面. ...

最新文章

  1. linuxSVN版本库及同步文件到WEB目录
  2. 计算机实测物理实验报告,計算机实测物理系数实验论文.doc
  3. JAVA中NEXTLINE()与NEXT()的区别
  4. zookeeper学习总结
  5. 刺激(codevs 1958)
  6. 写在Github被微软收购之际 - Github的那些另类用法
  7. delphi 脚本引擎比较
  8. matlab编写数字基带信号程序,数字基带信号的系统仿真与设计matlab程序
  9. hazelcast入门教程_Hazelcast入门指南第6部分
  10. 网页服务器和mysql服务器_实现Web服务器之间使用同一个MYSQL和相同的网页配置文件的方法...
  11. ajax onerror code,Ajax请求'onError'处理程序
  12. 中电信推大学生3G上网套餐
  13. 阿里云 vs Azure-大数据
  14. 如何在xshell中导入xsh
  15. SpringCloud Config连接私有仓库时的配置(记录一下)
  16. AD Hoc(State 1)
  17. VR资讯——局势明朗下的前景展望(V客学院知识分享)
  18. 在线调试后台管理系统HTTP的POST请求
  19. 最近写了一个简单的面向对象的脚本语言 Q 语言
  20. Cocos2dx WebSocket的使用

热门文章

  1. 利用ObjectMapper进行对象与JSON互相转化
  2. Tomcat结合nginx使用案例
  3. Redis随项目启动或CRUD进行缓存数据
  4. canva画图 图片居中裁剪_男士秋裤,一片式补裆款裁剪图分享给大家。天凉该给家人做秋裤啦...
  5. 如何卸载jdk_Java新手怎样安装JDK,手把手教你如何安装JDK
  6. excel如何删除空白行_QA|表单数据如何导入、导出?
  7. nacos加载多配置集
  8. python从云端服务器读数据_Python获取阿里云产品云监控数据指标
  9. python函数支持哪些参数类型_如何记录python函数参数类型?
  10. java swing 提示信息,java swing工具提示与不同的消息