SlideShare a Scribd company logo
1 of 8
Download to read offline
Khoa CNTT – ĐHBK Hà nôi 
hunglt@it-hut.edu.vn 
Y: hung_lt 
1 
Quy Trình phát triển Game
Khoa CNTT – ĐHBK Hà nôi 
hunglt@it-hut.edu.vn 
Y: hung_lt 
Quy trình phát triển game 
Sự hình thành một sản phẩm mới bắt đầu khi người phát triển thiết kế một khái 
niệm cho một trò chơi. Những tập hợp (entails) này dùng để sinh ra một bản tài 
liệu thiết kế trò chơi, một mô hình hoạt động của "engine" lập trình, những bản 
chụp màn ảnh (screen shots), một kịch bản phác thảo và một bản dự toán chi phí 
(a game design document, a working model of the programming “engine”, 
screen shots, an outline script and a proposed budget) 
Điển hình mất khoảng hai năm để hoàn thành một trò chơi, Theo thông lệ và và 
điển hình, thanh toán tiền bản quyền từ những hàng bán của trò chơi (game) 
chia ra 80% cho nhà xuất bản và 20% cho người phát triển (và người sáng tạo 
nội dung – người sở hửu bản quyền). 
Quá trình phát triển trò chơi thông thường bao gồm mười bước, và bao gồm bốn 
cột mốc bắt buộc 
(i) Khi chuyển giao toàn bộ thiết kế trò chơi, 
(ii) Phiên bản alpha của trò chơi, 
(iii) Phiên bản Bêta của trò chơi, 
(iv) Phiên bản Gold của game 
Bản nguyên mẫu cho demo- Demo Prototype: Một bộ code (và data) có thể 
chạy và chơi được bình thường và có thể trình diễn đúng những gì có thể thấy 
hoặc cảm nhận được về cái game đó. Bản yêu cầu trong trò chơi này cũng được 
chuyển cho và cũng là đề xuất với những nhà xuất bản 
1/ – Planning Stage. 
Storyboard – Cốt truyện: Được biết như "Conti" trong tiếng Hàn, về cơ bản 
một tập bản thảo bằng giấy và lưới phân chia những bức tranh kèm theo mô tả 
bằng văn bản. Cho thấy các cảnh sẽ trông như thế nào nhưng mô tả sơ lược. 
Thông thường, dù chỉ là bản phác họa, nhưng mọi thứ từ góc camêra đến những 
chuyển động của nhân vật cũng sẽ hiện ra 
2
Khoa CNTT – ĐHBK Hà nôi 
hunglt@it-hut.edu.vn 
Y: hung_lt 
Một mẫu storyboard (thông thường, phần mô tả văn bản sẽ phải chi tiết hơn) 
Thiết kế Bản đồ: Một "Bản đồ" – “MAP” là một cảnh nền được tải vào 
game bất cứ khi nào mà người chơi đi vào một vùng của trò chơi. Nó là nơi mà 
hầu hết các kịch bản, các hoạt động sẽ diễn ra trên đó. Từ giai đoạn lập kế 
hoạch, một thiết kế bản đồ không phải là một bản dữ liệu 3D, khá hơn, nó là 
một bản vẽ 2D (với màu) cho thấy bản đồ gồm những gì và như thế nào. 
- Bản đồ tĩnh – Static Map: một bản đồ (nhìn thấy ở trên) khi được tải 
vào trong vùng nhớ của hệ thống “một lần” khi người chơi vào một 
vùng mới. Nó ở lại trong bộ nhớ cho đến khi người chơi đi ra ngoài tới 
một bản đồ khác. (Khi bạn thấy hiện ra thông báo "Now loading"). Dung 
lượng nhớ (memory footprint) của bản đồ tĩnh phải là ít hơn vùng nhớ sẵn 
có của hệ thống. (Ví dụ: MGG, Final Fantasy, Bio Hazard, Devil May 
Cry). 
- Bản đồ luồng – Stream Map: Một bản đồ lớn hơn nhiều so với một mản 
đồ tĩnh, những vùng trải ra ngang qua nhiều bản đồ theo một cách liên tục. 
Như vậy ở đó dữ liệu triền miên chảy từ CD/ DVD sao cho khi người 
3
Khoa CNTT – ĐHBK Hà nôi 
hunglt@it-hut.edu.vn 
Y: hung_lt 
chơi quay lại, ở đó màn ảnh không có để trống tải, thay vào đó bản đồ 
mới lộ ra dần dần. Một bản đồ luồng có thể lớn như không gian lưu trữ 
được cho phép bởi thiết bị (CD/ DVD). (Ví dụ game: Crazy Taxi) 
Thiết kế những nhân vật chính, Thiết kế Quái vật, Thiết kế Quái vật Ông 
chủ: Trong giai đoạn lập kế hoạch: bản vẽ của những nhân vật chính, quái vật 
và những ông chủ được nhuộm màu (không phải 3D). 
Thiết kế kịch bản game: Mô tả bằng hình ảnh và văn bản cho thấy game được 
chơi như thế nào. Cơ chế của kịch bản chính được chỉ ra giúp người đọc có thể 
chơi game theo ý hiểu của họ. 
Thiết kế GUI: Thiết kế (hệ giao diện đồ hoạ) của Thực đơn, Thanh trạng thái, 
Life Guage – Chỉ số sự sống, Item Box, Cửa sổ Điểm, v.v... Tại giai đoạn lập kế 
hoạch, nó cần phải là một bức tranh tĩnh. 
Thiết kế Item: Hình ảnh và việc mô tả văn bản của những Item xuất hiện trong 
trò chơi. Thiết kế mục tiêu - Puzzle Design: Hình ảnh và việc mô tả văn bản 
của mục tiêu trông như thế nào, nó cần phải được giải quyết ra sao, nơi mà nó 
được định vị, v.v.. 
2/ - ART and Audio 
Làm mô hình & Kết cấu - Modeling & Texture: Làm mô hình 3D của những 
nhân vật và bản đồ BG Thực tế, ánh xạ kết cấu được làm sau khi làm mô hình 
3D. 
Bản đồ BG (+ Lighting): Sự làm sáng được yêu cầu khi làm bản đồ BG trông 
hiện thực nhiều hơn. Cái này được làm sau khi hoàn thành tất cả mô hình và ánh 
xạ kết cấu bằng việc đặt những kiểu ánh sáng thực tế khác nhau sử dụng những 
công cụ như 3 DS Max hay LigthWave. 
Hoạt cảnh - Animation: 
Hiện thực hóa chuyển động: 
Công đoạn thiết kế đã qua, lúc này nhân vật vẫn chỉ như một con rối "có xác 
không hồn". Và nhiệm vụ "thổi hồn" sẽ được trao tay cho các lập trình viên để 
họ "tiếp sức" giúp nhân vật có thể cử động theo ý muốn của người chơi. 
Tùy theo mục đích phát triển game, sẽ có những kỹ thuật khác nhau được sử 
dụng 
Danh sách - List: bảng của tất cả hoạt cảnh cần có trong trò chơi. 
Bắt Chuyển động – Motion Capture. 
Dọn dẹp MoCap – MoCap Clean-Up: dữ liệu hoạt cảnh cần được làm 
tươi tách ra khỏi việc bắt chuyển động, thông thường rất bẩn, lôn xộn với nhiều 
sự cố và giật. Điều này cần được dọn dẹp, và nhiệm vụ này thường được làm 
bởi MoCap Studio. 
4
Khoa CNTT – ĐHBK Hà nôi 
hunglt@it-hut.edu.vn 
Y: hung_lt 
Fix-up and Positioning: bởi vì không gian hạn chế trong một trường 
quay MoCap, sự định vị (vị trí) và góc quay vượt ra khỏi yêu cầu, việc fix-up sẽ 
được yêu cầu điều chỉnh dữ liệu hoạt cảnh MoCap sao cho nó có thể được sử 
dụng trong game trong tọa độ vạn năng thực sự 
Key-frame Anim: đây là cách làm cho hoạt cảnh 3D thủ công truyền 
thống. Key-framing là một phương pháp của việc sắp đặt một nhân vật với một 
tư thế nhất định và cố định lại (“Key- it”), sắp đặt nó với tư thế khác và cố 
định lại. Phần còn lại giữa các khung (frame) được sinh ra tự động bởi máy tính. 
Chúng ta sẽ làm hầu hết hoạt cảnh của chúng ta thông qua Mo-Cap, tuy nhiên, 
với những tạo vật không có dạng người ( ví dụ: những quái vật và mechas) thì 
Mo-Cap là không khả dĩ. 
Item/Object Anim: là đa số những item là những đối tượng không có sinh khí, 
có một chút, như trong thời gian những cảnh cắt, mà vẫn phải di chuyển 
Âm thanh là một trong những yếu tố tưởng chừng chẳng quan trọng gì mấy, cho 
tới khi mà các bạn chơi thử game mà không có nó. Nói một cách khác, nếu như 
cốt truyện và hình ảnh là cái bánh kem thì âm thanh chính là trứng - thứ làm nên 
hương vị chủ yếu của cái bánh. 
BGM: Âm nhạc nền. Có 3 kiểu khác nhau là: 
1. Raw PCM: âm thanh dạng luồng trực tiếp = tương tự như âm thanh 
CD hay DVD 
2. ADPCM: âm thanh luồng bị ép (bị nén) = tương tự như MP3 nhưng tỷ 
lệ nén ít hơn. 
3. MIDI: khuôn dạng midi chiém vùng nhớ ít nhấtt. Trừ phi chất lượng 
kém. Nó phải được sử dụng khi CD/ DVD được sử dụng cho giọng nói 
ADPCM qua. 
5 
Sound FX: Mọi hiệu ứng Âm thanh khác loại trừ BGM. Thông thường file . 
WAV hay WAV được chuyển đổi tới những khuôn dạng khác ( Ex. Âm thanh 
Bước chân, âm thanh bắn súng v.v...) 
3/ - Lập trình. 
Động cơ - Engine: Xương sống của mã (code) trò chơi. Thông thường bao gồm 
nhiều chức năng chung có thể được dùng để làm cho những việc như trát 
(render) lót những nhân vật, những bản đồ trên màn ảnh và làm sống động 
chúng. 
• Nhân vật – Character: phải có thể trát lót và làm sống động nhân vật 3D, 
định vị chúng, đặt hình bóng, tính toán điểm va chạm giữa những nhân 
vật và nền cho cảnh nữa.
Khoa CNTT – ĐHBK Hà nôi 
hunglt@it-hut.edu.vn 
Y: hung_lt 
• BG: phải có thể trát lót và chọn lọc bản đồ nền 3D. Chọn lọc là dồn một 
phần của SCENCE GRAPH (bản đồ BG) sao cho chỉ một phần rõ ràng 
của bản đồ được render. 
• Physics: chẳng hạn, phải làm gì khi một viên đạn từ súng rơi trên sàn nhà 
và những sự nảy (giật) ba nhiêu lần, v.v... Khi hai nhân vật đụng nhau, 
làm sao chúng cần phải phản ứng lại, dưới dạng vị trí và sự quay. Khi 
một ô tô đâm ô tô khác, làm sao chúng cần phải di chuyển, v.v... (Thông 
thường chỉ tính toán vị trí và việc quay, như một chức năng của thời gian). 
• Collision (va chạm) và Trigger: có 4 kiểu khác nhau: Nhân vật với 
Nhân vật ( cho trận đánh, bắt đầu nói, v.v...), Nhân vật với BG (vì thế có 
thể chỉ đi đến vùng chuyển động), từ Nhân vật tới Đối tượng (Oject) (nhặt 
lên những Item), (khi Nhân vật bước vào một vùng nhất định, nó sẽ thúc 
đẩy một sự kiện nhất định). 
• On Collision Reaction - Phản ứng va chạm: phải làm gì khi một nhân 
vật đánh cái gì đó (Thay đổi hoạt cảnh của anh ấy, vị trí và sự định 
hướng) 
• Special FX: Bất cứ tiếng động gì từ vụ nổ đến hình bóng, lửa, ánh sáng 
phóng hồ quang v.v... Một số được thực hiện bởi Sprites và một số bởi 
Particles. 
• Particles - Hạt: Hạt là một cách CG mô phỏng một nhóm lớn của những 
bụi Hạt nhỏ xíu mà từng cái có vòng đời của riêng mình và được phát ra 
từ một nguồn. Những hạt được dùng để mô phỏng FX đặc biệt như khói 
và lửa. Một ví dụ thực sự tốt của một hạt là pháo thăng thiên. 
• Sprite: Một Sprit là một kiểu đa giác, chỉ có điều nó (thông thường) 
không có bất kỳ tọa độ nào trong không gian 3D, được giới hạn bởi tự 
nhiên. Những sprit có tọa độ trong không gian 3D được gọi là những 
Billboards. 
• Văn bản/ hộp thoại - Text/Dialog Box: Từ một trò chơi bàn điều khiển 
không có một OS, nó không biết làm sao để phóng to phông văn bản 
ngoài. Lập trình viên phải lập trình mã vì vậy những phần văn bản vượt ra 
ngoài đó như một sprit hay một đa giác có một kết cấu. Hộp thoại cũng 
phải được lập trình trong ngữ cảnh thích hợp. Nhiệm vụ này trở nên quan 
trọng khi chúng ta hỗ trợ nhiều ngôn ngữ đặc biệt là ngôn ngữ Châu á 2 
Byte. 
• GUI: Thực đơn, item box, life guage, v.v... phải mã hóa cứng với những 
sprit và đa giác. Một mô đun engine GUI phải hỗ trợ xương sống của hệ 
thống GUI 
• GUI Flash-like Import: với mục đích đỡ tốn nhân công lập trình, mỗi 
khi chúng ta thực hiện một mã có chấp nhận ngôn ngữ Flash, khi làm một 
thực đơn mới hay một cách trình bày màn ảnh mới thì sẽ thật là nhẹ 
6
Khoa CNTT – ĐHBK Hà nôi 
hunglt@it-hut.edu.vn 
Y: hung_lt 
nhàng (breeze). Tuy nhiên, sự thực thi này làm đội lên chi phí cao trong 
gia đoạn đầu của việc sự phát triển game. Nó là một máy phiên dịch ngôn 
ngữ thích hợp Flash đầy đủ. 
• Âm thanh -Sound: lập trình âm thanh thông thường là một nhiệm vụ đơn 
giản, vì thư viện được hỗ trợ tương đối đầy đủ và nhiều. Tuy nhiên, khi 
chúng ta muốn làm một hệ thống âm thanh thông thường mở rộng, đầy đủ 
với khung trang Dolly (surround) hay Q-Sound (âm thanh 3D), chúng ta 
cần một lập trình viên âm thanh chuyên dụng, người mà chẳng những làm 
ra các giao diện chương trình ứng dụng chức năng (APIs) mà còn điều 
tiết (vặn, ngắt) tất cả âm thanh FX nữa tới mức đầy đủ nhất. 
• Bộ điều khiển Đầu vào - Input (Controller): Việc thiếu vắng OS trong 
một bàn điều khiển trò chơi cũng có nghĩa rằng máy trò chơi không biết 
rằng khi người chơi nhấn một nút hay không. Mỗi sự kiện trong bộ điều 
khiển trò chơi phải được theo dõi và phản chiếu trên trò chơi. Đôi khi, 
điều này cũng bao gồm việc tạo ra một đầu vào FSM (Máy Trạng thái 
Hữu hạn) để theo dõi những phím đầu vào để theo dõi làm phức hợp 
những chuyển động ( Ví dụ: Æ Å Æ p p p == Hadoken) Trong bất kỳ 
trường hợp nào, phần này của lập trình là một trong những phần dễ dàng 
và có thể được làm bởi một lập trình viên tập sự với nhân viên phụ thích 
hợp 
• Quản lý vùng nhớ: Với số lượng hạn chế của vùng nhớ trong một máy 
bàn điều khiển, (thông thường ít hơn 64 Mbyte) quản lý vùng nhớ phải là 
một trong số nhân tố (hệ số) đơn quan trọng nhất trong lập trình trò chơi. 
Thông thường thời gian, một dự án tiến triển tốt và trông ấn tượng của lúc 
khởi đầu, rồi những lỗi, bug gặp phải khi chạy làm cho chương trình 
khong thể chạy được trên máy thật. Quản lý vùng nhớ tốt phải có những 
biểu hiện sau. 
o cấu trúc vùng nhớ nhỏ gọn (không có không gian không cần thiết). 
o được nén(ép) mỗi khi có thể. 
o vùng nhớ liên tục – không phân mảnh. 
o Cực tiểu/hạn chế tải CD/DVD. 
• Ngôn ngữ Scripting: còn nhiều vấn đề gây bàn cãi, nhưng một ngôn ngữ 
Scripting là một kịch bản (script) đơn giản thường được dùng để xây 
dựng một cảnh cắt (cut-sence) hay một sự kiện đặc biệt trong trò chơi. 
Kịch bản phải đủ đơn giản để được sử dụng bởi những người không phải 
lập trình viên, và như vậy sẽ tiết kiệm nhân lực lập trình ghê gớm. Tuy 
nhiên, nó đòi hỏi sự đầu tư ban đầu của việc tạo ra trình phiên dịch và cú 
pháp script. 
7
Khoa CNTT – ĐHBK Hà nôi 
hunglt@it-hut.edu.vn 
Y: hung_lt 
8

