青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-380  評(píng)論-37  文章-0  trackbacks-0
作者: Radu Privantu
譯者:pAnic 2005年5月11日
原文鏈接:http://www.devmaster.net/articles/building-mmorpg/
譯者序:這是一篇講解如何開(kāi)發(fā)一款MMORPG的入門文章,作者本人也是一款游戲的開(kāi)發(fā)者,文中的內(nèi)容源于實(shí)踐,有很高的參考價(jià)值。很多人都想擁有自己的游戲,這篇文章對(duì)那些想自己開(kāi)發(fā)游戲的人來(lái)說(shuō)可能是一紙福音,也可能是一盆冷水。無(wú)論如何,開(kāi)發(fā)游戲都不是一件簡(jiǎn)單的事情。
以下是翻譯正文:
[/td]
文章的中心是如何起步開(kāi)發(fā)你自己的 大型多人在線角色扮演游戲( 原文:Massive Multiplayer Online Role Playing Games) (MMORPG)(譯者注:俗稱:網(wǎng)絡(luò)游戲,網(wǎng)游)。 針對(duì)的讀者是經(jīng)驗(yàn)和資源有限的開(kāi)發(fā)者。 讀完文章之后,你應(yīng)該懂得如何起步, 還有一些關(guān)于什么是應(yīng)該做的和不應(yīng)該做的忠告。第一步是評(píng)估你的能力和資源。你必須對(duì)自己誠(chéng)實(shí),因?yàn)樽瞿懔Σ粡男牡氖虑闀?huì)浪費(fèi)你的時(shí)間并讓你心灰意冷。

第一步:評(píng)估你的能力必須的技能:
  • 懂至少一種編程語(yǔ)言。 迄今為止, C++因?yàn)樾阅芎托实膬?yōu)越性成為游戲開(kāi)發(fā)者的首選。 Visual Basic, Java 或者 C# 可能也是不錯(cuò)的選擇。
  • 熟悉一種圖形庫(kù)。通常的選擇是SDL, OpenGL, 或者DX/D3D。(譯者注:網(wǎng)上也有很多免費(fèi)/付費(fèi)引擎下載和出售)
  • 選擇一種網(wǎng)絡(luò)通訊庫(kù)。 你可以從WinSock, SDL_net, 或DirectPlay中選擇。(譯者注:很多人喜歡開(kāi)發(fā)自己獨(dú)特的網(wǎng)絡(luò)庫(kù),這并不復(fù)雜,似乎ACE也是一種選擇)
  • 對(duì)游戲開(kāi)發(fā)有大體的經(jīng)驗(yàn)。 例如,事件循環(huán), 多線程, GUI 設(shè)計(jì),等等。
強(qiáng)烈推薦的技能:
  • C/S結(jié)構(gòu)通訊。
  • 多平臺(tái)開(kāi)發(fā)。 你可能希望設(shè)計(jì)一個(gè)MMORPG, 尤其是服務(wù)器能運(yùn)行在多種操作系統(tǒng)。為此,我推薦使用SDL, OpenGL 和SDL_net。
  • 網(wǎng)站開(kāi)發(fā)。如果你想讓用戶通過(guò)網(wǎng)站查看玩家統(tǒng)計(jì),服務(wù)器信息和其他信息,這是必須的。(譯者注:其實(shí)網(wǎng)站可以交給其他人開(kāi)發(fā),如果有必要的話)。
  • 安全管理。 你當(dāng)然不想因?yàn)橛腥斯裟愕姆?wù)器而浪費(fèi)時(shí)間!
  • 團(tuán)隊(duì)組織能力。 你需要一個(gè)你能成功領(lǐng)導(dǎo)和管理的團(tuán)隊(duì)。
第二步:初步規(guī)劃我注意到很多人在不同的論壇發(fā)帖子尋找團(tuán)隊(duì)開(kāi)發(fā)MMORPG。他們中的大部分是這樣:“我們成立了一個(gè)公司/游戲工作室,需要3個(gè)美工,兩個(gè)程序,1個(gè)音樂(lè)制作,等等。為了創(chuàng)新,不要參考過(guò)去的MMORPG,你有全部的自由用來(lái)創(chuàng)造你想要的世界,等等。 我們會(huì)在項(xiàng)目完成并賺到錢的時(shí)候付給你酬勞,等等”。 不幸的是,以現(xiàn)有的技術(shù)和帶寬,你無(wú)法擁有一個(gè)動(dòng)態(tài)的世界。 朝向無(wú)法到達(dá)的目標(biāo)前進(jìn)只會(huì)導(dǎo)致失敗。正確的做法是拿出一些小規(guī)模的,功能性強(qiáng)的,可擴(kuò)展的設(shè)計(jì)和構(gòu)架。
基本軟件構(gòu)架首先,嘗試創(chuàng)建一個(gè)簡(jiǎn)單的C/S模型,有如下功能:
  • 創(chuàng)建一個(gè)新角色
  • 保存那個(gè)角色(服務(wù)器端)
  • 用那個(gè)角色登陸
  • 能夠和其他人交談
  • 能在3D空間游覽
