iT邦幫忙

6

如何開發Pokemon Go

從今年7月6日在澳洲和紐西蘭發行開始,Pokemon Go在全球掀起抓寶風潮,開放上線的地區,眾人無不趨之若騖,灑花之處,人潮洶湧,蔚為奇觀。
http://ithelp.ithome.com.tw/upload/images/20160822/20017649rsVwE74TZa.png
為了抓寶開始走上街頭,公園、景點,甚至一些公共場所,以往門可羅雀,自從Pokemon Go上線,立即成為抓寶熱點,終日穿流不息。

在各討論社群、Facebook及Youtube,充斥各種抓寶截圖和熱門據點人群活動的照片及影片。

根據保守統計,目前Pokemon Go的下載數,已超過一億次,成為全球最熱門的App。

不論是在iOS或Android平台上,Pokemon Go的下載量都是高居首位,而平均每日使用Pokemon Go的時間,也迅速成為第一名,達到46分鐘。

影響所及,一些熱門社群媒體及社群交友App,像是Twitter、Tinder、Facebook、WhatsApp、Instagram、Snapchat和Messnger,無不嚴陣以待。

這篇文章不討論Pokemon Go為何會如此熱門,及其延伸的社會、經濟和道德問題,也不會討論如何玩Pokemon Go或是什麼秘技,像是曲球怎麼抛、如何捕獲高CP值的Pokemon或道場攻略。

發揮攻城獅的基本精神,我們來談談Pokemon Go是如何開發的。

大家都知道,Pokemon Go是基於Ingress這個App開發的,你不知道嗎?你也不知道什麼是Ingress?去看維基百科的說明吧!

Ingress是個Virtual Reality(VR,虛擬實境)遊戲,和真實世界的地理狀況結合,遊戲會透過手持裝置的GPS、AGPS以及Wi-Fi資訊確認玩家的位置,而玩家可以透過遊戲的掃描器(Scanner)介面看到自身周圍的能量塔(Portal,也有人說是傳送門)、XM或物品。遊戲地圖上各處散落著白色亮點,這代表XM所在的位置,玩家在接近XM時會自動收集,而對能量塔進行任何操作均需耗用XM。如下圖:
http://ithelp.ithome.com.tw/upload/images/20160822/200176495zD966LvuP.png

能量塔主要是各種建築、雕塑、藝術品等,玩家需親自持手機接近這些能量塔,進行部署(Deploy)、入侵(Hack)、補充能量(Recharge)、發射XMP等動作。

重點在能量塔,這些能量塔的地理位置,提供了Pokemon Go的遊戲基本設置,像是補充基站(Pokestop)、道場(Gym)的地點。

和Ingress的另一個不同點在Pokemon GO是一款Augmented Reality(AR,擴增實境)的遊戲,這之間的差別在,Ingress只能看到遊戲提供的介面畫面,Pokemon Go能看到由手機攝影機提供的實境畫面。下圖是有AR模式,可以看到右上角的AR模式開關:
http://ithelp.ithome.com.tw/upload/images/20160822/20017649z1NNsuprEK.png

經由手機的陀羅儀感測,能夠在實境畫面中偵測玩家手機的空間位置及手指的力道及方向,控制Pokeball的抛射曲線,從而判定是否能捕獲Pokemon。

如果手機沒有陀羅儀呢?還是可以玩Pokemon Go,只是就沒有AR的功能,只能在Pokemon Go提供的VR畫面中玩抓寶。下圖是VR模式,沒有實境背景,完全由程式控制:
http://ithelp.ithome.com.tw/upload/images/20160822/20017649Gu5AozmDWH.png

但,不論是Ingress或Pokemon Go,都是以Google地圖為基礎,才能夠過GPS、AGPS或Wi-Fi的地理定位能力,確定玩家在Google地圖上的位置,從而確定與基站、道場或Pokemon的相對位置,進行遊戲。

