2010年11月1日 星期一

[DEVBLOG]Eve Online的線上工具

Eve這個遊戲,因為他的基本架構以及公司的方針和其他網路遊戲大不相同,所以也玩家的族群也感覺上跟其他遊戲比起來,搞系統開發的朋友不少.
vivio本行也是搞開發的,由於現在在開發的東西一來技術上可能還蠻有趣,二來也希望能得到大家的意見,因此今天來寫一篇一般玩家可能比較沒興趣的東西

先來說說事情的由來.....


EVE ONLINE裡面玩家基本上是以透過Corp組織來聯繫的,由於Corp系統會管理到很多東西,像是POS啦倉庫啦BPO啦等,所以他的介面自然就很複雜,往往為了一點簡單的設定就要搞個半天.

但是即使是他已經很複雜的介面還是有很多大家需要卻沒辦法提供的功能,在LIB的管理上就發生了不少問題,有的問題是可以透過一些技巧可以克服的,但是以下幾個問題一直讓人煩惱(尤其是POS的管理員)

  1. POS燃料的現況要到當地才看得到
  2. POS沒燃料的24小時前開始發出的Alert Mail只有CEO和Director收的到.
  3. 各燃料庫存剩下多少也要到當地才看的清楚

1跟3基本上是透過API取得的資訊就可以查到,透過一些像是EVE Asset Manager的工具也不是看不到,不過問題是每個玩家只能收到自己能有權限能看到的資料,而CEO的FULL API KEY又不是隨便可以給人的.
至於2就更麻煩,由於不能透過API取得系統的Alert Mail(下次改版預定提供MAIL讀取機能,不過包不包含系統MAIL就還不清楚),而且要是能把POS的狀況用更人性化的畫面顯示出來那是沒話說了.

另外一個考量就是,即使做了工具,要安裝啦COPY啦也是麻煩,而且有的環境辦不到(喂,就是你,上班時間還來看遊戲的BLOG真是...不要偷裝軟體被公司修理啊!)

能同時滿足上面的需求的,自然就是最近流行的線上工具(Web Application)了!
(老實說,vivio每天在做的也都是雲端的東西,也不太想做些要在本地執行的工具)

為什麼選擇Google App Engine?

在選擇這個工具的開發平台上,有幾個基本的考量...

  1. Free.除非能用ISK付費
  2. 能用Java.(會的人多,工具也多,我用的熟^o^)
  3. 配置,系統管理等不會太麻煩

由於Google App Engine(以下簡稱GAE)不只能滿足上述需求,更妙的是他內含了透過Google帳號來作用戶認證的機能,這代表使用這個工具的人不需要再去做一個新的帳號來登入(由於LIB在管理上都用Google的服務,所以成員都有Google帳號).

那....你到底正在做什麼?

這是個比較麻煩的問題.
上面的文章看了也知道,這工具一定要用有POS管理權限的API才能使用,所以自然不能給公司外的人看...
已完成的部分是POS的燃料顯示機能,把部份數據給打上馬賽克的圖片如下.

目前整個計畫算是剛完成評價階段,所以畫面也蠻簡陋的.
目前已確定能夠再GAE上架構個有用的工具(雖然還有些問題,後述)
POS燃料的殘量顯示接近完成,其他的機能也會稍後慢慢的推出(看vivio上班有多少時間摸魚?)
目前打算提供以下機能

  • POS的名稱,燃料消耗等的自訂機能(現在是以塔的消費量在算,沒考慮PG跟CPU....因為API取不到)
  • 用戶的管理介面,提供CEO登錄員工的Google帳號以及各員工的自訂機能
  • POS燃料的警告MAIL.....燃料快沒的時候會發到你的GMAIL帳號,甚至每天發日報給你.
  • 顯示用戶指定的倉庫中,事先指定的數種物資.....以方便POS管理員可以隨時確認燃料殘量.
  • 後續打算提供員工自行登記想跟其他員工共享的BPO(比方說放在事先指定的箱子裡面其他人就能看到裡面的BPO之類的)
  • 提供遊客試用的機能,讓別的公司的玩家能試看看是怎麼樣的工具
以上的機能基本上是只要有時間就能做起來,不過目前有些在GAE平台上或是EVE的API的問題有待解決

  • GAE的限制,每次HTTP通訊(GAE<-->EVE API)的容量上限是1MB,超過就會丟個Exception給你吃. 而EVE API那邊只提供一次取得所有資料的API(所以要是公司東西太多就拿不到資料)
  • GAE目前並沒有提供資料的匯入/匯出功能,要用戶自己想辦法. 目前所有物件的名稱等都是vivio直接寫在source裡面的,所以像是星系名稱等API取不到,要到database dump裡面才找的到的資料都不是很好找
  • EVE API....這可能不算是問題就是, EVE API很多端口都有流量限制,有的更有數據的更新頻度的限制.....像倉庫的內容,雖然透過Full Api可以取得很多次,但是每次取得後23小時之內他給你的都是你之前取得的數據的cache,要等過了23小時才會給你最近的數據,所以等於一天只會更新一次


如果看到這篇的玩家對這工具有興趣,或是有想到什麼有趣的機能的話,可直接在這個Blog留言或是在遊戲中直接發mail給vivio

另外誠徵開發夥伴,目前系統後台是採用 Spring MVC,畫面是用JSP在架構.
要是對共同開發有興趣的話,一樣請洽vivio 別害羞喔!

4 則留言:

匿名 提到...

請問如何付費?

Vi Vio 提到...

付費是什麼意思?還沒作好想收錢也收不了啊XD

匿名 提到...

加油。

匿名 提到...

你好利害!!