2013,對我來說,這是特殊的一年,因為在這一年,我步入30歲了.無論如何,這都是無法被忽視的.
總的來說,2013年總共只做了3件事情:
1.脫離了這家為之奮斗多年的公司,5年,這對于職業生涯來說,不長也不短;
2.開發了幾款游戲,并完善了游戲引擎.計劃中,這件事情本該在2010年做的事情,當然,現實總不會如人意的;
3.開發了一款音視頻解決方案,支持P2P以及服務器中轉,支持H264,AAC.
關于第一件事,我不愿多說,個中滋味,只有當事人自己才能知道.對于這五年,如果非要做一個評價,那只有一句話可以表達:往事不堪回首.當然,這么說,并非就是說這五年是一無是處,不是這樣的.任何事情都是有好的一面和不好的一面.
不好的一面是,這個項目做得并不輕松,而且也并沒有向著健康的方向發展,各種原因,我只能說,現實并不是那么單純和純粹的.
好的一面是,我有了一個長足的提高和提升,這正是我想要的.很高興的一點是,我很好的認清了一個人.失敗并不是一件壞事情,在失敗中,我們能夠得到許多的教訓和經驗,所以失敗要趁早.失敗,也并不可怕,可怕的永遠都是爬不起來.失敗了,就要爬起來,吸取教訓,再來.否則,再多的失敗也是沒有意義的.
關于第二件事,這個游戲引擎是一個2D的游戲引擎,當初是基于HGE改的,然后吧,我這人看的引擎又頗多,所以其中雜糅了許多其他游戲引擎的東西.比如Ogre3d,CEGUI,popCap,GameBryo...每個引擎都有好的和不好的東西,而有的時候,好的東西又不是合適的.所以,這一過程是糾結而又痛苦的.
我當初用了一個月的時間作出了引擎的雛形,并用它開發了一個連連看.其時,引擎并不是完善的,發生了一些不愉快的事情,整個進程就停滯了下來.今年初,我研讀并重構了之前手下人拿引擎開發的游戲,對引擎進行了一個補足和改進.這時候,游戲引擎才算是一個完整的游戲引擎.
任何一個游戲引擎和框架,如果沒有經歷過一兩個應用程序開發的考驗,它就不是一個好東西,它不過是一個空中樓閣,站不住腳的.不論是引擎也好,應用程序也好,它們只有在應用當中才能發現自己的不足,才能找尋到改進的動力.像GameBryo,cocos2d,它們都是一個游戲的開發產物,它們更為討好開發者,盡管如此,他們也還是有需要改進的余地.
現在的游戲引擎,跨平臺也變成了考量的一個標準.后面,引擎的跨平臺也是要做的一件事情.當然,這需要需求來推動,如果有這個必要的話,我就會做這個事情了.
關于第三件事,前不久有人問我的職業是什么.我說我是:互聯網娛樂開發者.就是因為我摻和了一下音視頻的領域,在此之前,我會說我是:網絡游戲開發者.當然,我對這一領域的關注也不是從今年開始的,很早,至少四五年前,我就開始在讀libjingle的源代碼,去年開始在讀webrtc的代碼.雖說,這是一場沒太大信心的戰,但是,至少我是有所準備的.
最開始,我在和編解碼器在較勁.
最開始支持的視頻編解碼器是:DivX和xvid.但是顯然他們是不適用的,后來發現H264是行業標準.H264可以說是xvid升級版,在高壓縮率下能夠很好的保證畫面質量,所以H264不成行業標準,舍我其誰.
音頻編碼器最開始只支持iLBC,但是音頻又區分為:語音和音樂.這樣兩種質量水平.像iLBC和Speex都是這樣的語音級別的編解碼器,也就打打電話聊聊天就可以了,如果你想要聽音樂,唱K,抱歉,他們的質量就不行了.這時候就需要AAC這樣的編碼了.
最終確立的標準音視頻編碼是:H264+AAC.為了達到一個合適的碼流,比如音頻,我總共聽了好幾百組的錄音,最終確定了其參數.視頻我都不知道我折騰了多久.我是發揚了愚公移山的精神,最終總算是把這一塊給搞定了.
搞定了編解碼器,這還不算完,這還只是一個開始而已,網絡傳輸這一塊的水更深,折騰了好幾個月,首先支持了基于UDP協議的RTP/RTCP協議,然后還要做重傳啊.總之還是發揚的愚公移山的精神,把能夠試的方法都試遍了,這樣做有一個好處,好的不好的都清楚明白了,之后最終要怎么做,就可以做到了然于胸了.不過,這一塊還沒結束,我覺得是遠遠沒有結束,之后要走的路還很長.
在這里要感謝Google,他們開源了webrtc,這是一個巨大的寶庫.它使得音視頻這一塊的門檻降低了下來,雖然這樣說,不過它實在是太復雜了,要把webrtc給吃透也并非輕易之舉.所幸我花費了好幾年的時間讀libjingle,故而webrtc讀起來也就相對輕松許多了,可是這塊領域實在是太大了,要吃透它還是需要很長時間.而且,我也暫時沒有打算要完全的把webrtc應用到項目中,因為webrtc是重型的,而我的項目本身是輕量級的,只需要取其精華就夠了.
做這一塊,最大的收獲是,我更為深刻的理解了TCP和UDP.有段時間,我試著用TCP傳輸,雖說最后的結果是:這條路是行不通的.但是這次嘗試中,我發現了我TCP服務器底層的好幾個隱藏已久的bug,只有在高負荷下才會出現的bug.另外還有一個深刻的覺悟,UDP想要不丟包,那是癡人說夢.準確的說,互聯網通訊想要不丟包,那是不可能的.
2014年,我還有很多艱難的路要走,而且人生以后的路也會有許多的艱難困苦.但是我始終信奉著:艱難困苦,玉汝于成.只要心中懷著斗志,不服輸,不氣餒,沒有什么是克服不了的.
華麗的辭藻說再多也是沒用的,我這人也不是那么喜歡說花哨話,因為我深知,話說得再漂亮,也不能為我的人生改變什么,也不能幫我解決任何問題,唯有腳踏實地,勤奮努力,一步一個腳印的走下去,這才是王道.
2012和2013年,因為一些事情,我變得極度的消極.而且這種消極到現在都還沒有完全的根除,人的一生就這么長,不能夠總這樣消極下去,不經意間,人生就到了盡頭.到死的時候,自己還因為消極而一事無成,糊里糊涂的過一輩子,那絕對不是一件好的事.
2014年,我必須要做回我自己,我必須要為我這僅有的一生去寫出一份滿意的答卷.
2014年,沒啥好說的,唯有加油!