保存角色看起來(lái)簡(jiǎn)單,其實(shí)不然。 例如,有兩種方式保存角色:使用數(shù)據(jù)庫(kù)服務(wù)或者使用文件。兩者有各自的優(yōu)缺點(diǎn):

數(shù)據(jù)庫(kù) 文件
優(yōu)點(diǎn)
  • 添加新域或者修改現(xiàn)有的都很簡(jiǎn)單。
  • 更新玩家統(tǒng)計(jì)數(shù)據(jù)非常簡(jiǎn)單(從游戲外)。
  • 你可以通過(guò)SQL查詢方便的獲取不同種類的統(tǒng)計(jì)結(jié)果。
  • 無(wú)需自行完成I/O操作,數(shù)據(jù)庫(kù)會(huì)替你做好。
  • 易于更新/恢復(fù)。
  • 高速操作(讀/寫(xiě))。
  • 實(shí)現(xiàn)簡(jiǎn)單。
  • 無(wú)需額外的庫(kù)。
  • 不依賴數(shù)據(jù)庫(kù)服務(wù)器。因此你不必?fù)?dān)心數(shù)據(jù)庫(kù)升級(jí)或安全問(wèn)題。
缺點(diǎn)
  • 容易出錯(cuò)。 例如,做一個(gè)更新查詢的時(shí)候遺漏了'where'子句。會(huì)導(dǎo)致慘痛的損失,尤其是你沒(méi)有備份的時(shí)候。
  • 數(shù)據(jù)庫(kù)會(huì)比打開(kāi)/寫(xiě)入一個(gè)玩家檔案文件慢。你查詢一些數(shù)據(jù)的時(shí)候會(huì)耗費(fèi)幾個(gè)毫秒,尤其是大量玩家同時(shí)登入/登出的時(shí)候。
  • 需要額外的代碼進(jìn)行游戲和數(shù)據(jù)庫(kù)間的數(shù)據(jù)轉(zhuǎn)換。
  • 需要操作數(shù)據(jù)庫(kù)和SQL的經(jīng)驗(yàn)。并且需要一個(gè)程序和數(shù)據(jù)庫(kù)之間的接口庫(kù)。
  • 如果因?yàn)槟承┰驍?shù)據(jù)庫(kù)文件損壞,那算你倒霉,你可能會(huì)丟失所有的玩家數(shù)據(jù)(尤其是短期內(nèi)沒(méi)有備份的時(shí)候)。
  • 很難添加新的域,除非一開(kāi)始就很小心的設(shè)計(jì)了文件的格式/結(jié)構(gòu)。
  • 沒(méi)法做全體玩家的查詢。(這可以通過(guò)每天晚上用程序把重要字段添加進(jìn)一個(gè)數(shù)據(jù)庫(kù)間接實(shí)現(xiàn))。
  • 如果你想更新/檢查玩家狀態(tài),你必須額外寫(xiě)代碼。
  • 更新和還原比較復(fù)雜。
現(xiàn)在你決定了如何存儲(chǔ)角色,你還得選擇C/S通訊的網(wǎng)絡(luò)協(xié)議:TCP 還是 UDP?,我們都知道TCP速度慢,但是更準(zhǔn)確,并且需要額外帶寬。我實(shí)際使用TCP并沒(méi)有遇到什么問(wèn)題。 如果你有充足的帶寬,TCP是個(gè)好選擇,至少對(duì)初學(xué)者是這樣。  UDP 會(huì)很麻煩,尤其是對(duì)新手。 記住,游戲或引擎的初步測(cè)試會(huì)在你的局域網(wǎng)進(jìn)行,所有的包都會(huì)按順序依次抵達(dá)。在Internet上無(wú)法保證這一點(diǎn)。雖然包會(huì)按順序到達(dá),但是有時(shí)候會(huì)丟包,這通常是個(gè)麻煩事。 當(dāng)然,你可以設(shè)計(jì)你的協(xié)議使得C/S能夠從丟包中恢復(fù)。但這對(duì)初學(xué)者來(lái)說(shuō)很痛苦,不值得推薦。
第三步:選擇數(shù)據(jù)傳輸協(xié)議又是看起來(lái)很簡(jiǎn)單,其實(shí)不然。你不能只是發(fā)送'\0'結(jié)尾的串。因?yàn)槟阈枰粋€(gè)通用的協(xié)議,能同時(shí)適用字符串和二進(jìn)制數(shù)據(jù)。用0(或其他字符)做結(jié)束符是不明智的,因?yàn)槟莻€(gè)結(jié)束符可能是你要發(fā)送的數(shù)據(jù)的一部分。此外,如果你發(fā)送20字節(jié),然后再20字節(jié),服務(wù)器極有可能收不到兩個(gè)20字節(jié)的包。取而代之的是,它會(huì)一次性收到40字節(jié),這是為了避免浪費(fèi)帶寬在不必要的頭上。 而且,你可以發(fā)送1KB的包,但服務(wù)器會(huì)以兩個(gè)小包的形式收到它。所以你必須知道哪里是一個(gè)包的開(kāi)始,哪里是結(jié)束。在 “永恒大陸”(譯者注:原文: Eternal Lands,本文的作者正在開(kāi)發(fā)的一款MMORPG)中,我們用如下的方法:
  • Offset 0: 1 字節(jié) 表示傳輸?shù)拿睢?
  • Offset 1: 2 字節(jié),傳輸?shù)臄?shù)據(jù)長(zhǎng)度。
  • Offset 3: 變長(zhǎng),消息內(nèi)容。
