超級瑪麗才64K,劇情比魂斗羅還長。
當年電腦技術的限制和成本限制導致FC硬件性能不行,FC上魂斗羅、超級瑪麗這種優(yōu)秀的游戲,在設計階段就考慮怎么實現“人看上去內容豐富,實際技術層面單調”,游戲策劃人員和程序員密切合作,實現了效果好、容量小、對性能要求還低。
例如魂斗羅這種游戲中,由于主機內存空間有限,任何一幀畫面的顏色其實只有16種,但通過美工巧妙的設計,人家16色的畫面達到了256色的效果。
今天的很多2D游戲基本都是65536甚至更高的色彩,除了少數優(yōu)秀作品,大部分游戲顏色搭配上感覺也沒有超越魂斗羅。
你看看今天XBox上贈送的"大戰(zhàn)喵星人",2020年了,游戲畫面水平還在上世紀80年代,背景畫面連2層卷軸都沒有,還不如當年的SEGA的街機.
魂斗羅可以算是典型的游戲在在規(guī)劃設計層面根據硬件條件優(yōu)化的例子。
PC上其實也類似的例子,在到時代的時候,有個游戲叫MDK,硬是在沒有3D加速的情況下,利用CPU實現了偽3D游戲,視覺效果和用加速卡的游戲比差距很小。
當時有個文章專門介紹了該游戲在設計階段的優(yōu)化,比較“黑”的遠景、角色甚至子彈、碎片造型偏多邊形大大降低了圖形計算量小程序無法使用雪碧圖,還有就是游戲中的通道是用來讀盤的。這些點其實都是在游戲策劃階段就考慮的,屬于整體設計的優(yōu)化,不是后期的技術優(yōu)化。
但PC上這樣的優(yōu)化非常少,因為在PC上游戲和硬件是完全分離的廠家,游戲廠商沒有優(yōu)化的動力,硬件廠商還有軟件劣化好銷售新硬件的動力。所以目前性能優(yōu)化目前只在主機上才能看到。
——————————————————————————————————
很多朋友說現在的程序員不優(yōu)化程序了,其實這個觀點有點片面,準確的說法是隨著IT技術應用領域的拓展,現在的程序跑去更需要優(yōu)化的領域優(yōu)化程序了,而“傳統(tǒng)的”需要優(yōu)化的領域,隨著硬件技術的提升,直接加硬件比優(yōu)化程序更劃算。
我們不能忽視的一點是,隨著程序越來越復雜,優(yōu)化的代價也在提高,十年前我還在一線做性能優(yōu)化的時候,一個比簡單很多的定制化數據庫就有百萬行級別的代碼,你光看重要的部分也得看十幾萬行代碼才能明白那些地方需要優(yōu)化。
以為例,雖然硬件數量異常龐大硬件上稍微節(jié)約一點也很可觀,但里面的軟件數量也一樣龐大,如果要求每個軟件都優(yōu)化,那么成本會很大最終抵消硬件節(jié)約的那點收益。
雖然我們看手機上到處是“不優(yōu)化”的軟件,但由于手機內存和CPU比較充裕,所以我們現在的App的生產力很高,如果要求每個App都按FC的入門標準(注意不是魂斗羅的高標準)去優(yōu)化,我估計95%的App都要下架,但節(jié)約的那點內存和CPU,最多降價10%,如果有一種是9折的,但只能運行5%的精品App小程序無法使用雪碧圖,你會買不?
而服務器端軟件,對于90%的系統(tǒng),增加CPU內存的錢拿來發(fā)工資估計不夠程序員把代碼看完,而再增加一個機柜也就是100-200萬的事情,比起雇傭一堆程序員優(yōu)化幾個月最后還容易造成Bug的情況,增加一些硬件是最好的辦法。