More Related Content

Similar to Game programming note02

Làm game với Unity Engine
Làm game với Unity EngineLàm game với Unity Engine
Làm game với Unity EngineColeman Ferry
 
Motsogamehayganday
MotsogamehaygandayMotsogamehayganday
MotsogamehaygandayAIT-JSC
 
Canbanvethietkevalaptrinhgame
CanbanvethietkevalaptrinhgameCanbanvethietkevalaptrinhgame
CanbanvethietkevalaptrinhgameGiang Nguyễn
 
Slide bài giảng giới thiệu Scratch
Slide bài giảng giới thiệu ScratchSlide bài giảng giới thiệu Scratch
Slide bài giảng giới thiệu ScratchBùi Việt Hà
 
BanMayBay.pptx
BanMayBay.pptxBanMayBay.pptx
BanMayBay.pptxDngcBnh
 
Pttkpm 2 phat bieubaitoan done
Pttkpm 2 phat bieubaitoan donePttkpm 2 phat bieubaitoan done
Pttkpm 2 phat bieubaitoan doneNguyen Tran
 
Tổng Quan về Lập trình Scratch
Tổng Quan về Lập trình ScratchTổng Quan về Lập trình Scratch
Tổng Quan về Lập trình ScratchNguyễn Duyênmiks
 
