准备开始写一个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。
从容量上对比,就可以看出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包装。
相关推荐
综上所述,这份《win10开发.pdf》文档是全面的开发者指南,它不仅涵盖了Windows 10平台的最新API,还提供了详细的教学教程和样例代码,帮助开发者快速掌握UWP应用开发的各个方面。无论是初学者还是有经验的开发者,...
本文档标题为“win32汇编环境,网络编程入门之一”,意味着它可能是系列教程的开篇,旨在为初学者提供一个搭建win32汇编环境的指南,同时引入网络编程的基本概念和实践。考虑到网络编程的复杂性,本教程可能会涵盖...
### 深入剖析WTL:WTL学习教程 #### Win32模型 在深入了解WTL之前,我们先从基础的Win32模型入手。Win32模型是微软为Windows平台设计的一套API集合,旨在简化Windows应用程序的开发。本文档主要介绍了Win32模型中...
综上所述,多线程编程的入门教程旨在帮助初学者理解多线程的基本概念,掌握在Windows环境下使用Win32 API和MFC进行多线程程序设计的技能,并通过实例加深对概念的理解。通过学习该教程,读者应能编写简单的多线程...
《Programming Windows》(查尔斯·佩兹奥德著,第五版)是一本专注于使用 Win32 API 进行 Windows 应用程序开发的经典教程。本书作者 Charles Petzold 是一位知名的程序员和技术作家,在 Windows 开发领域享有盛誉...
该软件能够帮助开发者在软件开发的早期阶段发现代码中的错误,保证软件的可靠性和性能。文档中提供了LDRAToolSuite®版本8.2的安装指南,涉及安装概览、硬件要求、安装过程、授权信息、安全设置以及故障处理等详细...
NASM手册开篇介绍了NASM的基本概念,包括它的版权信息和许可证说明。NASM是一个自由软件,其源代码遵循开源协议,任何人都可以在遵守该协议的前提下自由使用和分发NASM。 手册随后进入到安装和运行NASM的基本教程。...