天天看點

IOS塔防遊戲《坦克對大炮》的開發設計記錄

IOS塔防遊戲《坦克對大炮》的開發設計記錄

引子

    遊戲已經在App Store上線幾個月了,一直很想寫點什麼記錄一下。真要寫的時候,卻又發現無從下筆沒啥好寫的。在2012年進入IOS,對于獨立遊戲開發來說,已經很晚了。前兩三年抓住機會的獨立開發者多少已經掘到了第一桶金。12年的時候IOS移動遊戲已經炙手可熱, 大量的公司和小團隊湧入。App Store刷榜橫行,榜單早就是公司刷榜的自留地,當然這時候,有一些獨立開發者還在做着App Store是最後一片後花園的夢。

操蛋的蘋果

    其實2011年以前,我基本沒接觸過蘋果的裝置,也不知道App Store是個什麼東西,沒見過iphone,更分不清ipad和ipod的差別。用過的最潮的手機就是Nokia街機E72。如果非要說用過蘋果,那就是很多年前抽獎中過一個nano,不過當時對它毫無興趣。

    蘋果其實是個很操蛋很霸道的玩意兒,對于開發者也一樣。要參與蘋果的遊戲,就得買蘋果的裝置,這就是遊戲規則。很多想嘗試開發蘋果遊戲的人,都被這招霸王條款吓跑了。這一年不少哥們同僚都曾經打電話問我,說他們也想試着弄弄蘋果遊戲App開發玩玩,是不是一定要買個蘋果電腦啊。我一般都說是。然後他們就挂機退卻了。我想這其中一定吓跑了不少驚才絕豔的人。

  對于中國的收入水準來說,個人開發者要弄齊一套開發蘋果的開發環境,還是要一些投入的。咬咬牙很臭屁的從香港買了當時最高配的MacBook Pro, 又帶了一個黑色的ipad2。在東單買了IPhone 4S。突然家裡就多了一堆圓角的白色充電器,有時候看着很有喜感。說實話,買這些東西之前,蘋果的電腦和手機本身對我沒啥誘惑,我隻不過需要開發和測試工具。所謂的欣喜,隻是湊齊了開發工具之後的成就感,還有淡淡的雖千萬人吾往矣的肉疼,一下子搗騰出去幾萬塊。

    當然,痛并快樂着的曆程才剛剛開始。MBP拿回家之後,我突然發現自己沒有VISA信用卡,連apple ID都注冊不了。于是跑去銀行搞定信用卡先,半個月後卡終于到手了,發現銀行給我辦了一張國内的信用卡不帶VISA的。我了個去,吐血三升,又花了半個月再去辦理。

    注冊蘋果開發者也算是一場磨難,99$的注冊費還算小事,搞明白和填寫蘋果開發者長篇累牍的英文條款就花了好幾天的時間。上趕着給人送錢都這麼難,個中滋味,一言難盡。(後來中國蘋果ID終于可以用儲蓄卡注冊了,蘋果在改變世界,中國也在改變蘋果。這是後話了)

    蘋果的開發語言Object C也是個操蛋的玩意兒。以為憑着自己的C/C++功底,搞定Obj C還不是分分鐘的問題。但是實際上蘋果的開發語言和環境都是自成一體的,用慣了PC和微軟那一套東西的開發者,剛上來必然會水土不服。Obj C的文法在前幾個月讓我别扭不已,Mac的作業系統、XCode的開發環境,也一直搞得我火冒三丈手忙腳亂。Obj C的語言關還沒過,遊戲開發的引擎關又來叫闆。雖然隻是一個2D引擎,Cocos2d依然來者不善。我很苦逼的抱着引擎啃了很久,感覺以前十多年的3D遊戲引擎開發經驗,突然就變輕了,像燒火棍一樣不值錢了。

    後來一直到用Obj C和cocos2d把遊戲寫了得差不多了,有人才告訴我有cocos2d-x這麼個東西,用C++就可以了,根本不用跟Obj C丫的死磕。于是又吐血三升。等我開始打量cocos2d-x的時候,有人遊戲上了App Store榜首,告訴我用過Unity 3D之後才知道啥叫糙快猛。

    是以說,徒有悍将之勇隻知道閉門造車埋頭苦幹也是不行的,在遊戲行業這一畝三分地兒,也得有與時俱進的精神。更何況是蘋果IOS移動平台這茬兒新地界。

