當羅梅洛走進房間時,卡馬克一如往常坐在顯示器前優(yōu)化著下一代圖像引擎。
他的房間比以前大了不少,也更干凈整潔,但仍然是那么簡樸無華
C++博客
|
首頁
|
發(fā)新隨筆
|
發(fā)新文章
|
聯(lián)系
|
聚合
|
管理
Sumreen(GAL GAME)引擎框架
因為東西挺多的,所以這里只講基本的構(gòu)架,即怎么構(gòu)成這個程序,具體的細節(jié)問題后面一個一個再實現(xiàn)
首先要聲明一點,我的代碼很丑的,因為自己以前沒有學習過什么GAL GAME引擎相關(guān)方面的知識,只是想著如何實現(xiàn)一般GAL GAME的功能就自己YY出這個引擎了。
這個引擎圖形方面使用Direct3D,音頻方面使用Fmod Sound System,IDE使用Visual Studio 2008,并使用了DirectX SDK中的DXUT
聲明:Fmod SoundSystem用于免費的程序是免費的
FMOD Sound System, copyright (c) Firelight Technologies Pty, Ltd., 1994-2007.
這一篇不會講任何細化的東西,只會解析程序的結(jié)構(gòu)
1、流程
先說整個程序的流程。
(1).注冊窗體一類的最底層的事,DXUT已經(jīng)幫你干掉了
(2).初始化Direct3D以及Fmod,載入標題界面
(3).根據(jù)不同的選擇,進入不同的模式,比如載入游戲、游戲設(shè)置、離開游戲、重新開始游戲等
(4).進入游戲后,讀取腳本,解析,然后做相應(yīng)的事。
流程很好理解,除了界面外,最主要的就是腳本問題了。
2、腳本
GAL GAME的腳本解釋工作應(yīng)該算是所有類型游戲中最簡單的之一,因為整個流程只會出現(xiàn)一個線程,不會存在多線程操作。
于是我們可以解釋運行這個腳本,于是將所有的問題歸總起來,就會想出這個結(jié)構(gòu):
用一個總管理器(后面我們叫做AManager)來管理所有的部分,包括腳本解釋器、對話框、立繪管理、場景管理、場景效果、音頻、變量、視頻等所有游戲主流程會用到的東西。
然后讀進腳本,交給腳本解釋器,腳本解釋器返回一個可執(zhí)行命令,AManager根據(jù)這個命令來把任務(wù)下發(fā)給其他的東西。比如有一個立繪操作的命令,就交給立繪管理器,立繪管理器中自己處理。若有一個聲音操作,就交給音頻管理器,音頻管理器中就自己處理播放音頻的問題。其他的也都是這樣。
工作原理知道了,那么接下來就是確定有哪些需要的東西了。
3、各種管理器
這些管理器從AManager處獲得命令,并開始工作,那么我們需要哪些東西呢?
(1).對話框文字管理器
這個東西接受關(guān)于文字的命令,然后進行解析并演出。
(2).立繪管理器
這個東西接受關(guān)于立繪的命令,管理立繪的顯示與消失,還有立繪的動作等。
(3).場景/CG管理器
這個東西接受關(guān)于場景和CG的命令,因為CG往往是一張整個呈現(xiàn)在屏幕上,跟場景的出現(xiàn)一樣,于是可以一起處理。
(4).屏幕特效管理器
這個東西接受關(guān)于屏幕特效的命令,也就是例如整個屏幕淡入淡出、百葉窗等常用的切換場景的效果。還有就是屏幕震動、旋轉(zhuǎn)等特效。
(5).音頻管理器
這個東西接受關(guān)于音樂和音效的命令,具體還有系統(tǒng)音量設(shè)置等附加的東西,用來播放、停止音樂和音效。
(6).變量管理器
這個東西接受關(guān)于變量的操作,所謂的變量也就是用來記錄好感度、玩家選項的選擇等可變的東西,可以訪問變量、改變變量等。
(7).視頻管理器
這個東西接受關(guān)于視頻的命令,其實也就是OP、過場動畫、ED等,沒什么特別的。
(8).存檔管理器
這個東西跟腳本沒關(guān)系,但是放在這里是為了方便讀取各個需要存儲的東西并存儲以及讀取。
大概就是這些東西,當然,根據(jù)你的游戲的特殊的地方,可以自己加?xùn)|西上去,比如小游戲什么的。
4、腳本命令
腳本命令可以自己設(shè)計,當然,總的前提是讓腳本演出更加方便以及流暢,也要考慮寫腳本的清晰度與復(fù)雜度。
當然有個考慮,就是在立繪、場景等名稱管理時,若用路徑名就犧牲多了,可以考慮用一個總的defines.script文件來記錄各種宏定義。比如define BGM01 music\hahahahhahahaheihehiehiehie.mp3后,在播放這個音樂時就只用BGM BGM01 ;就行了
以下節(jié)選Sumreen圣誕版DEMO,海邊演出的腳本。具體的命令可以自己琢磨,各種命令應(yīng)該比較清晰,只是參數(shù)不同。
當然,我也提供了Sumreen腳本說明文檔,下載:
/Files/CK985/SumreenScriptSDK.rar
從下篇開始大概會慢慢開始講各種管理器的實現(xiàn)方法吧。。恩。。工程量好龐大。。慢慢填坑吧。。
1
delay
100
;
2
3
bgm BGM04 ;
4
unlockmusic BGM04 ;
5
6
text 夢中,\b\n我掉進了一個深不見底的洞穴。\b\c洞穴完全沒有底,\b\n我一直在下落,\b\n下落……\b\c我想抓住什么東西,\b\n但是四周只有黑暗。\b\c話說回來,\b\n既然只有黑暗,\b\n我怎么能判斷這是個洞穴呢?\b\c思考這些是沒有意義的,\b\n就在我不斷下落的時候……\b\c\e ;
7
8
alphain 圓開
10
;
9
settalker 蘇儀 ;
10
screenmove 橫向抖動
20
0
0
0
0
;
11
text 啊!\b\c\e ;
12
13
notalker ;
14
text 我醒了。\b\c\e ;
15
settalker 蘇儀 ;
16
text 呼……\b\c\e ;
17
18
notalker ;
19
text 怎么會做這種夢呢?\b\c我大口大口地喘氣,\b\n背后完全濕了。\b\c太陽已經(jīng)下山了,\b\n夏日的暑氣被夜晚的涼爽取代了。\b\c從窗口能看到一片干凈的星空。\b\c天空并不是完全的黑,\b\n而是一種近似深藍色的背景上點綴著銀色的光點。\b\c看來明天又是晴天了。\b\c\e ;
20
settalker 蘇儀 ;
21
text 哈欠……\b\c\e ;
22
23
alphaout 純黑
10
;
24
delay
26
;
25
bg 客廳開燈 ;
26
delay
40
;
27
alphain 橫板拉開
60
;
28
delay
60
;
29
30
notalker ;
31
text 伸了個懶腰之后,\b\n我走下了樓梯。\b\c白天沒什么感覺,\b\n但是到了晚上,\b\n立刻感覺到只有一個人的房子顯得尤其的大。\b\c讓人不免產(chǎn)生孤寂的感覺。\b\c\e ;
32
settalker 蘇儀 ;
33
text 好無聊啊……\b\c\e ;
34
notalker ;
35
text 對了,\b\n到海邊去看看吧。\b\c就在這里不遠,\b\n不就是沙灘嗎?\b\c\e ;
36
37
nobgm ;
38
39
alphaout 純黑
10
;
40
delay
26
;
41
bg 玄關(guān)開燈 ;
42
delay
40
;
43
alphain 橫板拉開
30
;
44
delay
30
;
45
46
settalker 蘇儀 ;
47
text 鑰匙……\b鑰匙……\b\c\e ;
48
notalker ;
49
sound sound
/
SE_0007.wav ;
50
alphaout 純黑
10
;
51
delay
26
;
52
53
text 于是,\b\n我鎖好門,離開了家,前往海邊。\b\c\e ;
54
55
bgm BGM03 ;
56
unlockmusic BGM03 ;
57
58
bg 十字路口天黑 ;
59
delay
40
;
60
alphain 開窗戶
30
;
61
delay
180
;
62
63
delay
30
;
64
65
text 天空已經(jīng)徹底暗了下來。\b\c從家到最近的海灘,需要走過一座新修的橋。\b\n海邊也有許多小吃店,\b\n不過晚上一般都會冷清許多。\b\c本來家這邊就沒多少車,\b\n到了晚上更是如此。\b\n路上除了路燈和紅綠燈之外沒有別的東西。\b\c\e ;
66
67
text 在涼爽的海風的催促下,我加快了腳步。\b\c\e ;
68
69
alphaout 橫板拉出
50
;
70
delay
50
;
71
bg 沙灘天黑 ;
72
bgsound sound
/
SE_0008.wav ;
73
delay
100
;
74
screenmove 聚焦
1
200
150
400
300
;
75
alphain 橫板拉開左
60
;
76
delay
90
;
77
screenmove 聚焦
60
0
0
800
600
;
78
delay
70
;
79
80
text 出現(xiàn)在面前的就是蔚藍的海。\b\c\e ;
81
settalker 蘇儀 ;
82
text 呼!\b\n真不錯……\b\c\e ;
83
84
notalker ;
85
text 晚上的海灘幾乎沒人。\b\c這一段海灘屬于私人用地,\b\n白天也只有負責清理海灘的工人,\b\n因此晚上更是安靜的很。\b\c我找了塊比較干的地方,\b\n一屁股坐了下去。\b\c海風吹在臉上,\b\n略帶咸濕的感覺。\b\c上大學以來,\b\n還是第一次單獨來海邊啊……\b\c\e ;
86
87
text 我開始享受著海灘上那種獨有的特別的舒適感。\b\n月光下,\b大海,\b沙灘,\b海風的觸感\(zhòng)b及潮汐的聲音\b構(gòu)成了天然的協(xié)奏曲。\b\c\e ;
88
screenmove 縱向抖動
5
0
0
0
0
;
89
90
text 等等,那邊的海灘上好像有人?\b\c\e ;
91
dim 琉璃好感度 ;
92
dim 琉璃登場 ;
93
change 琉璃登場
0
;
94
95
#bgm BGM03 ;
96
#unlockmusic BGM03 ;
97
98
text 距離比較遠,\b\n看的不是很清楚。\b\c但是從身形來看,\b\n應(yīng)該是一名女性。\b\c她似乎在找什么東西,\b\n低著頭用腳劃撥著沙子,\b\n神情專注的很。\b\c\e ;
99
100
101
text 要不要過去問問?\b\c\e ;
102
103
choice 是否過去問琉璃
2
過去問問 算了 ;
104
105
ife 是否過去問琉璃
=
1
106
add 琉璃好感度
1
;
107
change 琉璃登場
1
;
108
text 過去問問吧。\b\c\e ;
109
text 我起身向她走去。\b\c\e ;
110
settalker 蘇儀 ;
111
text 那個,有什么能幫你的嗎?\b\c\e ;
112
notalker ;
113
114
imgin 琉璃登場
0
0
10
;
115
unlockcg 琉璃登場 ;
116
delay
26
;
117
118
text 她抬起頭看我。\b\c\e ;
119
120
121
text 靠近了看,\b\n真是美麗啊!\b\c金色的長發(fā)披在身后,\b\n精致的五官配合白皙的皮膚,\b\n略帶紫色的眼眸尤其漂亮。\b\c渾身散發(fā)著和一般女性完全不同的高貴,\b\n是哪里的OL嗎?\b\c\e ;
122
123
settalker ??? ;
124
text \v
<
char04_00001
>
呵呵,我就是隨便轉(zhuǎn)轉(zhuǎn)。\b\c\e ;
125
notalker ;
126
127
text 她目不轉(zhuǎn)睛的盯著我,\b\n反倒是我有點不好意思了……\b\c\e ;
128
text 我看我還是先說點話來打破這尷尬的氣氛好了。\b\c\e ;
129
settalker 蘇儀 ;
130
screenmove 縱向抖動
5
0
0
0
0
;
131
text 哦
~
那什么……\b\n轉(zhuǎn)轉(zhuǎn)很好……\b\c\e ;
132
imgout 琉璃登場
10
;
133
delay
26
;
134
setrgb
200
200
200
;
135
imgin lx1
0
0
10
;
136
delay
26
;
137
138
settalker ??? ;
139
text \v
<
char04_00002
>
打擾到你了?\b\c\e ;
140
settalker 蘇儀 ;
141
screenmove 縱向抖動
5
0
0
0
0
;
142
143
text 沒、\e ;
144
delay
20
;
145
text 沒有!\e ;
146
delay
20
;
147
text 完全沒有。\b\c\e ;
148
text 我看你低頭好像在找東西,\b\n就想問問能不能幫你……\b\c\e ;
149
150
settalker ??? ;
151
152
imgin lx2
0
0
10
;
153
delay
26
;
154
imgout lx1
255
;
155
delay
1
;
156
157
text \v
<
char04_00003
>
你真體貼啊!\b\c\e ;
158
notalker ;
159
screenmove 橫向抖動
5
0
0
0
0
;
160
text 體貼體貼體貼……\b\c\e ;
161
text 這兩個字在我腦子里響了好久。\b\n頭腦一陣眩暈。\b\n我這下真的被擊中了。\b\c\e ;
162
163
settalker 蘇儀 ;
164
text 不、\e ;
165
delay
20
;
166
text 不會啊……\b\n\e ;
167
text 我就是來問問。\b\c\e ;
168
notalker ;
169
170
imgout lx2
10
;
171
imgin lx3
0
0
10
;
172
delay
26
;
173
174
text 她又笑了。\b\c\e ;
175
176
settalker ??? ;
177
text \v
<
char04_00004
>
你也是來散步的?\b\c\e ;
178
settalker 蘇儀 ;
179
text 恩!\b\c\e ;
180
settalker ??? ;
181
text \v
<
char04_00005
>
晚上的海很不錯吧!\b\c\e ;
182
183
imgin lx4
0
0
10
;
184
delay
26
;
185
imgout lx3
255
;
186
delay
1
;
187
188
text \v
<
char04_00006
>
我每天都來哦!\b\c\e ;
189
notalker ;
190
text 她看著大海,\b\n仿佛海里面才有她要找的東西。\b\c\e ;
191
192
text 我不知道這個時候該說什么好……\b\c\e ;
193
settalker 蘇儀 ;
194
text 你是住這里的嗎?\b\c\e ;
195
notalker ;
196
text 問出來我就后悔了,\b\n這個時候怎么能問這種問題呢……\b\c\e ;
197
198
settalker ??? ;
199
200
imgout lx4
10
;
201
imgin lx2
0
0
10
;
202
delay
26
;
203
204
text \v
<
char04_00007
>
這算搭訕嗎?\b\n\v
<
char04_00008
>
如果是的話技術(shù)可不怎么樣哦!\b\c\e ;
205
notalker ;
206
screenmove 縱向抖動
5
0
0
0
0
;
207
208
text 完了!\b\n被人家鄙視了!\b\c\e ;
209
settalker ??? ;
210
211
text \v
<
char04_00009
>
我不住這里,\b\n\v
<
char04_00010
>
不過晚上喜歡在這里走走,\n說不定能遇到有趣的東西呢。\b\c\e ;
212
notalker ;
213
214
text 和這個人說話,\b\n感覺總被她壓著啊……\b\c\e ;
215
text 這就是大人和小孩的區(qū)別?\b\n看來我還不夠成熟。\b\c\e ;
216
settalker ??? ;
217
218
imgin lx1
0
0
10
;
219
delay
26
;
220
imgout lx2
255
;
221
delay
1
;
222
223
text \v
<
char04_00011
>
今天就遇到有趣的東西了。\b\c\e ;
224
settalker 蘇儀 ;
225
text 是什么東西呢?\b\c\e ;
226
227
imgout lx1
10
;
228
imgin lx4
0
0
10
;
229
delay
26
;
230
231
settalker ??? ;
232
text \v
<
char04_00012
>
就是你啊!\b\c\e ;
233
settalker 蘇儀 ;
234
text ……\b\c\e ;
235
notalker ;
236
text 伴隨著爽朗的笑聲,\b\n她張開雙臂,\b\n在原地轉(zhuǎn)了一個圈。\b\c我注意到她沒穿鞋子,\b\n優(yōu)美的腳在在沙灘上特別好看。\b\c\e ;
237
settalker 蘇儀 ;
238
239
imgin lx3
0
0
10
;
240
delay
26
;
241
imgout lx4
255
;
242
delay
1
;
243
244
text 如果沒事情,我先走了。\b\c\e ;
245
settalker ??? ;
246
text \v
<
char04_00013
>
不愿意陪我聊聊?\b\c\e ;
247
notalker ;
248
text 好像完全被她牽著走了……\b\c\e ;
249
screenmove 縱向抖動
5
0
0
0
0
;
250
settalker 蘇儀 ;
251
text 愿、愿意!\b\c\e ;
252
253
imgin lx4
0
0
10
;
254
delay
26
;
255
imgout lx3
255
;
256
delay
1
;
257
258
settalker ??? ;
259
text \v
<
char04_00014
>
呵呵,今天還是算了,\b\n\v
<
char04_00015
>
以后還有機會的見面的話再聊吧。\b\c\e ;
260
notalker ;
261
imgout lx4
3
;
262
delay
85
;
263
264
text 說完,她轉(zhuǎn)身揮揮手就走了。\b\c我呆呆的站在原地,\b\n看著她消失在夜色中。\b\c到頭來,連名字都沒問。\b\c\e ;
265
text 不過,成熟的魅力真強大啊,\b\n和以前見過的女性完全不一樣。\b\c給人的感覺就好像有很多秘密的人…\b\c\e ;
266
267
setrgb
255
255
255
;
268
269
else
270
271
text 算了,\b\n說不定人家不希望我去打擾呢。\b\c還是在遠方看著吧。\b\c也許是沒發(fā)現(xiàn)我吧,\b\n她繼續(xù)用腳劃撥沙子。\b\c\e ;
272
273
alphaout 純黑
10
;
274
delay
26
;
275
bg 夜空 ;
276
delay
30
;
277
alphain 圓開
50
;
278
delay
60
;
279
280
text 過了一會,\b\n抬起頭看著天空。\b\c月光下,一個人徜徉在沙灘上,\b\n不知道是什么感覺?\b\n相信一定是很棒的吧……\b\c我也抬頭看著天空,\b\n今天的月亮是滿月,\b\c深藍色的天空背景中,\b\n皎潔的月光和明亮的星星,\b\n真是美麗。\b\c那個人一定也是在享受這一切。\b\c\e ;
281
282
text …\b\c\e ;
283
text ……\b\c\e ;
284
text ………\b\c\e ;
285
286
alphaout 純黑
10
;
287
bg 沙灘天黑 ;
288
alphain 圓開
50
;
289
delay
60
;
290
291
text 當我重新在沙灘上尋找她的身影時,\b\n卻發(fā)現(xiàn)她已經(jīng)消失了。\b\c\e ;
292
text 剛才的一切不是我在做夢吧?\b\n感覺這么虛幻,\b\n卻又如此的真實。\b\c\e ;
293
294
295
endif
296
297
text 回家吧……我轉(zhuǎn)身沿著來時的路往家走去。\b\c\e ;
298
299
nobgm ;
300
bgsoundout ;
發(fā)表于 2010-01-01 14:03
CK
閱讀(2125)
評論(3)
編輯
收藏
引用
評論
#
re: Sumreen(GAL GAME)引擎框架
發(fā)到這裡了啊
testuser007
評論于 2010-01-01 14:54
回復(fù)
更多評論
#
re: Sumreen(GAL GAME)引擎框架
期待下文。。。。
Excalibur
評論于 2010-01-03 11:37
回復(fù)
更多評論
#
re: Sumreen(GAL GAME)引擎框架[未登錄]
orz
SonicMisora
評論于 2010-01-18 14:51
回復(fù)
更多評論
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
【推薦】100%開源!大型工業(yè)跨平臺軟件C++源碼提供,建模,組態(tài)!
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
隨筆:15 文章:0 評論:45 引用:0
<
2009年9月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(4)
給我留言
查看公開留言
查看私人留言
隨筆檔案
2010年3月 (1)
2010年1月 (2)
2009年11月 (1)
2009年9月 (1)
2009年8月 (1)
2009年6月 (2)
2009年5月 (2)
2009年1月 (1)
2008年12月 (4)
文章分類
Direct3D中的2D應(yīng)用底層
(rss)
相冊
else
GameMaster
Project DIVA
Sumreen
魔法少女葵
友情鏈接
SonicMisora的博客
RUA牛的博客
搜索
最新評論
1.?re: DXUT工作模式的簡單解析-底層框架
您好!我希望能跟你學習DXUT以及3D開發(fā)
--張憶
2.?re: Direct3D中的簡單2D繪制(上)——紋理的繪制[未登錄]
汝好
--SonicMisora
3.?re: NOIP2009前一天[未登錄]
=_,=
--SonicMisora
4.?re: Direct3D中的簡單2D繪制(上)——紋理的繪制
圖片為啥是⑥⑧娘……………………
--Tamashii
5.?re: BMS(音樂游戲)文件結(jié)構(gòu)解析
想起當年玩單機版的勁樂團.....
--陳昱(CY)
閱讀排行榜
1.?Direct3D中的簡單2D繪制(上)——紋理的繪制(5039)
2.?Direct3D中的簡單2D繪制(下)——文字的繪制(4313)
3.?BMS(音樂游戲)文件結(jié)構(gòu)解析(2817)
4.?DXUT工作模式的簡單解析-底層框架(2778)
5.?CTSC、APIO以及四川省信息學省隊選拔賽總結(jié)(2644)
評論排行榜
1.?CTSC、APIO以及四川省信息學省隊選拔賽總結(jié)(16)
2.?Direct3D中的簡單2D繪制(上)——紋理的繪制(7)
3.?USACO Chapter3 Done(4)
4.?USACO Chapter4 Done(4)
5.?Direct3D中的簡單2D繪制(下)——文字的繪制(3)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 CK
日本精品一区二区久久久
|
A级毛片无码久久精品免费
|
久久精品成人欧美大片
|
久久久久久久波多野结衣高潮
|
亚洲乱码日产精品a级毛片久久
|
97超级碰碰碰久久久久
|
久久99国产精品一区二区
|
久久久久久国产精品免费免费
|
亚洲人成电影网站久久
|
国产精品久久久久无码av
|
一本大道久久东京热无码AV
|
国产精品久久久久9999高清
|
久久99热这里只有精品66
|
欧美激情精品久久久久
|
亚洲AV日韩精品久久久久
|
久久精品无码一区二区日韩AV
|
亚洲精品乱码久久久久久按摩
|
97精品国产97久久久久久免费
|
久久精品中文字幕一区
|
久久婷婷五月综合色99啪ak
|
久久精品国产亚洲综合色
|
日韩精品久久久久久久电影蜜臀
|
九九久久精品国产
|
国产99久久久国产精品~~牛
|
少妇高潮惨叫久久久久久
|
亚洲午夜精品久久久久久浪潮
|
国内精品久久九九国产精品
|
看久久久久久a级毛片
|
狠狠色丁香久久婷婷综合
|
久久人做人爽一区二区三区
|
久久免费99精品国产自在现线
|
国产精品9999久久久久
|
亚洲午夜久久久久妓女影院
|
怡红院日本一道日本久久
|
国内精品久久久久久久久
|
久久美女网站免费
|
久久国产精品久久国产精品
|
成人免费网站久久久
|
四虎国产精品免费久久久
|
色综合久久综合网观看
|
久久久久亚洲AV无码专区网站
|