味性,程式編寫之後,幾個小黑點在顯示器上移動,然後就這麼等著。看他們慢慢爬動,接著結果就出來了……太無聊了!
這個時候,他們提出,最好能夠將這個遊戲複雜化,例如動作多樣性、更具挑戰性,遊戲更加熱血等等……
倒!許毅看到他們的回帖之後真想抽他們。他辛辛苦苦把這個東西編寫出來,結果沒人欣賞,失策啊!許毅這次“寓教於樂”的嘗試就這樣胎死腹中。
不過。許毅還是沒有放棄,這些人的建議給了他靈感,連他自己都對他們提出的這個遊戲感興趣起來。許毅接下來的很長一段時間都化在那個駭客遊戲的構思和設計當中,按照他的構想,如果這個遊戲編寫成功。極有可能形成一個大型地賽事……
許毅現在上課不睡覺了。取而代之的是趴在課桌上發呆,有時候又會突然拿起筆,在稿紙上記錄著什麼。顏玉看得奇怪,多次詢問許毅是不是出了什麼事情。她也看過許毅紀錄在稿紙上的東西,都是一些框圖或者程式碼之類的,她一點都看不懂。
許毅考慮到,把程式碼完全放到虛擬機器中執行這個方法現在還沒有條件實現。因為虛擬機器編寫的工程難度實在太大,同時需要很長的時間和極大的精力。另外,他編寫這個遊戲地目的是用來增加大家學習程式設計的興趣,提高程式設計水平,所以他改變了起初的想法,不再去編寫一個完整的虛擬機器。而是模擬系統,程式碼還是交給實際地計算機去執行,沒有必要重新編寫一個虛擬機器。
模擬,顧名思義,模模擬實。也就是用一定地手段去建立相關模型。模仿現實生活中的一些具體存在的東西。例如某個小區的整體規劃模型就是一種實物模型模擬,屬於實物建模,用實物把想要表現的東西用模型做出來。另外還有一些抽象的模擬,例如虛擬現實模擬和純粹的數學模擬等。虛擬現實是用計算機技術把現實地東西做成動畫(二維、三維)的形式,這裡計算機及軟體就是用來模擬的工具;純粹的數學模型則是純抽象的概念,沒有形象的表現方式,用數學函式來表示系統,數學函式就是它地工具。
許毅所採用的方式就是虛擬現實模擬,以二維的動畫形式表現出來。經過幾周的構思和設計,他終於將整體框架大致完成。他將這個遊戲命名為“生死鬥”,正如其名,這個遊戲的主要行為就是各個“角鬥士”進行生死角鬥,不論是單打獨鬥還是進行大混戰,目的就是要殺死對方,贏得角鬥。
整個遊戲最重要的是模擬系統的服務端…FighSenven,全部的資料和指令都是FighSenven當中處理並執行的,它就相當於遊戲的心臟,遊戲者並不能看到它,只是在底層執行。當然,FighSenven提供一個虛擬場地…FighSenven,也叫“鬥獸場”。所有參加角鬥的角鬥士的外在圖形表示都是在這個鬥獸場中進行角鬥。
實際上可以說是模擬系統服務端包含兩個程式:FighSenven和FightMoniton。
FighSenven負責“角鬥士”的移動、與客戶端(Client)進行通訊、按照一定的規則控制遊戲的程序。
FightMoniton,即鬥獸場,則負責利用作業系統的圖形顯示功能在FighSenven中顯示虛擬場地。FighSenven可以同時和多個FightMoniton相連,這樣,大家就可以在多個顯示器上同時顯示生死鬥遊戲的情況。
有服務端,自然必有客戶端(Client)。生死鬥的客戶端(FighSenven)是由遊戲參與者編寫。它相當於“角鬥士”的大腦,指揮著角鬥士的運動和動作。客戶端和服務端的通訊是透過UDP/ip協議進行資訊互動的,所以,遊戲者可以實用支援UDP/ip協議的任何程式系統。透過這種資訊互動,客戶端傳送指令去控制鬥獸場中的角鬥士,同時,角鬥士還可以反饋一些資訊給服務端。
遊戲中的“角鬥士”是一個抽象的資料模型,“他”由著自己的一些屬性:運動和戰鬥。運動有“走”、“跑”、“加速”、“減速”、“轉身”……等等等等,許毅設計得很詳細,基本是按照一個人的實際情況來的。戰鬥模型許毅則簡化了,只有“拳擊”、“腳踢”這兩種攻擊以及相應的防禦動作而已。其實這個設計並不難,按照物件導向的設計思想,將“角鬥士”抽象成一個物件,其他的都是他的屬性,而屬性也還可以是物件,也就是說屬性也可以有屬性,依此類推……
…………
整個工程是非常龐大的,所以許