ZZT-OOP/簡介
ZZT-OOP是DOS遊戲創作系統ZZT使用的原始面向物件指令碼語言。該語言由Epic MegaGames(現為Epic Games)的Tim Sweeney建立。
ZZT於1991年製作。這是Epic的第一個版本;雖然它並沒有特別成功,但它確實引起了人們的關注。在3.2版(被認為是“官方”ZZT的版本)之後,Tim Sweeney停止了開發,轉而從事其他專案,如Jill of the Jungle。ZZT的續集,Super ZZT,具有更高階的功能,但它從未取得其前輩的成功。原始版本的原始碼丟失了,阻止了任何進一步版本的開發,儘管它最終在2020年透過逆向工程重建了多年[1]。
1997年,Epic決定釋出ZZT和隨附的四個遊戲作為共享軟體,因為該程式在圖形和聲音方面都嚴重過時。儘管年齡很大,ZZT仍然吸引著人們的關注,並且今天仍然存在一個圍繞它的線上社群。近年來,人們做了很多嘗試來改進該程式,從破解ZZT可執行檔案本身到編寫類似於ZZT但具有一些新功能的模擬器。ZZT甚至啟發了各種其他由粉絲建立的遊戲創作系統,例如ZIG和MegaZeux。但是,原始的ZZT 3.2仍然是最廣泛使用的版本。
ZZT-OOP語言是ZZT的組成部分;因此,為了用ZZT-OOP編寫程式,您必須對ZZT有所瞭解。ZZT本身不可玩;它是一個直譯器,可以透過它玩ZZT遊戲。這些遊戲被稱為世界,通常將所有程式碼包含在一個副檔名為.ZZT的檔案中。
每個世界中的空間都分為稱為棋盤的段。棋盤的顯示大小是固定的,玩家一次只能檢視一個棋盤。但是,這些棋盤可以連線在一起,從而產生連續景觀的錯覺。為了澄清這個概念,假設您正在設計一些ZZT中的地下城。地下城的入口將位於一個棋盤上。這個棋盤上的入口可能連線到第二個棋盤,該棋盤包含地下城的第一個房間和一個樓梯。樓梯將連線到第三個棋盤,該棋盤將包含地下城的一部分。這個棋盤可能連線到其他棋盤,這些棋盤包含相鄰的地下城房間,等等。請注意,比例並不總是保持一致;例如,每個地下城棋盤可能只包含幾個房間,而包含地下城入口的棋盤可以製成該區域中所有其他事物的縮小地圖。當玩家離開他或她所在的棋盤時,該棋盤會從視線中消失,取而代之的是他或她移動到的棋盤。
世界檔案中每個棋盤都是可玩的,除了檔案中的第一個棋盤。這個棋盤被稱為標題螢幕,因為它是使用者載入遊戲時看到的第一個棋盤。由於玩家無法實際玩它,標題螢幕通常用作遊戲的啟動螢幕;但是,ZZT-OOP程式碼仍然會執行,這允許顯示簡單的動畫甚至介紹性過場動畫。
每個棋盤上的地形都基於一個60x25的圖塊網格。每個圖塊都是螢幕上的一個塊,具有特定的外觀和屬性。由於ZZT在文字模式下執行,因此每個圖塊都是字元大小的,具有 256 個 ASCII 字元之一的外觀,並且具有前景色和背景色。地形限制了玩家的移動能力,但它通常僅用於建立有趣的後景。雖然“地形”一詞意味著戶外環境,但它也用於構建室內特徵,例如牆壁。地形可以從代表房間的簡單盒子到更具裝飾性的有機棋盤;使用不同顏色的地形,甚至可以繪製簡單的圖片。
圖塊不僅限於表示地形;各種物品和生物也可以放在棋盤上。所有圖塊型別的詳細列表超出了本簡介的目的;但是,這裡將提到其中一種最實用的圖塊型別;物件。物件很重要,因為與大多數其他圖塊型別不同,物件圖塊可以包含 ZZT-OOP 程式。這允許世界設計者自定義物件行為。例如,假設您想用怪物填充一個地下城,但您不想使用ZZT的內建敵人。設計好地下城並鋪好適當的地形後,您將在棋盤上新增幾個物件。然後,您將編寫一個 ZZT-OOP 程式,該程式將指導他們如何攻擊玩家;本書將介紹如何編寫此類程式。
學習ZZT-OOP有很多理由
- ZZT-OOP 是編寫原創ZZT遊戲所必需的。雖然可以不用瞭解ZZT-OOP就製作ZZT遊戲,但您只能使用預程式設計的物品和敵人。
- ZZT-OOP 是一種很好的入門程式語言。雖然您無法將ZZT-OOP中的程式設計變成職業,但它是一種學習程式設計基礎知識的有趣且輕鬆的方式。
- ZZT-OOP(和ZZT)是一種有趣的愛好。為ZZT編寫遊戲是表達您的創造力的一個很好的媒介,而且很容易在網上找到願意玩您遊戲的人。
- ZZT-OOP 限制性很強,但以一種有趣的方式。由於該語言僅用於簡單的冒險遊戲,因此在其他語言中很容易的程式碼在 ZZT-OOP 中卻成為一項挑戰。但是,我們中有些人喜歡這樣的挑戰,儘管它不會讓你找到約會物件或工作,但能夠使用過時的遊戲創作系統編寫複雜的東西(例如分形生成程式)卻相當令人印象深刻。
- ↑ https://github.com/asiekierka/reconstruction-of-zzt
{{citation}}: Missing or empty|title=(help)