台灣首款大叔系手遊《獸魂戰起來》現正募集封測玩家!

《獸魂戰起來》是由台灣遊戲開發團隊「猴子靈藥」製作的手機遊戲,製作期長達三年之久,如今終於走到封測這一步啦!

除了非常有病的一款遊戲開發三年以外,《獸魂戰起來》更是台灣自製遊戲中少見的「回合制 X 奇幻系 X 軍團戰」類型。

遊戲中的玩家,扮演獸魂部落的魯宅獸人二王子,因為大酋長病倒,大王子出征後下落不明,雖然只想成天耍廢,但因為快被滅國了,只好「了不起,負責」一肩扛起中興獸魂部落的責任,挺身而出對抗虛偽的人類、愛美的精靈和貪婪的矮人所組成的「正義聯盟」。

台灣首款大叔系手遊

俗話說:「年紀大了,手速就慢了,可以玩遊戲的時間也少了。」沒關係,《獸魂戰起來》的非首創回合制系統,讓大叔們可以一動一動慢慢來,謀定而後動,不想動就不要動,愛暫停就暫停,動腦佈局、指揮軍團,隨時開啟、隨意放下,彈指間享受遊戲樂趣。

怪物奇獸的獨特魅力,從小玩遊戲長大的大叔最懂。在《獸魂戰起來》的世界裡沒有蘿莉、沒有爆乳美少女、沒有華麗唯美的卡面––––這一切,都是為了給年紀稍長但又想要玩遊戲的成熟大叔們,滿滿的大~怪~物~~~!

舉凡獸人、哥布林、巨魔、食人妖、石像鬼、元素、吸血鬼、狼人、惡魔、黏怪、魅魔、鳥妖等等等等,幾乎涵蓋所有知名的奇幻系生物!而且不管是「黑妖+黏怪」、「哥布林+魔像」或「吸血鬼+元素」的奇耙軍團組合,全都隨你打造!

Continue reading “台灣首款大叔系手遊《獸魂戰起來》現正募集封測玩家!”

想進遊戲業?你那邊還來得及!––––給大學生的行前準備建議【企劃篇】


所有的玩家們!歡呼吧,雀躍吧!離開地球表面吧!

或許你未曾注意或早已處之泰然,現在的我們,正處於一個「玩遊戲」的黃金盛世時期––––玩家可用極低甚至免費的代價,取得海量到就算每天玩 24 小時都玩不完的遊戲。

我們之所以有海量的遊戲可玩,除了世界和平無戰事之外,主因之一是遊戲製作門檻普遍降低,做遊戲不再如煉金術般神祕難解,而是只要學習基本知識,熟悉製作工具,即使在學校念的不是相關科系,也能自行製作出一款又一款的遊戲作品。

單純玩遊戲已無法滿足你的靈魂渴望?不如成為一位創造者吧!

想像一下,你創造出來的名為「遊戲」的東西,不只是「燒瓶裡的小人」,而是個能讓全世界人類驚艷、體驗與感動的載體。做遊戲,是不是好像比玩遊戲更有意思呢?

「你看那位獨自一人做出「麥塊」(Minecraft)的光頭大叔,才做一款遊戲就變成億萬富翁了,只要我能做出夢想中的神作的話……」

然而「人生 Online」的現實是,「做遊戲」並不如想像中的容易,更不如幻想中的美好。

Continue reading “想進遊戲業?你那邊還來得及!––––給大學生的行前準備建議【企劃篇】”

想進遊戲業?你那邊還來得及!––––給大學生的行前準備建議【美術篇】

對玩家來說,相較於肉眼根本看不到的程式碼,或是要玩過之後才能體會到的遊戲樂趣,更直接決定遊戲生死大權的通常就是「美術視覺設計」了。

「一眼定生死?有那麼嚴重嗎?」

不管你聲稱你多注重內涵,就像男生說:「女生的外表不重要,個性好就好。」但如果外表和想像的差距太大,「好感度」一開始就太低的話,根本無法開啟接下來的進階選項。

所以如果光連美術這一關都過不了的話,遊戲中縱然有再厲害的企劃設計或程式技術,也很難被廣大的玩家族群看見,那就太可惜了。

Continue reading “想進遊戲業?你那邊還來得及!––––給大學生的行前準備建議【美術篇】”

想進遊戲業?你那邊還來得及!––––給大學生的行前準備建議【程式篇】