Báo cáo đồ họa máy tính - Computer graphics
Báo cáo đồ họa máy tính - Computer graphicsBáo cáo đồ họa máy tính - Computer graphics
Báo cáo đồ họa máy tính - Computer graphicsNguyễn Anh
 
Pttkpm 7 thiet kegiaodien done
Pttkpm 7 thiet kegiaodien donePttkpm 7 thiet kegiaodien done
Pttkpm 7 thiet kegiaodien doneNguyen Tran
 
Training cho đối tượng dự thi cuộc thi stv on air
Training cho đối tượng dự thi cuộc thi stv on airTraining cho đối tượng dự thi cuộc thi stv on air
Training cho đối tượng dự thi cuộc thi stv on airI am freelancer
 
Giới thiệu phần mềm Scratch
Giới thiệu phần mềm ScratchGiới thiệu phần mềm Scratch
Giới thiệu phần mềm ScratchPixwaresVitNam
 
Guitar tab sheet hop am ebook giao trinh soan nhac
Guitar tab sheet hop am ebook giao trinh soan nhacGuitar tab sheet hop am ebook giao trinh soan nhac
Guitar tab sheet hop am ebook giao trinh soan nhacGiao trinh Guitar
 
Nhung khai niem co ban cua Game Design
Nhung khai niem co ban cua Game DesignNhung khai niem co ban cua Game Design
Nhung khai niem co ban cua Game Designapril_kiss
 
