• 沒有找到結果。

第二章 文獻探討

第三節 開發數位遊戲的工具

一、Flash 與 ActionScript 概述

根據維基百科(2012)對 ActionScript 的介紹,ActionScript 是 Macromedia 公司(現已被 Adobe 收購)為其 Flash 產品開發的程式語言,現在最新版本 3.0,

是一種完全的物件導向的程式語言,功能強大,類庫豐富,語法類似 JavaScript,

多用於 Flash 互動性、娛樂性、實用性開發,網頁製作和 RIA 應用程序開發。

ActionScript 是一種基於 ECMAScript 的程式語言,可用於編寫 Adobe Flash 動畫和應用程式。 由於 ActionScript 和 JavaScript 都是基於 ECMAScript 語法 的,理論上它們互相可以很流暢地從一種語言翻譯到另一種。不過 JavaScript 的文件物件模型(Document Object Model,簡稱 DOM)是以瀏覽器窗口,文件 和表單為主的,ActionScript 的文檔對象模型(DOM)則以 SWF 格式動畫為主,

可包括動畫,聲音,文字和事件處理。

ActionScript 第一次以它目前的語法出現是 Flash 5 版本,這也是第一個 完全可對 Flash 編程的版本。這個版本被命名為 ActionScript 1.0。Flash 6 通 過增加大量的內置函數和對動畫元素更好的編程式控制制更進一步增強了編程 環境的功能。Flash 7(MX 2004)引進了 ActionScript 2.0,它增加了強類型

(strong typing)和物件導向特徵,如顯式類聲明、繼承、介面和嚴格數據類 型。ActionScript 1.0 和 2.0 使用相同的編譯形式編譯成 Flash SWF 文件(即 Shockwave Flash files,或 'Small Web Format')。

Flash Player 和ActionScript 的開發團隊體認到發展現有引擎,將有著太 多限制而無法繼續研發新功能。經過這些可敬的人們長期不斷的努力後,Flash

Player 的歷史轉戾點到來了。Flash Player9 版本在2006 年首次引入了 ActionScript 3.0 和新一代的ActionScript 引擎-ActionScript Virutal Machine 2(AVM2)AVM2 是一個新的、高度最佳化虛擬機,顯著超越了AVM1 可 能達到的性能。ActionScript3 基本上是ActionScript 引擎的完全覆寫,在AVM2 中執行可達到前所未有的高效率和高性能,執行速度最多可比原有

ActionScript1/2 程式碼快10 倍。(謝武宏,2010)

ActionScript 3.0的編譯器程式碼基底,相較於舊版編譯器,可以執行更深 入的最佳化作業,以 ECMAScript for XML (E4X) 規格 (ECMA-357 第 2 版) 為 基礎的 XML API。E4X 是 ECMAScript 的語言擴充功能,將 XML 新增為該語言 的原生資料類型。ActionScript 3.0以「文件物件模型 (DOM) 第 3 層事件規格」

為基礎的事件模型。(奧多比系統,2012)

二、其它開發數位遊戲的工具

1.Visual C++程式語言

C++是擁有著優良傳統的程式語言,而 VC++則是微軟公司所開發出的一套適 用於 C/C++語法的程式開發工具。在 VC++的開發環境中,對於撰寫 Windows 作業 系統平台的視窗程式有兩種不同的程式架構:一是微軟在 VC++中所加入的 MFC(Microsoft Foundation Class library)架構,MFC 是一個龐大的類別函式 庫,其中提供了完整開發視窗程式所需的物件類別與函式,常用於設計一般的應 用軟體程式;一則是 Windows API 架構,使用 Windows API 來開發上述的應用軟 體程式並不容易,但用在設計遊戲程式上卻相當簡單且具有較優異的執行效能。

C++程式編譯後的檔案為可直接執行的機器碼,相較於其他程式語言如:VB、

Java,由於這類程式編譯後產生的一種所謂的「中間碼」,中間碼執行時,系統

內必須存在解譯該程式語言的「直譯器(Interpreter)」來做同步翻譯的工作。

直譯器解釋中間碼時,本身會載入到記憶體中佔用部分記憶體,且同步翻譯中間 碼的過程亦會浪費時間,使的這類型的程式執行時會比可直接執行的機器碼來的 緩慢許多,而這也是 C++的程式有較優越執行速度的主要原因之一。

在 Visual C++的開發環境中,對於程式資源及記憶體的管理方面皆相當的 具有彈性。在資源管理部分,通嘗試透過一個資源識別碼,就可以對該項資源來 進行運用。這裡所指的資源,包括視窗、裝置、圖像、聲音等物件。在記憶體管 理部分,C/C++語言本身就具備記憶體管理的功能,除了可透過指標進行記憶體 的存取、配置外,也提供了完整的記憶體管理相關函式。(榮欽科技,2004)

2.Visual Basic 程式語言

Visual Basic 是 1991 年的產物,利用這種語言設計視窗應用程式較單純的 原因是:一般Windows 視窗複雜的介面處理動作,例如:捲軸控制 (scroll bar)、

選擇表建立 (menu)、對話方塊 (dialog box)……等複雜的運作,都已經被簡化 成簡單的指令,使用者可以用幾個簡單的步驟輕鬆的完成工作。

「Visual」的中文意思是視覺的,就程式設計的觀點而言,它是指開發圖形使用 者介面的方法,這種程式設計方法就是在建立輸出入介面時,不必撰寫程式來描述 介面元件的外觀和配置,只要使用工具箱的工具,在程式設計階段便可達成,是屬 於一種「What You See Is What You Get (WYSIWYG)」直覺式的設計觀念。Visual Basic 就是以 BASIC 語言為基礎,再加入許多和 Windows GUI 有關的設計。(徐華青,2001)

