數位遊戲設計
D
IGITALG
AMESD
ESIGN Week13 14/May/2008A
UDIO& N
ETWORK Game Audio
Overview of game audio Audio Formats
Effects Dubbing Music
OpenGL v.s. DirectX
4
A
UDIOP
ROGRAMMING Audio in games is more important than ever
before
Game audio has evolved
Started out as simple bleeps & bloops
Improvements in technology have placed game audio
on par with film soundtracks
Audio Team
In the old days, all audio was done by one person Today’s teams consist of dedicated Professionals for
5
A
UDIOD
ESIGNF
UNDAMENTALS Audio makes 1/3rd of the entire game experience Two key points
Creativity Integration
Audio Implementation
Creating great sound & music is only half of the work Current generation of audio Design tools puts the
power of implementation into the hands of the audio designer (where it belongs!)
6
P
ROGRAMMINGB
ASICA
UDIO Most gaming hardware has similar capabilities
(on similar platforms)
Mostly programming interfaces differ
Learning fundamental concepts of audio
programming is important
音效設計師必須決定遊戲音樂的風格、哪一部分遊戲
需要音樂,以及如何讓音效的過場遍布整個遊戲。音 效設計文件(sound design document;SDD)必須描 述遊戲中所需的音樂與音效元素。
7
API C
HOICES
DirectSound (part of DirectX API)
Only available on Windows platforms OpenAL
Newer API
Available on multiple platforms
Proprietary APIs
Typically available on consoles
3
rdParty Licensable APIs
A
UDIO FORMATS-FMS
FMS (Frequency Modulation Synthesis) 調頻合成
Using computer and algorithm to simulate
sounds in the real world
AUDIO FORMATS-FMS
DX7 (YAMAHA)
MP3 Demo
A
UDIOF
ORMATS: MOD
MOD in Amiga computer
Real music but not generated mathematically
The first version of wav table synthesis(波表合成) *.mod
AUDIO FORMATS: MIDI
MIDI: Musical Instrument Digital Interface
Formats:
SMF(Standard MIDI File): *.mid Karaoke: *.kar
取樣器
Fairlight CMI(昂貴的硬體先鋒)、 Emu E4 (模組單元)與 Gigastudio (軟體)呈現三個不同時代的取樣工具。
AUDIO FORMATS:MIDI
DLS1
DLS2 (support by Microsoft Direct Music)
DirectMusic Producer: A professional game music tool http://www.microsoft.com/downloads/details.aspx?Famil
yID=6e938a6e-b383-466b-a3ee-5a655bf5db8c&displaylang=en
iXMF (Interactive eXtensible Music Format) New proposed standard for a container format for
14
A
DVANTAGES ANDD
ISADVANTAGES OFMIDI
Actual music data size is negligible
Easy to control, alter, and even generate in
real-time
High quality music is more difficult to compose
and program
Only effective if you can guarantee playback of a
AUDIO FORMAT: CD (
WAV,
MP3)
Redbook Audio standard High Quality: 1411.2k bps
Approximate File size is 50~60mb Compressed audio format
Compressed audio formats allow sound and
music to be stored more compactly
ADPCM compression is implemented in
hardware on all the major current video game console systems
MP3 (MPEG1 Audio-Layer 3)
Lossy compression algorithm 11:1 compression rate
R
EDBOOKA
UDIOWAV對MIDI
WAV檔是預先混音好的音效或原聲帶,它們是線
性而非調適性的,不過有些遊戲軟體可以透過選
擇與轉進不同WAV檔而產生調適性的效果。
它所產生的聲音品質非常好,因為這些聲音都是
以標準方法進行錄製與混音。
MIDI檔則比較適合調適性,因為在遊戲執行期
間可以隨時操作每一個個別的音符。
在比較舊的遊戲中,MIDI原聲帶的聲音都很相
像,而比較新的遊戲已經可以自訂許多樂器銀行,
建立更多的聲音變化。
S
OUNDE
FFECTS 車輛撞擊 在箱子內裝滿金屬與一堆木材, 猛力搖箱子 開火 快速開傘以產生激起火焰的聲音, 捏皺玻璃紙以製造細碎的爆破聲 身體相撞 用木頭擊打南瓜或西瓜 槍聲 用尺之類的細木條擊打皮椅, 或是把皮帶對折後抽打 草叢 讓掃帚的麥稈發出沙沙聲 水沸騰 把吸管插進水裡, 吹出泡泡 飛機 錄下吹風機開與關的聲音, 用編輯軟體減緩或加速吹風機的聲音 wind bird19
E
NVIRONMENTALE
FFECTS Environmental effects nearly always
implemented in hardware
Sound transmission is categorized in three ways Direct transmission
Early reflections (echo)
20
D
UBBING Soundtrack for movie or game Narration (口白)
• 對話 & 敘事
• 前後情節不相關 • 多重版本
M
USIC • 設定基調 • 提供暗示 • 配樂 vs. 歌曲 • 遊戲 vs. 電影配樂 • 暫時音軌的狂熱 • 音樂資料庫 • 循環 vs 調適性音樂 • 當玩家做某個選擇或移出某個環境時(通常是改變方向 或退回原路),必須讓音效能夠做更適當的轉場。 • 非標準化工具 • 大多數交易都是買斷 • 遊戲音樂混音M
USIC Game Music MOD Player
25
O
PENGL
Direct3D對於PC遊戲的玩家,可以說是相當熟悉的 字眼。 由於PC上的遊戲大多使用Direct3D開發,因此想要 執行PC遊戲,就必須擁有一張支援Direct3D的3D加 速卡。 然而現在大多的3D加速卡規格說明中,卻多半註明 了支援OpenGL加速。26
O
PENGL簡介
OpenGL是SGI公司於1992年所提出的一個製作2D與3D 的圖形應用程式的API 。 是一套「計算機三維圖形」處理函式庫。 在電腦繪圖的世界裡,OpenGL就是一個以硬體為架構的 軟體介面。 程式設計者在開發過程中可以利用Windows API來存取檔 案,再以OpenGL API來完成即時的3D繪圖。27
O
PENGL發展史
目前OpenGL版本為2.1版。 OpenGL後來被設計成獨立於硬體與作業系統的一種顯示 規範,它可以運行於各種作業系統與電腦上。 能在網路環境以客戶端(Client)和伺服器(Server)模式之下 工作,它是專業圖形處理與科學計算等高階應用領域的標 準圖形函式庫。 它在低階成像應用上的主要競爭對手是微軟的Direct3D圖 形函式庫。28
O
PENGL函式說明
OpenGL可分為程序式(Procedural)與非描述式 (Descriptive)兩種的繪圖API函式。 程式開發者不須要直接描述一個場景,而只須要規範一個 外觀特定效果的相關步驟。 這個步驟則是以API的運作方式去呼叫的,其優點是可攜 性高,以及具有超過2000以上的指令與函式之繪圖功能。29
GLU與GLUT函式庫
GLU函數庫(OpenGL Utility Library):GLU是用來協助
程式設計師處理材質、投影與曲面模型的函式庫。
GLUT(OpenGL Utility Toolkit):GLUT主要是用於簡化
視窗管理程式碼的撰寫。不只有Microsoft Windows系統, 而是包括支援視窗形式的作業系統,如Mac
30
範例:「全方位3D遊戲」(一)
31
範例:「全方位3D遊戲」(二)
32
O
PENGL的運作原理
當撰寫OpenGL的程式,必須先建立一個供OpenGL繪圖 用的視窗。 利用GLUT來產生一個視窗,並取得該視窗的裝置本文 (Device Context)代碼,再透過OpenGL的函式來進行 OpenGL的初始化。 其實OpenGL的主要用意是在於使用者在表現高階需求的 時候,可以利用低階的OpenGL來控制。33
O
PENGL繪圖資料
當OpenGL在處理繪圖資料時,它會將資料
填滿整個緩衝區,而這個緩衝區內的資料
包含指令、座標點、材質資訊等,再等指
令控制或緩衝區被清空(Flush)的時候,將
資料送往下一個階段裡去做處理。
34
軟體要求
通常顯示卡廠商會提供GDI(Graphics Device
Interface,繪圖裝置介面)的硬體驅動程式來達成
畫面輸出需要。
而OpenGL的主要工作就是接受這種繪圖需求,
並且將這種需求建構成一種影像,然後再將影像
交給GDI處理,最後再由GDI送至繪圖顯示卡上。
OpenGL的軟體要求必須透過CPU計算,再送至
GDI處理影像,再由GDI將影像送至顯示裝置,
這樣才能算是一次繪圖顯像處理動作。
35
硬體要求
OpenGL的硬體處理要求是將顯像資料直接送往繪圖顯示 卡上。 現在繪圖顯示卡技術提升與價格低落的情況下,幾乎每一 張繪圖顯示上都有轉換與燈光(T&L)的加速功能了。 加上繪圖卡上的記憶體不斷地擴充,因此,在繪圖顯像的 過程中似乎都不需要經過CPU和主記憶體的運算了。36
D
IRECTX
現在玩Windows環境下的遊戲時,就不需要做這
些硬體設備的設定了。
因爲DirectX提供了一個共同的應用程式介面,只
要遊戲本身是依照DirectX方式來開發的話,不管
使用的是哪一家廠商的顯示卡或音效卡。
它統統都可以被遊戲所接受了,而且DirectX還能
發揮比DOS下更佳的聲光效果。
當然,在這些前提之下,顯示卡或音效卡的驅動
程式也必須要支援DirectX才行。
37
D
IRECTX SDK簡介
DirectX套件是由「執行時期」(Runtime)函式庫與
「軟體開發套件組」(Software Development Kit, SDK)兩個部份組成。
當應用DirectX技術的遊戲在開發階段時,程式開發
人員除了利用DirectX的執行時期函式庫外。
還可以透過DirectX SDK中所提供的各種控制元件,
38
39
D
IRECTG
RAPHICS
DirectGraphics是DirectX9的內建套件之一,它
負責處理2D與3D的影像運算,並支援多種硬體加
速功能。
DirectDraw在使用上與Windows GDI相似且簡
單易學,使用者可以利用顏色鍵作去透空處理。
DirectDraw除了簡單外,要做出相當炫的特效,
還是得自己動手寫。
在3D硬體加速卡如此普級化的今天,運用3D功能
作出超炫的畫面也是輕而易舉。
40
D
IRECTS
OUND
DirectSound套件則比MCI功能更為複雜與
多元與複雜,是一種用來處理聲音的API函
式。
DirectSound對於一個音效的播放區分為數
個物件成員,我們僅介紹幾個較為具體的成
員,它們分別是:音效卡(DirectSound)、
2D緩衝區(DirectSoundBuffer)、3D緩衝區
(DirectSound3DBuffer)與3D空間傾聽者
(DirectSound3DListener)。
41
音效緩衝區
在DirectSound中的音效緩衝區有2D緩衝區與3D緩衝區兩 種,緩衝區是用來載入音效檔案,一個緩衝區只用來載入一 個音效檔案。 3D音效在播放有幾種可能的移動,一是音源不動,而傾聽 者移動,二是傾聽者不動而音源移動,三是音源與傾聽者一 起移動。42
聲音錐
當傾聽者位於聲音錐內時,所聽到的聲音會
比較清楚,如果傾聽者位於聲音錐外,所聽
到的聲音會比較小聲。
而聲音也具有一定的擴散性,我們可以使用
聲音錐的角度來設定。
在DirectSound的設定中,還可以設定內層
聲音錐與外層聲音錐,內層聲音錐所聽到的
聲音會比外層聲音錐所聽到的聲音來得大,
外層聲音錐也可以設定它的音量。
43
D
IRECTI
NPUT DirectInput是用來處理遊戲的一些週邊設備裝置, 例如搖桿、GamePad介面、方向盤、VR手套、力回 饋等週邊裝置。 DirectInput元件對於操作裝置是以「軸」與「按鈕」 來定義,它將操作裝置分為三類:「鍵盤」、「滑鼠」 與「搖桿」。44
鍵盤
它屬於沒有軸的操作裝置,而鍵盤基本上具有101
個以上的按鍵,所以鍵盤在DirectInput的定義上,
就屬於「無軸」、「多按鈕」的操作裝置。
使用DirectInput來操作鍵盤比使用Windows事件
處理來操作鍵盤擁有更多的優點。
由於DirectX的成員都可以直接存取目的裝置,而
無需透過Windows的訊息。
所以使用DirectInput直接存取鍵盤裝置,會比使
用Windows事件處理來得反應快速。
45
滑鼠
滑鼠是利用軌跡球的滾動或是光線的相對位移(指光 學鼠)來決定其移動量。 所以滑鼠的操作具有方向性,但是滑鼠的移動並沒有 原點依據,它所採用的是「相對軸」。 在DirectInput的定義中,滑鼠屬於「多按鈕」、使 用「相對軸」的操作裝置。46
搖桿
在DirectInput中對搖桿的定義為「多軸」與「多按 鈕」的操作裝置。 無論該搖桿長的多怪異,操作方式多複雜,都將其歸 類於軸與按鈕的操作。 在DirectInput中定義有兩種搖桿類型,一種為6個 軸、32個按鈕的一般搖桿,一種為24軸、128個按鈕 的新型搖桿。47
D
IRECTS
HOW DirectShow是DirectX中負責多媒體檔案播放的主
要元件,它不僅使用簡單,更支援MPEG、AVI、
MOV、MIDI、MP2與MP3等多媒體格式。
DirectShow的運作方式不同於DirectSound與
DirectMusic元件,而是透過「過濾器」(Filter)技
術來進行媒體檔案的播放作業。
48
D
IRECTP
LAY
DirectPlay是爲了滿足近來流行的網路遊戲而開
發的API,此外也提供網路對談的功能,以及保密
的措施。
DirectPlay可以協助分析出幾種不同的通訊協定
之間的差異性。
如果使用DirectPlay,便可以撰寫一套支援IPX、
TCP/IP、序列、數據機通訊,以及其它不同網路
通訊協定的程式碼,否則就必須自行開發這些不
同且繁雜瑣碎的通訊協定程式碼。
M
ULTI-
PLAYER GAME&
50
線上遊戲
隨著科技的發展進步,各種資訊工具不斷推陳出新, 電腦與網路早已成為21世紀人們生活的必需品。 其中寬頻網路的普及,更是改變了人們使用電腦的方 式,功能發展更由原先基本的溝通訊息,逐步擴展至 數據傳輸、交易服務以及休閒娛樂等。51
話說線上遊戲
以目前來說,無論遊戲再如何設計,畢竟其所使用的人工 智慧是有限度的,單機遊戲對戰最後的行為模式畢竟會被 玩家看穿,屆時遊戲本身將會漸漸失去可玩性。 為了滿足玩家,現在許多遊戲都提供網路連線的功能,玩 家所面對的不再是冷冰冰的電腦對手。 在網路的另一端是個活生生具有思考的另一個玩家。52
即時戰略遊戲
稱為Network Game,也就是連線對戰遊戲。 此種連線的遊戲機制是由玩家先在伺服器上建立一個遊戲 空間。 其他玩家再加入該伺服器參與遊戲,有千變萬化的遊戲畫 面、具有團隊競爭樂趣。 目前此類遊戲產品以歐美遊戲軟體居多,例如在網曾經紅 極一時的線上遊戲”CS”(戰慄時空之絕對武力)及世紀帝國。53
角色扮演遊戲
簡稱為Online Game,即是大型多人線上遊戲(Massively
Multiplayer Online Games)。
為線上遊戲的一種,常簡寫作MMOG ,也就是目前於亞洲
地區造成風潮的遊戲機制。
主要強調虛擬世界的建構及社群管理,現今較為流行的線上
54
線上遊戲技術簡介
網路連線遊戲的魅力在於玩家之間能夠有充分互動。 線上遊戲的製作重點首重遊戲的流暢度。 由於網路軟硬體架構品質不夠統一,因此線上遊戲在開發 時最嚴重的問題在於連線延遲(lag),每一個連結節點出了 狀况,都會影響到遊戲的整體速度。55
M
ULTIPLAYERM
ODES:
E
VENTT
IMING Turn-Based
Easy to implement Any connection type Real-Time
Difficult to implement Latency sensitive
56
M
ULTIPLAYERM
ODES:
S
HAREDI/O
Input Devices
Shared keyboard layout Multiple device mapping Display
Full Screen Funneling Screen Swap Split Screen
57
M
ULTIPLAYERM
ODES:
C
ONNECTIVITY Non Real-Time
Floppy disk net Email
Database
Direct Link
Serial, USB, IrD, … (no hops)
Circuit Switched (phones)
Dedicated line with consistent latency
Packet Switched
Internet
58
P
ROTOCOLS:
P
ROTOCOLD
ESIGN Packet Length Conveyance
Acknowledgement Methodology Error Checking / Correcting
Compression Encryption
59
P
ROTOCOLS:
P
ACKETS Packets
Header = Protocol Manifest Payload
Gottchas
Pointers
Large/Variable Size Arrays ADTs
Integer Alignment Endian Order
Processor dependant Intrinsic Types (int and long) Unicode vs. ASCII Strings
60
P
ROTOCOLS:
R
EQUEST FORC
OMMENTS RFC web site http://www.rfc-editor.org/ Protocol Specifications Definitive Resource Public Criticism Future Protocols
61
P
ROTOCOLS
TACK:
D
ATAL
INKL
AYER Serializes data to/from physical layer Network Interface Card
Ethernet
62
P
ROTOCOLS
TACK:
N
ETWORKL
AYER
Packet Routing
Hops Routers, Hubs, Switches
Internet Protocol (IP)
Contains Source & Destination IP Address IPv4
Widespread Infrastructure
IPv6
63
P
ROTOCOLS
TACK:
N
ETWORKL
AYER: IP A
DDRESS Unicast
Static DHCP
Multicast
Requires multicast capable router
Broadcast Local Directed Loop Back Send to self AddrAny
64
P
ROTOCOLS
TACK:
N
ETWORKL
AYER: DNS
Domain Name Service
Converts text name to IP address
Must contact one or more DNS servers to
resolve
Local cache resolution possible
Game Tips
Store local game cache to use when DNS out of
order.
DNS resolution often slow, use cache for same
65
P
ROTOCOLS
TACK:
T
RANSPORTL
AYER Manage data deliver between endpoints Error recovery
Data flow
TCP and UDP used with IP
Contains Source and Destination Port Port + IP = Net Address
Port Range = 0-64k Well known Ports 0-1k
66
P
ROTOCOLS
TACK:
T
RANSPORTL
AYER: TCP
Guaranteed Correct In Order Delivery
Acknowledgement system
Ack, Nack, Resend
Checksum Out of Band Connection Required Packet Window Packet Coalescence Keep Alive Streamed Data
67
P
ROTOCOLS
TACK:
T
RANSPORTL
AYER: UDP
Non Guaranteed Delivery
No Acknowledgement system May arrive out of order Checksum
Not Connected
Source not verified
Hop Count Limit = TTL (time to live) Required for Broadcasting
Datagram
68
P
ROTOCOLS
TACK:
S
ESSIONL
AYER Manages Connections between Apps Connect
Terminate
Data Exchange
Socket API live at this layer Cross platform
69
P
ROTOCOLS
TACK:
S
ESSIONL
AYER: S
OCKETS
Based on File I/O
File Descriptors Open/Close Read/Write
Winsock
Provides standard specification
implementation plus more
Extension to spec prefixed with “WSA” Requires call to WSAStartup() before use Cleanup with WSAShutdown()
70
P
ROTOCOL
S
TACK
:
S
ESSION
L
AYER
: S
OCKET
D
ESIGN
Modes Blocking Non-Blocking Standard Models Standard Select Extended Models Windows WSAEventSelect
I/O Completion Ports
Unix
Poll
71
P
ROTOCOLS
TACK:
P
RESENTATIONL
AYER
Prepares App Data for Transmission
Compression Pascal Strings String Tables Float to Fixed Matrix to Quaternion Encryption Endean Order When used cross platform or cross language
Serialize
Pointers
72
P
ROTOCOL
S
TACK
:
P
RESENTATION
L
AYER
: B
UFFERING
Packet Coalescence
Induced Latency
Dead Data
73
P
ROTOCOLS
TACK:
A
PPLICATIONL
AYER Handles Game Logic Update Models Input Reflection State Reflection Synchronization Dead Reckoning AI Assist Arbitration
74
R
EAL-T
IMEC
OMMUNICATIONS:
C
ONNECTIONM
ODELS Broadcast
Good for player discovery on LANs Peer to Peer
Good for 2 player games Client / Server
Good for 2+ player games
75
R
EAL
-T
IME
C
OMMUNICATIONS
:
A
SYNCHRONOUS
E
NVIRONMENTS
Thread
Priority Suspension Pooling
Critical Section & Mutex
Signal & Event
Data Sharing
volatile keyword Interlocked Inc/Dec
76
S
ECURITY:
E
NCRYPTIONG
OALS Authentication Privacy Integrity77
S
ECURITY:
E
NCRYPTIONM
ETHODS Keyed Public Key Private Key Ciphers Message Digest Certificates IPSec78
S
ECURITY:
C
OPYP
ROTECTION Disk Copy Protection Costly Mastering
Invalid/Special Sector Read
Code Sheets Watermarking
79
S
ECURITY:
E
XECUTIONC
RYPTOGRAPHY Code Obfuscation Strip Symbols Heap Hopper Stack Overrun Execution NoOp Hacking
Timer Hacking DLL Shims
80
S
ECURITY:
F
IREWALLS Packet Filter Proxies Circuit Gateways81
S
ECURITY:
F
IREWALLS: NAT T
RAVERSAL Port Forwarding
Port Triggering
DMZ
82
S
UMMARY:
T
OPICC
OVERAGE Multiplayer Modes Protocols Protocol Stack Real-Time Communications Security83
S
UMMARY:
F
URTHERS
TUDY Socket Programming Serial Communication Server Design Network Gear & Infrastructure VOIP
Tools of the Trade
Unit & Public Beta Testing Middleware
Databases
Web Development