談到這裏,我們可以整理出開發類似Pokemon Go的遊戲的基本要素:

  1. Google地圖,能夠在Google地圖上進行運算。
  2. 由GPS、AGPS或Wi-Fi取得地理位標,從而在Google地圖上標示手機位置。
  3. 手機攝影機的控制。
  4. 陀羅儀的控制。
  5. 資料庫應用,像是補給基站、道場和Pokemon的出現地點,及各種參數、道具等等,都要有資料庫來支援記錄。
  6. App的各種場景設計,以及像是補給基站、道場和Pokemon、各種道具的設計。
  7. 遊戲規則制定,這是程式控制流程基礎。

從開發技術來分析,

  1. 至少要能夠使用Swift(iOS)和Java(Android)程式語言。
  2. 至少要能夠應用Unity 3D Engine。
  3. 瞭解Google Maps API,以及整合GPS和Unity 3D Engine的Coding
  4. 遊戲的UI/UX設計
  5. Augmented Reality的開發技術

這些是我能夠想到的部份,應該還有更多的技術要求,想要具體知道更多?

小雨大和鷹大的Flying ITMen在這個週末(8月27日)下午,邀請到雲大來剖析Augmented Reality的開發技術,從而詳細介紹Pokemon Go的開發技術。

Flying ITMen歡迎各位來參加。


1

令人期待呀

/images/emoticon/emoticon12.gif

1
賽門
iT邦超人 1 級 ‧ 2016-08-22 14:13:23

我個人目前戰績:Level 11,捕獲162隻,42個物種。

偶爾玩玩。

/images/emoticon/emoticon39.gif

1
尼克
iT邦高手 1 級 ‧ 2016-08-22 14:40:55

真是可怕的一款遊戲「十年磨一劍」

賽門 iT邦超人 1 級‧ 2016-08-22 15:10:32 檢舉

已經創下五項金氏世界記錄....

2 個月內《Pokémon GO》打破 5 項金氏世界紀錄

感覺好像很好,但超任Q1 虧損 51億日圓,而Q2 虧損 245億日圓,而Pokemon 年收預估為 470億日圓,平均每季 117.5億日圓,止不住虧損啊,上半年虧掉 300億了,下半年不知道還會虧多少,除非任天堂壯士斷腕,把造成虧損的傳統商品全數收掉,相關部門工廠全部結束營業,專心搞好遊戲產業,也許還有一線生機啊,不然,這個遊戲可能會在兩年內易主,如果任天堂撐不下去的話

3
海綿寶寶
iT邦超人 1 級 ‧ 2016-08-23 09:08:13

Pokemon Go 的相關文章和討論已經很多了
我也說不出什麼更有益的見解

我只有一點很不能苟同
就是在媒體的誤導之下
讓有些人以為「GPS定位+相機鏡頭」就等於「AR」
然後就整天 AR 來 AR 去
Pokemon Go 之前屬於小眾市場的 AR
突然間變得人人都很熟悉的技術
不懂資訊科技的人亂講就算了
也沒有真正 AR 界的人士出來指正
最重要的是
也沒人在乎就是了

如果只要開相機鏡頭就算 AR
不用和「實體環境」(Reality)有關聯的話
那我這裡提出我下一個 app 的畫面
各位就知道我說的有多荒唐了

AR 井字遊戲
http://ithelp.ithome.com.tw/upload/images/20160823/200017871nkQhlOsRg.png

看更多先前的回應...收起先前的回應...
賽門 iT邦超人 1 級‧ 2016-08-23 09:11:47 檢舉

海綿寶寶真正高明,一語點出問題所在....

/images/emoticon/emoticon12.gif

只要你加上陀羅儀定位,貼上比卡超就一樣啦, 別想得太誇張

我記得本來的AR擴增實境是結合一些特殊的圖像,你要把那個可供辯識的圖像放在鏡頭前辯識出來才會有立體影像出現。也就是照理說……應該是要在補給站來貼這些圖…但這樣一來大家自己在電腦上秀圖就好了………

Sam, 你說的那個比較像是「實驗室版本」的 AR
常見於各大資訊展或公司 Seminar

我覺得
至少要做得像 這樣才稍微可以看口

0
賽門
iT邦超人 1 級 ‧ 2016-09-06 15:29:06

想問.....

已經刪掉Pokemon Go的,有沒有?

我要留言

立即登入留言