作者:龍飛

1.1:SDL是什么?
SDL是Simple DirectMedia Layer(簡(jiǎn)易直控媒體層)的縮寫(xiě)。它是一個(gè)跨平臺(tái)的多媒體庫(kù),以用于直接控制底層的多媒體硬件的接口。這些多媒體功能包括了音頻、鍵盤(pán)和鼠標(biāo)(事件)、游戲搖桿等。當(dāng)然,最為重要的是提供了2D圖形幀緩沖(framebuffer)的接口,以及為OpenGL與各種操作系統(tǒng)之間提供了統(tǒng)一的標(biāo)準(zhǔn)接口以實(shí)現(xiàn)3D圖形。從這些屬性我們可以看出,SDL基本上可以認(rèn)為是為以電腦游戲?yàn)楹诵拈_(kāi)發(fā)的多媒體庫(kù)。
SDL支持主流的操作系統(tǒng),包括Windows和Linux。在官方的介紹中,我們可以找到它所支持的其他平臺(tái)。(SDL supports Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX. )。SDL本身從C語(yǔ)言開(kāi)發(fā),并且能很好的在C++等高級(jí)語(yǔ)言中使用。在官方可以看到SDL所支持的語(yǔ)言很多。(Including Ada, C#, Eiffel, Erlang, Euphoria, Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl, PHP, Pike, Pliant, Python, Ruby, Smalltalk, and Tcl. )
SDL在GNU LGPL version 2下發(fā)布,這意味著你可以免費(fèi)的使用。并且可以免費(fèi)的用于商業(yè)軟件的制作(只要你直接使用SDL的動(dòng)態(tài)鏈接庫(kù),Windows下的SDL.dll)。如果你將SDL庫(kù)編譯進(jìn)了自己的二進(jìn)制代碼中,你需要指明你所使用的SDL庫(kù)的版本以及包括你自己修改的源代碼,并說(shuō)明這些代碼的原始出處。這是很寬松的法律,你可以用如此強(qiáng)大的多媒體庫(kù)完全合法的免費(fèi)開(kāi)發(fā)商業(yè)游戲。
1.2:本教程是為誰(shuí)準(zhǔn)備的?
本教程是為電腦游戲制作的發(fā)燒友準(zhǔn)備的。因?yàn)長(zhǎng)inux的普及以及不受$M的牽制,SDL在過(guò)去的幾年中,成為了跨平臺(tái)開(kāi)發(fā)PC游戲的首選。即使是在Windows平臺(tái)下,SDL有具有自身的優(yōu)勢(shì)。與MFC使用不成熟的C++外表偽封裝的win32api以及一家獨(dú)唱推崇的COM風(fēng)格和.net相比較,SDL是更純粹的C風(fēng)格。無(wú)論你是喜歡純C還是OOP的C++,你都可以按照你自己喜歡的方式對(duì)SDL進(jìn)行再次封裝,只要你自己愿意,可以讓自己的程序更接近C/C++的標(biāo)準(zhǔn)風(fēng)格,讓代碼更加優(yōu)美也更加容易閱讀。
事實(shí)上,在我看來(lái),有了標(biāo)準(zhǔn)C++(興奮的期待C++0x的發(fā)布),SDL和OpenGL這些標(biāo)準(zhǔn)或免費(fèi)庫(kù)的支持,完全可以扔掉與C++標(biāo)準(zhǔn)并不怎么和諧的“Windows編程”了。沒(méi)有誰(shuí)愿意被別人牽著鼻子走,這個(gè)道理在軟件行業(yè)尤其的明顯。
1.3:本教程的寫(xiě)作計(jì)劃?
我是為那些熱愛(ài)游戲并希望嘗試投入到游戲制作中的人們準(zhǔn)備的禮物。也就是說(shuō),這是一個(gè)玩家寫(xiě)給其他玩家的游戲制作教程。我想,這個(gè)教程本身不可能簡(jiǎn)單,但是也絕對(duì)不是“技術(shù)狂”的風(fēng)格。我不希望去深挖一些技術(shù)細(xì)節(jié),我只希望找出整個(gè)知識(shí)體系中對(duì)于游戲制作最有幫助的部分,同時(shí),我也不會(huì)避諱那些有助于幫助我們理解和記憶的看起來(lái)晦澀的原理。游戲需要技術(shù)來(lái)實(shí)現(xiàn),但是做游戲顯然不是單純的做技術(shù)研究。我會(huì)在自己的學(xué)習(xí)過(guò)程中完善這個(gè)教程,如果你覺(jué)得更新太過(guò)于緩慢,可以在網(wǎng)上搜集到許多已經(jīng)存在的教程。以下這個(gè)教程是SDL官方推薦的,我也推薦給你們:
http://lazyfoo.net/SDL_tutorials/index.php
1.4:我目前的計(jì)劃和心愿。
我是一個(gè)游戲策劃,我最大的心愿是做出好玩的游戲。所以,顯然,我做游戲的動(dòng)力來(lái)自于對(duì)于目前存在的所有游戲的滿足度不夠,以及已經(jīng)通過(guò)多年策劃得到的一個(gè)方案希望實(shí)現(xiàn)出來(lái)以接受市場(chǎng)的考驗(yàn)。通過(guò)大量的分析和論證,我目前的項(xiàng)目計(jì)劃集中在設(shè)計(jì)一款具有角色扮演性質(zhì)的大型多人在線同盟共時(shí)制回合戰(zhàn)略游戲。這個(gè)項(xiàng)目的第一個(gè)計(jì)劃就是實(shí)現(xiàn)類(lèi)似英雄無(wú)敵III的戰(zhàn)場(chǎng)戰(zhàn)斗效果,這就是我研究SDL的原因。
對(duì)于游戲策劃方面的想法,大家可以看我的商博,上面也提到了一些考慮中的商業(yè)模式。
http://i.cn.yahoo.com/lf426
八卦一點(diǎn)的,可以看我在sina上的主博,評(píng)論和牢騷也是不少滴^^
http://blog.sina.com.cn/fleetlong
最后介紹一下我以及曾經(jīng)的團(tuán)隊(duì)UVi Studio。我本人以及之前的團(tuán)隊(duì)(2007年1月——2007年7月)UVi Studio致力于網(wǎng)絡(luò)游戲的市場(chǎng)分析與策劃。簡(jiǎn)單點(diǎn)說(shuō),我們希望從事整個(gè)網(wǎng)絡(luò)游戲產(chǎn)業(yè)鏈上處于開(kāi)始端(市場(chǎng)分析與策劃)以及末端(運(yùn)營(yíng))的工作,而將游戲的具體制作外包。做一個(gè)不太恰當(dāng)?shù)谋扔鳎腿缤覀兿M鼍W(wǎng)絡(luò)游戲領(lǐng)域的“開(kāi)發(fā)商”,而非現(xiàn)在大部分公司采用的“開(kāi)發(fā)”“承建”和“運(yùn)營(yíng)”全包的商業(yè)模式。現(xiàn)在,我們將不僅僅依靠傳統(tǒng)的“資本創(chuàng)業(yè)”模式,我們也關(guān)注技術(shù)創(chuàng)業(yè)的可行性,并一直在嘗試。這種轉(zhuǎn)變體現(xiàn)在形式上,請(qǐng)記住這個(gè)名字:UVi Soft ( From 2008 )。
無(wú)論你是對(duì)游戲感興趣的技術(shù)人才,藝術(shù)家還是看好游戲市場(chǎng)的資方,如果你對(duì)這個(gè)項(xiàng)目感興趣,請(qǐng)?jiān)诘谝粫r(shí)間與我們聯(lián)系。
本人郵箱:
zbln426@163.com
UVi Soft以及這個(gè)項(xiàng)目的論壇地址:
http://fleetlong.c.lunqun.com/
posted on 2008-01-30 03:30
lf426 閱讀(30902)
評(píng)論(3) 編輯 收藏 引用 所屬分類(lèi):
SDL入門(mén)教程