1. 程式人生 > >JAVA能寫大型遊戲麼?

JAVA能寫大型遊戲麼?

JAVA能寫大型遊戲麼?
答:不能 ,所謂的大型遊戲一般都是指端遊。必須是C++
這沒辦法C++和java的效率還是有很大差距的。

java什麼東西基本都能開發,只是java致命的是不能直接操作記憶體,只能安裝虛擬機器,這樣使java在開發的時候造成很多侷限性.但是java提供了本地方法,可以呼叫c的類庫。使得功能進一步提升。又由於java對於垃圾回收機制是自動的,使得遊戲在流暢性上有很大的折扣。所以java不適合開發大型遊戲(除非自己實現垃圾回收等一些機制),使java能與c相比使。又因為java的初衷就不在介面和桌面遊戲上。而在企業開發。因此java不適合開發大型遊戲。中小型網路遊戲還行。

在遊戲業Java可以搞什麼?那就是頁遊和手遊的服務端了,頁遊的前端都是Flash,手遊的前端是coco2dx(C++),unity3D(C#或JS) 你可以看看 37遊戲 墨麟集團 上海易娛 明朝網路 動網先鋒 掌趣科技 等等遊戲公司他們都找Java遊戲服務端的

在效能方面java拿來做頁遊手遊的服務端是無壓力的。 為什麼不用C++?
因為Java的開發效率比C++的要高,敏捷,遊戲開發都是在搶時間的,c++的要求門檻高 ,而且經驗少的程式碼質量差,伺服器很容易掛掉,另外一個是Java的人也比較好找,寫的程式碼不要太爛,一般服務不會有什麼問題的。

頁遊手遊現在用c++比較多的另外一個原因:歷史
為什麼?
好像在jdk 4.0之前是沒有NIO的,所以遊戲服務端的天下都是c++/c,後來java出了NIO後,慢慢出現NIO的框架 如netty mina等等優秀的框架,慢慢就出現用java來做服務端了。
NIO是什麼,自己百度吧。
NIO的包,有一些新特性,就是非同步非阻塞通訊。大大提高了服務端的效能。
你們現在所用的Tomcat,其實是偽非同步阻塞式通訊,就是一個執行緒池在接受傳送,一個執行緒必須等客戶端接受完畢才解除阻塞,底層還是同步阻塞的。

現在很多頁遊手遊的服務端都用Java了,起碼在廣州已經是很成熟的。
搞C++的不願轉Java,這就是為什麼服務端都是c++的天下了,java起碼在頁遊手遊服務端毫無疑問的,也有很多成功的產品。

假如樓主你想搞端遊,提醒一下,搞端遊的公司門檻很高的,而且數量極少,現在剩下的端遊公司真心不多了,都是些巨頭,你打算搞端遊的話,第一個你達不達到那種高水平?
第二,公司太少了,風險很大。

這裡寫圖片描述