遊戲製作是不是軟體製作層面上最困難的了?
我剛大二,所以做的軟體不多(幾乎沒有,,),暑假的時候試著做過一個小手游,覺得裡面的玩法及其邏輯都是自己想,沒有現有的資料可以參考,如果是更大型一點的遊戲呢,甚至說我看見遊戲引擎製作的書裡面滿滿的數學公式。其他軟體會不會邏輯更加固定化,並且有更多資料可以參考,遊戲製作是不是軟體層面上最困難的問題呢?
-------------------謝謝大家的回答,我看到很多人說要分情況,我想知道如果從事遊戲行業是不是也有做難度高的和難度低的區分呢。
在遊戲開發中,軟體層面是基礎,就相當於水,空氣。它決定了哪些能做哪些不能做,優秀的引擎相當於為遊戲提供了優越的環境,肥沃的土壤。
但是並不是所有開發者都能在肥沃的土壤上結出絢麗的果實的,同時也有很多優秀的開發者(這裡主要是指非程序人員)在蹩腳的軟體層面上開發出史詩級作品的。
所以遊戲的開發是多方面的,就題主的問題來說:
1.如果只是追求做出來一個遊戲練手並不追求質量的話,那麼軟體層面應該是你花時間最多的(原型確定後bug很多呦,遊戲開發有一句話,遊戲上到一定規模後,bug是永遠改不完的)。
2.如果樓主追求的是優質的遊戲,即畫面,玩法,性能,適配都很不錯的遊戲,那軟體層面只是個開始,玩法的調節,人設場景的反覆修改,數據分析後數值的反覆調整都要耗費很大的精力,到那個時候你會發現軟體層面只是一個舞台,如果你是一個優秀的舞者,那燈光,音響等瑕疵都掩蓋不住你優秀的技藝。
最後,遊戲開發是藝術創作,我們都在不斷探索。不是。
你完全可以一個人拿個簡單的遊戲引擎,花個周末,做出款小遊戲。當然也可以花個十億美元,千人團隊做個5年再出來賣。
遊戲的開發複雜和簡單程度是基於其設計和底層軟硬體支持決定的。
拋開可大可小的設計不談,充分利用已有的工具降低開發的成本是現在的開發者都已經意識到的問題,也是促生各大遊戲引擎的重要原因。
所以遊戲開發不難,難的是兩個哲學問題:」是什麼(What)?怎麼做(How)?「遊戲涉及得技術方面是最廣的,相對來說也是比較深的。所以從純技術角度來說,可以說是最難得幾種軟體之一。
但是!
你懂得,但是後面才是真相。衡量一個軟體的製作難度,除了技術面上面,還要考慮的方方面面太多了。。。。。。謝邀。
從技術的角度上來說,遊戲技術主要屬於計算機科學下圖形學的範疇,同時也會牽涉到一些數學、物理學的知識。當然,很多具體的功能遊戲引擎都會幫助你實現。如果你是個人開發者或者是小團隊,主要的精力肯定還是要放在遊戲功能和機制的設計上。這個過程中,技術倒反而不是那麼重要的方面,技術和畫面很牛逼但遊戲性糟糕的大製作我們實在見得太多了。
對於絕大多數團隊來說,主要的難點在於遊戲機制設計上,即你提到的「玩法及其邏輯」,和遊戲引擎本身關係不大。這些應該屬於業務邏輯,確實沒有什麼可以參考的現成代碼。但是反過來想,其它的軟體設計中肯定也會有一些找不到現成答案的問題。比如說如果要你設計一個讓用戶從銀行卡裡面支付款項的流程,其中牽涉到的很多問題同樣也是需要你站在用戶、銀行及支付平台三方的角度兼顧考慮的。所以你問的這個問題並沒有一個固定的標準可以衡量,就好比設計魔獸世界、支付寶平台還是太空梭的操控系統哪個更難一樣。所謂難易,更多都是建立在自己知識水平上的。
天下事有難易乎?為之,則難者亦易矣;不為,則易者亦難矣。人之為學有難易乎?學之,則難者亦易矣;不學,則易者亦難矣。做遊戲和做引擎是兩個層面。前者只需要翻引擎的文檔知道怎麼用就行了,重在構思和寫劇本。後者才要研究圖形學,了解底層實現,考慮如何封裝等等。
謝 @王選易 邀。
首先直接回答題主答案:是的。
------------------------更新的分割線-------------------------
在樓主的疑惑中,我感覺到樓主是被引擎裡面那些玩意嚇到了吧。我猜是一堆圖形學的東西?(霧)
其實遊戲開發本來就如同樓主所說的:可以完全靠自己去想。每一部成名作往往都是標誌著一種經典的玩法。比如RTS里的星際,MOBA的DOTA。這些邏輯是以往的條條框框所沒有的,也不可能出現在之前的書上作為公式。所以遊戲並不會因為別人的條條框框去束縛,別人的資料而禁錮。相反的,突破這些公式才能獲得在這麼多遊戲中一鳴驚人的能力。而遊戲開發的難度就在於此。
但是,這個「此」包含了很多方面。
在前段時間,剛好和一堆小夥伴一起共事一個月做出來一款遊戲,經歷了一個相對來說比較完整的遊戲開發流程。裡面有不少的地方是值得初學者學習的。
首先是初期,遊戲需要確定很多元素,比如說核心玩法,遊戲風格等等。當你考慮到這點的時候,你會發現,你覺得你想做好一個遊戲,但是往往你想不出很奇妙很驚奇的點子。你腦海中浮現出的是別的遊戲的影子,你能做的很多時候只是把這些影子具象化,然後去其糟粕取其精華,或者說組合幾種元素於一身。然而這樣做已經很艱難了,因為你需要你的遊戲在核心部分就有其存在的意義。你覺得加上裝備強化等級的DOTA還能玩的了嗎?你覺得在你的RPG裡面加入偷菜是不是很無聊呢?所有的這些,你需要想破腦袋去實現突破,這點我覺得是遊戲製作裡面用的時間最少,但是很難做的出彩,容易落入平庸的地方。而遊戲往往受其核心影響深遠,當你確定了這個之後,後面基本上只能比你想像中的要差。
當然你要是靈光一閃,想到了一個非常好的點子,比如FEZ(Fez_百度百科)這樣的一個奇妙至極的點子,那麼恭喜你,你能有一個比較理想的開始。
那麼接下來你需要和產品美術開發策劃等等人員去溝通遊戲的具體細節,比如說這個遊戲如果是以可操控的角色為主要操作物,那麼這個角色到底能做什麼?這些怎麼去做?什麼時候能做?怎麼安排能讓其變的很有趣味。例如FEZ中,主角初期只能跳,但是當你遇到一些難題後,你將會獲得空間能力,這個能力讓你在遊戲中能解決這些難題,體驗解謎的樂趣。又比如,你覺得你的主角在遊戲裡面應該是一個什麼樣的背景和性格,那麼這個決定的東西需要取決於你的遊戲故事背景以及這種背景下合理的性格表現。例如在《劍俠情緣2》裡面,主角南宮飛雲的背景有整整一個前作作為鋪墊,而這那種背景下表現的俠骨柔情在整個遊戲過程中被表現的淋漓盡致。
這些都只是遊戲裡面的一點皮毛,當你要開發大作的時候,免不了需要考慮多如牛毛的東西。但是這些東西只有考慮清楚了,才能減少之後帶來的損失。比如遊戲初期確定的人物有大招設定,但是當你的遊戲做著做著發現一個大招按照它的邏輯秒天秒地的時候,你就不得不削掉這個設定,而原本需要大招才能表現的部分就缺失了。
那麼當你的遊戲都設計好了之後,你需要開始進行開發,那麼選用什麼技術方案比較好呢?這個實際上決定了你後面遇到的坑的多少。比如我見過遊戲開發一年因為選用技術方案不行而直接重頭再來的。當然技術層面實際上在現在的開發過程中已經沒有太大的難度,除非你想拳打顯卡危機腳踹男友4,那還是安排大量的程序猿去開發更加強大的引擎吧~!
遊戲開發往往有一個deadline,這個deadline很多時候是限制遊戲的一個重要原因。軟體開發具有其他行業不一樣的特性:人力時間成本很難預期。而且還有人月神話的特性。而且軟體的複雜程度決定了你會不會在最後幾天還突然發現一個巨坑。遊戲很多情況下會比最開始列出來的那些炫酷的需求少不少元素。就好比當初我們小團隊想做一個炫酷掉渣天的解謎+橫版動作過關。結果到最後基本就是一個現代版的超級馬里奧。這些都是難點。
所以很多時候,並不是說代碼難寫,公式難套。抄一個東西簡直就是分分鐘。但是遊戲想要做的好玩,那真的是從頭到尾都是很難的。
最後,我覺得關於遊戲製作的流程中,這些設計部分也屬於軟體流程部分。
樓上的兩位講的都不錯,但是對遊戲與其他軟體在製作與學習中的對比講得不夠多,另外也沒有針對題主情況進行具體的解答。我虛長題主兩歲,現今大四,恰巧幾年中遊戲,軟體和網站相關的項目我都做過,算是有資格來回答這個問題。
正式回答之前,先下個結論:對於一個大學生來說,製作一個遊戲項目的難度確實大於製作其他軟體項目(指具體應用:如網站,APP等,而不是編譯器或者操作系統這種)。
先說說技術上的問題,其實不管是網站還是遊戲,在前端上都面臨著一個問題,就是要把結構,行為和樣式分離。在技術上其實是非常相似的,就拿Unity3D開發和網頁前端來開發進行一下對比吧:- Scene編輯器和DOM Tree的對應 - 處理結構
- Shader和CSS對應 - 處理樣式
- C#腳本和JS腳本對應 - 處理行為
既然兩種軟體的製作技術都如此相似,那麼為什麼說遊戲製作更加困難呢?這仍然要分幾個方面講:
- 大量美術和關卡內容的缺失
和企業軟體和網頁前端不一樣的是:如果想做一個還算看得過去的遊戲,而不是做Flappy Bird或是俄羅斯方塊這種玩具項目,那麼你必須擁有一套風格統一而且精美的美術素材,(包括各種3D模型,UI素材等等)另外,就算程序和美術工作完成了,還是要有大量的關卡需要策划去編輯。
作為一個軟體工程或計算機專業的學生,很多人都不願意去做 「編輯關卡」 和 「製作美術素材」 這種費時費力又與本專業無關的事情,這幾年裡, 我看到學院里大多數許多遊戲相關的項目都是在這個問題上夭折的。很多項目實際上只實現了一個 "編輯器",美術和關卡寥寥無幾。
對於其他軟體,如網站來講,完全不存在這個問題,比如知乎大部分的內容都是由用戶自發創造(UGC)的,但是遊戲中的數據卻要開發人員去生產。
- 大量學習資源的缺失
和網站開發不同的是:介紹遊戲開發相關的書籍和博客非常少,比如打開博客園 - 開發者的網上家園,觀察博客園的首頁推薦,你會發現首頁20幾篇博客裡面,沒有一篇博客是和遊戲開發相關的。這反映了兩點現象:1. 遊戲開發人員一般不在博客中分享知識。 2.遊戲開發人員從業數量較少。
另外就是遊戲開發氛圍的問題,國內仍然沒有一個氛圍比較好的遊戲開發社區,如Web開發者常去的社區:CNode,RubyChina和V2EX等等,再看遊戲開發者常去的遊戲蠻牛等等。無論從數量還是質量上都輸了一籌。(OpenGPU這種我不太願意把它歸結為一個遊戲開發相關的論壇)
最後,遊戲開發的出生時間雖然比網頁前端早很多。 但是中國遊戲開發方面教育仍然一片空白,這也導致了遊戲行業方面無法積累足夠有效的學習資源。我校軟體學院就是這樣:Web開發的課有五門以上,遊戲開發的課一門沒有。
- 大量中間件的缺失 或者 花費太高超出學生的能力
遊戲行業大部分中間件(如:動畫編輯,碰撞引擎,行為樹編輯等等)都是收費或者閉源的,更多的中間件則是公司內部使用,你根本接觸不到,比如寒霜引擎和Ubisoft製作雷曼使用的引擎。我們能找到的最好的遊戲開源代碼,或許只有Quake和Box2d這種老古董了,像havok或是虛幻,CryEngine這種有名的中間件的價格學生是完全無法負擔的。
很多老兵仍然建議新手從DX或者OpenGL開始構建遊戲。遊戲開發發展了這麼多年,還是沒能積累下幾個可以用的輪子,想想其實挺逗的。
相比之下,網頁前端則有大量優質而且免費開源的庫可以使用,Jquery,Bootstrap,Anguar.js等等。也是這種開放的心態使得網頁前端技術在這幾年裡發展迅速。
中間件的缺失進一步致使遊戲開發需要的門檻變高,因為大學生不僅在製作遊戲,還在製作各種輪子。這種情況隨著U3D等新一代引擎的出現正在改觀,但短期內這個問題依然存在。
第一次被邀,受寵若驚。在此分享一下我個人的一些看法。若有問題,還望各位指出。 關於遊戲製作,技術確實是一塊硬骨頭。本人在遊戲技術領域道行尚淺,所以關於遊戲技術,我只能簡單說它是遊戲的基石。遊戲技術的資料,我想它並不比其他領域少。比如遊戲引擎,可以閱讀相關書籍(比如《遊戲引擎架構》),或下載Github 上的開源引擎 (例如 id-Software/Quake · GitHub )進行學習。 至於遊戲玩法,最簡單的學習方式就是去玩相應類型的遊戲。一個不喜歡格鬥遊戲的開發者是無法做出一款打擊感強的格鬥遊戲。之後,你必須開始進行深一步的學習。比如學習遊戲AI。 簡單一句話,遊戲技術很重要,它很難,但相關資料也很多。樓主如果因為覺得遊戲技術資料較少,從而得出結論:技術開發是遊戲製作最難的部分。這個推理過程是有所偏頗的。 話說回來,遊戲技術是否是遊戲開發最困難的部分呢?這裡我想分享下我當前項目的一些經歷,也許能給你新的感受。/************************************************************************************************************************/ 當前項目是 IGF2015 的參賽項目,同時也是我們的畢業項目。其重要性不言而喻。從今年上半年開發至今已有近十個月。期間我們遇見的最大困難不是來自於技術,而是來自於遊戲設計和團隊合作。在次先申明一點,由於遊戲屬於 thesis game,因此創新性被強調得很重要。 我們的遊戲是第一人稱恐怖遊戲。最初的設計是當敵人被玩家看見時,敵人就會停止不動,直到玩家的視線脫離它們。很熟悉是吧?完全就是SCP173的機制。這個設計為之後的問題埋下了導火索。 最開始團隊便有幾位成員提出了該設計缺乏新穎性。但是由於大部分團隊成員並不熟悉SCP173,甚至很多人根本不怎麼玩恐怖遊戲。因此他們並沒有意識到這個設計存在的隱患。於是我們給團隊成員展示了SCP173的視頻。但是團隊設計人員依舊堅持己見。鑒於中國學生不願傷和氣的傳統(其他成員都是美國人和印度人),此事暫時平息。
直到我們在 GDC2014 某學校遊戲作品中再次發現了這個機制,並且還發現雙方遊戲主題都幾乎相同。這時,導火索被點燃了。我們無法坐視自己的設計如此毫無新意,我們無法忍受團隊設計人員不做好充足的調查研究,並無視其他團隊成員的建議。於是,一場戰爭爆發了。
為了說服團隊設計人員,我們嘗試過自己開發新的遊戲原型,也嘗試過和他們私下進行溝通。但鑒於大家表達能力有限,且內心比較急躁,溝通到最後往往無果而終。從我們的角度來說,我們只希望團隊正視遊戲存在的問題,設計小組肩負起責任來改進遊戲的設計。但是設計小組不願意承認錯誤,並總認為我們想「篡權」。最壞的時候,整個團隊完全四分五裂。某段時間我也曾在團隊中打醬油,消極地表達自己的不滿。 到最後,老師出來拍板 —— 「不改進遊戲,就撤銷項目」。於是,團隊被迫接受意見,並在暑假後開始重新設計。 要說現在團隊進展如何,我只能說,不是太樂觀但也不是太悲觀。隨著開發的進行,恐怖遊戲的設計難度逐漸被顯現出來。設計團隊也開始捉襟見肘。但是各個成員開始學會體諒對方,開始學會如何去解決分歧意見,開始學會快速地找尋問題的解決方案而不是夸夸其談。 「When you talk about making a game, actually it is not about the game, it is about the people who make that game." 「當你提到遊戲製作,它更多的是關乎於遊戲製作者而不是遊戲本身。」這是上學期結束時,我和老師談及我們的遊戲,老師送給我的一句話。 現在,我是該遊戲的主設計師。每天除了完成編程本職工作,也在帶領團隊改進遊戲設計,並不斷地綜合各方意見,化解分歧和爭執。 這就是我關於遊戲製作的感受。遊戲技術僅僅是開始,後面,還有很多困難等著你去解決。遊戲和技術不是一回事,下面做技術你至少可以按部就班,搞出來的東西中規中矩,就想拍電影,跟著聖經走總能搞出中規中矩的東西,而開發遊戲哪來那麼一部聖經,跟著誰走都難保你中規中矩,真正的核心方法都窩在公司當商業機密,唯一能看到的東西估計已經是幾個世紀前的了。
分情況,如果是用現有的遊戲引擎進行開發,那難度也就和使用現成的框架進行網站製作相仿,大概能複雜那麼一點點,主要看涉及ai與否,ai的複雜程度。如果要重新從引擎開始寫起,我沒試過,但是估計不會比os和compiler簡單多少。。。
比較大型的遊戲, 大概也就兩三百人吧,
我們單位做金融軟體開發部門至少3000人。那得看什麼遊戲
掌握軟體是基礎也是最終要求。光有想法,沒有能力,那怎麼去實現呢?ps.創新是建立在繼承的基礎上,多積累才是硬道理
推薦閱讀:
※守望先鋒只玩一個英雄是什麼體驗?
※類似於「毀滅殺手」這樣的體積極小的遊戲是如何做出來的?
※Agar.io有什麼技巧?
※如何評價《戰神》這款遊戲?
※暴雪製作的最爛的一款遊戲是什麼?