在現今手機遊戲 App 充斥媒體版面的台灣遊戲市場裡,你是否感嘆「舉目望去皆糞 Game」,即便眾裡尋他千百度,卻始終找不著心目中的超完美遊戲?

除了在遊戲中痛電對手、欺侮新手之外,你的心裡是否仍有一絲絲不滿足感,想著「如果是我來做這款遊戲的話,一定可以讓它更好玩…」?

你是否夢想有一天能進入遊戲業,做出叫好又叫座的遊戲?或者你從小就立志,將來長大一定要成為福爾摩沙小島秀夫、行天宮宮本茂,或陽明山山本大介?

但是你現在卻完全沒有頭緒,不知道如何開始準備?不知道應該就讀哪個科系,才能進入遊戲業一展抱負?

若你想要的是「做遊戲」,在如今各種遊戲製作工具與引擎均可以極低代價取得的情況下,製作遊戲的入門門檻變得相當低,你現在、馬上、立刻就可以開始動手做遊戲了。

然而,如果你想要的不只是「做遊戲」,而是把「做遊戲」視為一份可以投入青春並且能領到薪水的正當工作,那麼你要考慮的是:如何取得第一張進入遊戲業的門票。

在「人生 Online」的 Normal 難度中,想拿到這張門票,你有三條路可選:遊戲程式設計師、遊戲美術設計師,與遊戲企劃設計師。

正在看這篇文章的你,如果恰巧是高中生或大學生,即使現在毫無基礎,甚至目前就讀的科系和遊戲沒有任何關聯也沒關係,只要從現在開始努力學習,必定能突破重重考驗,戰勝公司面試官,取得門票並進入遊戲業。

以下就這三個職位提出我的攻略心法。

Continue reading “想進遊戲業?你那邊還來得及!––––給大學生的行前準備建議【程式篇】”

台灣電子遊戲群眾募資誌

「既然你有一個做遊戲的點子,為何不用群眾募資試試看?」

偶爾會在一些場合聽到有人這樣說。但近幾年大行其道的「群眾募資」,對於遊戲開發與集資,是否真的如想像中輕鬆容易?為了解答這個都市傳說,我決定著手搜集台灣電子遊戲群眾募資案的資料。

以下這份文件,盡我所能蒐納了目前所有台灣電子遊戲及相關周邊的群眾募資案。

台灣電子遊戲群眾募資誌:http://goo.gl/AQF2mW

幾點說明:

  1. 「粉絲數」只是抓個募資時的概略值,非目前的實際值。
  2. 「募資案總數」僅列入募資已結束的專案。
  3. 「贊助人次總和」包括募資成功與募資失敗的所有專案。
  4. 「實得款項總額」僅包括成功達標的專案。
  5. 「募資目標」和「實得款項」有兩種貨幣:NT$ 是新台幣,$ 則大多數都是美金。
  6. 項目的條列順序沒有什麼特別的規則,大致上是「已達標」、「未達標」、「進行中」的排序而已。
  7. 和遊戲相關,但募資本體非遊戲的項目,條列在第二個分頁「ACG周邊」中。
  8. 只要猴子靈藥還在,就會持續更新。如有任何錯誤請與我聯繫,我會儘速更正。如有其他想看的統計數據,也可以在底下留言討論。

Continue reading “台灣電子遊戲群眾募資誌”

實作遊戲 App 的熱更新功能

hot-fix-mechanism

寫遊戲這麼久,第一次在遊戲 App 上實作「熱更新」功能。

所謂熱更新,我想大致上可分成兩個層次:

  1. 僅下載圖片、音源等素材檔案,藉由設定檔等方式,無需更新程式碼即可使用新素材檔。目的在於大幅縮減初始 app bundle 的檔案尺寸,使玩家更快更容易下載遊戲。
  2. 除了下載素材檔案以外,亦須下載程式邏輯檔案,目的在於繞過 App Store 審查。正所謂「有 Bug 堪修直須修,莫待 Apple 審核過」,以前的經驗是,經常修好了要命臭蟲後,等待審核過卻是等到「花兒也謝了」,玩家也跑光了。修臭蟲的時效性是關鍵所在。