這種方法有一致的優(yōu)點(diǎn):所有的數(shù)據(jù)傳輸有統(tǒng)一的標(biāo)準(zhǔn)。缺點(diǎn)是有些命令有固定已知的長(zhǎng)度,浪費(fèi)了一些帶寬。以后我們會(huì)改成混合的方法。
下一件事是決定服務(wù)器模型: “非阻塞soket,不使用線程”,或者“阻塞soket,使用線程”。兩種方法(使用線程 vs 不使用線程)各有優(yōu)缺點(diǎn)。
線程:
  • 服務(wù)器響應(yīng)會(huì)更加平滑,因?yàn)槿绻粋€(gè)玩家需要大量時(shí)間(例如從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)),這會(huì)在它自己的線程中完成,不會(huì)影響其他人。(譯者注:也許作者的意思是每個(gè)玩家都有獨(dú)立的線程,但這對(duì)MMORPG不太現(xiàn)實(shí))
  • 難以恰當(dāng)?shù)膶?shí)現(xiàn)和調(diào)試:你可能需要大量同步,并且一個(gè)小疏忽就會(huì)導(dǎo)致災(zāi)難性的后果( 服務(wù)器癱瘓,物品復(fù)制,等等)。
  • 可以利用多處理器。
無(wú)線程:
  • 實(shí)現(xiàn)和調(diào)試更簡(jiǎn)單。
  • 響應(yīng)速度慢。
