■ RPG Program
摘要: Now comes the time to commence creating the book’s sample game—"The rooad of warrior".
The game does put together all the gaming
pieces you need to complete a game. The purpose of "The rooad of warrior" is to show every
component in its proper place, including tech engines, map and level management,
character control, and scripting.
閱讀全文
摘要: Although beating down the endless hordes of evil and saving countless worlds is
interesting enough to rob you of precious sleep, it can get pretty boring after a
while. No matter how hard we try, game developers just can’t nail down the intrigue
and challenge of human intelligence that gamers want in virtual opponents.
閱讀全文
摘要: With swords swinging and magic blasting, you manage to wade through wave
after wave of demonic creatures. With every victory, you feel yourself growing
stronger; new spells are learned, and stronger weapons are usable. The enemy
is beginning to lose ground, and here you are standing tall on the mountain you
created.
閱讀全文
摘要: While going through the examples, I placed characters on the map in
a direct, hard-coded manner. However, remember that hard-coding game data is a
no-no. You need to have as much flexibility as possible when designing your maps,
and this includes placement of characters in a level.
閱讀全文
摘要: A gaming world is nothing without players and monsters running around.
Nevertheless, creating them can be a little daunting at first. But don’t worry.
In this chapter, you can find the basic information you need to create characters
and give them a life of their own in your game—all in an easy-to-follow format.
In this chapter, you learn how to do the following:
閱讀全文
摘要: 嘗試記錄那些有著各種用途的物件,以及它們在角色扮演游戲中所起的作用,將是一個非常重要的設計因素。
在游戲的過程中,通常被限定選擇并不算多的物件,每個物件都有它們各自獨特的用途。創建游戲時,每個物件都必須考慮到,它們都應被設計為一個特定的用途。武器、盔甲、療傷藥,這些都需要明確定義,包括它們的形式和功能。
形式和功能,這兩個單詞說明了在物件定義中最重要的兩個方面。形式涉及了外觀和特征,即一個物體看上去像什么,感覺上是什么,它有多大,有多重等。功能則涉及到它們的用途,每個物件都有一個特定的用途,金錢可以購買東西,刀劍可以用來攻擊,療傷藥可以用來治愈創傷。
閱讀全文
摘要: 創建一個角色扮演游戲項目時,會發現在源碼中編寫游戲相關信息十分困難(這樣做也是非常魯莽的)。最好的辦法就是使用外部數據源(類似于程序的代碼),稱之為游戲腳本(例如對話)。以這種方式,可以控制游戲的流程并節省寶貴的時間,因為不需要在每次做出改變后重新進行編譯。
當創建游戲時,游戲腳本與所編寫的程序代碼非常類似,只是游戲腳本相對于游戲引擎而言是外部的。正因為它們是外部的,所以才可以迅速地對腳本做出更改,而不用重新編譯整個游戲引擎。否則對于一個超過100萬行代碼的項目,僅僅為了改變一個對話行就要重新編譯整個項目。
閱讀全文
摘要: 在圖形技術的應用中,既沒有什么限制,也沒有什么必須遵守的規則。也就是說,沒有限制使用二維圖形或三維圖形,完全可以將它們兩者無損地混合在一起。
需要一個代表游戲層次的三維網格模型,一個角色在三維世界里四處移動(通常是沿著一個軸線移動),當角色移動時,攝像機也跟著移動。攝像機需要停留在一個比角色較高的平移位置上,這樣就會產生出全三維的層次效果。不需要別的額外操作,只要加載一個代表層次的網格模型,創建一組代表了物體(例如玩家角色)的二維貼片,并將每件東西正確地排列繪制到每幀中即可。
閱讀全文
摘要: 3D圖形引擎【OO改良版】的代碼以創建游戲內核【OO改良版】中編寫的代碼為基礎進行開發,關于該引擎的細節說明請參閱創建3D圖形引擎。
閱讀全文
摘要: 使用單一的網格模型雖然可以同時渲染整個層次,但卻意味著那些沒有被看到的部分在通過渲染管道時會被裁剪掉,也就是說這樣做會浪費時間。不要沮喪,因為使用一個單獨的網格模型進行層次的渲染仍然有一些非常好的方法。比如說,在游戲世界中包括了單獨的地牢,每個地牢包含不同的房間,所有的房間通過走廊連接到一起。其實,每個房間和走廊就是一個單獨的網格模型,所要做的就是在游戲的處理過程中加載以及釋放那些代表地牢房間的網格模型。
閱讀全文
摘要: 具體細節說明請參考二維圖形的使用。
閱讀全文
摘要: 二維游戲的核心繪制技術就是所謂的貼片技術(tiling),在進行貼圖的過程中,用較小的像素矩形分組(小位圖稱之為貼片)構造一個較大的場景,貼片的繪制過程稱為映射。
如下圖所示,左邊4個編號的小圖像就是貼片,中間一個加了編號的柵格代表了繪制貼片的布局(按編號順序進行描繪的方式)。對于每個柵格單元,開始繪制編號各自代表的貼片,直到整個場景被繪制完。這個柵格就是地圖,當柵格被繪制完成后,便得到右邊的圖像。
閱讀全文
摘要: 這是面向對象游戲內核的改良版,主要對原來游戲內核對象組織一些不合理之處做出了改良,并且遵循以下原則:
1、淺分層、薄膠合的原則,對于簡單的功能只用函數封裝,如果需要實現的功能模塊較復雜,并且需要用到較多的輔助數據結構則用類封裝,以減少對象的使用。
2、本版本不使用模板,盡量減少封裝層數,最大限度地增加透明度。
3、盡量不在構造函數內用表達式初始化任何數據,以使用memet簡化類數據成員的初始化,只使用默認構造函數,不使用其他任何形式的構造函數。
4、盡量不在類內部保存冗余的數據,如果這個數據真正存儲在另一個地方,則不在其他類中做多余的保存,保證數據存儲的唯一性。
5、不重載函數,不使用參數默認值。
閱讀全文
摘要: 這個版本主要是按功能劃分模塊的思想,并嚴格按照接口與實現相分離的原則來寫的,沒有用面向對象的思想來寫,沒有繼承沒有多態。
閱讀全文
摘要: 寫程序時,處理重復(或尋常)代碼的技巧就是創建一個有用的函數構成的核心庫,由這個核心庫來處理重復的代碼。使用這個函數庫,就無需反復書寫相同的DirectX或Windows代碼,因而能夠幫助程序員快速創建游戲工程。
游戲內核(game core)是用來簡化DirectX和Windows編程的一些庫的集合。游戲內核中幾乎含有一個游戲工程需要使用的所有函數,這些函數一般用于繪制圖形、播放聲音、處理用戶輸入以及應用程序。也就是說,使用游戲內核,就無需在每次開始一個新的游戲工程時,再去處理底層的DirectX或Windows 代碼。
閱讀全文
摘要: 要在游戲開發最初清楚地知道需要做些什么,就必須構造程序的操作流,并確保能夠很容易地對程序進行修改。
一個典型的程序,首先要初始化所有的系統和數據,然后進入主循環,大部分事情都出現在主循環中,根據游戲狀態(標題畫面,菜單畫面,游戲畫面等),需要對輸入和輸出進行不同的處理。
閱讀全文