Thursday, August 08, 2013

來寫寫這三年多 都幹了啥

三年多前我進了一間 遊戲公司,開始參與大型網路遊戲的開發,大概在十多年前,我在微星當SMT作業員,作業員的工作要一次站8 hour 以上,要很細心、手要很巧,當下覺的這樣的工作是不是真的可以一直做下去,那時候剛退伍啥都不會,當時下決定要考二技回學校讀書。而且當下還希望自己能進遊戲業工作,也不知道為啥 現在真的在遊戲業。

 雖然開發遊戲也算是軟體開發,但花比較多的時間在製作規則,這也是重點,你必需有很強壯的內容去吸引玩家,台灣早起PC時代遊戲產業也很發展,以前還有第三波的時候,單機遊戲玩起來真的很讓人回味,現在台灣沒人要做單機遊戲了,網路下載讓盜版更方便,花了心血製作的遊戲,輕輕鬆鬆的就被盜版,在有熱血的開發者,賺不到錢也沒輒。

三年前進這間公司時,公司已經有兩款正在市場上的專案,有賺到錢,然後已經開發到一半的案子企劃打掉重練,再來就是我參與的新案子。這個新案子一開始就有麻煩的地方,整個UI系統換掉,原本的UI system是已離開的前輩寫的,有寫UI Tool,但整體用起來 比靈活度比較低 ,因為你要什麼功能都要重新刻一個,也沒有好用的UI 元件可以用,老實說我對這個系統比較不熟,因為之後開始使用CEGUI,舊的案子也衰退掉,變成可以遺忘掉的東西。

要把整個UI Porting過來,工真的不小 ,還要加上最佳化,也花掉不少時間去調整。製作這種多人開發的專案有一點是 工法,比如說 UI 編輯器上 編輯的方法和使用慣例,讓下一個製作新 介面的人比較好參考,這其實就是 framework,但又沒有那麼方便。來這邊一開始的數個月就是UI的製作,比較特別的部份就是 、搬動道具的Slot系統、list box 、multi listbox 、還有UI 縮放的設定,後來CEGUI 有了 Animation系統也把他運用在遊戲中,在這裡我移掉了原本CEGUI上的Mouse cursor,補上了我喜歡的Timer,加寫了一些和 Gamebryo Engine 的 Texture的一些介面,弄了切換風格的系統,大概半年多後UI已完成了大部份,然後最佳化,減少使用不必要的元件,改寫一些UI表現,文字表現,工很多但技術是還好。遊戲上線後,還寫了一些小的遊戲規則。

再來就是公司買了Cry Engine,老實說這個貴死人的東西買的是Source code,也是為了能學到裡面使用的技術;Cry Engine Source其實算是一個寶庫,裡面不少東西可以參考,Render system,繪圖技術,場景編輯器的使用方式,但是原本的遊戲框架比較屬於 FPS Game,所以porting 就比較麻煩了。首先是MMO需要的幾個工具 ,場景編輯器,事件編輯器,特效編輯器。這些是原本系統沒有的,就必須改寫和搬動,其中我只參與了事件編輯器,把原本公司企劃使用的工具改寫到Cry Engine上。

開發過程中,3D遊戲架構這部份我就很弱,比如說攝影機的操控、角色移動的方式、特效、發射特效,擊中特效, 跳字、點選角色,遊戲中的互動,畢竟之前沒太多經驗。

在改寫Cry Engine時 原本的CEGUI 出了更新的版本,編輯器也是還是Python qt寫的,也花了一些時間去改寫Ui Editor。

之後我就改去做 網路串流的部份,也是所謂的微client端,其實就是資料較少的MMO,這WOW就有用了,我也實做出類似的功能,做出大約200~300MB的 3D MMO資料包,讓大部份的資料在遊戲時在才下載,裡面放了新手村,所以玩家可以不用等待那麼久在之後還沒玩到的場景裡。完成了在補上Web plugin 的功能,做了IE firefox chorme,可以在頁面上畫Game Client的 plugin,現在的Unity 3D 、kalydo都使用這個方式,讓網頁上Bind Game,讓一些輕量Game很快的可以發部出去,最後加上了Binary Path。(事實上我們公司裡沒有輕量的Game)

最近的工作也是開發新案子,開使改寫新案子要用的 Game Rule,打擊方式改寫,學學Shader,UI 介面的調整,實話說有點無聊了。








No comments: