• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            麒麟子

            ~~

            導(dǎo)航

            <2010年4月>
            28293031123
            45678910
            11121314151617
            18192021222324
            2526272829301
            2345678

            統(tǒng)計(jì)

            常用鏈接

            留言簿(12)

            隨筆分類

            隨筆檔案

            Friends

            WebSites

            積分與排名

            最新隨筆

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            #

            [導(dǎo)入]一個(gè)簡(jiǎn)單的線程管理方式。

            文章來(lái)源: www.17173.com

            周末,總是有點(diǎn)那么的無(wú)聊。閑來(lái)沒(méi)事,想想每次自己要進(jìn)行多線程編程時(shí)的痛苦,也并借機(jī)考慮設(shè)計(jì)了一個(gè)簡(jiǎn)單的線程管理方式。 

                沒(méi)什么好說(shuō)的,首先想想線程的創(chuàng)建,每次都要CreateThread,傳遞一堆的參數(shù),還得沒(méi)事查查MSDN,唉,效率低啊。反正,對(duì)于我來(lái)說(shuō),線程基本都是缺省優(yōu)先級(jí)、缺省安全的。不如把這些一起封裝了。

                不多說(shuō),C++不用對(duì)象機(jī)制用什么?順便借鑒一下java。來(lái)個(gè)實(shí)際線程就是run,啟動(dòng)采用start。

            class thread

            {

            public:

                 thread( void );

                 virtual ~thread( void );

             

                 virtual void run() = 0;

             

                 void start();

            };

                 這個(gè)也就是最基本的,基于對(duì)象的線程基類了。子類只需要實(shí)現(xiàn)run作為線程,調(diào)用start,就可以啟動(dòng)線程了。線程的所需參數(shù),很簡(jiǎn)單,基于對(duì)象,有需要的,做為擴(kuò)展類的成員變量——成員資源來(lái)訪問(wèn)。

                就這么簡(jiǎn)單?線程訪問(wèn)最大的問(wèn)題——資源共享。那好,很容易想到互斥量。還有java的關(guān)鍵字synchronized,我們也就加一個(gè)鎖的概念。

            class thread

            {

            public:

                 thread( void );

                 virtual ~thread( void );

             

                 virtual void run() = 0;

             

                 void start();

             

                 static void syncLock( void *res,bool lock );

            };

                這樣,在最基本的線程資源——HANDLE,就可以被管理了,資源的訪問(wèn)也可以通過(guò)lock和unlock來(lái)保護(hù)了。

                實(shí)際中,很多時(shí)候,我們希望能限制或知道有多少線程在運(yùn)行,那么再加一個(gè)運(yùn)行線程記數(shù)功能。大多時(shí)候,往往是采用線程池,而且會(huì)根據(jù)CPU數(shù)目,決定運(yùn)行的線程數(shù)目。我們干脆,再提供一個(gè)功能,限制對(duì)象上可以允許同時(shí)運(yùn)行的線程數(shù)目。那好,改為(同時(shí)加上一些保護(hù)和注解):

            typedef unsigned int U32;

            /**

             * 線程對(duì)象

             * 提供基于對(duì)象的線程處理接口

             */

            class thread

            {

            public:

                 /**

                  * 線程基于對(duì)象的構(gòu)造

                  * para max 允許最多同時(shí)運(yùn)行線程數(shù)

                  */

                 explicit thread( U32 max = -1 );

                 virtual ~thread( void );

             

                 /**

                  * 啟動(dòng)一個(gè)線程

                  * @return 啟動(dòng)成功否

                  */

                 bool start( void );

             

                 /**

                  * 對(duì)象上啟動(dòng)的線程數(shù)

                  * @return 線程數(shù)

                  */

                 U32 count( void );

                

                 /**

                  * 線程執(zhí)行函數(shù)

                  * @return 無(wú)

                  */

                 virtual void run( void ) = 0;

             

                 /**

                  * 為對(duì)象加解鎖

                  * @return 無(wú)

                  * @para res 要加解鎖的資源對(duì)象

                  * @para lock 加鎖還是解鎖

                  */

                 static void syncLock( void *res,bool lock );

             

            private:

                 thread( const thread &t );

                 thread &operator=( const thread &t );

             

                 void *m_datas;

            };

                至于實(shí)現(xiàn),我想不難。別忘了,對(duì)象銷毀時(shí)要等待所有線程結(jié)束,并釋放HANDLE資源哦。否則,線程會(huì)訪問(wèn)錯(cuò)誤的內(nèi)存,還有線程HANDLE被泄漏的。(千萬(wàn)別死鎖了,自己實(shí)現(xiàn)時(shí)就因?yàn)橘Y源鎖來(lái)鎖去,鎖死了。)

                哈哈,就這么簡(jiǎn)單,一個(gè)簡(jiǎn)單的線程創(chuàng)建、管理就實(shí)現(xiàn)了。至于void *,你可以根據(jù)自己的實(shí)現(xiàn)去定義數(shù)據(jù)結(jié)構(gòu)。

            東西簡(jiǎn)單,也就不貼出cpp源碼了,關(guān)鍵是個(gè)想到、做到的問(wèn)題。

                頭文件和lib,放在rar包吧,給大家一個(gè)實(shí)現(xiàn)后的參考。如果,發(fā)現(xiàn)有什么問(wèn)題,可以隨時(shí)和我聯(lián)系。或者,您有更好的想法,并且愿意和我分享,那真是舉目明月,盡展抒懷。假如,您對(duì)有些語(yǔ)法,比如explicit不明,那么,建議您先看看有關(guān)C++的語(yǔ)法或者找您周圍的高手,讓他們洗腦一番。:}

            謝謝閱讀,好就此打住。

            配套程序下載:http://dev.gameres.com/Program/Other/thread.rar

            來(lái)源:游戲夢(mèng)網(wǎng)


            文章來(lái)源:http://ly-weiwei.blog.163.com/blog/static/72975283200811282024276

            posted @ 2008-12-28 14:00 麒麟子 閱讀(152) | 評(píng)論 (0)編輯 收藏

            [導(dǎo)入]程序員改編游戲向女友求婚

              

            程序員改編游戲向女友求婚 - love.Leaf - 聽雨閣

            伯尼·彭是一名華裔金融軟件程序設(shè)計(jì)員,由于其女友塔米·李平時(shí)最喜歡玩美國(guó)Popcap游戲公司出品的一款《Bejeweled》游戲,他便暗中修改程序,讓玩家在游戲中累積到一定積分時(shí),屏幕中會(huì)出現(xiàn)一枚戒指和一句求婚語(yǔ)。結(jié)果,當(dāng)女友玩到這一積分時(shí),她意外地看到了求婚語(yǔ),然后答應(yīng)了他。

              伯尼·彭將這段浪漫記憶寫在自己的博客上,當(dāng)他接受美國(guó)《紐瓦克明星紀(jì)事報(bào)》采訪時(shí),他覺(jué)得以這種方式求婚“略顯書呆子氣,但還算酷”。只是修改程序頗不容易,花了他整整一個(gè)月時(shí)間。

              這對(duì)情侶準(zhǔn)備于今夏完婚,Popcap公司聞?dòng)嵑螅岢鲑?zèng)送兩人飛往西雅圖度蜜月的機(jī)票。公司一名發(fā)言人說(shuō):“多數(shù)游戲開發(fā)商不喜歡別人操縱他們的游戲程序……但這次修改為他贏得了一名女孩的心。作為編程人員,我們要對(duì)他說(shuō):‘伯尼,向你脫帽致敬!’”

              Popcap公司還打算向參加兩人婚禮的賓客贈(zèng)送《Bejeweled》游戲。


            文章來(lái)源:http://ly-weiwei.blog.163.com/blog/static/729752832008112815439337

            posted @ 2008-12-28 13:55 麒麟子 閱讀(152) | 評(píng)論 (0)編輯 收藏

            [導(dǎo)入]十個(gè)習(xí)慣讓你精通新的開發(fā)技術(shù)

            文章來(lái)源: www.17173.com

            1. 要看書。在成千上萬(wàn)的編程圖書中,可能很大一部分根本毫無(wú)用處。但是仍然有很多圖書對(duì)你的(編程)能力有很大的提升。我一直堅(jiān)持,相比在網(wǎng)絡(luò)上查找很多有用信息,在同類圖書中查找要來(lái)得更容易更快捷。閱讀技術(shù)圖書可心更好地抓住核心內(nèi)容。對(duì)于理論,架構(gòu)和設(shè)計(jì)等方面來(lái)說(shuō),圖書也一樣很有幫助。只不過(guò)要找到高質(zhì)量的、權(quán)威的信息,就不如網(wǎng)絡(luò)上可供查找的范圍廣。

              2. 讀代碼。這也是我很喜歡的一種方式。如果我并沒(méi)有幾年的專業(yè)編程工作經(jīng)驗(yàn),在學(xué)習(xí)之初我并不會(huì)去讀很多復(fù)雜的代碼。如果我要是早些開始學(xué)習(xí),我將是一個(gè)比現(xiàn)在更好的程序員。但是,開始時(shí)我會(huì)從一些開源項(xiàng)目里,去學(xué)習(xí)那些源代碼(當(dāng)然,這些代碼不能與我的工作有關(guān),也不是我自己寫的)。要從自己會(huì)使用到的,或者自己感興趣的程序開始這項(xiàng)工作。我是從 Paint.net 這個(gè)網(wǎng)站里開始學(xué)習(xí)的,而且已經(jīng)積累了很多關(guān)于 .NET 的編程技術(shù)。

              讀別人的代碼可以為你提供更多不同的工作思路,這比你完全憑自己思考得到的工作方式要多。

              3. 寫代碼。謹(jǐn)記,要寫大量的代碼。從根本上來(lái)講,最好的學(xué)習(xí)方法就是實(shí)踐。如果不寫代碼,你根本不能把(某種語(yǔ)言中)內(nèi)在的東西學(xué)習(xí)透徹。學(xué)習(xí)之初,可以從一些技術(shù)指南和圖書中照搬一些盡量簡(jiǎn)單的程序。當(dāng)然,這種照搬是要自己完全手工輸入,而不是復(fù)制和粘貼,這兩種之間的效果差別是很大的。這種方法的主旨就在于,使知識(shí)內(nèi)在化,并思考其用法,而不是盲目照抄。學(xué)習(xí)過(guò)程中,要時(shí)常查找新的 API 調(diào)用方法,這其實(shí)是簡(jiǎn)單的事情。

              最重要的是,要寫一個(gè)你自己的程序,不管它是一個(gè)簡(jiǎn)單的游戲,或者是一個(gè)參與開源項(xiàng)目的程序,還是一個(gè)公為你自己使用的簡(jiǎn)單插件。用不同的方式來(lái)寫程序,盡量嘗試使用新的技術(shù),新的技巧,新的設(shè)計(jì)方式。一定要讓現(xiàn)在的項(xiàng)目比以往的項(xiàng)目更好。想要成一個(gè)優(yōu)秀的開發(fā)者,這一點(diǎn)是核心。

              4. 與其他開發(fā)者交流。像 Apple,微軟,Google 等大公司一樣的新聞描述的一樣,(與其他開發(fā)者交流)可以讓你解決一些復(fù)雜的問(wèn)題。雖然這并不能讓你感覺(jué)到自己已經(jīng)成一個(gè)團(tuán)隊(duì)或是社區(qū)的成員,但是這種方法可以讓你接觸到更多不同的想法。

              不同類型的項(xiàng)目要求不同的設(shè)計(jì)方法,代碼技術(shù),開發(fā)流程和設(shè)計(jì)思想。如果你工作在一個(gè)小團(tuán)隊(duì)里,你不必與太多的人接觸,只要在用戶群會(huì)議中找到一些人(來(lái)討論)即可。如果這樣還不行的話,參與到在線論壇中與其他人討論(這時(shí)你需要更努力地尋找高質(zhì)量的討論內(nèi)容)。

              6. 教會(huì)別人。相對(duì)于僅僅讀代碼之類的工作,教其他人學(xué)習(xí)可以讓你更深入地學(xué)習(xí)某個(gè)技術(shù),這種方法有著非凡的效果。教會(huì)別人某個(gè)技術(shù),同樣也會(huì)讓你更專注于這種技術(shù),并且可以比別人更深層次地理解它。同樣你也會(huì)面對(duì)一些問(wèn)題。

              “如果你不能向一個(gè)六歲的兒童解析清楚一個(gè)概念,那么其實(shí)是你并沒(méi)有完全理解它。”Albert Einstein說(shuō)。

              教學(xué)場(chǎng)景可以是無(wú)窮無(wú)盡的:與工作搭檔一對(duì)一交流,休息碰面,非正式周會(huì),學(xué)習(xí)茶會(huì),教室,討論發(fā)表會(huì),等等。每周在相同理念開發(fā)者之間舉辦一次30分鐘的非正式會(huì)議怎么樣?每周,讓幾個(gè)人來(lái)就他們想要更深入了解話題,向大家傳授這些技術(shù)知識(shí),并且展開討論。如果你知道你將要向團(tuán)隊(duì)成員們傳授正學(xué)學(xué)習(xí)的知識(shí),你是不是更想要了解這項(xiàng)技術(shù)的每個(gè)細(xì)節(jié)呢?

              6. 收聽網(wǎng)絡(luò)電臺(tái)。如果你有空閑的時(shí)間,可以訂閱網(wǎng)絡(luò)電臺(tái)節(jié)目。我現(xiàn)在最喜歡的編程節(jié)目就是 .Net Rocks。這個(gè)節(jié)目還會(huì)做一些視頻節(jié)目,叫做 dnrTV 。這樣會(huì)讓你即時(shí)捕捉到最新最好的技術(shù)。一個(gè)人是不能學(xué)習(xí)到所有知識(shí)的,而網(wǎng)絡(luò)電臺(tái)剛是一個(gè)學(xué)習(xí)了解廣泛知識(shí)的途徑。

              7. 閱讀博客。博客遠(yuǎn)遠(yuǎn)比閱讀者要多,但是其中有一些卻是極其優(yōu)秀的。我這里不并不是要推薦博客,因?yàn)榫W(wǎng)絡(luò)上已經(jīng)有了足夠多的博客。這是與真正在開發(fā)你所喜歡和使用的軟件的開者聯(lián)系的好方法。

              8. 學(xué)習(xí)新的語(yǔ)言。即使你已經(jīng)在 C(++,#) / JAVA 等語(yǔ)言上有很好的造詣,仍然有很多其他可以解決問(wèn)題的編程語(yǔ)言。學(xué)習(xí)新的語(yǔ)言,是對(duì)你已有思維方式的挑戰(zhàn)。這不僅僅是另一種語(yǔ)言,更是對(duì)思維的重新架構(gòu)。的確,所有的語(yǔ)言最后都會(huì)被編譯成匯編程序,但是這并不意味著高級(jí)語(yǔ)言毫無(wú)價(jià)值。

              9. 學(xué)習(xí)不正確的方式。除了要學(xué)習(xí)應(yīng)該怎么做,還要學(xué)習(xí)不應(yīng)該怎么做。經(jīng)常閱讀 Dailywtf.com ,學(xué)習(xí)你并不知道的經(jīng)驗(yàn)與教訓(xùn)。學(xué)習(xí)適當(dāng)?shù)拿嫦驅(qū)ο笤O(shè)計(jì)方式,代碼寫作方式,和必須要寫的代碼等,是很好的方式,但是如果不細(xì)心的話也容易養(yǎng)成不良習(xí)慣。學(xué)習(xí)認(rèn)識(shí)不正確的思路是負(fù)責(zé)項(xiàng)目開發(fā)至關(guān)重要的一環(huán)。

              維基百科對(duì)很多覺(jué)的不正確方式有十分透徹的分類。

              10. 要謙虛。

              學(xué)習(xí),意味著用更好的知識(shí)代替不完美的知識(shí),增長(zhǎng)你所不知道的知識(shí)。只有承認(rèn)自己有所不足,才能有學(xué)習(xí)的動(dòng)力。歸根到底,就是謙虛,不對(duì)嗎?如果你開始認(rèn)為你已經(jīng)掌握了所有需要的知識(shí),那么你就危險(xiǎn)了。真正的學(xué)習(xí)是如饑似渴地追逐知識(shí)并使其內(nèi)在化,這需要很大的努力。我們都知道這一點(diǎn),但是要必須時(shí)常不斷地提醒自己。


            文章來(lái)源:http://ly-weiwei.blog.163.com/blog/static/729752832008112814833200

            posted @ 2008-12-28 13:49 麒麟子 閱讀(83) | 評(píng)論 (0)編輯 收藏

            [導(dǎo)入]如何成為一名優(yōu)秀的程序員?

            文章來(lái)源: www.17173.com

            程序員(英文Programmer)是從事程序開發(fā)、維護(hù)的專業(yè)人員。一般我們將程序員分為程序設(shè)計(jì)人員和程序編碼員,但兩者的界限并不非常清楚,特別是在中國(guó)。

                作一個(gè)真正合格的程序員,應(yīng)該具有的素質(zhì)。

                1:團(tuán)隊(duì)精神和協(xié)作能力 團(tuán)隊(duì)精神和協(xié)作能力是作為一個(gè)程序員應(yīng)具備的最基本的素質(zhì)。軟件工程已經(jīng)提了將近三十年了,當(dāng)今的軟件開發(fā)已經(jīng)不是編程了,而是工程。獨(dú)行俠可以寫一些程序也能賺錢發(fā)財(cái),但是進(jìn)入研發(fā)團(tuán)隊(duì),從事商業(yè)化和產(chǎn)品化的開發(fā)任務(wù),就必須具備這種素質(zhì)。可以毫不夸張的說(shuō)這種素質(zhì)是一個(gè)程序員乃至一個(gè)團(tuán)隊(duì)的安身立命之 本。

                2:文檔習(xí)慣 文檔是一個(gè)軟件系統(tǒng)的生命力。一個(gè)公司的產(chǎn)品再好、技術(shù)含量再高,如果沒(méi)有缺乏文檔,知識(shí)就沒(méi)有繼承,公司還是一個(gè)來(lái)料加工的軟件作坊。作為代碼程序員,必須將30%的工作時(shí)間寫用于技術(shù)文檔。沒(méi)有文檔的程序員勢(shì)必會(huì)被淘汰。

                3:規(guī)范化的代碼編寫習(xí)慣 知名軟件公司的代碼的變量命名、注釋格式,甚至嵌套中行縮進(jìn)的長(zhǎng)度和函數(shù)間的空行數(shù)字都有明確規(guī)定,良好的編寫習(xí)慣,不但有助于代碼的移植和糾錯(cuò),也有助于不同技術(shù)人員之間的協(xié)作。一些所謂的高手甚至叫囂高手寫的代碼一般人看不懂,我只能說(shuō)他不是一名合格的程序員。

                4:需求理解能力 程序員要能正確理解任務(wù)單中描述的需求。在這里要明確一點(diǎn),程序員不僅僅要注意到軟件的功能需求,還應(yīng)注意軟件的性能需求,要能正確評(píng)估自己的模塊對(duì)整個(gè)項(xiàng)目中的影響及潛在的威脅,如果有著兩到三年項(xiàng)目經(jīng)驗(yàn)的熟練程序員對(duì)這一點(diǎn)沒(méi)有體會(huì)的話,只能說(shuō)明他或許是認(rèn)真工作過(guò),但是沒(méi)有用心工作。

                5:模塊化思維能力 作為一個(gè)優(yōu)秀的程序員,他的思想不能在局限當(dāng)前的工作任務(wù)里面,要想想看自己寫的模塊是否可以脫離當(dāng)前系統(tǒng)存在,通過(guò)簡(jiǎn)單的封裝在其他系統(tǒng)中或其他模塊中直接使用。這樣做可以使代碼能重復(fù)利用,減少重復(fù)的勞動(dòng),也能是系統(tǒng)結(jié)構(gòu)越趨合理。模塊化思維能力的提高是一個(gè)程序員的技術(shù)水平提高的一項(xiàng)重要指標(biāo)。

                6:測(cè)試習(xí)慣 測(cè)試是軟件工程質(zhì)量保證的重要環(huán)節(jié),但是測(cè)試不僅僅是測(cè)試工程師的工作,而是每個(gè)程序員的一種基本職責(zé)。程序員要認(rèn)識(shí)測(cè)試不僅是正常的程序調(diào)試,而要是要進(jìn)行有目的有針對(duì)性的異常調(diào)用測(cè)試,這一點(diǎn)要結(jié)合需求理解能力。

                7:學(xué)習(xí)和總結(jié)的能力 程序員是很容易被淘汰的職業(yè),所以要善于學(xué)習(xí)總結(jié)。許多程序員喜歡盲目追求一些編碼的小技巧,這樣的技術(shù)人員無(wú)論學(xué)了多少語(yǔ)言,代碼寫起來(lái)多熟練,我們只能說(shuō)他是一名熟練的代碼民工,他永遠(yuǎn)都不會(huì)有質(zhì)的提高。一個(gè)善于學(xué)習(xí)的程序員會(huì)經(jīng)常總結(jié)自己的技術(shù)水平,對(duì)自己的技術(shù)層面要有良好的定位,這樣才能有目的 地提高自己。這樣才能逐步提高,從程序員升級(jí)為軟件設(shè)計(jì)師、系統(tǒng)分析員。

              作為高級(jí)程序員,乃至于設(shè)計(jì)師而言,除了應(yīng)該具備上述全部素質(zhì)之外,還需要具備以下素質(zhì):1、 需求分析能力2、 整體框架能力3、 流程處理能力4、 模塊分解能力5、 整體項(xiàng)目評(píng)估能力6、 團(tuán)隊(duì)組織管理能力1,激情。

              我曾經(jīng)遇到許多“職業(yè)程序員”,他們從事IT是因?yàn)橛X(jué)得這是一種職業(yè),他們只在工作時(shí)間編程,除非送去培訓(xùn)否則他們不會(huì)學(xué)習(xí)新東西,這不是好的程序員。我認(rèn)為一個(gè)好的程序員總是對(duì)編程充滿激情,而且好的開發(fā)者會(huì)做一些編程工作即使這沒(méi)有報(bào)酬。激情是一個(gè)優(yōu)秀程序員的重要指標(biāo)。2,自學(xué)好學(xué)

              編程領(lǐng)域始終發(fā)展變化著,不出一年有些新技術(shù)就變成了老技術(shù),這并不是說(shuō)好的程序員要對(duì)所有新技術(shù)跟進(jìn),但有些卻對(duì)學(xué)習(xí)任何新技術(shù)都沒(méi)有興趣。他們通常在學(xué)校學(xué)習(xí)了編程,然后工作后單位安排學(xué)什么就學(xué)什么。如果在招聘中你聽到“讓我培訓(xùn)一個(gè)星期我就會(huì)勝任這個(gè)工作”那不要雇傭他。實(shí)際上,真正優(yōu)秀的程序員 始終談?wù)撝闼恢赖男录夹g(shù),向人們解釋為什么你必須用這個(gè)技術(shù),哪怕沒(méi)有聽眾聽得明白,哪怕他自己也不明白。3,聰明

              聰明包括很多因素,情緒和社會(huì)交際只是其中之一。好的程序員絕不木訥,他們是最聰明的人,他們中的許多善于交際,健談、興趣廣泛。4,隱性的經(jīng)驗(yàn)

              —好的程序員通常有自己的私人的一些研究、愛(ài)好、項(xiàng)目,而這些是他們不寫在簡(jiǎn)歷上(通常覺(jué)得不值得寫),但表現(xiàn)出來(lái)卻可能恰恰是他的潛能、深度和后勁所在。5,技術(shù)多樣性

              由于好的程序員喜歡學(xué)習(xí)和涉獵新技術(shù),所以一般來(lái)說(shuō)超過(guò)22歲的都熟知很多新技術(shù),而且對(duì)多種技術(shù)的長(zhǎng)短有“強(qiáng)烈”的個(gè)人意見(jiàn)/見(jiàn)解,喜好嘗試新鮮技術(shù)。6,資格證書

              資格證書并不是識(shí)別真正程序員的方法,MCSE、SCJP說(shuō)明不了什么,它們只是讓別人認(rèn)識(shí)和獲取的,頂多代表這個(gè)人在某個(gè)技術(shù)有一定的知識(shí)。原文作者在文末寫道:以上所說(shuō)的標(biāo)準(zhǔn)并不是絕對(duì)的,因?yàn)橛行﹥?yōu)秀的程序員確實(shí)不符合上述,而有些bad程序員卻符合了。但相信這些對(duì)大多數(shù)真正的程序員都適用。


            文章來(lái)源:http://ly-weiwei.blog.163.com/blog/static/729752832008112814218104

            posted @ 2008-12-28 13:42 麒麟子 閱讀(150) | 評(píng)論 (0)編輯 收藏

            [導(dǎo)入]讓你徹底明白什么叫游戲引擎(5)

            引擎的明天(2001年~)

                2001年有許多優(yōu)秀的3D射擊游戲陸續(xù)發(fā)布,其中一部分采用的是Quake III和Unreal Tournament等現(xiàn)成引擎,如《星際迷航深度空間九:墜落》、《重返德軍總部》和《榮譽(yù)勛章:盟軍進(jìn)攻》,而更多的則采用的是自己開發(fā)的引擎,比較有代表性的包括網(wǎng)絡(luò)射擊游戲《部落2》(Tribes 2)、第一人稱射擊游戲《馬科斯·佩恩》、《紅色派系》(Red Faction)和《英雄薩姆》等。

                《部落2》采用的是V12引擎,這款引擎雖然無(wú)法同Quake III和Unreal Tournament相提并論,但開發(fā)者為它制定的許可模式卻相當(dāng)新穎,你只需花上100美元就可以獲得引擎的使用權(quán),不過(guò)天下沒(méi)有免費(fèi)的午餐,隨之而來(lái)的一系列規(guī)定相當(dāng)苛刻,例如,開發(fā)者不能把該引擎用于為其它游戲發(fā)行商、其它商業(yè)游戲站點(diǎn)等競(jìng)爭(zhēng)對(duì)手制作游戲,開發(fā)出來(lái)的游戲必須在發(fā)行前交給GarageGames公司(V12引擎的所有者),不能交給任何第三方,GarageGames公司將擁有這些游戲五年的獨(dú)家發(fā)行權(quán)等等。盡管如此,對(duì)于那些規(guī)模較小的獨(dú)立開發(fā)者來(lái)說(shuō),這個(gè)超低價(jià)引擎仍然具有非常大的吸引力。

                《馬科斯·佩恩》采用的是MAX-FX引擎,這是第一款支持輻射光影渲染技術(shù)(Radiosity Lighting)的引擎,這種技術(shù)以往只在一些高級(jí)的建筑設(shè)計(jì)軟件中出現(xiàn)過(guò),它能夠結(jié)合物體表面的所有光源效果,根據(jù)材質(zhì)的物理屬性及其幾何特性,準(zhǔn)確地計(jì)算出每個(gè)點(diǎn)的折射率和反射率,讓光線以更自然的方式傳播過(guò)去,為物體營(yíng)造出十分逼真的光影效果。MAX-FX引擎的另一個(gè)特點(diǎn)是所謂的“子彈時(shí)間”(Bullet Time),這是一種《黑客帝國(guó)》風(fēng)格的慢動(dòng)鏡頭,在這種狀態(tài)下甚至連子彈的飛行軌跡都可以看得一清二楚。MAX-FX引擎的問(wèn)世把游戲的視覺(jué)效果推向了一個(gè)新的高峰。

                《紅色派系》采用的是Geo-Mod引擎,這是第一款可任意改變幾何體形狀的3D引擎,也就是說(shuō),你可以使用武器在墻壁、建筑物或任何堅(jiān)固的物體上炸開一個(gè)缺口,穿墻而過(guò),或者在平地上炸出一個(gè)彈坑躲進(jìn)去。Geo-Mod引擎的另一個(gè)特點(diǎn)是高超的人工智能,敵人不僅僅是在看見(jiàn)同伴的尸體或聽見(jiàn)爆炸聲后才會(huì)做出反應(yīng),當(dāng)他們發(fā)現(xiàn)你留在周圍物體上的痕跡如彈孔時(shí)也會(huì)警覺(jué)起來(lái),他們懂得遠(yuǎn)離那些可能對(duì)自己造成傷害而自己又無(wú)法做出還擊的場(chǎng)合,受傷的.


            文章來(lái)源:http://ly-weiwei.blog.163.com/blog/static/729752832008112813341616

            posted @ 2008-12-28 13:34 麒麟子 閱讀(133) | 評(píng)論 (0)編輯 收藏

            僅列出標(biāo)題
            共38頁(yè): First 28 29 30 31 32 33 34 35 36 Last 
            久久久WWW成人免费精品| 99久久这里只精品国产免费| 亚洲精品国精品久久99热一| 香蕉久久夜色精品国产尤物| 久久久久久久久无码精品亚洲日韩| 99久久精品免费看国产一区二区三区| 一本久久a久久精品vr综合| 狠狠久久亚洲欧美专区| 久久国产精品波多野结衣AV| 亚洲欧美另类日本久久国产真实乱对白 | 久久久久国产精品熟女影院| 国产精品久久久久无码av| 久久高清一级毛片| 午夜天堂av天堂久久久| 国产三级精品久久| 久久亚洲精精品中文字幕| 国产成人久久精品二区三区| 精品伊人久久大线蕉色首页| 欧美久久综合性欧美| 精品久久久中文字幕人妻| 精品无码久久久久久久动漫| 一本色道久久88精品综合| 久久99精品久久久久久齐齐| 久久久国产精品亚洲一区| 青青草原综合久久大伊人| 国产精品亚洲综合专区片高清久久久 | 久久精品黄AA片一区二区三区| 久久久久久亚洲精品不卡| 国产亚洲精久久久久久无码77777| 国产ww久久久久久久久久| 久久久无码精品亚洲日韩蜜臀浪潮 | 久久久精品一区二区三区| 久久亚洲AV成人无码国产| 欧美日韩精品久久免费| 免费精品久久久久久中文字幕| 久久综合久久综合久久综合| 国产精品美女久久久m| 久久国产精品99国产精| 国产亚洲精久久久久久无码| 久久国产亚洲精品无码| 国产成人久久精品激情|