完整后设资料纪录
DC 栏位语言
dc.contributor.author汪益贤en_US
dc.contributor.authorWang, Yi-Hsienen_US
dc.contributor.author吴毅成en_US
dc.contributor.author蔡文能en_US
dc.contributor.authorWu, I-Chenen_US
dc.contributor.authorTsai, Wen-Nengen_US
dc.date.accessioned2014-12-12T01:59:54Z-
dc.date.available2014-12-12T01:59:54Z-
dc.date.issued2008en_US
dc.identifier.urihttp://140.113.39.130/cdrfb3/record/nctu/#GT009117801en_US
dc.identifier.urihttp://hdl.handle.net/11536/50602-
dc.description.abstract近年来,Java平台在效能上的长足进步,使其达到开发游戏之所需。然而,实际应用Java开发游戏之后,我们发现Java标准内建的视窗工具组AWT及Swing在各种不同的执行环境组态中存在绘图效能不一致的问题,这些执行环境的组合包含下列四项:一、Java执行环境版本(JRE);二、绘图应用程式界面(API);三、Java执行期系统参数;四、常用的作业系统,如Windows XP、Windows Vista、Fedora及Mac OS X。这种效能不一致的现象使得游戏开发人员难以预测Java游戏在使用者电脑的绘图效能,也降低了Java倡言的“撰写一次即可随处运行(Write-Once-Run-Anywhere)”的跨平台优势。
为了解决绘图效能不一致的问题,使游戏在不同平台上执行皆能达到高速且一致的绘图效能,我们提出了一套AWT/Swing架构,称为CYC视窗工具组(CYC Window Toolkit),简称CWT,具有下述数项特性。首先,CWT架构支援多种常用的高速绘图函式库,如DirectX及OpenGL,为了相容于没有硬体加速的环境,CWT也使用Java AWT来绘图。CWT架构也维持Java的跨平台特性,支援各Java虚拟机器(Java VM)、.NET公共语言执行环境(.NET CLR)以及各种不同的作业系统。再者,CWT提供与Java AWT/Swing 1.1版相同API的元件,降低将既有Java游戏移植到CWT的难度。对于需要进一步调整游戏效能的程式设计师来说,CWT提供一对一对应的API,以便直接操作CWT内部的DirectX与OpenGL物件,以及游戏相关的各种参数。此外,CWT也可以应用于3D应用程式,这对于现在流行的3D游戏设计十分重要。
我们依照CWT架构实作了三种CWT工具组,并开放于专属网站 (http://java.csie.nctu.edu.tw/cwt/) [15]。这三种实作各自使用AWT、DirectX及OpenGL来绘制使用者介面,尤其是后二项实作,可以在支援的作业系统中,得到绘图加速卡的硬体加速支援。为了测试并比较原本Java AWT/Swing与CWT的绘图效能,我们设计了两支测试程式,用来测试基本绘图能力(Micro-benchmark)与综合绘图能力(Macro-benchmark)。测试程式执行于常用的JRE,如MSVM及JRE 1.4至1.6版,以及前面提到的四个作业系统中,其结果显示:CWT比Java AWT/Swing更能在这些不同的组态中达到更好且更一致的绘图效能。由于CWT提供Java AWT/Swing 1.1版的介面,也可以在Java 1.1版的环境下运行,因此,CWT的API数量及Java执行期系统参数都较Java AWT/Swing少,较少的测试组合有助于提升程式设计师的生产力。
我们将实作CWT以及测试效能的经验,归纳出三点方向,使Java在未来成为更好的跨平台游戏的开发平台。一、由于绘图加速卡的快速演进,Java应开放内部的DirectX与OpenGL物件,让游戏程式设计师能够直接存取新功能或调整绘图行为。二、Java AWT/Swing的绘图管线应该与JRE分开发行,有助于更快速地升级、除错该绘图管线,并支援旧版本的JRE。三、复用现有的DirectX与OpenGL绑定(Bindings)以降低开发成本、提高可维护性、简化运用Java AWT/Swing于Java 3D及JOGL应用程式中的难度,并提高效能。
zh_TW
dc.description.abstractIn recent years, the performance of Java platforms has been greatly improved, which makes Java satisfy the requirements for developing games. However, after practicing in real game development, we observe that a phenomenon of performance inconsistency exists in the graphics of Java AWT/Swing with different combinations of JREs, graphics APIs, system properties, and operating systems (OSs), including Windows XP, Windows Vista, Fedora and Mac OS X. This phenomenon makes it hard to predict the rendering performance of Java games and weakens the merits of the Write-Once-Run-Anywhere feature of Java.
In order to solve the above problems, we propose a portable AWT/Swing architecture, called CYC Window Toolkit (CWT), for developing cross-platform Java games with high and consistent rendering performance. CWT has the following features. First, the CWT architecture supports multiple graphics libraries such as AWT, DirectX and OpenGL, multiple virtual machines such as Java VM and .NET CLR, and multiple OSs. Next, CWT supports AWT/Swing 1.1 compatible widgets, so it can be easily applied to existing Java games. For programmers who want to fine tune their games, CWT supports one-to-one mapping APIs to directly manipulate DirectX and OpenGL objects and other game-related properties. In addition, CWT supports interoperability with 3D applications, which is an important feature for 3D game design.
We implemented three versions of CWT – AWT, DirectX, and OpenGL, to take advantage of graphics hardware acceleration on all supported OSs. The implementations of CWT are available on our website (http://java.csie.nctu.edu.tw/cwt/) [15]. Two testing programs, including micro-benchmark and macro-benchmark, are also designed to evaluate the rendering performance of the original Java AWT/Swing and CWT. The benchmarking results show that CWT achieves more consistent and higher rendering performance than Java AWT/Swing does in commonly used JRES, including MSVM and JREs 1.4 to 1.6, on the four OSs. Moreover, CWT needs fewer efforts to test the combinations of graphics APIs and system properties, which greatly improves programmers’ productivity.
Based on the benchmarking results and our experience, we propose three approaches to make Java be a better platform for developing cross-platform games in the future. First, since the video hardware evolves quickly, Java should open direct access to the internal DirectX and OpenGL objects for game programmers who need to access up-to-date hardware features or change the rendering behaviors. Second, Java should decouple the rendering pipelines of Java AWT/Swing from the JREs for faster upgrading and supporting old JREs. Third, Java should reuse existing DirectX and OpenGL bindings for lower developing cost, better maintainability, easier interoperability among Java AWT/Swing, Java 3D, and JOGL applications.
en_US
dc.language.isoen_USen_US
dc.subjectCYC Window Toolkitzh_TW
dc.subjectCWTzh_TW
dc.subjectJava游戏zh_TW
dc.subjectDirectXzh_TW
dc.subjectOpenGLzh_TW
dc.subjectCYC Window Toolkiten_US
dc.subjectCWTen_US
dc.subjectJava Gameen_US
dc.subjectDirectXen_US
dc.subjectOpenGLen_US
dc.titleCWT - 跨平台Java游戏开发之AWT/Swing架构zh_TW
dc.titleCWT - An AWT/Swing Architecture for Cross-Platform Java Game Developmenten_US
dc.typeThesisen_US
dc.contributor.department资讯科学与工程研究所zh_TW
显示于类别:Thesis


文件中的档案:

  1. 780101.pdf

If it is a zip file, please download the file and unzip it, then open index.html in a browser to view the full text content.