demo,即demon,惡魔的意思,好可怕,我得跑……
(認真地回答)其實是demonstration啦。程序員說的demo指的就是示例代碼/完整的項目代碼。
Demo是demonstration的縮寫,其中文含意為“示范”、“展示”、“樣片”、“樣稿”,常被用來稱呼具有示范或展示功能及意味的事物。
Demo源碼可以理解為某種計算機語言的示例代碼,是可以在相應的編譯環境下直接運行的源代碼,通常Demo的作用就是Demo源碼開發者引導其他程序員進行二次開發所提供的模板程序代碼。
在電腦公司,可以看到電腦上展示介紹電腦軟硬件的程式,這些屬於商業性質的demo;這些demo是憑借圖形與音樂來吸引顧客,達到宣傳的目的。還有一種DEMO並非指的商業性的DEMO,而是在國際比賽,由參賽團體專門為DEMO比賽而制作的DEMO。這些DEMO主要目的是:帶給欣賞者趣味並且發揮電腦在繪圖與音樂上的親歷。也就是說DEMO結合令人看到目瞪口呆的CG與音樂,再加上DEMO制作者的編程技巧與功力,展現出許多高難度的表演。有人說DEMO就是:“親愛的,我把PC變成SGI了。”得獎的DEMO在設計時一般進行程序最優化,充分發揮PC的硬件潛力,產生驚人的效果,包括:多變的音樂,即時運算產生的RENER圖形,FRACTRL,透明,PLASMA,3D VECTOR SPACE,VIRTUAL REALITY,MORPH等。
為了達到這些效果,這些比賽用的DEMO程式通常有下面
四個特性
⑴ 使用匯編語言:要產生一個簡單的DEMO,用高級語言可以很輕松的寫出來,但因為一些限制速度很不理想。運用匯編語言最優化,可以充分發揮與控制軟硬件的威力。
⑵ 多聲道的音樂。
⑶ 突破傳統的繪圖能力:在PC上標准VGA在320×200的解析度只能顯示256色,很少有記憶頁,造成很多限制。而DEMO往往使用特殊的模式,通常稱做X MODE,在這些模式下能達到320×200 256色多記憶頁。
⑷ 即時運算:在這些DEMO里大多有3D向量空間,虛擬真實的部分,或是有許多的電腦上色效果,還有變形等。由於即時運算的關系,盡管一個DEMO不大,也可以播10-15分鍾。
DEMO就像編一個游戲,任何DEMO都需要有程序設計,美術人員與編程人員。常常以DEMO團隊的方式來編制DEMO。
一個DEMO團體通常包括
⑴ 領隊 ORGANIZER:統籌策划帶領團隊
⑵ 編程人員 CODER:設計DEMO程序,他們是Demo的核心人物,優秀的coder可以寫出強大而又精巧的demo引擎,一個優秀的coder+優秀的優化編譯器+UPX加殼就足夠能把任意的實時圖形演算程序控制在64kb內了。
⑶作曲家MUSICIAN:tracker/sound/music,制作音樂,不是簡單的產生mp3文件那么簡單,由於64kb無法存儲一個波形文件,此時的sound track都是通過程序實時波形演算合成而來。基本上一個成熟的團隊都會寫一個自己的FM發音引擎,這和8位紅白機的音樂一樣,好的音效師,可以利用波形合成在簡單的FC游戲中產生與mp3一樣的音效,而完全不懂FM合成的音效師則可能只能讓團隊的FM引擎發出“嘀嘀”的正弦波形
⑷ 美工 GRAPHICS ARTS:主要負責demo的構思和圖片素材的建立,他在設計畫面的同時,也要考慮色彩的位深、貼圖的尺寸、畫面的特效以便於更好的能夠提升cpu和顯卡的處理效率。
⑸ 其他人員:負責BBS和協助等
簡而言之電腦上講的demo就是通過軟件實時生成的動畫音樂或游戲,生活中常見的例子:電腦在顯卡測試時播放的3D動畫就是通過軟件用顯卡實時計算生成的。而demo比賽則是限制軟件大小然后比較誰產生的效果更有創意或更炫酷,關於國際demo比賽見下文”拓展說明“