User Interface Slides - Silicon Straits Saigon / SHIELD
User Interface Slides - Silicon Straits Saigon / SHIELDUser Interface Slides - Silicon Straits Saigon / SHIELD
User Interface Slides - Silicon Straits Saigon / SHIELDshield_vn
 
Báo cáo phân tích thiết kế đồ án game
Báo cáo phân tích thiết kế đồ án game Báo cáo phân tích thiết kế đồ án game
Báo cáo phân tích thiết kế đồ án game Tạ Thành Đạt
 
Ky thuat do_hoa
Ky thuat do_hoaKy thuat do_hoa
Ky thuat do_hoaDee Dee
 
Một số lưu ý cơ bản về viết game
Một số lưu ý cơ bản về viết gameMột số lưu ý cơ bản về viết game
Một số lưu ý cơ bản về viết gameJohnny Chen
 
Nghiên cứu một số kỹ thuật tạo cảnh trong game. ứng dụng xây dựng game sonic ...
Nghiên cứu một số kỹ thuật tạo cảnh trong game. ứng dụng xây dựng game sonic ...Nghiên cứu một số kỹ thuật tạo cảnh trong game. ứng dụng xây dựng game sonic ...
Nghiên cứu một số kỹ thuật tạo cảnh trong game. ứng dụng xây dựng game sonic ...nataliej4
 

