說說我之前的經歷吧。大四的時候學校安排來北京培訓java(培訓的時候沒有丟人,出來找工作也是用的真實的學位和背景,不像某峰互聯網)。然後去了培訓機構推薦的公司實習。當時工資2k,但是工作很開心,從前輩身上學到了很多東西。當時我在微信官方賬號開發微信,跟著前輩做微信後臺開發。當時我用的是SpringMVC+MyBatis框架。剛接觸的時候,學了很久才懂。後來,我想了想。這其實很簡單。對於邏輯開發的程序員來說,妳只需要了解工作流程,如何跳轉頁面,如何將值傳遞給跳轉,如何處理數據。這些就夠了。當然,我是壹個不滿足的人。我會找出我為什麽用這個框架,為什麽不用別的。帶著這些問題,我會嘗試搭建自己的後臺框架(雖然前期大部分都是復制粘貼)。除了框架部分,微信的高級界面也是我研究的重點。我會去官方文檔看看微信是怎麽接入的,然後研究壹下前輩們的代碼是怎麽寫的。所謂做壹件事,愛壹件事,大概就是這樣。當時我覺得微信的發展很有前景,我們公司用的框架也是最先進的。(後來看來,這個框架組合確實是目前最流行的框架,而且當時微信微信官方賬號也確實是當時最流行的框架。
說了這麽多,為什麽後來轉行打遊戲了?其實當時在第壹家公司,我的主管就打算辭職,不帶走整個底層技術,沒有實習生。壹兩個月,實習生無所事事。對我來說,這樣生活太無聊了。我喜歡挑戰,於是投了簡歷,找了新的實習,在壹家遊戲公司開發java服務器。公司挺大的。幾年前,我以壹款slg頁遊稱霸遊戲界(我不會說什麽遊戲,但我會知道我說的是什麽公司)。後來遊戲行業發展到手遊,這個slg也出了手遊版。這個遊戲幾乎支撐了整個公司。加上後來出的幾款手遊,公司發展的很好。我實習的部門是壹個mmorpg手遊,已經從實習轉正近壹年了。不過這款rpg手遊的數據並不是很好。第壹次第二天預定23,第二次26(現在這個公司的遊戲可以預定80多天),第七天就更不用說了。我也能感覺到,作為壹款mmo遊戲,玩家之間的互動太少了。從壹開始我就覺得這是壹款單機遊戲,已經失去了mmo的本質。項目組在準備第三次封測的時候,有很多原因,不僅僅是遊戲數據不好,還有壹些個人原因。但說實話,是這家公司把我帶入了遊戲行業。我非常感激。我覺得遊戲行業是壹個很有前景的行業,甚至比我之前認為最好的微信開發還要好。遊戲行業很賺錢。我能感覺到規劃文件裏全是挖坑預留的收費點。這壹塊可以正常玩,但是如果收費的話,網遊最重要的就是控制平民玩家和普通玩家的比例,以及遊戲的平衡性(當我意識到公司的遊戲這麽刻意的想賺錢的時候,我突然明白了為什麽公司的遊戲大部分都是騰訊代理的,為什麽事實證明騰訊控股沒錢陪妳玩* *,哈哈)。也可以看出,遊戲的商業化讓遊戲公司進入了壹個固定的模式——無條件洗錢,我認為已經失去了遊戲的本質。看了壹本叫《舞蹈學院》的書(當時在cocos2014開發者大會上買的。書已經送人了,但是我看了壹大半的內容,從遊戲的產生,到玩家的心理,到為什麽需要遊戲。這本書講的很好(我覺得遊戲策劃應該看這本書,玩良心遊戲,拒絕盲目騙錢)。啊,突然發現這壹段有點偏頗。畢竟我只開發遊戲服務器,改變不了遊戲行業。我只需要做我該做的。其實大的遊戲公司應該走這種商業路線,用幾款長壽命的遊戲來支撐公司的流水。
轉行做遊戲後,我覺得遊戲開發比web開發有趣多了,當然技術難度也比web大很多。我之前發過壹個關於網頁開發和遊戲開發的區別的討論。
/content/wendetail/7082370
,我再粘貼壹下我的回答(其實是有人讓我回答他的號,所以我回答了自己的問題):1。從第三方支持來看,web後臺有很多成熟的第三方框架。開發者不需要關心底層控制器跳轉的實現,只需要壹個或幾個配置文件就可以完成核心控制器部分,而開發者只需要關註web本身的業務邏輯。在遊戲的後臺開發中,由於各種遊戲的需求差異很大,從網絡層到業務邏輯層,各個方面都要根據自己的遊戲需求搭建自己的框架,所以很難從壹些共性的東西中提煉出壹個成熟的框架,遊戲的後臺開發基本上都需要搭建自己的框架。
2.從業務邏輯層面來說,web後臺的邏輯基本相同。也許這個系統稍加修改就可以被另壹個系統使用,但是遊戲就不壹樣了。每個遊戲都有自己的特點,根據不同的策劃需求實現了不同的邏輯,但也有壹些共同的模塊,但整體差異還是很大的。
3.從數據持久性來看,web上的數據基本上是非常有規律的,表與表之間的關系非常清晰,以後也不會有太大的變化。但是遊戲中的數據是多樣的,服務開通後數據的變化也是多樣的。即使是傳統的關系數據庫也完全不能滿足遊戲數據持久化的需求,遊戲中有很多狀態和數據需要服務器保存。個人認為在遊戲開發上,nosql比。
4.從通信層來說,web中的用戶都是獨立的個體,遊戲是多人在線的遊戲世界。在這個遊戲世界中,玩家之間需要進行互動,這就需要服務器實時向所有在線玩家廣播消息,這就消耗了服務器的性能。這方面遊戲後臺做的處理比web多,遊戲服務器是IO密集型的服務器類型。
以上是我當時的回答。或許我的看法還是比較淺薄的。畢竟我做遊戲不到壹年,但後臺開發還是有點發言權的。實習遊戲發展至今,經歷了壹個蛻變的過程,幾乎是壹個從無到有的學習過程,從mina框架到protobuffer。web開發我相信很少接觸(mina是壹個網絡通信框架,web裏面幾乎只有ty,如何在mysql或者mongo裏面存儲數據,是否緩存redis存儲什麽,memcached存儲什麽,緩存什麽數據,數據傳輸用什麽協議,json還是protobuffer,如何高效的寫,最多能支持多少並發等等。我覺得這些都是我現在需要考慮的問題,當然這些都需要根據遊戲的具體需求來決定。最終服務器能否高效穩定運行,取決於我的架構是否高效穩定,所以我會在這個過程中不斷學習和吸收別人的經驗。剛到新公司的時候,我意識到自己寫代碼其實是壹個挑戰。整個後端都是我自己實現的,代碼是否規範,數據如何存儲都是我自己決定的。我覺得我的代碼不僅要有效率,還要能被別人理解,後面的人可以跟著我的代碼繼續寫。
最後說壹下Java的題外話。語言之爭從未停止。為什麽有人支持Java,有人支持PHP,有人喜歡C#,有人喜歡C++?每種語言都有自己的優勢。業余時間學習了很多其他語言,包括go和node.js,我覺得go的語言層面支持Node.js的並發和異步,非常適合做遊戲服務器。我特別看好node.js異步io對於遊戲服務器來說確實是壹個很好的特性,而且加入了支持原聲js的mongo模塊也非常方便(就像我上面說的,我相信nosql非常適合存儲遊戲數據)。說到遊戲行業,我覺得h5遊戲的發展越來越快了。上次去白鷺的h5開發者生態大會,白鷺和webvr的整個工作流程真的很精彩(我還在第壹輪抽獎中抽到了風暴鏡,哈哈!),另外發布會的模特也挺好看的,哈哈!2015年,互聯網行業也呈現小幅下滑趨勢。很多初創企業面臨破產,泡沫經濟破滅,因為很多老板把握不了現在的經濟形勢,認為不管怎麽樣,有個app就是初創企業。其實他們根本不知道壹個app背後有多少運營模式和盈利模式,就像壹句諷刺的話,“我有壹個很棒的想法,可以顛覆bat,什麽都缺。哈哈,我當時聽到這句話就笑了。估計很多倒閉的創業公司老板都是這麽想的。他們抓不住用戶的真實需求。只有抓住了用戶的真實需求,才會抓住用戶的心。真正活下來的才是用戶真正需要的。但是,遊戲行業相對復雜多變。可能今天玩家喜歡這個遊戲,明天就會喜歡另壹個遊戲,就像我們壹直想的那樣。就像壹句話,“只要站在風口上,豬都能飛起來!”“只要妳抓住了玩家此時此刻真正想要的是什麽,產品就壹定會做出來。