Transcript 教材3: 電腦遊戲程式
電腦遊戲程式
江啟忠 助理教授
東南科技大學
資訊科技與通訊學系
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