Visual Basic 不需撰寫大量程式碼來描述介面元件的外觀和配置,而只要 把預先建立的物件添加到螢幕上的某一點即可,如果曾經使用過如小畫家之類的 繪圖程式,那麼應該很容易接受這觀念。Visual Basic 以原來的 BASIC 語言為 基礎,做了更進一步的發展,至今包含了數百個陳述式、函數及關鍵字,其中有 很多都和 Windows GUI 有直接關係。專業人員可以使用 Visual Basic 製作出任

何其它 Windows 程式語言所能做到的功能,而初學者則只要掌握幾個基本要領,

就可以建立實用的應用程式。

3.Java 程式語言

華醫資管 JAVA 教學網(無日期)在其網站中提到了 Java 語言是美國昇陽公司 (Sun Microsystems 現在已經併入 Oracle)所開發的程式語言。再 1991 年時,

昇陽公司成立了一個名為 Green Project 的研究計劃,主要的目的是開發消費性 電子產品的控制軟體,而由於當時所使用的「C++」程式語言過於複雜且缺乏安 全性,所以,當時的計畫主持人 James Gosling 便以「C++」為基礎,重新開發 了一套新的程式語言,名稱為「Oak」,它便是 Java 的前身。

Java 語言和 C++有關,而 C++又來自於 C 語言。其實,Java 語言許多的特性 是繼承自這兩種程式語言, Java 語言的特性有以下幾點:

(1) 簡單(Simple):Java 制定的原則即是要開發一種架構簡單,並且易學的程 式語言,讓設計師不用經過艱深的訓練過程即可使用。Java 捨去 C 或 C++語 言中較少使用到的功能,例如:C++語言中的運算子多載(operator

overloading)、多重繼承(multiple inheritance)...等功能。同時,Java 語言也增加一些它本身的特殊功能,例如:垃圾收集(garbage collection) 機制,讓系統本身可以自行回收程式中不再使用到的資源,使得程式設計的 工作更加得容易。

(2) 物件導向(Object-Oriented):Java 是一種物件導向的程式語言,開發應用 系統時,物件導向設計是一種相當有效率的設計方式,它的強大來自於能更 清楚得定義系統所需的功能,並讓已設計好的功能可以更方便的重覆使用。

(3)網路功能(Network-Savvy):Java 利用它強大的類別庫(Library)當作開發網

路程式的基石,讓設計者可以輕鬆的開發網路程式。

(4)強韌(Robust):Java 強調程式的穩定性,期望利用 Java 開發的應用程式能 在各種情形下都能穩定的執行。因此,Java 程式在編譯時,編譯器就會嚴格 的檢查程式碼,並嚐試找出程式執行時,可能產生的錯誤。

(5)安全性(Secure):Java 被設計的本意即是希望能用於分散式網路的開發環境 中,也因此,Java 特別強調安全性。除了提供防範病毒侵入的機制之外,Java 也採用公開金鑰的加密方式(public key encryption)來達成認證的目的。

(6)跨平台(Architecture Neutral):既然被設計成網路程式的開發工具,Java 程式必須能用於不同類型的 CPU 和作業系統中。Java 的編譯器將程式的原始 碼編譯成架構中立的位元碼(Byte Codes),而不同機器上的 Java 執行環境(稱 為 JVM, Java Virtual Machine)都能讀取這些位元碼,以便達到「Write Once, Run Anywhere」的目的。

(7)程式直譯(Interpreted):Java 的原始程式會被編譯成位元碼,在任何具有 JVM 的機器上都可以執行 Java 的位元碼,位元碼在被執行時,雖然採用直譯 的方式,但由於該位元碼特殊的設計方式,除了可以很快的專程機器碼之外,

更可利用 just in time 編譯器來產生高效率的執行結果。

(8)高效率(high-performance):執行過 Java Applet 的人也許會不認同這項優 點,總是會認為 Applet 的載入時間過長。但就 Java 的位元碼在執行時,能 夠很快速的轉換成機器碼而言,它的程式執行效率並不會比 C 或 C++語言所 開發的系統來的差。

(9)多執行緒(MultiThread):執行緒是指程式要執行的工作。傳統的程式語言,

例如:C、C++,並不容易設計出多執行緒的程式。但 Java 卻能使用簡單的幾

行敘述就可以讓應用程式達成同時執行多項工作的任務。

4.Game Maker

GameMaker 是一款擁有圖形界面,可靈活編輯,以 2D 遊戲設計為主的遊戲 開發軟體。GameMaker 體由 Mark Overmars 使用 Delphi 語言開發,於 1999 年 11 月發布了首個公開版本,在 4.3 版之後轉為部分功能收費軟體。 後由英國 公司 Yoyogames 收購,大力推動了歐美乃至全世界獨立遊戲界的發展。目前最 新版本為 Game Maker 8.1。

Game Maker 是一套容易使用的程式,可以用來創造自己的電腦遊戲,內建 了程式語言 GML。主要為降低遊戲設計的難度而寫,不需要寫程式,用簡單直 覺的拖放滑鼠的工具列,便可設計出自己的遊戲。可以輸入或設計影像、子圖形

(會動的影像)、聲音並使用他們。可以很容易地定義遊戲中的物件以及他們的

行為表現,遊戲設計者可以設計有捲動背景的華麗場景。萬一想要對程式全面控 管,遊戲製作者中內建了程式語言,可以對遊戲當中的所有元件做控制。(百度 百科,2012)

相關文件