給日本遊戲主機開發遊戲究竟比給PC開發遊戲難在哪?
01-04
之前有看到過一個觀點,就是日本遊戲的衰落原因之一是日本索尼世嘉或任天堂主機都是獨立架構,比美國的PC通用架構開發難度大,但是專門為遊戲而設計的主機的開發難度究竟比PC難在哪裡呢?或者只是說不如PC上工具豐富?
PS3 PS4 其實已經不錯了,PS4 和 X1 就是個電腦,開發也和電腦沒啥區別早期的遊戲機很多顯卡甚至不是 all points addressable,也就是說畫面必須拆分成圖塊然後擺放到顯存特定的位置上,如果你在 HTML4、XHTML 的時代寫過頁游的話就知道這是多麼蛋疼的事情
比如 FC 的顯卡實際上是一個捲軸背景圖層加上若干個精靈圖層,那個捲軸背景是由若干個圖塊拼成的(而且圖塊的形狀和顏色還分開存,尼瑪……)。
而想實現超瑪一代那樣固定在頂部的記分牌,就得利用掃描線中斷,在輸出完記分牌之後改掉這一幀之後每一行掃描開始時在捲軸中的位置。對,就是這麼蛋疼。而且直到 PS,卡帶裡面經常都會集成晶元,反正卡帶就是直連匯流排的一個「內存」,自然可以玩 MMIO。很多 FC 遊戲擴展容量就是靠卡帶里的內存管理晶元。超任時期甚至有在卡帶里集成顯卡(Super FX)的。相比顯卡 CPU 算力不足反而是小事了。題主列舉的觀點本身就有問題,日本遊戲的衰落是日式遊戲本身的衰落,而不是日資企業推出的平台的衰落,否則就無法解釋為什麼日本廠家在X360和XONE上推出的遊戲一樣賣不動。日式遊戲為何衰落是一個挺複雜的問題,技術本身占的比重其實不大。至於平台機和PC的開發難度要分兩個不同的時期,早期的平台機往往將大量的基礎功能例如捲軸和放縮以及透明等功能用硬體的方式實現,開發商只要把數據填充到內存中指定的位置,在向指定的埠寫入一些參數,其他諸如捲動和變形等效果就完全由主機的CPU和DSP晶元負責了,而同樣的功能在PC上則必須由程序員編寫相應的代碼用軟體實現,因此在這個時期PC遊戲的編寫難度和複雜度都高於家用機,而由於相應的功能用軟體完成,因此在速度上也遠遜於同時期的console主機,唯一的優勢可能就是容量大並且可修改的硬碟了,所以這個時期PC上比較有影響的全是RPG和策略類遊戲,至於強調速度和畫面效果的ACT以及FTG完全不是家用機的對手;後期的家用機,大約是PS1之後吧,上面說的架構基本上已經被拋棄了,SEGA的SS可能是最後一代用這種思想設計出來的流行主機,在哪之後的家用機為了追求更高的彈性,同時也是因為主機運算能力的提高和硬體成本的急劇降低,越來越多的採用了和PC相同的架構,在這樣的前提下,兩者在硬體上區別已經越來越小了,差別主要在於開發工具和環境上,家用機平台其開發人員的數量遠遠不能和PC相比,因此較難產生優秀的開發工具,畢竟一共沒多少人用的東西,而且一般5~6年也就換代了,根本沒時間搞那些玩意,要知道工具鏈這東西實在是開發階段最浪費人/月的大神啊,因此這個時期的PC遊戲往往比家用機遊戲開發起來要容易一點,直到後來微軟出現了,把DX帶入了平台遊戲,這樣PC與平台遊戲之間最後的壁壘也消失了,直到今天,算上unity3d這樣的東西,單就開發來說PC和家用機真的已經沒多大區別了。
其實PC和安卓手機也不簡單,因為要為不同的配置去一一優化,優化渣的遊戲其實不少,比如阿甘騎士,使命召喚10,刺客信條,劍靈(這些對下不優化),星際爭霸(對上不優化)。而且日本遊戲機並不是所有都難開發,世嘉當年和微軟合作的主機就跟容易。而且目前來講PS Vita 和PS4已經非常接近手機和PC了,PS Vita還有手機上沒有的128M顯存,手游移植到Vita已經不是技術問題,而是開發者有沒有信仰的問題了^o^
PC上同一套技術能用很多年,主機換一代變一代。
主流圖形技術都是跟著PC走的,無論是實驗室還是引擎公司。而主機基本不跟著PC走。主機的性能極限和瓶頸往往連主機開發商自己都不知道。於是誰願意為主機研發專門投錢?做的人少,技術資源又封閉(這很重要,PC上的技術往往都是公開的,複製代碼,抄寫論文的速度遠比重新造輪子來得快)對於開發者來說,這足夠影響開發難度。
舉個例子:開發渲染器,PC平台開發=DirectX開發(12以前的版本)。而微軟的傳統是把API給你封裝好幾層讓你只能用最傻瓜的簡單功能(windows api也是如此),盡量把控制權留在驅動層。如果有過開發經驗的人會發現DirectX12的開發難度大幅上升,開發者有了更大的控制權,而管理難度也更大了,12剛出來的時候日本開發人員在twitter和博客上發表的感想幾乎一致:越來越接近主機開發了。是有專用工具鏈,不過最終還是C編譯器而已,比如GCC,所以寫代碼也沒多大感覺。網上有泄露出來的GBA工具鏈,貌似也有NDS的,搜一下就知道啥樣了。
至於切圖塊,做各種精靈,這個太正常不過了,PC遊戲也經常這麼搞啊,性能好。發色數低的時候,用色板和圖分開也很正常啊,而且這樣一張圖甚至既可以做雪天又可以做草地。不知道我是不是理解錯了,我覺得這些都是很正常很智慧的事情。。推薦閱讀:
※類似 Corona SDK、GameSalad 等跨平台無(或低)編程門檻的遊戲開發工具會在未來一兩年內對移動遊戲開發造成何種影響?
※在unity中如何實現開放世界的超大野外環境下時間流逝的光照變化?
※《俠客風雲傳》好評如潮,是因為做對了哪些事情?
※unity引擎可以製作無縫超大地圖嗎?
※普通程序員,如何轉行至遊戲製作行業?