在我的公司,我們使用無(wú)線程的方法,因?yàn)槲覜](méi)有足夠的資源和人力處理線程模式。
第四步:客戶端你打算做2D還是3D游戲?有些人認(rèn)為2D游戲做起來(lái)簡(jiǎn)單。我兩者都做過(guò),并且我傾向于3D游戲更簡(jiǎn)單。容我解釋。
2D下,你通常有一個(gè)幀緩沖,也就是一個(gè)巨大的象素點(diǎn)數(shù)組。象素點(diǎn)的格式會(huì)因顯卡的不同而不同。 有些是RGB模式,另一些是BGR模式,等等。每種顏色的bit數(shù)也會(huì)不同。只有在16bpp模式才有這個(gè)問(wèn)題。8-bit和24-bit模式簡(jiǎn)單一些,但有他們各自的問(wèn)題(8-bit顏色數(shù)太少(256),而24-bit速度更慢)。同時(shí),你需要制作你的精靈動(dòng)畫(huà)程序,不得不自己排序所有對(duì)象,以便他們以正確的順序繪制。 當(dāng)然,你可以用OpenGL或者D3D制作2D游戲,但通常這并不值得。并不是所有人都有3D加速卡,所以使用3D庫(kù)開(kāi)發(fā)2D游戲一般會(huì)帶給你兩者的缺點(diǎn):不是所有人都能玩,你也不能旋轉(zhuǎn)攝像機(jī),擁有漂亮的陰影,和3D游戲炫目的效果。(譯者注,目前絕大部分顯卡都支持565的16bpp格式,這個(gè)也成為目前16位色的業(yè)界通用格式,有不少文章和代碼都是講述這一格式下圖像處理的,尤其是使用MMX技術(shù))
3D的途徑,正如我所說(shuō),更簡(jiǎn)單。但是需要一些數(shù)學(xué)(尤其是三角)的知識(shí)。現(xiàn)代的圖形庫(kù)很強(qiáng)大,免費(fèi)提供了基本的操作(你不需要從后到前排列對(duì)象,改變物體的色彩和/或帖圖都十分簡(jiǎn)單,對(duì)象的光照會(huì)按照光源和它的位置計(jì)算(只要你為它們計(jì)算了法向量),還有更多)。并且。3D給了你的創(chuàng)作和運(yùn)動(dòng)更多的自由度,缺點(diǎn)就是不是所有人都能玩你的游戲(沒(méi)有3D卡的人數(shù)可能會(huì)讓你大吃一驚的),并且,預(yù)渲染的圖片總是比實(shí)時(shí)渲染的更漂亮。(譯者注:市面上想買不支持3D的顯卡目前很困難,只是高性能的3D卡價(jià)格也不低)
第五步:安全顯然,不能相信用戶。任何時(shí)候都不能假設(shè)用戶無(wú)法破解你精巧的加密算法(如果你使用了的話)或者協(xié)議,用戶發(fā)送的任何信息都要通過(guò)驗(yàn)證。極有可能,在你的服務(wù)器上,你有固定的緩沖區(qū)。例如,通常有一個(gè)小(可能是4k)緩沖區(qū)用來(lái)接收數(shù)據(jù)(從soket)。惡意用戶會(huì)發(fā)送超長(zhǎng)數(shù)據(jù)。如果不檢查,這會(huì)導(dǎo)致緩沖區(qū)溢出,引起服務(wù)器癱瘓,或者更壞的,這個(gè)用戶可以hack你的服務(wù)器,執(zhí)行非法代碼。每個(gè)單獨(dú)的消息都必須檢查:緩沖區(qū)是否溢出,數(shù)據(jù)是否合法(例如用戶發(fā)送“進(jìn)入那扇門”,即使門在地圖的另一端,或者“使用治療藥水”盡管用戶沒(méi)有那種藥水,等等)。 我再次強(qiáng)調(diào),驗(yàn)證所有數(shù)據(jù)非常重要。一旦有非法數(shù)據(jù),把它和用戶名,IP,時(shí)間和日期,和非法的原因記錄下來(lái)。偶爾檢查一下那個(gè)記錄。如果你發(fā)現(xiàn)少量的非法數(shù)據(jù),并且來(lái)自于大量用戶,這通常是客戶端的bug或者網(wǎng)絡(luò)問(wèn)題。然而,如果你發(fā)現(xiàn)從一個(gè)用戶或者IP發(fā)現(xiàn)大量非法數(shù)據(jù),這是明顯的跡象表明有人正在欺騙服務(wù)器,試圖hack服務(wù)器,或者運(yùn)行宏/腳本。同時(shí),決不要在客戶端存儲(chǔ)數(shù)據(jù)。客戶端應(yīng)該從服務(wù)器接收數(shù)據(jù)。換句話說(shuō),不能發(fā)送這樣的消息“OK,這是我得物品列表”或者“我的力量是10,魔法是200,生命值是2000/2000”。 而且,客戶端不應(yīng)收到它不需要的數(shù)據(jù)。例如:客戶端不應(yīng)該知道其他玩家的位置,除非他們?cè)诟浇?這是常識(shí),給每個(gè)人發(fā)送所有玩家會(huì)占用大量帶寬,并且有些玩家會(huì)破解客戶端從中獲取不公平的利益(像在地圖上顯示特定玩家的位置)(譯者注:就像傳奇的免蠟燭外掛)。所有這些似乎都是常識(shí),但,再次,你會(huì)驚奇的發(fā)現(xiàn)有多少人不知道這些我們認(rèn)為的常識(shí)。
另一個(gè)要考慮的問(wèn)題,當(dāng)涉及到安全:玩家走動(dòng)的速度必須在服務(wù)器計(jì)算,而不是客戶端。(譯者注:這是重要的原則,但是會(huì)耗費(fèi)大量服務(wù)器資源。魔獸世界沒(méi)有這樣做,它采用類似其他玩家揭發(fā)的形式掩蓋這個(gè)事實(shí),導(dǎo)致加速外掛可以用,但是在有其他玩家的時(shí)候會(huì)暴露)。服務(wù)器應(yīng)該跟蹤時(shí)間(以ms為單位)當(dāng)客戶最后一次移動(dòng)的時(shí)候,并且,移動(dòng)的請(qǐng)求如果比通常的極限更快到來(lái),這個(gè)請(qǐng)求應(yīng)該被拋棄。不要記錄這類虛假請(qǐng)求,因?yàn)檫@可能是因?yàn)榫W(wǎng)絡(luò)延遲(也就是玩家延遲,過(guò)去的10秒內(nèi)發(fā)送的數(shù)據(jù)同時(shí)到達(dá)了)。
檢查距離。如果一個(gè)玩家試圖和100億公里以外的玩家交易(或者甚至在另一張地圖上),記錄下來(lái)。如果一個(gè)玩家試圖查看,或者使用一個(gè)遙遠(yuǎn)的地圖對(duì)象,記錄它。小心假的ID。例如,正常情況下每個(gè)玩家都會(huì)分配一個(gè)ID(ID在登陸的時(shí)候分配,可以是持久的(唯一ID)。 如果ID在玩家登陸的時(shí)候賦予9或怪物被創(chuàng)建的時(shí)候),顯然可以用玩家數(shù)組(保存玩家)的位置(索引)作為ID。
所以第一個(gè)登陸的玩家ID是0,第二個(gè)是1,依此類推。現(xiàn)在,通常你會(huì)有一個(gè)限制,比如說(shuō)2000個(gè)索引在玩家列表里。所以如果一個(gè)客戶端發(fā)送一條命令類似:“查看ID200000的角色”,這會(huì)使服務(wù)器當(dāng)機(jī),如果沒(méi)有防備的話,因?yàn)榉?wù)器會(huì)訪問(wèn)非法的內(nèi)存區(qū)域。所以,一定要檢查,就像這樣: "if actor id<0 or if actor id> max players 然后記錄非法操作并且斷開(kāi)玩家。如果你使用C或者C++,注意或者定義索引為'unsigned int' 并且檢查上限,或因?yàn)槟承┰蚨x為int(int,默認(rèn)是有符號(hào)的),記得檢查 <0 and >max 。沒(méi)有做這些會(huì)嚴(yán)重挫傷你和其他用戶。類似的,要檢查超出地圖坐標(biāo)。如果你的服務(wù)器有某種尋路算法,并且客戶端通過(guò)點(diǎn)擊地面來(lái)移動(dòng),確保他們不要點(diǎn)擊在地圖外部。
第六步:獲得一個(gè)團(tuán)隊(duì)制作游戲需要大量的工作(除非是個(gè)Pong and Tetris游戲)。尤其是MMORPG。你無(wú)法單靠自己。理論上,一個(gè)完整的團(tuán)隊(duì)組成是這樣:
  • 至少3 個(gè)程序員: 1 個(gè)做服務(wù)器,兩個(gè)客戶端(或者一個(gè)客戶端,一個(gè)負(fù)責(zé)工具,例如美術(shù)插件,世界編輯器,等等)。有6個(gè)程序員是最好的,更多就沒(méi)必要了。這取決于你的領(lǐng)導(dǎo)能力。最少一個(gè)美工,2到3個(gè)更合適。如果這是個(gè)3D游戲,你需要一個(gè)3D美工,一個(gè)2D美工(制作帖圖,界面,等等),一個(gè)動(dòng)畫(huà)師,和一個(gè)美術(shù)部負(fù)責(zé)人。美術(shù)部應(yīng)該由有經(jīng)驗(yàn)的人組織和安排,除非你就是個(gè)藝術(shù)家。,
  • 少數(shù)世界構(gòu)建者:創(chuàng)建所有地圖是個(gè)漫長(zhǎng)的過(guò)程, 并且直接關(guān)系到游戲的成敗。再次,你需要一個(gè)世界構(gòu)建部的負(fù)責(zé)人。你的世界需要協(xié)調(diào)一致,所以不能只有一個(gè)意氣用事的人。
  • 一個(gè) 網(wǎng)站管理員是必須的,除非你精通網(wǎng)站設(shè)計(jì),并且愿意花時(shí)間做網(wǎng)站。音效和音樂(lè)不是必須的,但是有音效和音樂(lè)的游戲比沒(méi)有的會(huì)更吸引人。
  • 一個(gè)游戲經(jīng)濟(jì)系統(tǒng) 設(shè)計(jì)師.。你也許覺(jué)得那很簡(jiǎn)單,可以自己來(lái)做,但事實(shí)上那是最復(fù)雜的工作之一。如果經(jīng)濟(jì)系統(tǒng)設(shè)計(jì)不良(比如物品沒(méi)有平衡,資源在地圖上隨意放置,等等。)玩家會(huì)覺(jué)得無(wú)聊并且退出游戲。我們?cè)缙诘倪M(jìn)展存在很大的問(wèn)題,尤其是因?yàn)榻?jīng)濟(jì)系統(tǒng)主要是由我(一個(gè)程序員)設(shè)計(jì)的,它沒(méi)有被恰當(dāng)?shù)挠?jì)劃。 于是,我們花費(fèi)了兩個(gè)月來(lái)重新思考和建立一整個(gè)新的經(jīng)濟(jì)系統(tǒng)。這需要一次完全的物品清除。我告訴你,玩家會(huì)很不樂(lè)意你刪除他們的物品。幸運(yùn)的是,大部分玩家贊同這個(gè)想法,但是這么多小時(shí)的爭(zhēng)論,妥協(xié),解釋和時(shí)間的浪費(fèi)還是讓我們喪氣。以后會(huì)更多。