為什麼是塔防

    遊戲題材一開始就標明了塔防,這沒啥好說的。IOS觸屏手機本身能适應的遊戲類型就不多,目前閱聽人良好的就那麼幾種。塔防算是一個很重要的分支。塔防的操作模式和節奏都比較适合觸屏的操作,以前在浩方平台上玩過一些War3 TD Mod,也還覺得蠻有意思。IOS平台上也找了幾個塔防遊戲來做調研參考,最早看的是《三國群毆傳》,這款遊戲算是老牌塔防遊戲App。我覺得美術的風格把握得很到位,地圖緊湊,人物KUSO。

    第二個看的是《三國塔防魏傳》,這款遊戲是大企鵝代理的,還去聽過他們的這款遊戲開發設計的講座分享。三國塔防的美術也很細緻,地圖比較大,兵種也有所差別,不過引入的道具讓我覺得繁瑣,可能是為了收費的Slot。

還有一個玩得比較多的是《塔塔水浒》,這款塔防遊戲引入了英雄的概念,多了一些操作。不過早期版本遊戲的難度很大,而且一局的時間又特别長,大概半個小時。打到最後失敗挫折感就很強,不想再打。後來我提了一些意見,官方居然還有回報。

著名的《Kingdom rush》反而沒有玩過,國内風頭一時無兩的《保衛蘿蔔》也是到後來才出世,小猴塔防也是上線後才知道的。

    玩别人的IOS塔防遊戲做調研參考,主要是以之為鑒。自己的遊戲設計好不好玩,能不能跟它們有所差別,什麼樣的問題自己覺得不好不能犯。

    比如地圖緊湊的問題,我覺得一個塔防關卡地圖,在iphone裡剛好一螢幕就好。如果大于一屏,就需要玩家多做操作去拖動地圖,這個體驗我認為不是很好。這個在三國塔防裡就很明顯,在《小鳄魚愛洗澡》裡面有些場景也是。不能一眼看到整個地圖關卡,會讓我覺得不踏實不舒服,而且還需要頻繁拖動地圖,破壞整個遊戲的操作感。

    塔防的精髓之一,就在于炮塔的種類、威力和功用。玩三國群毆也發現一些問題,比如有的地圖造滿投石車之後,就基本不用管看着就行了。這種情況是我不願意看到的。是以我後來在設計塔防的炮塔的時候,就很注意避免類似的問題。

為什麼是坦克

    遊戲的美術風格的确定也費了不少周折,因為美術我自己做。當時中國App Store很多塔防遊戲都是三國流,确實三國武将小兵、炮塔弩車的模式,很适合塔防的調調。我很喜歡三國群毆KUSO的畫風,但是真要自己去畫,問題就來了。作為一個資深引擎程式員出身的我,根本就無法把握一個Q版的武将人物造型。别說武将了,實際上,我連一個拒馬墩都畫不好。而且,手機遊戲上的圖檔,是像素畫的級别。在32X32、64X64的圖檔大小裡面,就要表現出人物風格造型。這個完全超出了一個眼高手低的程式員的手繪範疇。我摩挲着臨時購入的廉價Wacom Bamboo繪圖闆,看着十幾張淩亂而慘不忍睹畫稿,一時萬念俱灰。

    讓我去從其他遊戲裡扣點圖檔出來用用?這個又明顯不符合一個自命不凡的程式員的氣節風尚。我是一個很注重版權的人。

    在美術風格上糾結了很久,可能有一兩個月吧。我突然想起了20多年前,我小時候一口氣玩過一百多關的坦克大戰。武将畫不好,我照貓畫虎畫幾個磚塊和坦克總行吧?好歹哥也曾經在國小繪畫比賽中得過名次。

    有坦克有炮塔,遊戲就叫《坦克對大炮》吧。

    實踐證明,其實坦克也不是那麼好畫的。我每天都為每種坦克的造型頭疼,可能一周也就能搞定一輛坦克。美術弄了幾個月,坦克造型、炮塔造型、遊戲特效、粒子設計、場景地圖貼圖、UI圖檔都陸續差不多弄好了。還借鑒了一些國外開源的像素美術資源(當然要認真遵循别人的協定)。

    遊戲出來之後,不少人回報都覺得美術是短闆。我自己也覺得确實那個。。。咳。。。咳。。。拿不出手。不過能自己搞定整個遊戲美術,也算多了一次經曆。這種感覺很不錯。凡是有得必有失,咱要魚不要熊掌。

