電腦遊戲程式 江啟忠 助理教授 東南科技大學 資訊科技與通訊學系 http://gpwiki.org/index.php/Game_Programming_Wiki 1 電腦遊戲? 玩電腦遊戲是一回事,但這些遊戲是如何產生 的? 我可以自己做電腦遊戲嗎? 公司如何匯集 藝術,音樂和故事,它融合在一起,形成一個 互動的經驗? 對一些人,這個過程似乎是一個 巫術,一個複雜的黑暗藝術,他們也不明白或 者覺得,只有大公司數百萬的資金和群眾工作 人員有能力這樣做。 如何開始遊戲編程? 2 如何開始遊戲編程? 首先要做的是決定哪些 編程語言 或 編程環境,您想採用。 當研究語言,你應該考慮: 1. 這個語言是否容易學的麼? 2. 這個語言是否適合做遊戲嗎? (是快和足夠強大?) 3. 這個語言是否合適用於遊戲的開發工具(game development tools)或API (application programming interface)? 4. 作業系 統平台 ? 5. 我能不能找到足夠的說明文件,當我開發遊戲? 3 編程語言 Traditional Programming Languages 傳統編程語言 Assembly BlitzBasic / BlitzMax / Blitz3D PureBasic JustBasic C / C++ C# D Delphi Delphi.NET F# FreeBASIC Java Objective-C QBasic Visual Basic Visual Basic.NET 4 編程語言 Scripting-Style Languages 腳本式語言 •ActionScript (Flash) •FPI •JavaScript •KonsolScript •Lua •Python •Ruby •Squirrel 5 遊戲開發工具 game developing tools 一旦你已經決定了語言,您需要選擇一個遊戲開發工具或 API。 遊戲工具可以為您提供的功能,顯示圖形,播放聲 音,input 等等;這又是一個巨大的決定。 考慮以下幾點: 1.是否遊戲開發工具兼容我的語言? 2.是否遊戲開發工具適合我的技術水平? 3.該遊戲開發工具是否適合我想要發展的遊戲? 4.是提供足夠的文件,讓我可以了解遊戲開發工具嗎? 5.我是否理解並同意遊戲開發工具的執照? 6 遊戲開發工具 -圖形用戶界面 GUI Name Agar Language Platform C/C++ Description Agar is a modern open-source, cross-platform toolkit for graphical applications implemented in C, C++, Perl and Ada. Unlike most other GUI toolkits, Agar takes maximum advantage of hardware graphics acceleration when it is available via OpenGL, but it also supports traditional Windows framebuffer interfaces such as SDL direct video. The Agar , Linux, API is entirely thread-safe when Agar is compiled with Mac OS optional threads support.是一個開放源碼,跨平台的工 具包的圖形應用程序執行在C,C + +,Perl。 不像大 多數其它GUI工具包,以最大限度地利用Agar的硬件 圖形加速時可通過 OpenGL,它也支持傳統的 framebuffer接口,如SDL的直接視頻。 AntTweakB C/C++ ar Windows , Linux Crazy Eddie's GUI C++ System Windows , Linux, Mac OS 7 遊戲開發工具-角色動畫Character Animation 名稱 語言 平台 說明 情緒 FX是一個實時的角色 個人電腦,蘋果機,動畫系統,專為可插入任何 Linux操作系統, 3D引擎,遊戲或其他任何 EMotionFX C / C + + 於 Xbox360,其他 產品。 有助於 Nextgen遊 情緒外匯支援新一代多核心, 多線程遊戲機和PC以及單 戲機 線程環境。 選角 & 演員樣式 Windows 7 / Windows Vista / 1.可自訂之演員及樣式 2.身材調整及臉部變形 Windows XP commerci Service Pack 2 (或 3.CloneCloth 自訂設計 iClone al 以上版本) 動作 & 互動 支援 32-bit 及 64- 1.場景內動作編輯 bit 作業系統 2.3D 臉偶操控 3.演員及物件互動 8 遊戲開發工具 - 音頻 Audio 名稱 語言 跨平台 說明 Audiere C++ v Audiere是一個高層次的音頻 API。 它可以播放Ogg Vorbis格式,支持 MP3,未壓縮的WAV,AIFF格式,S3M,XM公司和它的文件。 對於音頻 輸出,支持DirectSound或WinMM Audiere在Windows,Linux和開放源 碼軟件的Cygwin和SGI鋁在IRIX。 BASS ç v 商業,HGE的使用它作為一個免費的音頻工具,但執照需要你購買低音商 業項目。 Dumb ç v 免費軟件模塊 Player工具 FMod v irrKlang C++ v OpenAL ç SDL ç SDL_mixer ç 免費 2D和3D音頻工具 v v 簡單 Directmedia層是一個跨平台的多媒體工具,旨在提供低級別的訪問 音頻,鍵盤,鼠標,操縱桿,通過 OpenGL 3D硬件,和2D視頻幀緩 衝。 主要處理 wav文件的聲音。 為了支持其他音頻格式另一種聲音工具 是必要的。 v SDL_mixer是一個擴展到SDL工具,提供了能夠播放多個聲音文件和音樂 同時進行。 它支持多種不同音頻格式,並提供接口,可以輕鬆地加載它 們。 作為一個擴展到SDL,這很簡單,便攜,在GNU LGPL協議下提供。 9 遊戲開發工具-通用多功能general multipurpo Name Allegro Langu age Platform Description Allegro is a game programming library for C/C++ developers distributed freely. It provides many functions for graphics, sounds, player input (keyboard, mouse and joystick) DOS, Unix (Linux, and timers. It also provides fixed and floating point mathematical functions, 3d functions, file management FreeBSD, Irix, C/C+ Solaris, Darwin), functions, compressed datafile and a GUI. + Windows, QNX, BeOS and MacOS Allegro是一個C / C + +的自由使用,遊開發人員戲編程 工具。 它提供了許多功能,圖形,聲音,播放器輸入 X (鍵盤,鼠標和遊戲桿)和計時器。 它還提供了定點和 浮點數學函數,3D功能,文件管理功能,壓縮數據文件 和圖形用戶界面。 Amaltheia is a cross-platform game programming API that supports two backends, OpenGL and DirectX. The aim of the Amaltheia project is to create an intuitive and simple to use Amalthei C/C+ library, providing core 3d and 2d functionality in a platform Linux, Windows a + independent manner. It also provides platform independence regarding basic network functions, input handling, threads and sound. Currently the GNU/Linux and the Windows OSes are supported. 10 遊戲開發工具-圖Graphics Name Language Platform Description Windows, Allegro C/C++ Cross platform games programming library. Linux C/ DirectX C++/ .NET/VB Irrlicht C/ C++/ .NET Windows, The Direct3D and DirectDraw components of DirectX are used XBox for 3D and 2D rendering in most Windows platform games. The Irrlicht Engine is an open source high performance realtime 3D engine written and usable in C++ and also Windows, available for .NET languages. It is completely cross-platform, Linux, using D3D, OpenGL and its own software renderer, and has all Mac of the state-of-the-art features which can be found in commercial 3d engines. C, but bindings Windows, A low-level 3D graphics library. Most other 3D libraries use OpenGL exist for Linux, either this or DirectX to do their actual rendering. MacOS X most languages SDL C, but bindings Windows, exist for Linux, MacOS X most languages SDL (Simple DirectMedia Library) is a cross platform library designed for simple 2D graphics. It also provides basic input and sound functions and is able to use OpenGL for 3D rendering. 11 遊戲開發工具 – Image 影像 Name Languag Platform e TGTL The Game C++ Texture Loader glpng photoshop photoimpa ct C Description Not API specific; supports OpenGL, D3D and other software renders : Load BMP, Windows TGA, PNG, JPG, DXTn compressed. ZLIB license. Windows, Linux and Supports OpenGL SGI http://tryit.adobe.com/ap/tw/products/phot oshop/?sdid=FLDKF& http://estore.corel.com/store/crelapac/zh_T W/pd/productID.106213100/pgm.76130100/ Currency.USD?gclid=CKGU4ILM4acCFYgdpAod lgLcTw 12 遊戲開發工具 -文字呈現 Text Rendering Name Freetype GLFT_Font Language Platform C Win, Lin, Mac C++ Win, Lin, Mac Description True Type loading and decoding, used by most TTF renderers] Simple Text in OpenGL on any platform with Freetype and OpenGL. 13 遊戲引擎 Game Engines 遊戲引擎通常包含遊戲開發工具的核心功能。 http://gpwiki.org/index.php/Game_Engines Name Language Platform License Graphics Sound 3DCake Python Walk 2D/3D via Window commerc DirectX Yes s/Linux ial and OpenGL C-script like A6 Game Window Commer 3D via Yes language Engine s cial DirectX /C++/Del phi Adventur e Game C++ Studio (AGS) Window s (Mac & Linux Free ports availabl e) Allegro Yes Netwo rking Scripting Other features No Yes: Pythonscr Many ipting with 3DCW helpers Yes Yes: Custom C-Script scripting language Physics Yes: Custom C-Script scripting language Supports usermade plugins and modules Yes Immense user communi ty, including Beginner s' Forum 14 簡易電腦遊戲(Simple Games)的程式 簡易電腦遊戲設計,是指由個人為主要工作者,從 事電腦遊戲開發;其目的在於學習. 1. HTML • Java Script • VB Script 2. Java Applet 3. VB 15