Similar to Game programming note02 (20)

Làm game với Unity Engine
Làm game với Unity EngineLàm game với Unity Engine
Làm game với Unity Engine
 
Motsogamehayganday
MotsogamehaygandayMotsogamehayganday
Motsogamehayganday
 
Canbanvethietkevalaptrinhgame
CanbanvethietkevalaptrinhgameCanbanvethietkevalaptrinhgame
Canbanvethietkevalaptrinhgame
 
Slide bài giảng giới thiệu Scratch
Slide bài giảng giới thiệu ScratchSlide bài giảng giới thiệu Scratch
Slide bài giảng giới thiệu Scratch
 
BanMayBay.pptx
BanMayBay.pptxBanMayBay.pptx
BanMayBay.pptx
 
Pttkpm 2 phat bieubaitoan done
Pttkpm 2 phat bieubaitoan donePttkpm 2 phat bieubaitoan done
Pttkpm 2 phat bieubaitoan done
 
Tổng Quan về Lập trình Scratch
Tổng Quan về Lập trình ScratchTổng Quan về Lập trình Scratch
Tổng Quan về Lập trình Scratch
 
Báo cáo đồ họa máy tính - Computer graphics
Báo cáo đồ họa máy tính - Computer graphicsBáo cáo đồ họa máy tính - Computer graphics
Báo cáo đồ họa máy tính - Computer graphics
 
Pttkpm 7 thiet kegiaodien done
Pttkpm 7 thiet kegiaodien donePttkpm 7 thiet kegiaodien done
Pttkpm 7 thiet kegiaodien done
 
Làm quen với Scratch
Làm quen với ScratchLàm quen với Scratch
Làm quen với Scratch
 
Training cho đối tượng dự thi cuộc thi stv on air
Training cho đối tượng dự thi cuộc thi stv on airTraining cho đối tượng dự thi cuộc thi stv on air
Training cho đối tượng dự thi cuộc thi stv on air
 
Giới thiệu phần mềm Scratch
Giới thiệu phần mềm ScratchGiới thiệu phần mềm Scratch
Giới thiệu phần mềm Scratch
 
Guitar tab sheet hop am ebook giao trinh soan nhac
Guitar tab sheet hop am ebook giao trinh soan nhacGuitar tab sheet hop am ebook giao trinh soan nhac
Guitar tab sheet hop am ebook giao trinh soan nhac
 
Nhung khai niem co ban cua Game Design
Nhung khai niem co ban cua Game DesignNhung khai niem co ban cua Game Design
Nhung khai niem co ban cua Game Design
 
Ktdh (1)
Ktdh (1)Ktdh (1)
Ktdh (1)
 
User Interface Slides - Silicon Straits Saigon / SHIELD
User Interface Slides - Silicon Straits Saigon / SHIELDUser Interface Slides - Silicon Straits Saigon / SHIELD
User Interface Slides - Silicon Straits Saigon / SHIELD
 
Báo cáo phân tích thiết kế đồ án game
Báo cáo phân tích thiết kế đồ án game Báo cáo phân tích thiết kế đồ án game
Báo cáo phân tích thiết kế đồ án game
 
Ky thuat do_hoa
Ky thuat do_hoaKy thuat do_hoa
Ky thuat do_hoa
 
Một số lưu ý cơ bản về viết game
Một số lưu ý cơ bản về viết gameMột số lưu ý cơ bản về viết game
Một số lưu ý cơ bản về viết game
 
Nghiên cứu một số kỹ thuật tạo cảnh trong game. ứng dụng xây dựng game sonic ...
Nghiên cứu một số kỹ thuật tạo cảnh trong game. ứng dụng xây dựng game sonic ...Nghiên cứu một số kỹ thuật tạo cảnh trong game. ứng dụng xây dựng game sonic ...
Nghiên cứu một số kỹ thuật tạo cảnh trong game. ứng dụng xây dựng game sonic ...
 

