Flash手游《孤膽英雄》獨(dú)立開(kāi)發(fā)者專訪
《孤膽英雄》是一款采用Flash技術(shù)開(kāi)發(fā)的回合制RPG游戲,游戲打包成MRP功能機(jī)手機(jī).APK游戲格式。孤膽英雄講述的是一位英雄去追找黃金大盜,在路 途中遇到各種各樣的人物與之戰(zhàn)斗的故事。游戲是以消除+回合制戰(zhàn)斗的模式,通過(guò)消除不同的色塊來(lái)進(jìn)行不同攻擊方式,還可以使用技能和魔法。游戲中有不同的 成就需要玩家自己去獲得,通過(guò)提交積分可以知道自己的分?jǐn)?shù)在所有玩家中的游戲排行。
發(fā)布后,得到了5萬(wàn)左右的功能機(jī)用戶下載。目前游戲只完成PVE戰(zhàn)斗模式,未來(lái)將加入PVP戰(zhàn)斗模式。
《孤膽英雄》獨(dú)立開(kāi)發(fā)者 葉鑫
葉鑫,目前主要從事webgame開(kāi)發(fā),AS3前端主程序。4年AS開(kāi)發(fā)經(jīng)驗(yàn),開(kāi)發(fā)過(guò)單機(jī)游戲、網(wǎng)頁(yè)游戲、SNS社交游戲,以及手機(jī)Air游戲,主要以AS開(kāi)發(fā)游戲。
編程之路
08 年左右,剛剛開(kāi)始推出開(kāi)放平臺(tái),那個(gè)時(shí)候的社交游戲都是文字形式,有些采用JavaScript代碼,葉鑫覺(jué)得采用Flash會(huì)有更好的表現(xiàn)效果,從那個(gè)時(shí)起開(kāi)始學(xué)習(xí)AS。此前,葉鑫學(xué)習(xí)Java,雖然兩者開(kāi)發(fā)方式不同、代碼相似,但開(kāi)發(fā)思路卻大不一樣。通過(guò)多年的磨練,并實(shí)戰(zhàn)眾多項(xiàng)目后,幫助葉鑫逐漸健 全知識(shí)體系,最終擔(dān)任了AS主程的職位。
他表示學(xué)習(xí)語(yǔ)言或技術(shù)并無(wú)妙招可言,就是多看資料、多寫(xiě)代碼、多做項(xiàng)目,他認(rèn)為將軍不是軍校讀出來(lái)的,是戰(zhàn)斗中打出來(lái)的。
葉鑫曾獨(dú)立開(kāi)發(fā)過(guò)一款A(yù)ir手機(jī)游戲《孤膽英雄》,這款游戲是由他自己策劃、編程,目前下載量過(guò)五萬(wàn)。
讓我們一起走進(jìn)《孤膽英雄》獨(dú)立開(kāi)發(fā)者、資深A(yù)S工程師葉鑫的世界,一同重溫他的開(kāi)發(fā)之旅。
5件“正確的”事情 幫助游戲順利開(kāi)發(fā)
1. 戰(zhàn)斗系統(tǒng)流程自動(dòng)化
回合制戰(zhàn)斗中,人物根據(jù)各自的出手順序發(fā)起攻擊,當(dāng)某一方受到攻擊后,采取防御,魔法來(lái)抵擋對(duì)方的攻擊。攻擊方也可以采用技能給對(duì)方造成更大的傷害。整個(gè)過(guò)程都是一氣呵成,自動(dòng)而成。在游戲設(shè)計(jì)中需要引入這種流程自動(dòng)化處理的解決方案。
2. 對(duì)象池技術(shù)的使用
游戲是根據(jù)消除色塊,然后決定給對(duì)方造成什么樣的攻擊,色塊的生成和銷毀非常的頻繁,如果不停的New和delete的話,其實(shí)對(duì)內(nèi)存和cpu的要求是非 常高,游戲的性能不夠好,特別是在手機(jī)上運(yùn)行。引入對(duì)象池的技術(shù),先生成一定數(shù)量的色塊,需要的時(shí)候去里面取,不需要的時(shí)候放回到池中,池中的對(duì)象數(shù)量不 夠,臨時(shí)生成不足的數(shù)量。這樣可以很好的解決上述所提到的問(wèn)題。
3. 回調(diào)函數(shù)的使用
游戲不僅僅是發(fā)布成apk的格式,還發(fā)布成了功能機(jī)可以運(yùn)行的格式。功能開(kāi)發(fā)環(huán)境不支持監(jiān)聽(tīng)自己的事件,或者拋出事件這樣的事件模式,方案就是采用回調(diào)函數(shù)來(lái)處理。
4. 故事情節(jié)的自定義配置
RPG游戲存在很多的人物情節(jié)對(duì)話,這些對(duì)話文字需要做一個(gè)配置文件來(lái)定義,在某個(gè)關(guān)卡需要用到的時(shí)候,再調(diào)用相關(guān)的腳本來(lái)執(zhí)行。采用自定義的模式,非常適合以后的更新和增減。
5. 人物動(dòng)畫(huà)的處理
人物的動(dòng)畫(huà)處理是最傷腦筋的地方,要保證游戲整體大小,還要保證游戲的動(dòng)畫(huà)品質(zhì),這個(gè)是個(gè)很煩的地方。采用flash的關(guān)鍵幀播放部分動(dòng)畫(huà),分2個(gè)部分來(lái) 處理。前面按照幀播放,后面把前面的動(dòng)畫(huà)倒播一次,這樣可以使用更少的圖片,達(dá)到動(dòng)畫(huà)效果。后來(lái),我打算采用骨骼動(dòng)畫(huà)來(lái)處理,但是功能機(jī)不支持,所以沒(méi)有 采用骨骼動(dòng)畫(huà)的技術(shù)。
游戲上線后,浮現(xiàn)的5個(gè)“欠缺”
1. 游戲的策劃不到位
首先游戲是我自己策劃的,程序出身,沒(méi)做過(guò)策劃的工作。所以游戲做出來(lái)之后,玩家看到這樣的題材很有興趣,但是玩下來(lái),很容易就過(guò)了關(guān)。沒(méi)什么道具需要 買(mǎi),非常的簡(jiǎn)單的玩完了這款游戲。PVE關(guān)卡總共才15關(guān),實(shí)在是太少了。數(shù)值策劃也不到位,有些關(guān)卡發(fā)動(dòng)幾次攻擊就贏了。
2. 道具收費(fèi)點(diǎn)設(shè)計(jì)不夠好
玩家通過(guò)了第一關(guān),就可以增加很多的屬性值,直接降低了后面關(guān)卡的挑戰(zhàn)難度,沒(méi)有用戶需要購(gòu)買(mǎi)道具。道具只有2種,幾個(gè)技能道具和魔法道具。游戲的坑沒(méi)有挖好,所以沒(méi)有人往里面跳。
3. 模塊耦合度過(guò)高
開(kāi)發(fā)的過(guò)程比較急,模塊劃分不夠清晰,而且耦合度非常的高,造成后面升級(jí)的一些麻煩,甚至是分工合作開(kāi)發(fā)也關(guān)聯(lián)的太深。
4. UI布局不合理,操作流程不簡(jiǎn)潔
游戲發(fā)布后,發(fā)給一些朋友去試玩,他們居然不知道怎么個(gè)玩,真是失敗了。說(shuō)明游戲新手導(dǎo)航?jīng)]有做好,UI不夠簡(jiǎn)潔。界面堆積的東西太多。
5. 趣味性不夠好
一個(gè)非常重要的一點(diǎn)就是,當(dāng)時(shí)我們做游戲有點(diǎn)閉門(mén)造車(chē)。自己不去玩別人的游戲,只是一心自己在YY,出來(lái)的東西,啥不像。其實(shí)《孤膽英雄》很像日本的一款 游戲《Puzzle & Dragons》,戰(zhàn)斗模式上很像,那個(gè)時(shí)候《Puzzle & Dragons》在國(guó)內(nèi)根本沒(méi)多少人知道,我就的《孤膽英雄》就發(fā)布了。其實(shí)我們?cè)谟螒虻耐娣ㄉ辖梃b一下卡牌的玩法,說(shuō)不定《孤膽英雄》就不是現(xiàn)在的《孤 膽英雄》了。
技術(shù)與效率
目前,葉鑫主要使用Adobe Flash CS5.5, 用Flash Builder 4.5來(lái)做開(kāi)發(fā)。在采用FB來(lái)做AS代碼開(kāi)發(fā),然后使用Flash cs5.5來(lái)做UI, 另外自己開(kāi)發(fā)一個(gè)插件,flash cs5.5的插件(*.mxp)來(lái)將ui上的組件通過(guò)jsfl一個(gè)一個(gè)讀取出來(lái),并生成AS代碼,縮短開(kāi)發(fā)周期。游戲的資源都是通過(guò)代碼new出來(lái)的,這 樣可以最大化的利用重復(fù)的資源和節(jié)省大量的耗費(fèi)在UI的開(kāi)發(fā)周期。
他個(gè)人非??春肁ir,認(rèn)為未來(lái)網(wǎng)頁(yè)游戲開(kāi)發(fā)者轉(zhuǎn)向Air開(kāi)發(fā),勢(shì)不可擋。通過(guò)Air生成多平臺(tái)的原生代碼,是Flash游戲開(kāi)發(fā)者,僅僅關(guān)注Flash 開(kāi)發(fā)本身,依然采用以前的開(kāi)發(fā)模式,就可以開(kāi)發(fā)手機(jī)游戲。Stage3D是個(gè)很火概念,2012年才出來(lái)的東西,涉及很多新的知識(shí),我們flash開(kāi)發(fā)者 必須跟進(jìn)adobe公司的腳步。
趣味+創(chuàng)新=用戶
葉鑫最后談到,如果想讓你的游戲吸引更多的用戶,創(chuàng)新、自己的想法是必不可少的,還一切要從趣味性上出發(fā),一定會(huì)得到玩家的擁護(hù)和喜愛(ài)。