程式和引擎

    程式開發方面,反倒沒什麼好說的。cocos2d引擎本身是有一些坑的,比如有一次調試到晚上1點,淩晨起來接着Debug。後來發現是被cocos2d引擎的action機制擺了一道。在有複雜情形和需要精确控制的遊戲邏輯進行中,action機制相當不可靠。有時候遊戲中頻繁出現莫名其妙的情況,反複測試調試修改都不行。最後丢棄使用引擎中action的部分,自己重新實作類似機制,問題迎刃而解。這種類似的問題出現過不止一次。趟平了這些坑,就過去了。

   蘋果的模拟器調試和真機調試,也是有一些差別的。比如模拟器可能有些檔案名大小寫是相容的,但是到了真機裡面就是大小寫敏感的,以前運作正常的遊戲就會報錯崩潰。真機聯機調試,跟itune安裝測試,也是有一定差別的。聯機調試沒問題,安裝測試不一定沒問題。這個也是我付出了一次稽核被拒的經曆,才得到的教訓。

穿刺炮的設計

我隻打算做一款簡單的塔防遊戲,但是塔防要做得玩起來有點意思,也需要下不少功夫。其實這是廢話,任何遊戲要好玩,都得下功夫。

雖然我事先考察了一些塔防遊戲,但是我從來沒有想到照抄或者借鑒這些塔防遊戲的玩法和設計。好不容易要做一款獨立遊戲,自然要做自己的遊戲,當然,從其他我喜歡的遊戲裡借鑒是有的。或者說受了深刻的影響。就像2005年我們做MMO RPG的時候,無一例外或多或少都會受到WOW的影響一樣。這個後面會陸續說到。

    設計的炮塔裡面,有一種炮叫做穿刺炮,子彈有穿刺屬性,可以穿刺攻擊多個目标,造成一連串傷害。但是為了不讓這種炮特别逆天,同時能夠清晰的表達穿刺特效,我把這種穿刺炮的子彈速度控制的比較慢。但是在測試過程中,我發現很少有玩家會在實戰中使用這種穿刺炮,甚至包括我自己。

    我後來就想,為啥呢?我發現是現有的穿刺機制,并不足以鼓勵玩家使用這種炮。因為要控制炮彈穿刺打擊幾個坦克目标,還是比較困難的。對炮塔擺放位置要求很高,并且需要冰凍減速炮的配合。

    我要做的是要鼓勵玩家多利用穿刺炮的機制,鼓勵玩家最大化穿刺的傷害。當時Diabolo 3剛剛出來,我正在玩惡魔獵手。作為暗黑系列AMA式的人物,穿刺箭是招牌技能。有一個穿刺箭的符文,就是每穿刺一次,攻擊力就增加70%。我覺得這個設計不錯,就是我要找的東西,于是借鑒過來用。這樣穿刺炮在穿刺多個目标之後,可能就會打出出很可觀的傷害。

    然後我發現,這樣的改進,穿刺炮的使用率還是不高。似乎還差點什麼東西。穿刺炮可以升到3級,每級也就增加一次穿刺次數而已。更新到最進階的炮台,并不能帶來激動人心的收益。我後來考慮讓最進階的穿刺炮獲得一個破甲屬性,達到最大穿刺次數以後,會對坦克産生破甲效果。不過因為我糟糕的美術功底,畫了一個破甲特效之後,自己都看不下去。于是考慮搞點簡單的效果,最後把破甲特效改成了感電特效。

    最進階穿刺炮有一定幾率對坦克造成感電效果,每穿刺一次,感電的幾率增加,當達到最大穿刺數的時候,則100%觸發感電特效。感電會在坦克身上引起閃電火花特效,這時候所有炮塔對于坦克的傷害都加倍,并會減緩坦克的速度。好吧,玩DNF(地下城與勇士)的同學可以笑了。

    穿刺炮的設計,後來在炮塔群裡輸出最大化傷害時,起到了一些作用。不過上線之後,我發現穿刺炮的出場率還是沒有預期的高,于是在第二版中稍微強化了穿刺炮的射程,并在不影響穿刺特效表達的情況下,調高了炮彈飛行速度。 

紅衣大炮

    遊戲裡有一種炮塔叫紅衣大炮,遊戲名字都叫《坦克對大炮》,那麼紅衣大炮自然是威力最大的一種炮了。紅衣大炮不僅炮彈威力最大,而且命中之後有範圍爆炸效果(參見星際1的坦克炮)。爆炸之後還有一定的Knock Back作用。2級紅衣大炮的爆炸還附帶灼燒效果(灼燒Dot傷害)。最進階的紅衣大炮,甚至有一定幾率擊暈坦克(Stun特效)。看上去很不錯是不是? 

    不過我當時犯了矯枉過正的錯誤,為了防止出現類似無腦投石車那樣無敵的問題(或者可以參見帝國時代1的弩車),我嚴格控制了坦克的威力,而紅衣大炮的價格又很貴。是以紅衣大炮在第一版上線的時候,成本效益很低,玩家根本不買賬。有些玩家開始還造一個玩玩,後來發現坑了就不造了。

    後來我發現紅衣大炮是第一版遊戲中出場率倒數第二雞肋的炮塔。于是在第二版設計中,調整了炮彈威力、爆炸範圍、Knock Back距離、以及強化了大炮的射程。通過這些調整,後來新版本上線之後,在有些地圖的地形上,可以演化出以紅衣大炮為主的打法,甚至是完美過關的打法。 

