最近准备开发NDSL上的一款产品-NBook ,附上Nintendo DS 系统框架总览

by sundy 3/24/2008 7:06:00 PM

1 前言
NINTENDO NITRO-System是对Nintendo开发工具和库的通称,使用它可开发Nintendo游戏软件。游戏开发者能自己建立游戏内容。所以目标是发展这个系统,以提供给游戏软件开发的基本工具和库,可用于大部分的游戏软件,在他们的开发中。本文为NITRO-System提供这些工具和库的概述,使你能全面地了解NITRO-System。


系统构架
Tools and Libraries

 

(随笔:从上图可以看出,任天堂游戏制作的一般流程,首先是通过MAYA或SOFTIMAGE制作三维模型,然后使用Photoshop为模型制作材质,制作好了之后,通过任天堂提供的插件导出文件,再使用3D材质编辑器打开模型进行修改完善,在这个软件里面,你可以通过预览控制器将结果实时渲染到NITRO开发机上,从而达到所见即所得,你也可以在这里将模型导出成为二进制中间文件,供发布时编译使用。同样的,2D角色编辑器也能达到上述效果,所见即所得!声音和存档管理是另外两块,存档管理可将各个分散的小文件集合成一个大文件!图的最下方是NITRO的五个子系统!)

3 工具总览
这部分描述NITRO-System的工具。

3.1 媒体文件插件
NITRO-System为NITRO定义了媒体文件(XML格式的文本文件)用来储存3D模型数据和它的动画数据在数据结构中,并使它最优化。你可以使用NITRO的媒体插件去输出一个媒体文件从各个3DCG工具中。
NITRO-System为Maya,Softimage|3D,Softimage|XSI和3ds max提供了媒体文件插件。(Softimage|3D不支持美国市场,如果你希望使用Softimage|3D开发请联系support@noa.com

3.2 Photoshop插件
这些插件是用于给3D CG绘制纹理,插件用在Windows版本的Adobe Photoshop 6.01,7.01和CS(8.01)。有两种类型的插件,滤镜插件用以在机器上显示图片质量(这句话要结合使用来看)。文件插件用来保存纹理文件,并在纹理文件中增加额外的NINTENDO NITRO-System信息(也就是说是特殊格式)。

3.3 3D材质编辑器
3D材质编辑器是一个Windows应用程序。3D材质编辑器使用一个专有插件来从3DCG工具读取媒体文件。它能校验模型结构,编辑材质设置等等,它可以将编辑后的材质设置写回媒体文件中。
你可以将3D材质编辑器当作一个独立的应用程序。使用NITRO Viewer,你能可以无缝的预览这些模型,这于它们出现在零售产品中是完全一致的。当一个3D绘制指令发出,一个内部的二进制转换器被调用,转换器转换XML格式文件成二进制文件。


3.4 3D 二进制转换器
3D二进制转换器是一个转换程序,它可转换XML格式文件到二进制文件,并被3D图形库将使用。
   一个转换器能转换所有类型的3D中间文件
   它能打包多个模型数据到一个二进制文件
   它能读取一个转换好的二进制文件并输出一个CSV(Execl可打开)格式的摘要

3.5 角色编辑器
角色编辑器是一个Windows应用程序用来建立角色数据,场景数据和对象数据,以此组成一个NITRO 2D 场景。角色编辑器有下列功能:
   建立角色数据(绘制和编辑点阵图)
   建立场景
   建立对象动画

3.6 2D 二进制转换器
2D二进制转换器是一个转换程序,能转换NITRO 2D角色到二进制文件,然后被2D图形库处理。

3.7 预览器
NITRO预览器是运行在NITRO零售产品(或许是指主机)上的应用程序。它能在任天堂主机上依照NITRO预览控制器发送的指令和数据显示图像。预览器接受2D和3D的绘制指令,能同时显示2D和3D图像在屏幕上。

3.8 预览控制器
预览控制器跑起来是Windows端的一个窗口,用来发送绘制指令到预览器。预览器控制器从各个图形工具统合绘制指令再发送给预览器,它通过主机I/O转换这些数据给运行在主机上的预览器。这样以来,多个图形工具能使用“预览器”,同时。

3.9 存档
NITRO开发环境包含一个ROM文件系统。如果文件系统分别储存一些小文件,分开的文件到ROM,则会有很多文件而变得难于管理。因此,NITRO系统准备了一个通用的存档文件,收集小的文件到一个大文件中并注册他们到文件系统。

3.10 声音工具
NITRO系统准备了一个声音数据建立环境,包括下列工具。
Table 3-1 Sound Tool Collection


4 库总览

这部分描述全面的NITRO库,浏览全部的库。
4.1 函数库构造
NITRO系统库分成基础库和高级库,这个结构图显示了整个构造。
NITRO-System Library Block Diagram

 

4.2 基础库
基础库包括以下系统管理器和函数:
堆栈管理
存档管理
通用


4.2.1 堆栈管理
为了有效的使用4兆内存,将使用一些内存管理机制,我们提供三个堆栈管理器为专门的游戏特征。


4.2.1.1 扩展堆栈管理
扩展的堆栈管理器允许你自由的分配和释放内存,就像基础C库中的malloc()、free()这样的函数一样。除此之外还有基本的内存分配和释放功能,和为游戏软件添加的许多特色功能。这里包含队列,分组和全部释放分配的内存块。
   能在堆的前面或后面分配内存块
   将你分配内存操作列入队列
   可以修改分配内存块的大小
   可添加分组ID编号到各个内存块
   可全体释放所有分配的内存块
   允许用户使用回调函数来处理分配的内存


4.2.1.2 帧堆栈管理
帧堆栈管理器是一个非常单一的内存管理器。它仅仅按照一个指定的size分配内存,并同时释放所有分配的内存。可是因为这个块不包含管理信息,所以它是个效率块 - -!


4.2.1.3 单元堆栈管理
单元堆管理器也是非常单一的内存管理器。它仅仅只分配单元堆建立时指定大小的块。换句话说,这个内存管理器只分配和释放固定大小的块。因为没有管理区在这个块里,所以它的使用很高效。
   仅仅分配固定大小内存块
   不需要内存管理区

4.2.2 存档管理器
我们需要安装一个ROM文件系统到NITRO开发环境。如果文件系统分别储存小文件到ROM,那会很多并使管理变得困难。因此NITRO系统准备了一套机制去收集小文件到一个大文件中,保存到ROM。在存档管理器中,你能访问你的数据在将存档文件读入主内存之后。
   你能使用索引来访问你的数据
   你能使用分级目录信息访问你的数据通过路径名
   你能见效文件大小在不包含目录信息的时候


未完待续....

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Game Life

Related posts

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.
© Copyright 2007 - 2008 Design by Sundy Linghua-Zhang 蜀ICP备08108648号

About the author

Name of author Author name
Something about me and what I do.

E-mail me Send mail

Calendar

<<  February 2012  >>
MoTuWeThFrSaSu
303112345
6789101112
13141516171819
20212223242526
2728291234
567891011

View posts in large calendar

Recent comments

Authors

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2012

Sign in