當羅梅洛走進房間時,卡馬克一如往常坐在顯示器前優化著下一代圖像引擎。
他的房間比以前大了不少,也更干凈整潔,但仍然是那么簡樸無華
C++博客
|
首頁
|
發新隨筆
|
發新文章
|
聯系
|
聚合
|
管理
Sumreen(GAL GAME)引擎框架
因為東西挺多的,所以這里只講基本的構架,即怎么構成這個程序,具體的細節問題后面一個一個再實現
首先要聲明一點,我的代碼很丑的,因為自己以前沒有學習過什么GAL GAME引擎相關方面的知識,只是想著如何實現一般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.
這一篇不會講任何細化的東西,只會解析程序的結構
1、流程
先說整個程序的流程。
(1).注冊窗體一類的最底層的事,DXUT已經幫你干掉了
(2).初始化Direct3D以及Fmod,載入標題界面
(3).根據不同的選擇,進入不同的模式,比如載入游戲、游戲設置、離開游戲、重新開始游戲等
(4).進入游戲后,讀取腳本,解析,然后做相應的事。
流程很好理解,除了界面外,最主要的就是腳本問題了。
2、腳本
GAL GAME的腳本解釋工作應該算是所有類型游戲中最簡單的之一,因為整個流程只會出現一個線程,不會存在多線程操作。
于是我們可以解釋運行這個腳本,于是將所有的問題歸總起來,就會想出這個結構:
用一個總管理器(后面我們叫做AManager)來管理所有的部分,包括腳本解釋器、對話框、立繪管理、場景管理、場景效果、音頻、變量、視頻等所有游戲主流程會用到的東西。
然后讀進腳本,交給腳本解釋器,腳本解釋器返回一個可執行命令,AManager根據這個命令來把任務下發給其他的東西。比如有一個立繪操作的命令,就交給立繪管理器,立繪管理器中自己處理。若有一個聲音操作,就交給音頻管理器,音頻管理器中就自己處理播放音頻的問題。其他的也都是這樣。
工作原理知道了,那么接下來就是確定有哪些需要的東西了。
3、各種管理器
這些管理器從AManager處獲得命令,并開始工作,那么我們需要哪些東西呢?
(1).對話框文字管理器
這個東西接受關于文字的命令,然后進行解析并演出。
(2).立繪管理器
這個東西接受關于立繪的命令,管理立繪的顯示與消失,還有立繪的動作等。
(3).場景/CG管理器
這個東西接受關于場景和CG的命令,因為CG往往是一張整個呈現在屏幕上,跟場景的出現一樣,于是可以一起處理。
(4).屏幕特效管理器
這個東西接受關于屏幕特效的命令,也就是例如整個屏幕淡入淡出、百葉窗等常用的切換場景的效果。還有就是屏幕震動、旋轉等特效。
(5).音頻管理器
這個東西接受關于音樂和音效的命令,具體還有系統音量設置等附加的東西,用來播放、停止音樂和音效。
(6).變量管理器
這個東西接受關于變量的操作,所謂的變量也就是用來記錄好感度、玩家選項的選擇等可變的東西,可以訪問變量、改變變量等。
(7).視頻管理器
這個東西接受關于視頻的命令,其實也就是OP、過場動畫、ED等,沒什么特別的。
(8).存檔管理器
這個東西跟腳本沒關系,但是放在這里是為了方便讀取各個需要存儲的東西并存儲以及讀取。
大概就是這些東西,當然,根據你的游戲的特殊的地方,可以自己加東西上去,比如小游戲什么的。
4、腳本命令
腳本命令可以自己設計,當然,總的前提是讓腳本演出更加方便以及流暢,也要考慮寫腳本的清晰度與復雜度。
當然有個考慮,就是在立繪、場景等名稱管理時,若用路徑名就犧牲多了,可以考慮用一個總的defines.script文件來記錄各種宏定義。比如define BGM01 music\hahahahhahahaheihehiehiehie.mp3后,在播放這個音樂時就只用BGM BGM01 ;就行了
以下節選Sumreen圣誕版DEMO,海邊演出的腳本。具體的命令可以自己琢磨,各種命令應該比較清晰,只是參數不同。
當然,我也提供了Sumreen腳本說明文檔,下載:
/Files/CK985/SumreenScriptSDK.rar
從下篇開始大概會慢慢開始講各種管理器的實現方法吧。。恩。。工程量好龐大。。慢慢填坑吧。。
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太陽已經下山了,\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讓人不免產生孤寂的感覺。\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 玄關開燈 ;
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 天空已經徹底暗了下來。\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 出現在面前的就是蔚藍的海。\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海風的觸感\b及潮汐的聲音\b構成了天然的協奏曲。\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應該是一名女性。\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金色的長發披在身后,\b\n精致的五官配合白皙的皮膚,\b\n略帶紫色的眼眸尤其漂亮。\b\c渾身散發著和一般女性完全不同的高貴,\b\n是哪里的OL嗎?\b\c\e ;
122
123
settalker ??? ;
124
text \v
<
char04_00001
>
呵呵,我就是隨便轉轉。\b\c\e ;
125
notalker ;
126
127
text 她目不轉睛的盯著我,\b\n反倒是我有點不好意思了……\b\c\e ;
128
text 我看我還是先說點話來打破這尷尬的氣氛好了。\b\c\e ;
129
settalker 蘇儀 ;
130
screenmove 縱向抖動
5
0
0
0
0
;
131
text 哦
~
那什么……\b\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
>
如果是的話技術可不怎么樣哦!\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 這就是大人和小孩的區別?\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在原地轉了一個圈。\b\c我注意到她沒穿鞋子,\b\n優美的腳在在沙灘上特別好看。\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 說完,她轉身揮揮手就走了。\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也許是沒發現我吧,\b\n她繼續用腳劃撥沙子。\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卻發現她已經消失了。\b\c\e ;
292
text 剛才的一切不是我在做夢吧?\b\n感覺這么虛幻,\b\n卻又如此的真實。\b\c\e ;
293
294
295
endif
296
297
text 回家吧……我轉身沿著來時的路往家走去。\b\c\e ;
298
299
nobgm ;
300
bgsoundout ;
發表于 2010-01-01 14:03
CK
閱讀(2124)
評論(3)
編輯
收藏
引用
評論
#
re: Sumreen(GAL GAME)引擎框架
發到這裡了啊
testuser007
評論于 2010-01-01 14:54
回復
更多評論
#
re: Sumreen(GAL GAME)引擎框架
期待下文。。。。
Excalibur
評論于 2010-01-03 11:37
回復
更多評論
#
re: Sumreen(GAL GAME)引擎框架[未登錄]
orz
SonicMisora
評論于 2010-01-18 14:51
回復
更多評論
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
隨筆:15 文章:0 評論:45 引用:0
<
2010年1月
>
日
一
二
三
四
五
六
27
28
29
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
31
1
2
3
4
5
6
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(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應用底層
(rss)
相冊
else
GameMaster
Project DIVA
Sumreen
魔法少女葵
友情鏈接
SonicMisora的博客
RUA牛的博客
搜索
最新評論
1.?re: DXUT工作模式的簡單解析-底層框架
您好!我希望能跟你學習DXUT以及3D開發
--張憶
2.?re: Direct3D中的簡單2D繪制(上)——紋理的繪制[未登錄]
汝好
--SonicMisora
3.?re: NOIP2009前一天[未登錄]
=_,=
--SonicMisora
4.?re: Direct3D中的簡單2D繪制(上)——紋理的繪制
圖片為啥是⑥⑧娘……………………
--Tamashii
5.?re: BMS(音樂游戲)文件結構解析
想起當年玩單機版的勁樂團.....
--陳昱(CY)
閱讀排行榜
1.?Direct3D中的簡單2D繪制(上)——紋理的繪制(5039)
2.?Direct3D中的簡單2D繪制(下)——文字的繪制(4313)
3.?BMS(音樂游戲)文件結構解析(2817)
4.?DXUT工作模式的簡單解析-底層框架(2777)
5.?CTSC、APIO以及四川省信息學省隊選拔賽總結(2644)
評論排行榜
1.?CTSC、APIO以及四川省信息學省隊選拔賽總結(16)
2.?Direct3D中的簡單2D繪制(上)——紋理的繪制(7)
3.?USACO Chapter3 Done(4)
4.?USACO Chapter4 Done(4)
5.?Direct3D中的簡單2D繪制(下)——文字的繪制(3)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 CK
日韩精品国产自在久久现线拍
|
伊人久久免费视频
|
国产精品久久新婚兰兰
|
久久国产精品无码一区二区三区
|
久久精品九九亚洲精品天堂
|
亚洲国产精品综合久久一线
|
免费国产99久久久香蕉
|
久久久国产精品
|
7国产欧美日韩综合天堂中文久久久久
|
国产AV影片久久久久久
|
伊人久久大香线蕉综合Av
|
欧美性猛交xxxx免费看久久久
|
九九久久99综合一区二区
|
亚洲精品97久久中文字幕无码
|
2021少妇久久久久久久久久
|
久久久精品国产免大香伊
|
亚洲国产成人久久综合一区77
|
99久久精品免费看国产一区二区三区
|
色综合久久久久无码专区
|
亚洲日本久久久午夜精品
|
欧美日韩中文字幕久久久不卡
|
日本免费一区二区久久人人澡
|
怡红院日本一道日本久久
|
伊人久久大香线蕉亚洲五月天
|
亚洲va久久久噜噜噜久久男同
|
国产成人99久久亚洲综合精品
|
欧美一区二区三区久久综
|
久久久久免费看成人影片
|
国产精品久久久久a影院
|
久久久人妻精品无码一区
|
国产精品久久久久久久久软件
|
久久综合狠狠色综合伊人
|
久久免费的精品国产V∧
|
久久天天躁夜夜躁狠狠躁2022
|
欧洲性大片xxxxx久久久
|
久久精品国产福利国产琪琪
|
久久精品视频91
|
亚洲精品高清一二区久久
|
久久免费视频一区
|
亚洲?V乱码久久精品蜜桃
|
久久不射电影网
|