類似於「毀滅殺手」這樣的體積極小的遊戲是如何做出來的?
01-03
提到FPS(第一人稱射擊)遊戲,大家當然不會陌生,但時下流行的此類遊戲動輒就要佔據上GB的硬碟空間,而這一款效果還算不錯的FPS遊戲,大小卻只有96KB。
這個微型FPS遊戲,名為.kkrieger,是由.theprodukkt小組開發完成。其大小僅僅為96KB。摘自百度百科題主也在網上搜了好多,但是都沒有看到有具體回答出是如何製作的。
所以在這裡想問:「毀滅殺手」具體運用了什麼技術把遊戲做到這麼小?附上遊戲下載地址:kkrieger_v1.0.rar_免費高速下載
看到@梁邊妖關注了這問題,過來答一下
之前我玩過這個,沒記錯的話這是一對德國夫婦用彙編寫的遊戲這個遊戲看著小,實際上在遊戲正式運行前會自己先編譯一遍,一個100K不到的遊戲運行時候會用到近1G的內存,基本就是把所有在正常遊戲中該即時演算和載入的提前都寫到內存里去了,而不是在事先安裝在硬碟內的文件處讀取,全程遊戲幾乎沒有任何卡頓。以上做的代價就是遊戲內粒子效果固定,怪物AI也有一定規律,劇情也非常短。在這個存儲設備價格遠低於運算設備的年代,其實這樣做得不償失,噱頭效果遠大於實際意義。當然這玩意水平還是很高的。。。
以上-----看不少人被梁編拉過來補充幾句-----這個東西主要是為了展現過程生成技術而我之所以在原答案中說噱頭大於實際意義是因為現在遊戲發展趨勢就是擬真化和沙盒化,而這個技術對於這個趨勢毫無貢獻。如果我記憶無誤的話,這個參加了某個競賽,而那個競賽的大部分作品都是動畫作品,第一名是一個比它更小,大概只有30-50k的動畫,一個以飛船為視角的城市漫遊。
等我找到再來更雖然我沒玩過這遊戲,也沒看過別人分析的文章或反編譯的內容,但考慮到樓上的回答只是介紹了技術的名字沒有解釋到底怎麼做,而題主似乎也不是相關領域的就嘗試解釋一下。知乎第一答大大們輕拍。樓上提到的過程內容生成就是指任何內容不是預先生成好的放在硬碟上然後實時或預先載入到內存里。
比如一張槍的貼圖500by500解析度。這個技術最最暴力的解釋就是代碼直接硬編碼這250000個像素。比如:
image(0,0) = (1,0.8,0.5);image(0,1) = (0.9,0.7,0);當然沒人會這麼做,而且這麼做編譯出來的二進位文件也不一定小。所以一般會用一個輸入是像素的坐標輸出是顏色rgb值的函數來生成這個procedure content。這個函數一般會有一定複雜度,至於具體長什麼樣或具體的技術,題主想了解我再加上。技術關鍵字是Procedural Content Generation
在遊戲開始前
它會有一段漫長的載入是在創建約500兆的遊戲用的到的數據
因此它會非常佔CPU的內存
這個遊戲的眾多BUG也是因為這個原因而產生的
電腦在處理眾多數據的時候某個數據處理不好
就成了個BUG
考慮到他的大小這個缺點還是可以原諒的 轉
OH NO, 這遊戲在我電腦上不可以運行~
實時演算,載入時間視劇情與內容而定,一般比較短。
推薦閱讀:
※Agar.io有什麼技巧?
※如何評價《戰神》這款遊戲?
※暴雪製作的最爛的一款遊戲是什麼?
※就想知道,玩lol有木有不在乎輸贏的?
※如何評價遊戲《紅色警戒 3》?