如前所說(shuō),你需要一個(gè)10~15人的團(tuán)隊(duì),不包括協(xié)調(diào)員和管理者。這10~15人必須是有經(jīng)驗(yàn)的。如果都是新手就不值得,因?yàn)槟阈枰ù罅繒r(shí)間解釋要做什么,怎樣做,為什么他現(xiàn)在的做法不好,等等。
一開(kāi)始就湊齊10~15人幾乎是不可能的。不管你在不同的論壇發(fā)多少帖,你也無(wú)法找到合適的團(tuán)隊(duì)成員。畢竟,如果一個(gè)人在他/她的領(lǐng)域得心應(yīng)手,為什么在你無(wú)法拿出任何東西的時(shí)候他/她要加入你的團(tuán)隊(duì)?很多人有遠(yuǎn)大的想法,但是實(shí)現(xiàn)它們需要大量時(shí)間和努力,所以他們寧可從事自己的工作也不會(huì)加入你。那如果你需要10~15人,但是無(wú)法讓他們加入你的團(tuán)隊(duì),你如何才能制作一款MMORPG呢? 好,事實(shí)上,你一開(kāi)始不需要所有人都到位。你真正需要的是一個(gè)程序員和一個(gè)美工。如果你是個(gè)程序員,只要找個(gè)美工就可以了。請(qǐng)求懂美術(shù)的朋友幫忙,花錢請(qǐng)大學(xué)生/朋友做一些美術(shù)或者其他工作。
現(xiàn)在你有了一個(gè)美工,你期待的游戲的樣子,現(xiàn)在可以開(kāi)始實(shí)現(xiàn)了。一旦你有了可以運(yùn)行的C/S引擎,一些用來(lái)展示的截圖(或者更好,玩家可以登陸你的世界,四處走動(dòng),聊天),更多的人會(huì)愿意加入你的團(tuán)隊(duì)。更恰當(dāng)?shù)氖牵悄闶褂锚?dú)有的技術(shù),否則你的客戶端可以開(kāi)源。許多程序員會(huì)加入(作為志愿者)一個(gè)開(kāi)源工程而不是非開(kāi)源項(xiàng)目。而服務(wù)器不應(yīng)該開(kāi)源(除非你打算做一款完全開(kāi)源的MMORPG)。
其他一些忠告:在有東西可展示之前,不要夸大你的游戲。最惹人煩的事情之一就是一個(gè)新手發(fā)一個(gè)“需要幫助”的請(qǐng)求,并且解釋這個(gè)游戲到底有多酷,最后要求一個(gè)巨大的團(tuán)隊(duì)加入他的游戲制作。一旦你擁有了網(wǎng)站廣告(通常是在一個(gè)免費(fèi)主機(jī)),你會(huì)看到一個(gè)吸引人的導(dǎo)航條,包含“下載”,“截圖”,“ 原畫(huà)”(譯者注,原文:Concept art,概念藝術(shù),在游戲應(yīng)該指美工的原始設(shè)計(jì)),“論壇”。你點(diǎn)擊下載鏈接,然后看到美妙的“建設(shè)中”頁(yè)面(或者更糟糕,一個(gè)404錯(cuò)誤)。然后你點(diǎn)擊截圖,得到同樣的結(jié)果。如果你沒(méi)有東西給人下載,就不要放下載鏈接。如果沒(méi)有截圖展示,不要放截圖鏈接。然而更好的是,在工程進(jìn)展10%(程序和美工)之前,不要浪費(fèi)時(shí)間在網(wǎng)站上。
第七步:打破某些神話
  • 你無(wú)法制作MMORPG, 只有大公司才可以。
    我不同意。雖然制作一款像魔獸世界(World of Warcraft),無(wú)盡任務(wù)2(Ever Quest 2),亞瑟王的召喚2(Asheron's Call 2),血統(tǒng)2(Lineage 2),和其他一些游戲?qū)σ粋€(gè)小型的自發(fā)團(tuán)隊(duì)是不可能的,但是做一款像樣的游戲還是可以的,只要你有經(jīng)驗(yàn),動(dòng)機(jī),和時(shí)間。,你需要1000小時(shí)的編程來(lái)制作一個(gè)可運(yùn)行的測(cè)試版,大概10~15k小時(shí)完成幾乎完整的客戶端和服務(wù)器。但是作為團(tuán)隊(duì)領(lǐng)導(dǎo)者,你不能只編程。保持團(tuán)隊(duì)團(tuán)結(jié),解決爭(zhēng)執(zhí),維護(hù)公共關(guān)系(PR),技術(shù)支持,架設(shè)服務(wù)器,懲罰搗亂分子,自由討論,等等都是你的職責(zé)。你可能會(huì)被非編程的任務(wù)淹沒(méi)。你很可能需要上班/上學(xué),這減少了你花費(fèi)在項(xiàng)目上的時(shí)間。我們很幸運(yùn),沒(méi)有成員離開(kāi)團(tuán)隊(duì),但是如果這種事情發(fā)生,那的確是大問(wèn)題。假設(shè)你的美工半途離開(kāi)。或者更糟糕,他/她沒(méi)有給你使用他/她作品的許可。當(dāng)然這可以通過(guò)和他們簽訂合同來(lái)解決,但找另外一個(gè)美工仍然很麻煩。一個(gè)工程中有兩種不同的美術(shù)風(fēng)格也是問(wèn)題。
  • 需要大筆金錢(通常 4-6 位數(shù)) 用來(lái)架設(shè)一個(gè) MMORPG 服務(wù)器.
    當(dāng)然,這不是真的。我見(jiàn)過(guò)專業(yè)服務(wù)器,1000GB/月,不到100美元/月(2~300美元的初裝費(fèi))。除非你的數(shù)據(jù)傳輸協(xié)議設(shè)計(jì)非常不合理,1000GB/月對(duì)一個(gè)1000玩家在線(平均)的服務(wù)器來(lái)說(shuō)足夠了。當(dāng)然,你還需要另一個(gè)服務(wù)器做網(wǎng)站和客戶端下載(客戶端下載會(huì)占用大量流量,當(dāng)游戲變得流行的時(shí)候)。我們的客戶端有22MB,有時(shí)候會(huì)有400GB/月的傳輸量。而我們還沒(méi)有很流行(仍然)。另一件事,我們不需要另一臺(tái)專用服務(wù)器開(kāi)啟這個(gè)工程。ADSL/cable服務(wù)器可以勝任,直到你的同時(shí)在線人數(shù)達(dá)到20~30。然后要么找一個(gè)友好的主機(jī)公司,用廣告交換免費(fèi)主機(jī),要么就只能自己掏腰包了。  
  • 制作一個(gè)MMORPG很有趣。
    這不是真的。你可能認(rèn)為每個(gè)人都會(huì)賞識(shí)你,玩家會(huì)支持你,你標(biāo)新立異,并且,當(dāng)然,很多玩家都玩你的游戲。玩家可能讓人討厭。即使是完全免費(fèi)的游戲,他們也能找到理由抱怨。更糟糕的是人們經(jīng)常會(huì)抱怨矛盾的事。戰(zhàn)士會(huì)抱怨升級(jí)太難,商人會(huì)對(duì)戰(zhàn)士掠奪大量錢財(cái)很失望。如果你減少怪物掉落物品,有些玩家就會(huì)威脅說(shuō)要退出游戲。如果你增加,同樣的一群人會(huì)不滿新手能更簡(jiǎn)單賺錢的事實(shí)。 真是左右為難。改革和改進(jìn)是必須的。如果你決定改變某些東西,例如給加工物品增加挑戰(zhàn)性,有些人會(huì)說(shuō)太難了。如果你不做,他們又會(huì)說(shuō)太簡(jiǎn)單無(wú)味。你會(huì)發(fā)現(xiàn)滿意的玩家通常不會(huì)說(shuō)什么并且感到滿意,同時(shí)破壞者會(huì)怨聲載道。
MMORPG的經(jīng)濟(jì)比單機(jī)版難以平衡的多。在單機(jī)游戲,你可以逐漸改良武器,只要玩家進(jìn)展,他/她可以使用更好的裝備,丟棄(或者賣掉)舊的。另一方面,在多人游戲里,這種觀點(diǎn)不成立,因?yàn)槊總€(gè)人都試圖得到最好的武器,而跳過(guò)低等級(jí)武器。大部分玩家寧可空手省錢,直到他們能買游戲中最好的武器。經(jīng)濟(jì)系統(tǒng)設(shè)計(jì)要參考相關(guān)的文章。
迄今為止我列舉的所有事情,加上額外的工作和挑戰(zhàn),足以讓你在決定涉足這個(gè)工程之前三思而行。你必須知道你的決定意味著什么。
總結(jié)希望這篇文章能給你足夠的知識(shí)。我的下一篇文章將介紹如何建立一個(gè)經(jīng)濟(jì)系統(tǒng)(更明確的,要避免哪些錯(cuò)誤),還有一些調(diào)試服務(wù)器和客戶端的信息。
關(guān)于作者這篇文章作者是 Radu Privantu, 永恒大陸(Eternal Lands) www.eternal-lands.com的主程序和項(xiàng)目規(guī)劃, 永恒大陸是一款免費(fèi),客戶端開(kāi)源的MMORPG。作者可以通過(guò) chaos_rift at yahoo dot com 聯(lián)系。
posted on 2009-01-23 13:36 小王 閱讀(1467) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 游戲服務(wù)器端開(kāi)發(fā)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久久综合网| 国产婷婷色一区二区三区四区 | 欧美伦理在线观看| 久久亚洲欧洲| 欧美国产大片| 欧美日韩一区二区三区在线看| 欧美日韩系列| 国产日韩欧美视频| 亚洲国产精品成人精品| 99精品视频免费观看| 亚洲视频电影图片偷拍一区| 羞羞视频在线观看欧美| 久久综合网络一区二区| 亚洲人屁股眼子交8| 99成人在线| 性欧美xxxx视频在线观看| 久久都是精品| 欧美国产日韩一区| 国产精品女主播| 亚洲国产精品久久久久久女王| 99视频一区二区三区| 欧美一区二区三区成人| 欧美成人69av| 亚洲欧美中文日韩v在线观看| 久久一区中文字幕| 国产精品网曝门| 99爱精品视频| 免费在线欧美黄色| 亚洲伊人一本大道中文字幕| 美女视频黄免费的久久| 国产欧美一区二区三区在线老狼| 亚洲黄色免费网站| 久久精品国产免费| 99在线热播精品免费| 久久亚洲精品中文字幕冲田杏梨| 国产精品久久久久77777| 最新精品在线| 久久综合精品一区| 亚洲欧美精品伊人久久| 欧美日韩喷水| 亚洲免费观看高清完整版在线观看| 久久久久久综合网天天| 一区二区日韩欧美| 欧美精品一区三区| 亚洲精品国产精品国产自| 久久综合网色—综合色88| 亚洲综合色丁香婷婷六月图片| 欧美精品色网| 亚洲精品在线观| 亚洲电影av| 欧美成人激情在线| 亚洲国产精品成人va在线观看| 久久午夜精品一区二区| 久久riav二区三区| 亚洲一卡二卡三卡四卡五卡| 欧美国产日本高清在线| 欧美一区二区三区在线看 | 99精品视频免费观看视频| 久久久91精品国产一区二区精品| 中日韩午夜理伦电影免费| 欧美精品免费在线观看| 亚洲精品日韩综合观看成人91| 你懂的视频一区二区| 久久精品国产综合精品| 国产一区二区中文| 久久亚洲春色中文字幕| 久久国产视频网| 一区在线视频| 欧美激情亚洲自拍| 欧美激情四色| 亚洲小说区图片区| 一区二区免费在线观看| 国产精品久久久久久av福利软件| 亚洲自拍都市欧美小说| 亚洲校园激情| 极品少妇一区二区| 欧美激情在线播放| 欧美日韩在线视频首页| 欧美在线播放一区| 久久久久久69| 亚洲精品视频一区二区三区| 亚洲美女视频网| 国产精品亚洲综合一区在线观看| 久久精品日产第一区二区| 久久久久久网| 亚洲深夜福利在线| 欧美在线视频观看| 亚洲欧洲一二三| 亚洲午夜激情网站| 一区免费在线| 亚洲最新视频在线| 韩日视频一区| 亚洲伦理在线观看| 国产一区二区成人| 亚洲激情视频网站| 国产日韩欧美在线播放| 亚洲高清av| 国产美女精品视频| 亚洲国产成人av| 国产午夜精品理论片a级大结局 | 欧美日韩成人在线播放| 久久本道综合色狠狠五月| 久久久午夜精品| 亚洲欧美久久| 欧美福利一区二区| 久久精品一区蜜桃臀影院| 欧美精品一区在线播放| 久久久久在线| 国产精品久久久久久影视| 蜜桃av一区二区在线观看| 欧美日韩在线三级| 欧美亚洲一级片| 亚洲天堂成人在线视频| 久久久精品五月天| 亚洲在线成人| 欧美高清在线视频观看不卡| 欧美中文日韩| 国产精品久久波多野结衣| 亚洲国产精品成人一区二区| 国产亚洲精品aa午夜观看| 99亚洲一区二区| 亚洲美女av网站| 免费久久99精品国产自| 久久尤物视频| 国产专区综合网| 亚洲欧美在线高清| 亚洲欧美日韩精品久久亚洲区 | 激情久久久久久久久久久久久久久久| 日韩视频精品在线观看| 亚洲乱码日产精品bd| 欧美aa国产视频| 亚洲高清资源综合久久精品| 亚洲国产精品www| 欧美.日韩.国产.一区.二区| 欧美国产精品人人做人人爱| 亚洲国产精品va在线看黑人 | 亚洲欧美偷拍卡通变态| 欧美一区二区精品久久911| 国产精品美女久久久久久免费| 日韩亚洲欧美精品| 亚洲午夜性刺激影院| 欧美日韩亚洲在线| 一区二区三区高清| 香蕉久久夜色精品国产使用方法| 国产精品久久午夜夜伦鲁鲁| 亚洲影院在线观看| 久久精品首页| 亚洲高清123| 欧美日韩高清在线观看| 99精品国产在热久久婷婷| 亚洲直播在线一区| 国产日韩一区二区三区在线| 久久九九99| 亚洲欧洲日韩在线| 亚洲桃花岛网站| 国产亚洲欧美另类中文| 久久先锋资源| 9l国产精品久久久久麻豆| 欧美一区二区视频在线观看2020| 精久久久久久| 欧美日韩国产成人在线免费| 亚洲男人av电影| 欧美大尺度在线| 亚洲综合第一页| 黄色一区二区三区| 欧美精品一线| 欧美自拍丝袜亚洲| 最新精品在线| 久久久久国产一区二区| 亚洲狼人精品一区二区三区| 国产乱码精品| 欧美欧美天天天天操| 欧美一区二区三区久久精品| 欧美韩国日本综合| 欧美一区二区三区另类| 亚洲乱码日产精品bd| 国产日韩欧美在线视频观看| 欧美绝品在线观看成人午夜影视| 亚洲欧美综合v| 夜夜嗨av一区二区三区四季av| 午夜精品久久久久久99热| 久久免费黄色| av不卡在线看| 一区免费观看视频| 国产精品欧美经典| 欧美大片在线看| 性色av一区二区三区红粉影视| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲欧美视频| 一本色道精品久久一区二区三区| 国产自产精品| 国产精品久久久久久久一区探花| 欧美freesex交免费视频| 欧美一区二区三区播放老司机| 一区二区三区精品国产| 亚洲黄色有码视频| 欧美成人嫩草网站| 麻豆av一区二区三区| 久久精品国产v日韩v亚洲 | 久久亚洲综合|