以工程師的觀點來看,可將「熱更新」功能分解為下列幾個步驟:

  1. 實現 HTTP 下載檔案功能
  2. 檢查本地端與伺服器端的檔案版號
  3. 依下載進度呈現進度條與數字
  4. 程式碼檔案須能區分 32/64 bits
  5. 程式碼與素材檔,支援多重讀檔路徑
  6. 下載完畢後,重新載入圖片等素材檔案
  7. 下載完畢後,重新載入程式碼(Lua 限定)
  8. 檢查檔案正確性,並更新本地端版號

以下詳述各步驟的做法。

Continue reading “實作遊戲 App 的熱更新功能”

如何建置給 iOS 使用的 LuaJIT 靜態函式庫

參考了網路上的一些文章和自己的嘗試,以及解決不同函式庫間的衝突,甚至還嘗試用最新的 Visual Studio 無功而返後,最後總算讓 LuaJIT bytecode 能順利在 arm64 及各種 iOS 裝置上運行無誤了。

為何使用 LuaJIT?

  1. LuaJIT 的效能比官方版 Lua 更好。
  2. 為了將遊戲程式碼編譯為 bytecode。

我原先嘗試使用 Lua 官方版 source code 建置出來的 luac,結果一試才發現在 Mac 上編譯後的 lua scripts,在 iOS 裝置中載入檔案時,會產生 incompatible bytecode error。雖然有其他的解決方法,但實行起來都有不少困難,所以我就想不如來使用 LuaJIT 試試看吧。

測試結果:藉由 luajit 可正確編譯 lua scripts 為二進位格式,並且在 iOS 專案連結 LuaJIT 靜態函式庫後,編譯後的 scripts 也可以成功地被載入執行了。

建置 LuaJIT for iOS 的步驟

  1. 產出可和專案連結的 .a 檔。
  2. 產出可以在電腦上使用的 luajit 檔。
  3. 用 luajit 來編譯 Lua 檔並可於實機上執行無誤。

詳細步驟如下:

第一步:建置靜態函式庫時需要產生出 armv7、armv7s、x86_64、i386、arm64 五個 slice,才可讓所有 iOS 裝置以及 iOS 模擬器都能連結 LuaJIT 建置。

第二步:用 i386 版本的 luajit 產生 arm 32-bits bytecode。用 x86_64 版本的 luajit 產生 arm64 bytecode。

為何「x86_64 luajit 可以產出 arm64 bytecode」依然是個謎,然後我也沒有設定 LUAJIT_ENABLE_GC64 竟然就可以用了。如果有人了解運作原理的話,還請不吝指教。

第三步:把兩種版本的 bytecode 包進 app 中,執行時偵測裝置是否為 arm64,去決定載入 Lua bytecode 的路徑。對,app bundle 中需要將 32/64 bits 兩份 bytecode 一起打包進去。

雖然在 iOS 上不能真的 JIT,但是可以用 LuaJIT 還是有不少幫助,至少幫我解決了原先頭痛的跨平台編譯 Lua source 的問題。

# 建置 i386 版本
make CC="gcc -m32 -arch i386" clean all

# 建置 x86_64 版本
make CC="gcc -m64 -arch x86_64" clean all

# 建置 armv7 版本
ISDKF="-arch armv7 -isysroot $ISDK/SDKs/$ISDKVER"
make HOST_CC="gcc -m32 -arch i386" TARGET_FLAGS="$ISDKF" TARGET=arm TARGET_SYS=iOS

# 建置 armv7s 版本
ISDKF="-arch armv7s -isysroot $ISDK/SDKs/$ISDKVER"
make HOST_CC="gcc -m32 -arch i386" TARGET_FLAGS="$ISDKF" TARGET=arm TARGET_SYS=iOS

# 建置 arm64 版本
ISDKF="-arch arm64 -isysroot $ISDK/SDKs/$ISDKVER"
make HOST_CC="gcc" TARGET_FLAGS="$ISDKF" TARGET=arm64 TARGET_SYS=iOS

建置完成後看到以下訊息表示正確無誤:

Architectures in the fat file: libLuajit.a are: armv7 armv7s i386 x86_64 arm64

完整程式碼請見:https://github.com/HalfLucifer/BuildLuaJIT_iOS

參考資料:

在紳士GAME尋求遊戲性是否搞錯了什麼(1):從《ランス03》談回合制戰鬥

rancethree_00

最近在某個機緣巧合下,遇到一位來自部落的神秘人士,交給我一款「紳士遊戲」《ランス03》,深情款款的對我說:「你玩玩看吧,或許會有些新想法。」於是在水深火熱的專案收尾工作之際,我仍花了些時間,在一週內把這款遊戲通關。

