遊戲行業的100種死法(七十一)

遊戲行業的100種死法(七十一)

來自專欄有關宇宙,生命及遊戲的終極答案

KrKr的作死獨立遊戲記錄(4)

後端的開發

後端的部分有一個曲折的過程,一開始我想的是把整個後端部分外包給前同事做,反正功能都比較簡單,工作量不大。後來想了想還是自己先摸索一下做著試試。於是我先諮詢了一下,資深程序同學告訴我大部分後端是用JavaScript或C++寫的,相對來說JavaScript相對容易點。故技重施,去網上下教學視頻,從頭開始學。學到第二天的時候我躺在床上突然想到,有沒有C#寫的服務端呢?有的話豈不是省掉學語言這一步了?上網搜了一下還真有,有個「光子引擎「是用C#寫的,有些上線的手游和頁游是用這個引擎做的。在開發階段也不收費,免費的key可以支持100人同時在線,完全可以滿足開發的需求。

就這樣我去下了一個光子引擎的教學視頻,用了兩周時間跟著視頻做了一遍,從初始配置開始搞,到後來能在本地正常的傳遞信息。完成視頻教程後照葫蘆畫瓢回到自己的項目,首先是把需要存在伺服器的信息(玩家賬號信息,背包信息,裝備配置等等)從存儲在本地的xml字元串轉化成MySql資料庫,重寫所有的解析方法。花了一周時間嘗試一個插件,將客戶端和伺服器傳遞的信息統一為相同的類,確實比用JavaScript寫後端省事……省的在兩種語言中來回解析了。最後大概用了兩個月時間,在本地已經能實現unity和伺服器之間的正常通信。

這個過程肯定不像說起來這麼簡單,其中遇到的各種困難沒法細說。比如說最開始遇到的問題是伺服器和MySql的報錯信息看不太懂,不知道怎麼解決,只能靠猜著改。這個事還不太好問前同事,因為多數前同事都是用JavaScript和C++寫伺服器的,沒幾個人用這種付費的商業伺服器引擎……也不好意思把整個工程發給別人,讓他們看整個前後端代碼DEBUG。幸好沒遇到什麼解決不了的問題,也是做到一個月左右,所有的報錯和異常都能自己解決了。

上真機調試

前後端在本地調試成功後,下一步是上IOS真機調試。這個事分兩步,第一步是將後端和MySql挪到雲伺服器上,第二部是IOS真機打包。

一開始我嘗試了一下亞馬遜雲,後來轉念一想還是用騰訊雲吧,等到真的想做海外市場時再租騰訊雲的海外節點就好。我以為用雲伺服器就得用他們的資料庫,後來一個哥們一語點醒我,直接租一個便宜的windows伺服器,把MySql和伺服器程序直接放上去就好了。在研發階段只租配置最低的就好,一個月不到200塊,價格還可以接受。

PC端和雲伺服器調通以後,下一步要打IOS包了。打包需要mac,上蘋果官網買了一個比較新的mac mini,接到電視上再配一套鍵盤滑鼠,準備工作就做好了。之後去整一個開發者賬號,發現普通的VISA信用卡還不好使……申請開發者賬號原來需要銀聯和VISA或MasterCard雙標信用卡才可以……又花了點時間重新申請信用卡。開發者賬號和mac都到位後照著百度上搜的流程開始嘗試打包。

在自己手機上成功安裝自己打出來的遊戲包還是挺有成就感的。但測試的時候遇到了一個尷尬的問題,手機連接雲伺服器的時候,一部分通信信息傳遞不正確……可以成功登陸,說明玩家的用戶名和密碼可以正確的傳遞,但是背包信息確是亂的……但PC端就沒這個問題。這種模擬器上沒事,真機莫名出現的bug就很煩。自己嘗試著改了兩天沒有什麼頭緒,於是我去unity商店買了一個小插件,一個用於mobile遊戲和伺服器通信的解析插件。用了發現還是不行……但這個插件是收費的,於是我名正言順的給插件作者寫郵件求助。好久沒寫英文郵件了不太熟練,盡量把情況和報錯信息都貼了過去。這位美國大哥人還挺好,第二天就給我回了郵件,告訴我幾種可能的解決辦法。綜合他的回復,再去unity官網論壇查了一下,終於定位了原因,需要將轉譯插件及相關方法特殊處理。這個bug花了一周的時間才解決掉,從此手機端和雲伺服器也跑通了,寫了一封熱情洋溢的郵件給這位大哥表示感謝。

至此,技術上的瓶頸基本上都克服了。這個過程稍微有點曲折但還算順利,基本上還是按照原來的開發計劃在走。當然還有一些隱患在,比如沒有經過壓力測試,一兩個人登陸沒事,玩家人一多伺服器會不會掛掉?不過既然已經有成熟的商業項目用這個引擎做到上線,想必是有成熟的負載均衡解決方案吧。走一步算一步。

最後說一下,這一篇也可以看做是半個軟文,因為光子引擎在國內有了正式代理,他們在自己的主頁上寫了「在國內論壇或社區發表有關光子引擎介紹的開發者,可以獲得開發者折扣」:

所以請路過的各位幫我點個贊,這篇發出去以後我就舔著臉去找他們要這個「開發者折扣」。

推薦閱讀:

看火人官方中文logo誕生記
沒電沒網露天開發,真「非洲人」是這樣做遊戲的
【長期】尋獨立遊戲愛好者的小夥伴~
《眾生相》第一版宣傳片+系統介紹!
遊戲里的那個你,其實還可以變得更壞

TAG:遊戲 | 遊戲開發 | 獨立遊戲 |