多重射擊炮

    每個遊戲裡面都有一個散彈炮,無論是魂鬥羅還是打飛機還是塔防。多重射擊炮自然就肩負了這樣的使命。上面既然說了倒數第二,那麼這個就是第一版的倒數第一了。沒有人喜歡多重炮,因為它很弱。多重炮剛開始的設計就是級别越高散彈越多,升到最進階的時候,可以觸發“亂射”效果。說到亂射,玩過DNF的最帥的漫遊槍手同學肯定笑了。其實剛才說到穿刺攻擊,應該也有玩彈藥的同學笑了。

   當然第二版更新,多重炮也是一頓大改。我把亂射技能改到了2級就能觸發,3級技能改成了彈幕排射。因為這時候我正在玩LOL(英雄聯盟),賞金女槍的大招“彈幕時間”似乎很不錯。

玩家的饋贈

雖然第一版上線的《坦克對大炮》的3種炮塔的數值設計有各種問題,但是總體上還是一個數值非常平衡的遊戲。好吧,實際上這個遊戲總共也隻有5種炮塔。但是剩下的兩種炮塔:連環弩、冰凍減速炮,數值做的很平衡。

所謂的平衡,就是有一些數值平了以後,才能發現不平衡的。是以在第二版的上線版本中,連環弩、冰凍減速炮的數值,我一個字也沒動,也不敢動。因為很多人以這兩種炮塔為主力把整個遊戲所有關卡打通關了。雖然大家都一緻表示遊戲關卡很難,有些炮很雞肋。但是有人通關了我還是很高興。是非常高興。

    最早通關的玩家,是大艾格拉斯的策劃總監張總,也是後來App Store紅透半邊天的ARPG 《英雄戰魂OL》的總設計師。這個對我來說,是很大的肯定。因為遊戲上線之後,說實在話我也有些忐忑,不知道遊戲到底有沒有人喜歡玩兒,不管有多自命不凡,盡管每個關卡都測試過500多遍,其實還是沒底兒。後來陸續有更多玩家通關,交流關卡的打法,我的這種緊張忐忑才緩解了一點。

    玩家也提出來不少建議和想法。比如第一版打法比較單一,主要就是冰塔減速凍住,連環弩輸出傷害。

    遊戲裡确實隻有冰凍減速塔一個主要控制手段。其他的控制其實也有,比如3級穿刺炮的感電減速、3級紅衣大炮的擊暈Stun、Knock Back。但是因為第一版後兩種炮塔的雞肋,這些控制手段也都沒有出場機會。一直到第二版更新以後,我強化了其他炮塔,并重新校驗了一下各種炮塔的子彈速度,才讓打法和炮塔組合更多樣了一些。

   為什麼要強化子彈速度呢,因為這款塔防遊戲跟其他的塔防不太一樣,炮塔不是鎖定攻擊的。每顆炮彈的攻擊都是真實的飛行碰撞。我當時過于強調了冰凍減速炮的作用,是以其他炮塔對于冰凍減速炮依賴很大。如果沒有減速或者冰凍控制,炮彈彈道經常會打不中坦克。後來經過玩家回報和思考,我發現這麼設計過度也有問題,過度依賴冰凍減速,也會抹殺其他各種炮的特性,造成單一的打法,也增大了遊戲難度。

   我有一個習慣,就是很注意現場觀察玩家的操作。在遊戲發售前,這項工作我做了很多次,主要是找熟人做測試,從十幾歲到幾十歲的都有。那怕是有的玩家玩了一下就丢開的,也要琢磨一下為什麼。比如我發現了不少玩家使用iphone玩這個遊戲的時候,習慣使用拇指操作,而不是我原來想象的那樣用食指。這樣就要針對這種操作習慣,對于遊戲的UE做一些微調。如果一直用模拟器測試,這些問題是發現不了的。而如何微調以适應這種玩家的操作習慣,也不是空想就能調整好的,除了觀察玩家,還需要仔細琢磨其他遊戲是怎麼做的。比如大企鵝的遊戲一向在UE方面都做的特别好。

    遊戲的關卡長度和遊戲節奏也是一個問題。很多人都知道手機遊戲用碎片時間啥的上等理論。實際上很少人去實踐。為了感受遊戲的長短節奏,我半年時間都在坐地鐵的時候玩自己的遊戲,主要是體驗坐多少站可以玩一關。還有其他場合,比如銀行排隊、等人、五谷輪回的時候。  

單機需要平衡麼

    我想做的是一個嚴謹的遊戲,雖然隻是一個玩票的塔防遊戲。

    很多玩家反應最多的是遊戲難度太大。特别是第一關就有不少人過不去,甚至有個手機遊戲App的網站編輯,打了3個晚上第一關都沒過去。這個跟第一版有些炮塔威力不夠有關,當然确實是難。

    我把遊戲數值和金錢摳的很死,前期如果開局不好,比如炮塔搭配不好、或者造塔地形沒選好、或者攢錢不花的話,就會造成開局不利的劣勢,逐漸積累劣勢和錯誤,就會造成遊戲崩盤過關失敗。

    當然如果懂得利用地形,善于搭配炮塔,利用各種炮塔的特效的話,遊戲過程中也會享受到闖關成功的回饋,甚至是完美過關的巨大成就感。還有,很多關卡需要嘗試多遍才能打過去是必須的,包括我都經常折戟。我曾經給人示範第5關怎麼打,結果我被滅了。

    有的玩家打了幾天通關、有的玩家陸續玩了幾個月才通關、也有玩家幾個小時就全通的。還有的玩家為了追求每個關卡都完美過關,經常拿出來玩玩的。

    有人問我為什麼隻做16關?因為每一關都要測試500遍以上,就為了微調數值,做到關卡經得起推敲。可能為了數值是0.5或是0.3的,就要一下午反複的測試某一關或者某一個資料幾十次。

    我實在沒有精力在第一版做很多的關卡。因為做每一關都挺費勁兒。做完16關之後,都有點江郎才盡的感覺。

    大艾格拉斯的策劃總監張總曾經給我推薦過小猴塔防,說這樣的塔防單機才是方向。數值平衡和嚴謹并不重要,單機遊戲的要的是爽快感。而《坦克對大炮》的數值卡的太嚴,是以很難有這樣痛快的感覺。張總的話雖然我不是總是完全同意,但是他說的話我總是會琢磨很多遍。因為張總每次都能發現很多好的遊戲,并發掘其中的創意和本質。換句話說,如果有一個人能十幾年如一日的專注尋找遊戲的奧秘,每天玩好幾種遊戲,在躍層别墅擺一個街機,我也會尊重他說的見解。

   我後來也對小猴塔防的模式想了很久,一個能在很多國家都排在Rank榜單Top 200的獨立遊戲,并且出到了第5代,這就值得思考。是以雖然當時我堅持說要走數值平衡路線,我還是在第二版更新中做了很多改動。有很多就是為了強化遊戲的爽快感和打擊感。

   為了兼顧爽快感,《坦克對大炮》後面的版本,可能還會推出一個瘋狂對攻模式。主要打得以酣暢淋漓為主,弱化數值的嚴謹性。這個版本早就有了構思,在程式結構上也做了鋪墊,現在就隻當劇透吧。 

    我對于遊戲這種平衡的執拗來自哪裡呢?我後來也反思了很久。我後來想到了我曾經打過幾萬局的街霸對局。這是一個嚴謹平衡的遊戲,也是對于打擊感的诠釋。如果一個人玩了十幾年街霸,而且還在玩兒,可能就會有這種執拗。

重點

    好吧,開始說重點。這款遊戲的上線情況不是很理想。App Store中國榜單排名,最好到過政策遊戲68名,這還是限免的狀态。平時收費下載下傳的話,名次要更靠後。在美國、加拿大、歐洲、日本有一點付費下載下傳收入。

目前和以後

    一直在琢磨觸屏手機上的動作遊戲,主要是橫版動作格鬥類。俯視角的動作類遊戲也有考慮。在觸屏時代,這裡面可以研究的東西很多。不是簡單移植那麼簡單。

  特别鳴謝

     曾經兩度排行App Store榜首的B總在開發過程中給了我很多支援。

     大企鵝軟體架構師蛙總在開發過程中也有一些精神上的支援。   

     大艾格拉斯策劃總監張總就不再提了。

2012.12.28

《坦克對大炮》 App Store 連結: 

https://itunes.apple.com/cn/app/tank-vs-cannon/id558724834?mt=8