我對三國游戲開發的認識

>>>  創業先鋒 眾人拾柴火焰高  >>> 簡體     傳統

一、我做三國的原因
我之所以做三國跟歷史上的因素有很大關系,那么現在我就說一下相關的歷史。
我對三國的認識最初來源于三國戰記,其實最初我也僅僅只是覺得好玩而已。在后來,我認識了一位對三國感興趣的朋友,他經常跟我說三國,這使我逐漸對三國游戲產生了興趣。此后我就玩了不少的三國興趣,這就使我對三國的興趣越來越濃。到了03年8月的時侯,我開始上網了,起初也只是為了找一些游戲的補丁和加強版,漸漸地我進入了瑯琊,在進入之初我看到瑯琊論壇里有很多游戲設計的想法,剛開始的確有些興奮,但是也漸漸地發現里面并不具有有實現能力的程序員。因此,我當時就想由我先來開這個頭吧。這就是我做三國的起源。
其實使我想做三國的另外一個原因就是對當前開發三國的公司的開發方向感到失望。第一次看到光榮的三國九時,我也很愛玩。但是一款游戲都是有它生命力的,玩久了自然膩,而此時光榮推出的三國十雖然沒玩,但是看了介紹,感到比較失望。后來看到網友的發言,他們說光榮畢竟是公司,公司都是以贏利為目的,所以它不可能從玩家的感受來出發。我想這就是開公司開發三國的蔽端,因為現在經濟并沒有發展到那種可以開從玩家的感受出發的公司,因為公司要考慮它的生存問題。所以我就認為以玩家感受為出發的確可以作為業余的一項優勢,因為業余經得起失敗。
到了后來,就開了三國游戲開發論壇,我在里面當管理員,在開三國游戲開發論壇期間與里面的會員進行了廣泛的交流,提高了我對游戲開發的認識。我在管理論壇的時侯發現策劃區的人發貼特別多,而程序區的人發貼特別少,策劃區有很多的版主,程序區找到一個都很困難。而且到了后期,論壇的人氣一直提不上去,策劃的討論也沒之前那么熱烈了,這促使我思考原因。當時我就認識到了提高論壇人氣最大的障礙其實就是沒有程序做保證,在里面只能是空談,人氣低也是必然的。不幸的是,當我認識這個問題不久,論壇就關閉了。論壇雖然關閉了,但是我認識了很多朋友,游戲開發依然可以繼續。
當時雖然有關閉論壇的不幸,但是幸運的事也接著來了。我認識了一個很熱愛開發游戲的網友,而且他比較有時間,他也比較熱情的參與我游戲的策劃,寫成了戰略三國文檔,這對于我的作用是我為了實現這個文檔的需求,我學習了很多,也發現了我開發方法的問題,因為我之前做游戲不注重維護,只是拼命地實現功能,而在寫戰略三國多次重寫中發現了這個問題的嚴重性,我因此才學習了類。說到這里我有個體會,其實編程的學習真的要通過實踐來推動,通過實踐能發現問題。為了解決這些問題,學習新的理論和技術,這樣就可以推動自身的進步。戰略三國的開發除了推動我技術進步以外,還有一個很重要的意義大大加深了我對游戲的認識,之前我并沒有重視游戲系統本身的構造,往往只重視了局部。通過游戲的開發讓我理請了思路,也給我增加了許多信心。
在這之后進入了gameres論壇,發布了戰略三國引起了很多人的評價,我認真看了很多人的發言,其中有些人說的的確是有點道理,加深了我對游戲開發的認識。
在此同時,那個策劃心想著建立一個好的團隊,一直跟我提團隊的事,因此就建立了一個專門合作的群,團隊的建設中也發現了沒有能真正能干事的,要么就是有時間但沒能力又不愿意學習,要么就是有能力但忙于工作沒有時間開發游戲,對于前者我認識到其實是一個信心問題,他們沒有足夠的勇氣去挑戰他們的理想或者是有勇氣因方法不當受挫折而放棄的,對于后者來說我認為從根本上來說也是信心問題,因為他們的時間很有限,以那么少的時間去開發一個游戲幾乎是不可能的,因此并沒有這個信心去開發。從以上兩種情況來看,信心和方法的確對開發游戲很重要的,而樹立這種信心和科學的方法依靠別人是不行的,因為他們既然失敗過或沒信心就說明不能夠完成這個任務。因此在此之后,我就確立了開發的自主權,不管多艱難也是自己想辦法去開發(其實克服困難本身就是一種樂趣),不再去依靠別人,當然別人要合作我還是歡迎的,但是這些人總是會在一段時間以后因故離開,經過分析發現他們不是因生活所迫就是因興趣減退而離開,這更加堅定了自主開發的信心。而此時策劃認為開發游戲需要有一定人群的合作,因而與之發生了爭吵,最后就中止了和策劃的合作關系。這件事進一步堅定了自主開發的信念。
雖然說自主開發是必要的,但是問題也很明顯,一個人的工作量非常大,這個問題也曾使我一度感到迷茫,在網絡上問了一些人,要么說業余的不行,要么說現在條件不成熟等將來吧,要么說要學會妥協,這些都不是我想要的答案,經過長期的思考,想到了一種比較好的解決方案,就是做編輯器。這個編輯器所涉及的范圍很廣,包括公式、界面、功能等等,我要做的就是把這一編輯器體系建立起來,然后再弄個簡單的策劃,這樣一來,由于策劃內容少,所寫的代碼量就小,因此工作量小,但是因為功能、公式是基于編輯器的,所以以后的擴展很方便,這樣就循序漸進的把游戲完善。而且能夠讓更多的人盡快上手,使用編輯器,這樣就能使更多的人參與進來做一些工作,比如輸入公式、編寫功能,這樣一來我的工作量就可以大為減輕。關于編輯器體系的建立,現在進展良好,因為找到了合適的工具controlscript,這個工具不僅可以按VB的語法輸入代碼,而且可以增加游戲中的類,這樣就可以在代碼中對類操作,這樣一來就和游戲建立起了聯系,一旦建立了聯系,所想要的編輯器的開發只是一個時間問題了。另外,我之所以要通過做簡單的游戲招人,就是因為空有編輯器是不能成事的,需要有一個游戲程序做基礎,這樣編輯器的作用才有保證。而做游戲程序需要時間,因為游戲程序的結構還需要一定的探索。這樣等以后人參與進來了,我只要負責更新游戲程序和編輯器,游戲程序里面的主體代碼是讓編輯器的代碼在游戲中實現,比較有一般性,而非具體的功能,這樣工作量就比較小了,可以省去那些重復的工作。這樣一來,就可以保證游戲程序和內容的不斷完善,游戲開發就能進入一個相對穩定的發展期,當然在一定發展之后也會遇到障礙,到時侯仍然要努力去解決。另外,需要指出的是,我并不指望目前就做編輯器和游戲程序然后就會有人來參與了,本身這需要一個過渡期,所以在初期我還是要親自到編輯器里去寫功能,讓人參與本身就是一個逐漸的過程。
總之,我選擇開發三國有以下幾個原因:
1)對目前現有的三國游戲不滿
2)網絡上能堅持把三國做下去的程序員太少
3)三國是歷史題材,個人比較喜歡歷史題材的游戲
4)為了激起更多人開發三國的熱情,使得三國開發能夠一直延續下去
二、做三國的基本方向
1.做的是三國游戲而不是所有游戲
之所以做三國游戲,除了前面說的原因以外,還有一個很重要的原因就是人的精力是有限的,要想做好一類游戲必定在上面投入大量的時間,如果做各種類型的游戲的話,就會出現每種類型雖然都做過,但是都不能深入了解其中。
2.做的是模擬歷史的三國游戲
我不能為了游戲性做那種冠以三國事物名稱的三國,因為我不滿的并不是這種類型的三國,而是對光榮模式三國的不滿,光榮模式的三國很多三國歷史的文化沒有得到真正的體現,比如中央集權。我做的游戲是以模仿三國九為方向的,而三國九本身是以模擬歷史為方向的,因此我的游戲也是以模擬歷史為方向的,但是模擬歷史只是方向而已,不是事事都非要模擬歷史,我們模擬歷史要的只是三國那種環境,而不是完全模擬,有些部分為了游戲性可以與三國實際情況不同。總之,我之所以要以模擬歷史為方向,是為了想體現出三國時代的那種環境,讓玩家去體會三國時代。
3.類型是SLG
三國游戲類型有很多種,但是SLG類游戲我比較喜歡,這是因為SLG類游戲側重于人的思考,對于三國大局的思考,并不是像即時類的游戲需要玩家快速的反應,也不是像RPG類游戲讓玩家去體驗劇情。之所以選定類型為SLG是因為SLG類游戲比較能體現人思考的價值,
4.運行方式為半即時
前面說過不選擇即時類游戲的原因了,這里說明一下不選擇回合制游戲的原因,作為一個回合制游戲,玩家的操作能夠迅速作出反應,正因為太過迅速,使得游戲缺乏了戰略性,不能較好的模擬三國歷史。而半即時,能夠做到玩家的操作在進行以后作出反應,比較好的體現了戰略性。
5.格子是元素行動的基本單位
之所以不選擇三國九那種以像素為單位的,主要是出于技術上的原因。以像素為單位的游戲需要進行碰撞檢測,在很多細節上比較麻煩,同時也會給策劃增加負担,而格子游戲相對簡單了很多,而這樣做并不違背前面幾條原則,同樣能夠很好地模擬歷史。
6.游戲是單機的
很多人說網絡游戲是當前發展的趨勢,做單機游戲沒有生命力。我認為做游戲一定要堅守自己的信念,不能為了趨勢而跟著趨勢走,別人在做網絡游戲的時侯,我們做單機,這樣一來,我們做出單機游戲相比于別人的網絡游戲更能體現出單機游戲的特色。游戲雖然是為玩家而做,但是單機游戲如果做得好照樣有很多玩家玩,并不是說單機游戲不可能受到歡迎,所以我們不必迎合這種趨勢轉向制作網絡游戲,而是要在單機游戲方面努力創新做出自己的特色。
之所以不做網絡游戲,并不是為了特色而特色,是有一些原因的:
1)網絡游戲需要架設服務器,這需要資金上的投入。需要做網絡游戲的技術,需要我們花費時間去學習,在游戲制作中還要考慮延遲、同步等等跟游戲本身無關的問題。這些都是很麻煩的事。雖然說有些網絡游戲可以采用相關的技術不需要架設服務器,但是仍然需要做網絡游戲的技術,在做游戲過程中仍然考慮延遲、同步等等跟游戲本身無關的問題。
2)網絡游戲與單機游戲相比更像一種工具,是人與人交往的工具,正是因為這個特點,游戲本身缺乏單機游戲的游戲性。在游戲過程中是體現人與人的斗爭,人與人都雖然其樂無窮,但是人本身很難得到單機游戲那種戰勝的樂趣,單機游戲有些AI雖差但是玩家能夠感受到勝利的樂趣。也就是說單機游戲,玩家能夠主宰整個游戲,而網絡游戲不行,再加上現在玩很多網絡游戲買裝備都需要錢,這就變成了有錢人占主角地位,游戲就不能成為真正的游戲了,具有很大的攀比味道,游戲已經不是靠玩家玩游戲水平高低,而是靠錢的多少,這就違背了玩游戲本來的放松意義。再加上現在很多網絡游戲還有作弊行為,這進一步破壞了游戲本身。一句話,網絡游戲在一定程度上違背了游戲本身的放松意義,更體現出玩家與玩家的社會關系,玩家在游戲中找不到主宰游戲的感覺。
3)網絡游戲在模式上有弊端,一個網絡游戲需要很多人的參與,而如果其中一個玩家因故離開怎么辦,人都是有事情的,不可能時時刻刻都在玩游戲,只有采用電腦托管,而電腦托管AI做不好,玩家回來以后肯定會很生氣,所以一個好的網絡游戲也是需要一個好的AI的,網絡游戲也避免不了要設計一好的AI。
說了這么多網絡游戲的問題,但不可否認的是單機游戲也自有其缺點,玩家玩過一遍游戲很可能這個游戲就被摸透了,再玩的時侯會發覺AI太差。也就是說單機游戲存在耐玩性的問題,我覺得對于這種情況可以做成網絡游戲,一個有單機游戲基礎的網絡游戲和一個純粹的網絡游戲是不一樣的,因為玩家具有很大的選擇余地。
7.游戲是2D的
3D同樣是當今游戲發展的趨勢,但是跟網絡游戲一樣并不需要去迎合趨勢。3D游戲本身沒有什么不好,只不過3D技術需要花費大量的精力去學習,人的精力是有限的,花大量時間去研究3D技術,不如把這個精力放在更好的加強游戲的游戲性上,游戲的游戲性比3D重要的多。
三、開發游戲的基本原則
1.做業余游戲
業余游戲雖然技術力量薄弱,開發容易遇到挫折。但是因為它是用個人用業余時間開發的,經得起失敗,不會影響個人的現實生活。而商業游戲雖然技術好了很多,但是它要考慮產品的贏利問題,經不起失敗,對人的生活影響很大,而且商業游戲為了贏利,很多時侯做游戲要迎合市場,做的游戲并非是自己所喜獲的,這在一定程度上違背了做游戲本身的意愿。我覺得做一個游戲的本身意義就在于把自己的想法用游戲表達出來。所以說,做業余游戲沒有什么不好的,可以當作在業余時間的一種放松,一種精神享受,不用受太多現實的約束。
2.做業余游戲要考慮自己的感受
雖然游戲是給玩家看的,但是如果做一個自己不感興趣的游戲,那么將很難持之以恒,連完工都沒有保證,就更談不上給玩家看了。開發游戲耐心很重要,要在開發游戲中始終保持愉悅的狀態,讓自己有持續動力做下去,而不是硬堅持,硬堅持做的游戲很容易夭折。要做到在開發游戲中始終保持愉悅的狀態,不僅要選擇一個自己感興趣的游戲,更要講究做游戲的方法,這在下文會提到,保持一個良好的心態才能更好地保證游戲開發完,而不是光靠毅力。
3.循序漸進
開發游戲要根據自己的實際能力來定,也就是說根據自己已掌握的知識,來制定開發計劃,這樣才能更快的促進自己的進步。通過一系列合理的開發計劃,我們就能夠不斷進步。但要注意制訂開發計劃的時侯跨度要合理,不要過多的超出自己的現有能力。
4.持久開發
做游戲的真正意義并不全是做出一個好的游戲,而是能夠實現持久性的制作好的游戲。因為僅僅做出一個好的游戲,它都只是暫時的,轉眼即逝的,無非只是讓玩家好好的娛樂下罷了,對以后做游戲并沒有多少實際效應,因此這樣的方式僅僅只是一種虛名罷了。總的意思是說,如果僅僅為了追求制作好游戲,而不擇手段,那么好游戲就算做出來了,也只是獲得一個虛名而已,對以后的游戲開發并沒有幫助,更不用說對開發水平的提高。
所以我們不應該從各處拿代碼去抄去湊而不理解,然后拼成一個游戲,即使這個游戲做的很好,但是因為不理解,也制約了游戲以后的發展,也就不能做到持續了。對于我們三國游戲開發而言,深度是非常重要的,所以僅僅從各處抄代碼就無法做到深入其中。因此要做到持續開發,就需要掌握與游戲邏輯直接相關的技術細節,把各個系統的實現思路記下,形成制作三國游戲的一套方法,這樣以后才能更好的應對各種需求。
5.開發以作品為中心,技術占輔助地位
業余開發的時間是有限的,沒有那么多時間去學習系統的理論知識,而且光學習理論知識而不實踐也不能夠真正的弄懂理論。所以我們定的開發計劃應該是一個作品一個作品來,對于三國游戲來說,就是一個個三國游戲,越后面的三國游戲技術要求越高,為了實現三國游戲里的功能,我們就要不斷學習與這些功能相關的技術,從而帶動我們不斷提高。另外,我們不能長時間的停留在一個三國游戲里一直更新技術,除非這個三國游戲是成熟的,在未形成成熟的三國游戲之前,我們應當把新技術用到下個游戲中去,因為作為一個不成熟的三國游戲,其代碼結構肯定是存在嚴重問題的,這是由于開發之初對需求認識不足造成的,這種情況與其花大量時間修BUG,還不如重新再做,再做的時侯肯定會認識到以前的結構問題從而解決以前的BUG。另外,從心理角度來講一直重復在一樣東西上會產生厭倦感,不如以新的思路去做游戲。還有一些舊的BUG或許在目前還解決不了,但是這沒關系,隨著開發的進展和交流的增多,BUG最終還是會解決掉的。總之,我們應該學習開發中需要的技術,而不是花大量時間去學習與開發本身沒關的理論,這樣才會不那么枯燥。
下面談一談在開發過程中對待技術的問題,應該說對待技術并不是絕對的,并不是要絕對都理解,也不是絕對都只去抄,要看該技術對開發者的作用,如果一個技術開發者只需要調用并不需要修改,那么開發者并不需要理解,只要調用就行了。如果一個技術開發者以后需要修改使用,就必須理解原理了。對于三國游戲來說,圖像處理的一些技術,我們不需要理解其中的算法,因為我們并不需要修改,而對于A*算法因為它涉及到邏輯,而且以后需要修改,因此我們需要理解。
接下來談談引擎和算法與開發游戲的關系,關于引擎,我認為開發游戲我們的目標是游戲,所以引擎部分直接用現成的就可以了,并不需要自己去做,因為那樣會很枯燥,很可能就做一半會使你放棄開發了,所以關于引擎我的態度是直接使用。而算法經常要涉及到邏輯,所以我們要去理解,必要時還要學習相關理論,但是我們只需要學習游戲中用到的算法就行了,沒有必要去系統學習,因為這也是很枯燥的事。不懂算法并不影響游戲的開發,因為可以在開發過程中學習。
6.開發工具是由實際情況決定的
一般來說,缺乏開發實力的開發者用的開發工具應該是封裝程度越高,開發速度越快的開發工具,比如VB,正是因為它有開發快、容易使用等特點,成為這一類開發者的理想工具,對于我來說,VB更大的意義在于熟悉,因為熟悉,我才會有更多的精力放到研究游戲的構架上。此外,由于缺乏開發實力的開發者組的團隊比較小,因此選用VB與C相比,能夠減少比較大的工作量,適宜一個人開發,如果用C,一般一個人是很難開發完成的。對于比較有經驗的開發者,由于其對游戲構架這一方面比較了解,開發中沒有基本的障礙,再加上其對高質量游戲的追求,同時已經有了人數比較多的程序員,不存在工作量問題,所以要用C之類的更底層的開發工具進行開發,用C開發的好處是運行速度更高、維護方便、能夠實現更多更好的效果。開發工具的選擇是由對工具的熟練程度和開發經驗多少決定的,所以VB6就成了我理想的工具,關于vb.net,它應該會比VB6好很多,但是我是以作品為中心的,既然VB6能滿足我的開發需求,就沒有必要再花時間去學vb.net,如果以后開發需求超出了vb6的能力,我自然要換工具。總之,業余開發選擇開發工具一定要根據自身的實際情況。
7.合作方式是由實際情況決定的
一般來說,初次搞游戲開發對游戲開發不怎么了解的不宜搞過大的團隊,但由于能力上的缺陷,也不宜單人開發,應該搞小團隊,特別是三人組(指策劃、美術、程序各一個人組成的團隊)。因為策劃之間和程序之間的合作都是相當困難的(價值觀和人員逃跑都是很大的問題),所以我提倡多組建一些三人組,而不是搞多么大的團隊,讓多個三人組之間多交流,這樣更容易進步。
對于經驗不足的開發者會因為經驗不足會導致更多的人受挫折,所以這種探索性比較強的開發還是少數人做。而對于比較有經驗的游戲開發者,由于其在游戲開發中有一定管理水平,可以搞比較大的團隊,以做出好的游戲目標,而不是小團隊的那種探索。
8.編輯器和腳本是開發游戲的輔助工具,要正確認識。
在游戲開發一定程度,為了更好地維護程序,用需要使用編輯器和腳本。對于腳本我認為用現成的比較好,自己寫一個腳本那是需要花費很大精力的,沒有必要。對于編輯器,由于游戲的差異就需要自己寫了,寫編輯器要注意功能與游戲相關,不要去寫太多跟游戲沒有直接關系的功能,因為編輯器是一直可以更新的。另外,為了使開發不過于枯燥,可以先開發游戲,等到需要編輯器的時侯再去寫編輯器,這樣會好很多。
編輯器和腳本在有一定規模的游戲中具有重大的作用,要想提高游戲的可維護性,這個是要做的,也有利于策劃和程序的合作,加快開發進度。
四、本人的開發
我目前的目標是做出一個完整的三國,而各個部分不需要太深入,我目前追求的是廣度,而非深度。我需要通過做完整的三國探索出一個完整三國的結構,得到三國當中各個系統的實現思路,有個這個思路以后,就可以在各個系統往深度發展。所以對于本人目前的開發,還是以探索為主,為提高自己的開發能力而進行的開發,并不是真正意義上的開發,也就是說目前的游戲還不適合給玩家看,比較適宜技術討論。我現在所需要的并不是一些純技術的技術,而是需要跟三國各個系統實現相關的技術。
戰爭的行軍部分只是我目前開發的一個階段,后面還有戰斗系統等等。整個三國游戲包括戰爭和內政兩大部分,每個部分分為若干個系統,平均每個部分完成需要半年以上,也就是說這一年多,我的目標將仍然是做出一個完整的三國。 

 


三國之家 2011-03-15 09:02:55

[新一篇] 吞食天地 列傳.三國游戲縱橫談

[舊一篇] 光明與黑暗的交織——光榮與三國志25年亂談
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表