《ランス03》的遊戲長度並不算太長,加上練功打寶的時間,約莫十來個小時便可全破。紳士們應該知道,對於大部份的紳士遊戲來說,「遊戲性」並不是主要的賣點。甚至很多遊戲是「只求有就好」,做為劇情與劇情之間的緩衝者與調味劑,紳士們通常不會對於遊戲性過於苛求,因為遊戲的重點不在於玩法與遊戲性。

儘管如此,《ランス03》裡簡單易懂的回合制戰鬥玩法,讓我眼睛一亮,引起我進一步探究的興趣。

Continue reading “在紳士GAME尋求遊戲性是否搞錯了什麼(1):從《ランス03》談回合制戰鬥”

【演講預告】如何毀滅一個遊戲開發團隊

我這輩子最愛的兩款遊戲其中之一,《Fallout 2》,遊戲裡有個令我印象深刻的角色––土人「蘇利克」(Sulik)。

fallout2_sulik

蘇利克,是個擅長使用近戰肉搏類型武器的可靠夥伴,有機會於遊戲前期加入主角的隊伍。在《Fallout 2》的戰鬥過程中,玩家只能操控主角,無法控制隊伍中其他夥伴的行動;玩家能做的就是給予他們合適的裝備與武器,讓他們自行發揮殺敵本事。

如果你給蘇利克一把藍波刀,他會迅速跑到敵人面前,身手靈活地揮舞刀子,割斷他的喉嚨。如果你給蘇利克一把重鎚,他不會使用,而是拿出刀子或甚至赤手空拳,用自己擅長的方式對付敵人。

如果你給他一把烏茲衝鋒槍,便會見到蘇利克毫不遲疑地拿出槍,站在敵人面前,瘋狂開槍掃射––不管前方是不是有自己隊伍的夥伴在。只要蘇利克的手上有槍,他必定能夠解決敵人,只不過結果經常是滿地敵人的屍體,外加其他夥伴被掃射到只剩下一半的屍體殘骸。

幹掉敵人,同時也做掉夥伴。

蘇利克是個有能力的夥伴嗎?是的。端看你如何讓他發揮長處。倘若你是團隊的領導者,你會給他小刀、重鎚、衝鋒槍,或是把他驅逐出隊伍?

Continue reading “【演講預告】如何毀滅一個遊戲開發團隊”

【翻譯&心得】硬地必須學會愛上行銷

「誰他媽的有空閒去做那些事?」

那些在獨立遊戲開發者間常見的抱怨,正是使用社群媒體––Twitter、Facebook、Google+、Tumblr 等等––為他們的遊戲獲得曝光這件極為耗費時間的事情。這種挫敗感的根源在於:「我正在做這些,是因為我想要做遊戲,為什麼我非得去做那些超級無敵耗費時間、又不是在做遊戲的事情?讓我把時間花在做遊戲上!」

而開發者們的怒氣,往往歸咎於 Steam、App Store 與 Google Play。彷彿如果 Valve、Apple 和 Google 可以把他們該做的工作做好––修好他媽的「可被探索性」(Discoverability),開發者們就能專心致力於打造優秀遊戲,而不用去攪和什麼鬼市場行銷的爛泥巴了。

「修復可被探索性」,是個值得玩味的詞。它涵蓋了現今許多遊戲開發者文章的基礎論點:意指目前的「可被探索性」處於「壞掉的狀態」,必須要有某人來修理它、搞定這件事。這個信仰,廣泛流傳於許多硬地與百萬富翁之間。

Rob Pardo,那位接近傳奇的遊戲界大神,如神諭般地提出警告:「如果這些平台擁有者不搞定這個問題的話,終將會有人踩進來修理它,並且把他們的午餐搶走。」他認為「修復可被探索性」是必然會發生之事,因為它已經壞掉了,而修好它將會帶來破壞性的優勢。

我了解這種感受從何而來。在無邊廣闊的「內容海洋」中,即使你只是想找出其中最精美優良的遊戲、書籍、歌曲或其他創作物,幾乎是他媽的不可能。所有的東西都淹溺於泥沼之中。這些作品想向上浮起、冒出頭來,變成巨大的成功,機率等同於中樂透頭獎。

當現實如此可怖時,想當然爾,必定會有人跳出來搞定它,讓世界變得更美好,不是嗎?

Continue reading “【翻譯&心得】硬地必須學會愛上行銷”