`

win8游戏开发教程开篇

 
阅读更多

准备开始写一个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。


2.png

2012-1-16 15:41 上传
下载附件(26.94 KB)
 

 

 

 

1.png

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包装。

分享到:
评论

相关推荐

    易语言手游辅助开发教程.rar

    易语言手游辅助开发教程是一个专为想要学习如何利用易语言制作手游辅助工具的初学者设计的资源包。这个教程集合了国内资深独立团论坛多年的经验,涵盖了从基础到进阶的多个方面,旨在帮助开发者理解并掌握手游辅助的...

    sql_server2000经典PPT教程开篇

    sql_server2000经典PPT教程开篇

    数据库开发 Oracle数据库 SQL开发教程 全套PPT课件 共20个章节.rar

    数据库开发 Oracle数据库 SQL开发教程 第0章 开篇概述(共14页).pdf 数据库开发 Oracle数据库 SQL开发教程 第10章 层次查询(共17页).pdf 数据库开发 Oracle数据库 SQL开发教程 第11章 数据操作与事务控制(共52页...

    数据库开发 Oracle数据库 SQL开发教程 第0章 开篇概述(共14页).pdf

    Oracle数据库是一种广泛应用于企业级...总之,这个Oracle数据库SQL开发教程将带你踏上数据库开发的专业之路,从基础到高级,从理论到实践,逐步建立和完善你的Oracle数据库知识体系,为在IT行业中的发展打下坚实基础。

    win10开发.pdf

    综上所述,这份《win10开发.pdf》文档是全面的开发者指南,它不仅涵盖了Windows 10平台的最新API,还提供了详细的教学教程和样例代码,帮助开发者快速掌握UWP应用开发的各个方面。无论是初学者还是有经验的开发者,...

    Deflexion 游戏开发(一)

    《Deflexion游戏开发》是针对游戏开发爱好者和专业开发者的一系列教程的开篇,主要聚焦于使用Visual Studio 2005这一经典开发环境进行游戏制作。在本教程中,我们将深入探讨如何利用这个强大的集成开发环境(IDE)来...

    MyEclipse JAVA 开发教程

    【MyEclipse JAVA 开发教程】是一份专为初学者和进阶者设计的全面教程,旨在帮助读者从零基础开始掌握JAVA编程,并通过MyEclipse这个强大的集成开发环境(IDE)提升JAVA开发技能。本教程涵盖了从安装配置MyEclipse,...

    国信TradeStation平台EL开发教程

    《国信TradeStation平台EL开发教程》是一份深入解析如何在国信TradeStation平台上利用EasyLanguage(EL)进行交易应用开发的指南。EasyLanguage是一种专为交易者设计的编程语言,使得非专业程序员也能轻松创建自己的...

    20060323--3D游戏开发步步高系列课程(1):3D视频游戏开发介绍

    "20060323--3D游戏开发步步高系列课程(1):3D视频游戏开发介绍"是这个系列的开篇,旨在为初学者提供一个全面的引导,帮助他们踏入3D游戏制作的大门。 3D游戏开发首先涉及到的是基础概念。游戏开发是一个综合性的...

    一种可自动识别WIN8系统USB设备的设计与实现

    随后,作者提出了本文的核心研究内容,即通过微软定义的MODs消息机制,实现USB设备对WIN8系统的自动识别。 MODs消息是微软定义的一组USB描述消息,它们包含了Microsoft OS Descriptors(微软操作系统描述符)。操作...

    cad .net开发教程

    Autodesk官方最新发布的.NET开发教程是一本为CAD开发人员量身定制的资料,它从基础概念讲起,逐步深入到更加复杂的编程技能。本书内容覆盖面广,包含了从Hello World级别的.NET封装类的访问,到.NET AutoCAD向导和...

    IOS 5开发教程

    ### IOS 5开发教程知识点概览 #### 一、引言 本书《IOS 5开发教程》是一本经典的iOS开发指南,由Dave Mark、Jack Nutting和Jeff LaMarche共同编写,共有700多页内容。尽管这本书的版本较老(针对的是iOS 5),但它...

    某游戏立项说明书.doc

    游戏概述是游戏项目计划书的开篇部分,主要 introducethe游戏的基本概念、游戏目标、游戏类型、游戏玩家群体等信息。通过游戏概述,游戏开发者可以了解游戏的整体方向和目标,从而更好地进行游戏开发和设计。 游戏...

    《Android项目驱动式开发教程》第一章开发入门.pptx

    总的来说,本章作为Android项目驱动式开发教程的开篇,旨在引导初学者逐步进入Android开发的世界,通过实践操作,加深对Android系统和开发工具的理解。随着章节的深入,开发者将逐渐掌握更高级的主题,如Android组件...

    基于unity3d游戏设计开发.pdf

    本文主要探讨了基于Unity3D平台进行Android手机赛车游戏设计与开发的相关知识点。Unity3D是一个功能强大的游戏引擎,它提供了创建2D和3D游戏所需的工具和功能,特别适合于智能手机和平板电脑平台。Unity3D在游戏开发...

    Magento(麦进斗)中文开发手册开篇.docx

    ### Magento(麦进斗)中文开发手册知识点概览 #### Magento 概述 - **定义与定位**:Magento是一款专为电商打造的开源系统,具备高度灵活性与丰富的功能性,能够轻松实现与第三方系统的无缝集成。它不仅适用于初创...

    黑马Redis开篇笔记

    黑马Redis开篇笔记

    写景作文开篇六法之设问开篇法.doc

    写景作文开篇六法之设问开篇法.doc

    Android 4 游戏编程入门经典(英文完整版)

    《Android 4 游戏编程入门经典》作为一本关于移动游戏开发的教程书籍,它涵盖了成为一名专业Android游戏开发者的必要知识。本书的主要内容分为几个部分,包括但不限于Android开发工具的设置和使用、2D游戏编程、...

    Python Django自学教程 Python web开发基础教程 一步一步学习Django 共90页.pdf

    1 第一讲 入门1.1 开篇1.2 Django的入门体验1.3 结论2 第二讲 生成一个web form 做加法的简单例子2.1 引言2.2 实现2.3 补充说明3 第三讲 使用Template的简单例子4 第四讲 生成csv格式文件并下载5 第五讲 session和...

Global site tag (gtag.js) - Google Analytics