許毅是一時衝動才答應詹姆斯和他較量的,可是比試開始進行之後,他看到詹姆斯的水平,心中卻有些後悔了。這種比試無疑是一點意義都沒有的,尤其在對手的水平和自己相差很大的情況下,讓他有欺負小孩子的感覺。
一直以來,許毅最受不了的就是聽到外國人老是拿中國說事,說什麼中國人這樣不行,那樣也不行的。每每聽到這個,許毅就異常火大,或許中國在這方面發展是比較緩慢,但很多方面不爲人所知,許毅相信是因爲中國人不喜歡出風頭的原因使然罷了。有些事情,大家並不喜歡弄得滿世界的人都知道,這和中國人的處世哲學有關。譬如說中國武術,要不是那些高手都諱莫如深,哪裡輪得上什麼跆拳道、柔道和空手道之類的大行其道?所以說,沒見過,並不代表沒有,如果一定要那樣想,只不過是顯得自己非常無知罷了。
在以前,許毅有好幾次就因爲這種原因跟別人“幹過架”,當然,這是他年輕氣盛的時候。到後來,年紀大了,經歷得多了,他也就沒有這麼多激情了,對類似的言論無非是一笑了之,說得難聽點,就是用看待跳樑小醜的目光來看待他們。
而現在,許毅隱隱意識到,自己的性格已經和以前有了變化,在這方面也是如此,有時候往往會頭腦發熱,自制能力下降。這點在他到達美國之後就更明顯,好像一直套在自己頭上的緊箍咒突然被取了下來一樣,這點在他對待蘇蘭態度的問題上也有體現。要是在國內,他無論如何都不會像這裡這樣急色的。
一時衝動,接受了詹姆斯的挑戰,而現在,這次比試卻又上升了另外一個高度,變成了“0day”和“黑客學院”的較量,或者說是美國和中國的技術愛好者在這個領域的較量。
許毅之所以會接受這個比試項目,是因爲他以前確實做過demo。國際上,很多人都認爲中國是不存在這種小demo程序的編寫者的,畢竟製作demo需要的技術含量非常高,那些會製作的程序員們對此也諱莫如深,甚少有專門傳授怎麼編寫這類程序的教程。
但是,沒有聽說過並不代表沒有。
在項斌認識的哥們中,就有一個精於此道的高手。他的網名叫做“馬良”,即神筆馬良之意,正如其名,馬良不但在編程方面有很高的造詣,而且還擅長美工,這點和他父親是一個畫家很有關係。
馬良追求的正是計算機和藝術之間的完美結合,他喜歡用計算機來穿造美,所以經常喜歡做一些cg動畫,後來還參加過一些遊戲編程小組,他又是編程又是美工。再後來,在他接觸到demo之後,他便深深地沉迷在這個光怪陸離的微型世界當中,將絕大部分時間都花在了這個上面。由於當時他找不到人來研究這個,以至於只好去國外的一些專業論壇學習,他的技術進步很快,後來加入了一些這方面的小組,很快成爲那些小組的核心成員。
不過,這段時間來,他一直沒有獨立完成一個完整的作品,都是協助其他人做demo,因爲他後來遇到了一個自己喜歡的人,他決定,自己的第一個demo一定是爲她寫的。
在向那個女孩表白之前,馬良找到項斌,和他商量要他幫忙與他一起完成他的第一個demo,而且,他要用這個demo向那個女孩表白。
項斌的技術在馬良之上,馬良找他就是讓他負責編程這塊,而他自己則專心做圖形,另外還找了個懂音樂的哥們負責音樂處理。
在此之前,項斌已經對demo有了一些比較深刻的認識,因爲他們幾個哥們之間的技術幾乎是共享的,找到什麼好玩的技術,都會在第一時間內公佈出來,誰有興趣就自己來研究,有什麼問題就問提供者。當時項斌在學加密,而demo技術竟然以這麼小的大小能夠獲得這麼絢麗的效果,項斌當時就被吸引住了,於是展開了研究。
這可是關係到馬良的終生大事,自然不能大意,項斌打起十二分精神和馬良一起,兩人連續努力了快半個月才終於將這個只有64k大小的程序搞定。
在此期間,項斌的主要工作就是編程,首先要寫一個程序框架,用來將圖形的顯示和音樂同步起來,當然,那些特效也是由編程完成。剛開始的程序是用c語言編寫的,後來,爲了使程序的體積更小,運行更加流暢,項斌又用匯編進行了多次重寫。
馬良主要是負責手繪圖形,其中還包括3d建模、貼圖製作以及設定虛擬攝像機的運行路徑等。其中的貼圖製作最爲煩瑣,要逐象素逐象素地進行描繪。
最後那個負責音樂的哥們則進行音樂的創作和製作。這是一種叫做module的音樂,它與midi有點類似, 但module使用自己的樂器採樣而不像midi使用的是聲卡或軟波表的樂器, 因此module可以在所有硬件平臺上獲得同樣的播放效果,而且,文件卻很小巧。 moudule允許對聲音完全的控制, 對應着, 製作的難度水平也大大增加。
各部分都完成之後,最後的工作就是許毅的了,他負責將這些元素同步起來。普通的視頻是通過連續不斷地播放幀來實現動畫效果,而一幀的大小就已經達到幾m,所以這些視頻文件非常大。demo顯然不能這樣,不然64k的大小,連一張圖片都不只這麼大。實際上,demo程序是通過直接對顯卡進行操作和計算,其中只包含一些關鍵幀,而中間的實現效果則完全通過算法演算出來,而且,通常情況下,demo裡面的圖形都是一些比較規則的多邊形,裡面的圖案組合往往可以重複利用,這樣就大大減少了整個程序的體積。
當然,縮小體積還有最主要的一步,那就是壓縮。所有demo程序都利用了另一種名爲upx的壓縮算法,這種壓縮算法效率很高,甚至可以達到10%壓縮比。在demo程序運行之後,它便會自動進行解壓行爲,將整個映像解壓到內存中,然後纔開始運行。
他們三個人昏天暗地地忙活了半個月,終於把這個東東給弄出來了,心情那個激動啊,三人呆在小黑屋裡面看了又看,雖然不知道到底是什麼水平,但比起歷屆那些獲獎的作品來,這個程序顯然要更勝一籌。在程序中,虛擬的馬良向那個女孩正式表白,場面非常炫!
挑了個黃道吉日,馬良將複製到一個u盤中,然後送給了那個女孩。結果幾天之後,那個女孩告訴馬良,她已經有男朋友了,就最近找的。她看了那個程序,只是覺得有些好看而已,並沒有多大的感覺。
“我男朋友還給我做了個flash呢!比這個有趣多了。”那女孩說。
馬良他們幾個當時聽到這句話之後差點吐血,於是這件事就這麼黃了,馬良很受打擊,將這個程序全部刪除,連複本都沒有留下來。
事後,有一比較風流的哥們分析說:“談戀愛和技術沒有什麼關係,就拿這件事來說,她懂什麼技術?認爲flash的技術含量比你的demo要高,這也是可以理解的。你的失敗之處在於太木頭了,我說,這是你們技術員的通病,女孩子要哄,要多花時間陪,哪能像你們這樣”
雖然許毅在馬良的影響下也去學過一陣畫畫,但畢竟是半吊子水平,真要來做demo可就不僅如意了。所以,他現在要完成這個demo,一個人肯定是不成的。
既然比試的性質已經變了,許毅也沒打算自己將這件事一個人扛下來,他乾脆就在黑客學院發了個公告,向大家簡略地將這件事說了,並且說要臨時組建一個demogruop,邀請擅長美術和音樂的朋友共同加入這個團隊,當然,有做過demo的朋友也是可以的。最後的一點要求是,必須是中國人。
對於許毅這個做法,大家並沒有什麼異議,畢竟他一個人對抗整個0day,簡直就是不可能的事情,更何況還是在他們拿手的領域中。
這件事關係重大,再加上大家對demo的瞭解實在是太少,所以前來聯繫許毅的人少之又少,不過人並不在多,有幾個關鍵的人就可以。
兩個小時之後,三個符合條件的人聯繫上了許毅。