Minecraft 為什麼不用 C 寫呢?
Minecraft
運行環境是java,就像android一樣不接地氣啊,而iOS基礎語言是obj-c,其iOS版的自然也要用c編程,接地氣,速度快那麼問題來了,為什麼PC版不用c寫呢,非要繞到java上去,使得MMO化變成了遙遠的夢
我記得之前知乎有一個專業寫MC插件的人曾經跳出來說,MC他爹的程序寫成一坨屎。如果是真的的話,用C語言來開發,他肯定寫不出來。
https://github.com/fogleman/Craft
你要的c語言版本
誰告訴你 android 不接地氣?
用 Java 寫都能賺一棟豪宅為什麼還要用 C 寫?這個故事告訴我們編程語言並不那麼重要。程序員思考問題總是從技術角度入手,但是卻忘記了在真實社會中「人」才是最重要的。
微軟工程師的爆料:
叛逆者:「現在android上也還是 (OpenGL 1.X),wp上是沒辦法才用的2.0。頂點數實在太多了,再加上不用vbo不用instancing,驅動和GPU都很難受。這和java還真沒關係,是GPU那邊卡。「這種情況下,就算用 C 都沒用,哪怕用彙編寫都卡。事實上證明 語言和成功與否並沒有太大的卵關係
對這個題目的最直接回答是:notch是個先干後想的人,而不是個先想後乾的人;mc是他大堆獨立遊戲里碰巧成功的一個,而不是他十年磨一劍的扛鼎之作。所以,他開發遊戲,當然用最敏捷的方式。
http://minecraft-zh.gamepedia.com/%E7%89%88%E6%9C%AC%E8%AE%B0%E5%BD%95/Classic
看,這是mc的classic版本記錄。仔細看一下,mc以多麼快的速度推出新特性。實際上,C開發效率低不是指C大幹快上的時候一定比java慢,而是指安全性遠遠不如java,java最大的特點就是,會為你犯得錯誤兜底。所以說,現在mc的代碼爛成這個樣子,居然還可以跑,很大一部分程度上要仰賴java的兜底。如果他用C寫,其實發布1.0版的時間不會相差太多,但是隨後的維護很快會變成一場噩夢,後來估計也不會有什麼大變化,無非就是notch被迫請幾個大牛來重構他的代碼,然後把他的25億分走一半而已……但是,C/C++和java的差別其實也沒有那麼大。如果要mojang現在丟掉所有源碼,重寫一個mc出來,他們很可能就要使用C++。說白了,還是在那個時間點,java比C優勢更大而已。無他,唯手熟爾。
因為MC是個頁游
盜版MC=啟動器+遊戲
正版MC形式1=web正版MC形式2=正版啟動器+遊戲Java開發效率甩開C幾條街, 運行效率沒個鳥用.
C++的話, 還稍微有幾個人做, C還是洗洗睡吧
MC巨大的玩點是在mod上. java做這個輕車熟路C做呢? 內存誰分配? 我寫mod前要不要先擼一個框架, 類庫之類的...開發速度巨慢,就憑這就一點也不接地氣
有微軟接盤你還怕什麼,肯定會用C++重寫的
跑個題,多虧了Minecraft沒用有C寫,現在Minecraft社區才能這麼活躍。不然以Notch的代碼水平,根本做不出一個像樣的API來,現在能有這麼多Mod玩?
我以前待的公司做的產品主要是C# 後來大boss說:我們要趕潮流啊sqlserver一邊去我們上Oracle吧 眾人齊道:老大趕潮流還是先把產品改JAVA吧
boss:怎麼改
眾人:推了重做么么噠boss:wqnmlgb任地獄告訴我們,遊戲性大於一切。畫面,代碼,什麼的都是後話。
看了那麼多答案,忍不住說一句,xbox360版本是什麼寫的?JAVA么?
java用十倍的性能換取十倍的開發效率。
以後vs2015可以秒全平台,不存在接不接地氣了
其實是因為我的世界這個遊戲的地圖刷新時間是每秒20次(在我的世界裡一秒被分成20tick,紅石中繼器可以設置1到4tick的延遲)。也就是說每1tick,地圖都會檢查沙子是否該落下,水是否可以繼續流動,以及紅石電路的運行。
1紅石刻=0.1秒
1遊戲刻(1game tick)=0.05秒為什麼只有PC版紅石電路的啟動才是即時的,活塞的特性PC版也和其他的版本不同(但是一般的延遲卻大於1tick,小於2tick,大家都認為活塞的延遲為1.5tick。這是在12w27a更新之後的性質,之前應該是2tick,這裡的刻是紅石刻)。
而PE版為了緩解紅石帶來的壓力就把紅石的延遲加大了,PSV好像擁有預載入紅石電路的能力(就是按下開關要等一會兒,然後紅石才工作)
安卓可以運行Java,所以就有人來研究如何讓手機玩上PC的mc,他成功了,1.7. 10在很多人的手機上能達到20到40幀,高端手機幀數更高(吐槽一下這個垃圾iOS,要不是因為iOS我的世界完全可以在手機上不叫PE)。我的意思就是把PC上的mc精簡精簡優化優化,然後手機上運行完全比現在的PE好到不知道哪裡去
最後是我的世界的風格的問題,嚴格的來說我的世界風格統一(現在白框按鈕簡直破壞風格)。notch的像素風格是很不錯的,也很養眼,那個材質包能和原版相提並論?估計也就只有Disco大師的OCD材質包了,不過現在不叫材質包了,而叫資源包,聲音文件都有。
紀念紅石大師Disco紀念創世神Notch資料來自minecraft wiki你看過了minecraft解包的源代碼你就知道為什麼不用c寫了。他們根本不可能用c寫出來的。。。。
哪有遊戲用c語言寫的,提問也應該為什麼不用c++寫,這是軟體界的常識吧,要用面向對象的語言啊,你試著用c語言去寫這種工程肯定痛苦
我是來提問的。。。。。。mc需要的內存較高是不是因為是使用java編寫的原因呢?
這恰恰證明了一個產品的成功與否和用什麼語言並沒有什麼卵關係,大家也不用忙著爭哪個語言好哪個語言不好了,學好了都好。
推薦閱讀:
※玩Minecraft被困住了怎麼辦?
※我的世界裡的畫像為什麼十分恐怖詭異?
※Minecraft中有哪些指令?
※Minecraft有什麼有趣的玩法?
※長時間玩 Minecraft 單人模式的人的人 會感到寂寞嗎?
TAG:遊戲 | 遊戲開發 | 編程 | 我的世界Minecraft | 《我的世界》攜帶版MinecraftPE |