Game programming note02

  • 1. Khoa CNTT – ĐHBK Hà nôi hunglt@it-hut.edu.vn Y: hung_lt 1 Quy Trình phát triển Game
  • 2. Khoa CNTT – ĐHBK Hà nôi hunglt@it-hut.edu.vn Y: hung_lt Quy trình phát triển game Sự hình thành một sản phẩm mới bắt đầu khi người phát triển thiết kế một khái niệm cho một trò chơi. Những tập hợp (entails) này dùng để sinh ra một bản tài liệu thiết kế trò chơi, một mô hình hoạt động của "engine" lập trình, những bản chụp màn ảnh (screen shots), một kịch bản phác thảo và một bản dự toán chi phí (a game design document, a working model of the programming “engine”, screen shots, an outline script and a proposed budget) Điển hình mất khoảng hai năm để hoàn thành một trò chơi, Theo thông lệ và và điển hình, thanh toán tiền bản quyền từ những hàng bán của trò chơi (game) chia ra 80% cho nhà xuất bản và 20% cho người phát triển (và người sáng tạo nội dung – người sở hửu bản quyền). Quá trình phát triển trò chơi thông thường bao gồm mười bước, và bao gồm bốn cột mốc bắt buộc (i) Khi chuyển giao toàn bộ thiết kế trò chơi, (ii) Phiên bản alpha của trò chơi, (iii) Phiên bản Bêta của trò chơi, (iv) Phiên bản Gold của game Bản nguyên mẫu cho demo- Demo Prototype: Một bộ code (và data) có thể chạy và chơi được bình thường và có thể trình diễn đúng những gì có thể thấy hoặc cảm nhận được về cái game đó. Bản yêu cầu trong trò chơi này cũng được chuyển cho và cũng là đề xuất với những nhà xuất bản 1/ – Planning Stage. Storyboard – Cốt truyện: Được biết như "Conti" trong tiếng Hàn, về cơ bản một tập bản thảo bằng giấy và lưới phân chia những bức tranh kèm theo mô tả bằng văn bản. Cho thấy các cảnh sẽ trông như thế nào nhưng mô tả sơ lược. Thông thường, dù chỉ là bản phác họa, nhưng mọi thứ từ góc camêra đến những chuyển động của nhân vật cũng sẽ hiện ra 2
  • 3. Khoa CNTT – ĐHBK Hà nôi hunglt@it-hut.edu.vn Y: hung_lt Một mẫu storyboard (thông thường, phần mô tả văn bản sẽ phải chi tiết hơn) Thiết kế Bản đồ: Một "Bản đồ" – “MAP” là một cảnh nền được tải vào game bất cứ khi nào mà người chơi đi vào một vùng của trò chơi. Nó là nơi mà hầu hết các kịch bản, các hoạt động sẽ diễn ra trên đó. Từ giai đoạn lập kế hoạch, một thiết kế bản đồ không phải là một bản dữ liệu 3D, khá hơn, nó là một bản vẽ 2D (với màu) cho thấy bản đồ gồm những gì và như thế nào. - Bản đồ tĩnh – Static Map: một bản đồ (nhìn thấy ở trên) khi được tải vào trong vùng nhớ của hệ thống “một lần” khi người chơi vào một vùng mới. Nó ở lại trong bộ nhớ cho đến khi người chơi đi ra ngoài tới một bản đồ khác. (Khi bạn thấy hiện ra thông báo "Now loading"). Dung lượng nhớ (memory footprint) của bản đồ tĩnh phải là ít hơn vùng nhớ sẵn có của hệ thống. (Ví dụ: MGG, Final Fantasy, Bio Hazard, Devil May Cry). - Bản đồ luồng – Stream Map: Một bản đồ lớn hơn nhiều so với một mản đồ tĩnh, những vùng trải ra ngang qua nhiều bản đồ theo một cách liên tục. Như vậy ở đó dữ liệu triền miên chảy từ CD/ DVD sao cho khi người 3
  • 4. Khoa CNTT – ĐHBK Hà nôi hunglt@it-hut.edu.vn Y: hung_lt chơi quay lại, ở đó màn ảnh không có để trống tải, thay vào đó bản đồ mới lộ ra dần dần. Một bản đồ luồng có thể lớn như không gian lưu trữ được cho phép bởi thiết bị (CD/ DVD). (Ví dụ game: Crazy Taxi) Thiết kế những nhân vật chính, Thiết kế Quái vật, Thiết kế Quái vật Ông chủ: Trong giai đoạn lập kế hoạch: bản vẽ của những nhân vật chính, quái vật và những ông chủ được nhuộm màu (không phải 3D). Thiết kế kịch bản game: Mô tả bằng hình ảnh và văn bản cho thấy game được chơi như thế nào. Cơ chế của kịch bản chính được chỉ ra giúp người đọc có thể chơi game theo ý hiểu của họ. Thiết kế GUI: Thiết kế (hệ giao diện đồ hoạ) của Thực đơn, Thanh trạng thái, Life Guage – Chỉ số sự sống, Item Box, Cửa sổ Điểm, v.v... Tại giai đoạn lập kế hoạch, nó cần phải là một bức tranh tĩnh. Thiết kế Item: Hình ảnh và việc mô tả văn bản của những Item xuất hiện trong trò chơi. Thiết kế mục tiêu - Puzzle Design: Hình ảnh và việc mô tả văn bản của mục tiêu trông như thế nào, nó cần phải được giải quyết ra sao, nơi mà nó được định vị, v.v.. 2/ - ART and Audio Làm mô hình & Kết cấu - Modeling & Texture: Làm mô hình 3D của những nhân vật và bản đồ BG Thực tế, ánh xạ kết cấu được làm sau khi làm mô hình 3D. Bản đồ BG (+ Lighting): Sự làm sáng được yêu cầu khi làm bản đồ BG trông hiện thực nhiều hơn. Cái này được làm sau khi hoàn thành tất cả mô hình và ánh xạ kết cấu bằng việc đặt những kiểu ánh sáng thực tế khác nhau sử dụng những công cụ như 3 DS Max hay LigthWave. Hoạt cảnh - Animation: Hiện thực hóa chuyển động: Công đoạn thiết kế đã qua, lúc này nhân vật vẫn chỉ như một con rối "có xác không hồn". Và nhiệm vụ "thổi hồn" sẽ được trao tay cho các lập trình viên để họ "tiếp sức" giúp nhân vật có thể cử động theo ý muốn của người chơi. Tùy theo mục đích phát triển game, sẽ có những kỹ thuật khác nhau được sử dụng Danh sách - List: bảng của tất cả hoạt cảnh cần có trong trò chơi. Bắt Chuyển động – Motion Capture. Dọn dẹp MoCap – MoCap Clean-Up: dữ liệu hoạt cảnh cần được làm tươi tách ra khỏi việc bắt chuyển động, thông thường rất bẩn, lôn xộn với nhiều sự cố và giật. Điều này cần được dọn dẹp, và nhiệm vụ này thường được làm bởi MoCap Studio. 4
  • 5. Khoa CNTT – ĐHBK Hà nôi hunglt@it-hut.edu.vn Y: hung_lt Fix-up and Positioning: bởi vì không gian hạn chế trong một trường quay MoCap, sự định vị (vị trí) và góc quay vượt ra khỏi yêu cầu, việc fix-up sẽ được yêu cầu điều chỉnh dữ liệu hoạt cảnh MoCap sao cho nó có thể được sử dụng trong game trong tọa độ vạn năng thực sự Key-frame Anim: đây là cách làm cho hoạt cảnh 3D thủ công truyền thống. Key-framing là một phương pháp của việc sắp đặt một nhân vật với một tư thế nhất định và cố định lại (“Key- it”), sắp đặt nó với tư thế khác và cố định lại. Phần còn lại giữa các khung (frame) được sinh ra tự động bởi máy tính. Chúng ta sẽ làm hầu hết hoạt cảnh của chúng ta thông qua Mo-Cap, tuy nhiên, với những tạo vật không có dạng người ( ví dụ: những quái vật và mechas) thì Mo-Cap là không khả dĩ. Item/Object Anim: là đa số những item là những đối tượng không có sinh khí, có một chút, như trong thời gian những cảnh cắt, mà vẫn phải di chuyển Âm thanh là một trong những yếu tố tưởng chừng chẳng quan trọng gì mấy, cho tới khi mà các bạn chơi thử game mà không có nó. Nói một cách khác, nếu như cốt truyện và hình ảnh là cái bánh kem thì âm thanh chính là trứng - thứ làm nên hương vị chủ yếu của cái bánh. BGM: Âm nhạc nền. Có 3 kiểu khác nhau là: 1. Raw PCM: âm thanh dạng luồng trực tiếp = tương tự như âm thanh CD hay DVD 2. ADPCM: âm thanh luồng bị ép (bị nén) = tương tự như MP3 nhưng tỷ lệ nén ít hơn. 3. MIDI: khuôn dạng midi chiém vùng nhớ ít nhấtt. Trừ phi chất lượng kém. Nó phải được sử dụng khi CD/ DVD được sử dụng cho giọng nói ADPCM qua. 5 Sound FX: Mọi hiệu ứng Âm thanh khác loại trừ BGM. Thông thường file . WAV hay WAV được chuyển đổi tới những khuôn dạng khác ( Ex. Âm thanh Bước chân, âm thanh bắn súng v.v...) 3/ - Lập trình. Động cơ - Engine: Xương sống của mã (code) trò chơi. Thông thường bao gồm nhiều chức năng chung có thể được dùng để làm cho những việc như trát (render) lót những nhân vật, những bản đồ trên màn ảnh và làm sống động chúng. • Nhân vật – Character: phải có thể trát lót và làm sống động nhân vật 3D, định vị chúng, đặt hình bóng, tính toán điểm va chạm giữa những nhân vật và nền cho cảnh nữa.
  • 6. Khoa CNTT – ĐHBK Hà nôi hunglt@it-hut.edu.vn Y: hung_lt • BG: phải có thể trát lót và chọn lọc bản đồ nền 3D. Chọn lọc là dồn một phần của SCENCE GRAPH (bản đồ BG) sao cho chỉ một phần rõ ràng của bản đồ được render. • Physics: chẳng hạn, phải làm gì khi một viên đạn từ súng rơi trên sàn nhà và những sự nảy (giật) ba nhiêu lần, v.v... Khi hai nhân vật đụng nhau, làm sao chúng cần phải phản ứng lại, dưới dạng vị trí và sự quay. Khi một ô tô đâm ô tô khác, làm sao chúng cần phải di chuyển, v.v... (Thông thường chỉ tính toán vị trí và việc quay, như một chức năng của thời gian). • Collision (va chạm) và Trigger: có 4 kiểu khác nhau: Nhân vật với Nhân vật ( cho trận đánh, bắt đầu nói, v.v...), Nhân vật với BG (vì thế có thể chỉ đi đến vùng chuyển động), từ Nhân vật tới Đối tượng (Oject) (nhặt lên những Item), (khi Nhân vật bước vào một vùng nhất định, nó sẽ thúc đẩy một sự kiện nhất định). • On Collision Reaction - Phản ứng va chạm: phải làm gì khi một nhân vật đánh cái gì đó (Thay đổi hoạt cảnh của anh ấy, vị trí và sự định hướng) • Special FX: Bất cứ tiếng động gì từ vụ nổ đến hình bóng, lửa, ánh sáng phóng hồ quang v.v... Một số được thực hiện bởi Sprites và một số bởi Particles. • Particles - Hạt: Hạt là một cách CG mô phỏng một nhóm lớn của những bụi Hạt nhỏ xíu mà từng cái có vòng đời của riêng mình và được phát ra từ một nguồn. Những hạt được dùng để mô phỏng FX đặc biệt như khói và lửa. Một ví dụ thực sự tốt của một hạt là pháo thăng thiên. • Sprite: Một Sprit là một kiểu đa giác, chỉ có điều nó (thông thường) không có bất kỳ tọa độ nào trong không gian 3D, được giới hạn bởi tự nhiên. Những sprit có tọa độ trong không gian 3D được gọi là những Billboards. • Văn bản/ hộp thoại - Text/Dialog Box: Từ một trò chơi bàn điều khiển không có một OS, nó không biết làm sao để phóng to phông văn bản ngoài. Lập trình viên phải lập trình mã vì vậy những phần văn bản vượt ra ngoài đó như một sprit hay một đa giác có một kết cấu. Hộp thoại cũng phải được lập trình trong ngữ cảnh thích hợp. Nhiệm vụ này trở nên quan trọng khi chúng ta hỗ trợ nhiều ngôn ngữ đặc biệt là ngôn ngữ Châu á 2 Byte. • GUI: Thực đơn, item box, life guage, v.v... phải mã hóa cứng với những sprit và đa giác. Một mô đun engine GUI phải hỗ trợ xương sống của hệ thống GUI • GUI Flash-like Import: với mục đích đỡ tốn nhân công lập trình, mỗi khi chúng ta thực hiện một mã có chấp nhận ngôn ngữ Flash, khi làm một thực đơn mới hay một cách trình bày màn ảnh mới thì sẽ thật là nhẹ 6
  • 7. Khoa CNTT – ĐHBK Hà nôi hunglt@it-hut.edu.vn Y: hung_lt nhàng (breeze). Tuy nhiên, sự thực thi này làm đội lên chi phí cao trong gia đoạn đầu của việc sự phát triển game. Nó là một máy phiên dịch ngôn ngữ thích hợp Flash đầy đủ. • Âm thanh -Sound: lập trình âm thanh thông thường là một nhiệm vụ đơn giản, vì thư viện được hỗ trợ tương đối đầy đủ và nhiều. Tuy nhiên, khi chúng ta muốn làm một hệ thống âm thanh thông thường mở rộng, đầy đủ với khung trang Dolly (surround) hay Q-Sound (âm thanh 3D), chúng ta cần một lập trình viên âm thanh chuyên dụng, người mà chẳng những làm ra các giao diện chương trình ứng dụng chức năng (APIs) mà còn điều tiết (vặn, ngắt) tất cả âm thanh FX nữa tới mức đầy đủ nhất. • Bộ điều khiển Đầu vào - Input (Controller): Việc thiếu vắng OS trong một bàn điều khiển trò chơi cũng có nghĩa rằng máy trò chơi không biết rằng khi người chơi nhấn một nút hay không. Mỗi sự kiện trong bộ điều khiển trò chơi phải được theo dõi và phản chiếu trên trò chơi. Đôi khi, điều này cũng bao gồm việc tạo ra một đầu vào FSM (Máy Trạng thái Hữu hạn) để theo dõi những phím đầu vào để theo dõi làm phức hợp những chuyển động ( Ví dụ: Æ Å Æ p p p == Hadoken) Trong bất kỳ trường hợp nào, phần này của lập trình là một trong những phần dễ dàng và có thể được làm bởi một lập trình viên tập sự với nhân viên phụ thích hợp • Quản lý vùng nhớ: Với số lượng hạn chế của vùng nhớ trong một máy bàn điều khiển, (thông thường ít hơn 64 Mbyte) quản lý vùng nhớ phải là một trong số nhân tố (hệ số) đơn quan trọng nhất trong lập trình trò chơi. Thông thường thời gian, một dự án tiến triển tốt và trông ấn tượng của lúc khởi đầu, rồi những lỗi, bug gặp phải khi chạy làm cho chương trình khong thể chạy được trên máy thật. Quản lý vùng nhớ tốt phải có những biểu hiện sau. o cấu trúc vùng nhớ nhỏ gọn (không có không gian không cần thiết). o được nén(ép) mỗi khi có thể. o vùng nhớ liên tục – không phân mảnh. o Cực tiểu/hạn chế tải CD/DVD. • Ngôn ngữ Scripting: còn nhiều vấn đề gây bàn cãi, nhưng một ngôn ngữ Scripting là một kịch bản (script) đơn giản thường được dùng để xây dựng một cảnh cắt (cut-sence) hay một sự kiện đặc biệt trong trò chơi. Kịch bản phải đủ đơn giản để được sử dụng bởi những người không phải lập trình viên, và như vậy sẽ tiết kiệm nhân lực lập trình ghê gớm. Tuy nhiên, nó đòi hỏi sự đầu tư ban đầu của việc tạo ra trình phiên dịch và cú pháp script. 7
  • 8. Khoa CNTT – ĐHBK Hà nôi hunglt@it-hut.edu.vn Y: hung_lt 8