Chính vì vậy, hầu hết các game được chuyển thể lên môi trường mobile cũng đều được làm đơn giản hóa và xây dựng trên nền đồ họa 2 chiều nhằm phù hợp với nhu cầu của đại đa số người chơi
Trang 1TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
NGHIÊN CỨU VÀ PHÁT TRIỂN GAME
TRÊN WINDOWS MOBILE
KHÓA LUẬN TỐT NGHIỆP CỬ NHÂN TIN HỌC
GIÁO VIÊN HƯỚNG DẪN TS.Trần Minh Triết
NIÊN KHÓA 2005 – 2009
Trang 2NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
……… Khóa luận đáp ứng yêu cầu của khóa luận cử nhân CNTT
TpHCM, ngày …… tháng …… năm 2009
Giáo viên hướng dẫn
Trang 3NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
……… Khóa luận đáp ứng yêu cầu của khỏa luận cử nhân CNTT
TpHCM, ngày …… tháng …… năm 2009
Giáo viên phản biện
Trang 4LỜI CÁM ƠN
Chúng em xin chân thành cảm ơn Khoa Công Nghệ Thông Tin, trường Đại HọcKhoa Học Tự Nhiên, Tp.HCM đã tạo điều kiện tốt cho chúng em thực hiện đề tàitốt nghiệp này
Chúng em xin chân thành cảm ơn Thầy Trần Minh Triết người đã tận tình hướngdẫn, chỉ bảo chúng em trong suốt thời gian thực hiện đề tài
Chúng em cũng xin gửi lời cảm ơn sâu sắc đến quý Thầy Cô trong Khoa đã tận tìnhgiảng dạy, trang bị cho chúng em những kiến thức quí báu trong những năm họcvừa qua
Chúng em xin gửi lòng biết ơn sâu sắc đến Ba, Mẹ, các anh chị và bạn bè đã ủng
hộ, giúp đỡ và động viên chúng em trong những lúc khó khăn cũng như trong suốtthời gian học tập và nghiên cứu
Mặc dù chúng em đã cố gắng hoàn thành luận văn trong phạm vi và khả năng chophép, nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, kính mong sự cảmthông và tận tình chỉ bảo của quý Thầy Cô và các bạn
Nhóm thực hiệnMai Anh Tuấn & Hoàng Anh Tú
Trang 5ĐỀ CƯƠNG CHI TIẾT
Tên Đề Tài: Nghiên cứu và phát triển game trên Windows Mobile
Giáo viên hướng dẫn: TS.Trần Minh Triết
Thời gian thực hiện: từ ngày 02/01/2009 đến ngày 07/07/2009
Sinh viên thực hiện:
Mai Anh Tuấn(0512375) – Hoàng Anh Tú(0512396)
Loại đề tài: Tìm hiểu công nghệ và xây dựng ứng dụng
Nội Dung Đề Tài:
Đây là đề tài thuộc về hướng tìm hiểu công nghệ và phát triển ứng dụng
Đề tài bao gồm các phần sau:
Khảo sát những đặc điểm thường gặp của các game trên mobile
Nghiên cứu các kỹ thuật lập trình game trên Windows Mobile
Xác định các qui luật và khái niệm cho dòng game sẽ được xây dựng trong
đề tài
Xây dựng framework dùng để phát triển các game theo dòng game đã chọn
Xây dựng công cụ Game Editor hỗ trợ phát sinh project mã nguồn gamevới các tài nguyên đồ họa và thông tin đặc tả game dựa trên framework đã
đề ra
Xây dựng thử nghiệm một game bằng công cụ Game Editor
Trang 6Kế Hoạch Thực Hiện:
- 12/01/2009-26/02/2009: tìm hiểu các kỹ thuật cần thiết để xây dựng game
- 27/02/2009-15/03/2009: xây dựng thư viện xử lý đồ họa
- 15/03/2009-20/03/2009: xây dựng hệ thống control hỗ trợ xây dựng giao diện
- 21/03/2009-10/04/2009: xây dựng và hoàn thành các chức năng cơ bản củagame
- 11/04/2009-01/05/2009: cải tiến các chức năng của game đồng thời xây dựngkiến trúc xử lý của game
- 02/05/2009-30/06/2009: xây dựng công cụ game editor để phát sinh mã nguồncho các game có lối chơi tương tự
- 01/07/2009-07/07/2009: cải tiến game và công cụ phát sinh mã nguồn
Xác nhận của GVHD Ngày 10 tháng 01 năm 2009
SV Thực hiện
Trang 7MỤC LỤC
Chương 1 Mở đầu 1
1.1 Giới thiệu 1
1.2 Game trên thiết bị 3
1.3 Windows Mobile 4
1.4 Mục tiêu đề tài 5
1.5 Nội dung luận văn 5
Chương 2 Khảo sát hiện trạng 7
2.1 Khảo sát thị trường mobile và game trên mobile 7
2.2 Một số đặc điểm của game trên mobile 9
2.2.1 Thời lượng chơi game không nhiều 9 2.2.2 Lối chơi quen thuộc, đơn giản 10 2.2.3 Đồ họa 2 chiều 12 2.2.4 Số lượng đối tượng chuyển động cùng lúc ít 13 2.2.5 Các tài nguyên chuyển động animation được xây dựng sẵn 14 2.2.6 Địa hình của game được dựng sẵn 16 2.2.7 Các màn hình game chia ra nhiều phần 18 Chương 3 Một số đặc trưng chính của game 21
3.1 Giới thiệu 21
3.2 Các qui luật chơi chính 21 3.2.1 Chiến đấu 21
3.2.2 Tấn công và chiếm đóng 22
3.2.3 Phòng thủ 22
3.2.4 Khai thác tài nguyên23
Trang 94.1.2 Cải tiến thư viện IGraphics 39
4.1.3 Khởi tạo đối tượng đồ họa 40
4.1.4 Vẽ trên IGraphics 40
4.1.5 Hủy IGraphics 41
4.2 Xử lý ảnh Bitmap 424.2.1 Tạo Bitmap 42
4.2.2 Sử dụng Bitmap 43
4.2.3 Hủy Bitmap 43
4.3 Xử lý chuỗi và Font 444.3.1 Tạo Font 44
4.5.2 Cập nhật Animation 48
Trang 104.5.3 Vẽ Animation 49
4.5.4 Hủy Animation 49
4.6 Xây dựng đối tượng thể hiện chuyển động 50
4.6.1 Tạo Sprite 50 4.6.2 Cập nhật Sprite 51 4.6.3 Vẽ Sprite 51 4.6.4 Quản lý các Sprite với SpriteManager 51 4.7 Vẽ từng vùng trong ảnh 52
4.8 Giới hạn những vùng cần vẽ trên màn hình 53
4.9 Xây dựng hình ảnh các đối tượng trong game 54
4.10 Tìm kiếm và xây dựng các hình ảnh cho game 55
Chương 5 Các vấn đề và giải pháp xử lý tương tác, lưu trữ trong game trên Windows Mobile 58
5.1 Các vấn đề xử lý tương tác game 58
5.1.1 Cơ chế cập nhật và hiển thị hình ảnh 58 5.1.2 Số khung hình 60 5.1.3 Thời gian hoàn thành chu kỳ chậm 62 5.1.4 Xử lý tương tác game 63 5.1.5 Xử lý giao diện trên Windows Mobile 64 5.1.6 Các đối tượng xử lý giao diện 65 5.1.7 Cơ chế xử lý luồng sự kiện 69 5.1.8 Xây dựng AI cho game 70 5.2 Giải pháp lưu trữ 72 5.2.1 Quản lý thông tin của game 72
Trang 115.2.2 Cơ chế quản lý hình ảnh 72
5.2.3 Cơ chế quản lý và sử dụng tài nguyên 74
Chương 6 Kiến trúc game 766.1 Kiến trúc xử lý chính của game 766.1.1 Sơ đồ kiến trúc 76
6.1.2 Ý nghĩa các thành phần 76
6.2 Kiến trúc xử lý đồ họa 776.2.1 Sơ đồ lớp 77
6.4.2 Cách hoạt động 80
6.4.3 Vấn đề về kỹ thuật lập trình 83
6.4.4 Kiểm tra các quan hệ 1-n giữa các đối tượng 84
6.5 Cơ chế mở rộng trong game 856.5.1 Cơ chế mở rộng thông tin logic của game85
6.5.2 Cơ chế mở rộng xử lý của game 87
Chương 7 Game Editor 907.1 Game Editor 907.1.1 Giới thiệu 90
7.1.2 Các chức năng 90
Trang 127.2 Các công cụ hỗ trợ phát triển game 91
7.2.1 Công cụ tạo tài nguyên quân lính cho game 91 7.2.2 Công cụ tạo công trình 92 7.3 Các đặc tả XML Schema được tạo ra từ game editor 92
7.3.1 Đặc tả thông tin anh hùng và quân lính 92 7.3.2 Đặc tả thông tin thị trấn 93 7.3.3 Đặc tả thông tin công trình 93 7.3.4 Đặc tả thông tin công nghệ 93 7.3.5 Đặc tả thông tin phép thuật 94 7.3.6 Đặc tả thông tin thuộc tính nguyên tố 94 7.3.7 Đặc tả thông tin tài nguyên 94 7.3.8 Đặc tả thông tin chi phí 94 7.3.9 Đặc tả thông tin các tham chiếu 94 7.3.10 Đặc tả vị trí thị trấn trên trong thế giới game 95 7.3.11 Đặc tả các nhóm quân của người chơi 95 7.3.12 Đặc tả thông tin một người chơi 95 7.3.13 Đặc tả vòng chơi 96 Chương 8 Kết luận 97
8.1 Các kết quả đạt được 97
8.2 Hướng phát triển của đề tài 100
DANH MỤC TÀI LIỆU THAM KHẢO 102
Phụ lục A Nội dung tập tin XML sử dụng trong đề tài 103
A.1 Nội dung XML thông tin logic của game 103 A.1.1 Thông tin anh hùng và quân lính 103
Trang 13A.1.2 Thông tin thị trấn 103
A.1.3 Thông tin công trình104
A.1.4 Thông tin công nghệ105
A.1.5 Thông tin phép thuật 106
A.1.6 Thông tin thuộc tính nguyên tố 106
A.1.7 Thông tin tài nguyên 106
A.1.8 Đặc tả chi phí 107
A.1.9 Đặc tả các tham chiếu 107
A.2 Đặc tả XML thông tin các vòng chơi của game 108
A.2.1 Đặc tả vị trí thị trấn trên trong thế giới game 108 A.2.2 Đặc tả các nhóm quân của người chơi 108 A.2.3 Đặc tả thông tin một người chơi 108 A.2.4 Đặc tả vòng chơi 109 A.2.5 Nội dung ví dụ 109 Phụ lục B Danh sách các thông tin trong game The Age of Heroes 111
B.1 Anh hùng 111
B.2 Quân lính 112
B.3 Phép thuật 114
B.4 Công nghệ 115
B.5 Công trình 116
Trang 14DANH MỤC CÁC HÌNH
Hình 1-1-Biểu đồ tăng trưởng thuê bao điện thoại theo năm 1
Hình 1-2-Số liệu thuê bao điện thoại theo tháng năm 2009 2
Hình 1-3-Mật độ điện thoại tính trên 100 dân theo tháng năm 2009 2
Hình 1-4-Game Age of Empires II trên Smartphone 3
Hình 1-5-Game Empire Earth trên Smartphone 4
Hình 2-1-Một số tựa game nổi tiếng trên mobile 8
Hình 2-2-Một sô game trên mobile nổi tiếng hiện nay ở Việt Nam 8
Hình 2-3-Một số game có lối chơi đơn giản, thời lượng ít 9
Hình 2-4-Một số game quen thuộc với người chơi trên PC 10
Hình 2-5-Game Empire Earth với lối chơi được đơn giản hóa trên mobile (trái) và phiên bản gốc trên PC (phải) 11
Hình 2-6-Game Empire Earth trên mobile (trái) và trên PC (phải) 12
Hình 2-7-Game Command & Conquer 3: Tiberium Wars trên mobile (trái) và trên PC (phải) với đối tượng đồ họa không quá nhiều 13
Hình 2-8-Dãy chuyển động gồm nhiều hình riêng lẻ 15
Hình 2-9-Dãy chuyển động trong một hình 15
Hình 2-10-Game Heroes of Might and Magic 3 với các nhóm quân chỉ được thể hiện là một đối tượng trên màn hình 17
Hình 2-11-Một trong những địa hình được xây dựng sẵn trong game Heroes of Might and Magic 3 18
Hình 2-12-Ba loại màn hình trong game Heroes of Might and Magic V trên PC 19
Hình 2-13-Hai loại màn hình trong game phiêu lưu Final Fantasy 9 trên máy PlayStation 1: màn hình chiến đấu (trái) và màn hình thế giới 19
Trang 15Hình 3-1-Qui luật ngũ hành và bát quái trong triết học 26
Hình 3-2-Qui luật ngũ hành 31
Hình 4-1- Thư viện IGraphics gốc trên MSDN 36
Hình 4-2- DirectXGraphics và GdiGraphics 37
Hình 4-3- Lớp xử lý Bitmap và interface IBitmap 38
Hình 4-4-Lớp xử lý Font và interface IFont 38
Hình 4-5-Lớp xử lý Animation 39
Hình 4-6-Lớp xử lý ảnh Bitmap 42
Hình 4-7-Ảnh animation công trình bằng Bitmap 47
Hình 4-8-Ảnh animation phép thuật bằng PNG 48
Hình 4-9-Lớp quản lý Sprite-SpriteManager 52
Hình 4-10-So sánh giữa ảnh vẽ bằng 3 phương pháp 55
Hình 5-1- Qui trình xử lý cập nhật trạng thái game và hiển thị hình ảnh 59
Hình 5-2-Qui trình xử lý game có áp dụng cơ chế double buffer 60
Hình 5-3-Qui trình xử lý game sau khi thêm bước sleep cuối chu kỳ 62
Hình 5-4-Lớp ImageControl 67
Hình 5-5-ImageButton và ImageLabel 67
Hình 5-6-Lớp ImageForm 68
Hình 5-7-Lớp ImageContainer và interface IImageChild 69
Hình 5-8-Qui trình xử lý luồng sự kiện 70
Hình 5-9-Kiến trúc của giải thuật A* áp dụng cho game 70
Hình 6-1-Kiến trúc tổng thể của hệ thống 76
Hình 6-2-Sơ đồ lớp xử lý đồ họa của game 77
Trang 16Hình 6-3-Sơ đồ lớp quản lý lưu trữ 78
Hình 6-4-Kiến trúc xử lý logic 79
Hình 6-5-Cơ chế hoạt động xử lý các loại vòng chơi chính của game 80
Hình 6-6-Cơ chế xử lý thông tin trong game 81
Hình 6-7-Cơ chế xử lý các vòng chơi trong game 82
Hình 6-8-Kết quả AND bit xác định công trình có được phép xây dựng không 85
Hình 6-9-Cơ chế xử lý thông tin các công trình 86
Hình 7-1-Giao diện tạo tài nguyên quân lính cho game 92
Hình 7-2-Công cụ tạo tài nguyên công trình cho game 92
Hình 8-1-Giao diện chính của game 98
Hình 8-2-Giao diện chọn cấu hình trong game 98
Hình 8-3-Giao diện nạp game 98
Hình 8-4-Giao diện thế giới trong game 99
Hình 8-5-Giao diện menu trong giao diện thế giới game 99
Hình 8-6-Giao diện chiến đấu trong game 99
Hình 8-7-Di chuyển khi chiến đấu 100
Hình 8-8-Giao diện thị trấn 100
Trang 17DANH MỤC CÁC BẢNG
Bảng 2-1-Doanh thu Smartphone toàn cầu năm 2008 7
Bảng 3-1-Các anh hùng trong game 29
Bảng 3-2-Các đơn vị bộ binh trong game 30
Bảng 3-3-Các đơn vị kị binh trong game 30
Bảng 3-4-Các đơn vị phù thủy trong game 30
Bảng 3-5-Các đơn vị quân lính đặc biệt trong game 30
Bảng 3-6-Nhóm phép thuật tấn công 32
Bảng 3-7-Nhóm phép thuật hỗ trợ 32
Bảng 3-8-Các công nghệ cho phép tạo lính 32
Bảng 3-9-Các công nghệ cho phép học phép thuật 32
Bảng 3-10-Các công trình của dân tộc Huns, Teutons, Mongols và Aztecs 33
Bảng 6-1-Sơ đồ kiến trúc chính của game 76
Bảng 6-2-Ý nghĩa các interface trong thư viện đồ họa 77
Bảng 6-3-Ý nghĩa các lớp trong thư viện đồ họa 78
Bảng 6-4-Ý nghĩa các lớp quản lý hình ảnh 78
Bảng 6-5-Ý nghĩa các lớp quản lý hoạt động chính của game 79
Bảng 6-6-Ý nghĩa giá trị trả về của hàm NextAIBattle 88
Bảng 6-7-Ý nghĩa giá trị trả về của hàm NextAIWorld 89
Bảng B-1-Các anh hùng trong game 111
Bảng B-2-Các đơn vị bộ binh trong game 112
Bảng B-3-Các đơn vị kị binh trong game 113
Bảng B-4-Các đơn vị phù thủy trong game 113
Trang 18Bảng B-5-Các đơn vị quân lính đặc biệt trong game 113
Bảng B-6-Các đơn vị quân lính chỉ tạo ra từ phép thuật 114
Bảng B-7-Nhóm phép thuật tấn công 115
Bảng B-8-Nhóm phép thuật hỗ trợ 115
Bảng B-9-Các công nghệ cho phép tạo lính 115
Bảng B-10-Các công nghệ cho phép học phép thuật 115
Bảng B-11-Các công trình của dân tộc Huns, Teutons, Mongols và Aztecs 116
Trang 19TÓM TẮT KHÓA LUẬN
Hiện nay, thị trường mobile ngày càng phát triển Cùng với sự phát triển củacông nghệ, giá thành ngày càng giảm trong khi các tính năng của mobile ngày càngtăng Nhờ đó, chiếc mobile ngày nay càng lúc càng phổ biến với mọi người Lượngngười dùng mobile rất lớn hiện nay cũng là một trong những thị trường đầy tiềmnăng để kinh doanh các ứng dụng giải trí Chính vì vậy, phát triển game trên mobilechính là một nhu cầu thực tế và hứa hẹn sẽ phát triển mạnh mẽ trong tương lai
Nội dung của đề tài tập trung vào việc nghiên cứu và phát triển ứng dụnggame trên mobile Qua đó, chúng em cũng tìm hiểu những kỹ thuật cần thiết để xâydựng và phát triển game cũng như xây dựng các ứng dụng đồ họa trên hệ điều hànhWindows Mobile Bên cạnh đó, sau khi xây dựng một game hoàn chỉnh, chúng em
sẽ xây dựng một chương trình cho phép phát sinh mã nguồn cho các game có lốichơi tương tự như game chúng em đã xây dựng Chính vì vậy, mục tiêu khóa luậncủa chúng em còn hướng tới xây dựng một bộ các game với lối chơi tương tự nhau,
hỗ trợ đắc lực cho việc phát triển các game trong thời gian ngắn
Nội dung khóa luận bao gồm 9 chương:
Chương 6: Kiến trúc game
Chương 7: Game Editor
Chương 8: Kết luận và hướng phát triển
Trang 20Hình 1-1-Biểu đồ tăng trưởng thuê bao điện thoại theo năm (Nguồn: Trang web của Bộ Thông tin và Truyền thông - http://mic.gov.vn/)
Trang 21Hình 1-2-Số liệu thuê bao điện thoại theo tháng năm 2009
Hình 1-3-Mật độ điện thoại tính trên 100 dân theo tháng năm 2009
Thêm vào đó, sự phát triển mạnh mẽ của công nghệ cũng kéo theo sự ra đờicủa hàng loại những thiết bị di động cầm tay phục vụ tốt hơn nhu cầu của con
người Người dùng điện thoại ngày nay không chỉ quan tâm đến các chức năng liên lạc đơn thuần mà cái họ cần là một thiết bị truyền thông đa phương tiện thực hiện công việc như một chiếc máy tính thu nhỏ Nắm bắt nhu cầu đó, những chiếc điện
thoại thông minh (Smartphone) IPhone, BlackBerry, GPhone, Palm, liên tục ra
Trang 22đời với các chức năng chơi game, chụp ảnh, xem film, kết nối Internet, chạy ứngdụng,
Khi chiếc điện thoại dần trở nên quen thuộc, phổ biến với mọi người thì nhucầu sử dụng các ứng dụng cũng như giải trí trên điện thoại cũng bắt đầu hình thành
Chính nhu cầu giải trí của đông đảo người dùng và sự hỗ trợ mạnh mẽ từ công nghệ đã tạo điều kiện thuận lợi để thị trường game trên mobile phát triển mạnh mẽ.
Theo khảo sát của công ty nghiên cứu thị trường JupiterResearch (Mỹ), nếu nhưtrước đây, nhắc đến game di động thì người ta chỉ nghĩ đến những trò chơi đơngiản, như Snake, với mục đích giết thời gian, nhưng thị trường đã hoàn toàn thayđổi - đây được xem là mảnh đất màu mỡ của những nhà kinh doanh Đến cuối năm
2008, thị trường game trên mobile đã tăng trưởng 20%, đạt doanh thu 5,4 tỷ USD
Những điều đó đã góp phần vẽ nên bức tranh về một thị trường game trên
mobile giàu tiềm năng Có thể nói, xây dựng ứng dụng mobile nói chung hay xây dựng game trên mobile nói riêng chính là một trong những xu hướng phát triển mạnh mẽ của công nghệ thông tin trong tương lai.
1.2 Game trên thiết bị
Kể từ khi các thiết bị di động trở nên phổ biến với người sử dụng, các game
trên thiết bị cũng ngày càng phát triển Các tựa game nổi tiếng dần dần được hồi sinh trở lại trên môi trường các thiết bị Có thể lấy ví dụ các tựa game nổi tiếng như
Empire Earth hay game Age of Empires II được xây dựng trên Smartphone
Hình 1-4-Game Age of Empires II trên Smartphone
Trang 23
Hình 1-5-Game Empire Earth trên Smartphone
Tuy công nghệ phát triển nhanh chóng nhưng không phải thiết bị nào cũng
đủ sức mạnh để hỗ trợ xây dựng các ứng dụng đồ họa phức tạp trên môi trườngkhông gian 3 chiều Hơn nữa, người dùng sử dụng mobile thường không thể chơigame trong thời gian dài liên tục mà họ đến với game trong những thời gian rảnh
nên độ phức tạp, thời lượng của game cũng đều được thu hẹp lại Chính vì vậy, hầu hết các game được chuyển thể lên môi trường mobile cũng đều được làm đơn giản hóa và xây dựng trên nền đồ họa 2 chiều nhằm phù hợp với nhu cầu của đại đa số
người chơi trên mobile
Chính việc đơn giản hóa và chuyển thể các game cũ sang môi trường mobile trên nền đồ họa 2 chiều đã giúp cho các tựa game nổi tiếng một thời hồi sinh lại dưới một bộ mặt khác đồng thời giúp nhà sản xuất thu thêm lợi nhuận từ những dự
án game tưởng chừng đã chấm dứt và không còn được phát triển nữa.
1.3 Windows Mobile
Windows Mobile là một trong số những hệ điều hành dành cho mobile do
Microsoft phát triển Được sự hỗ trợ về mặt công nghệ từ Microsoft nên các ứng dụng trên Windows Mobile có thể được phát triển nhanh chóng, đơn giản hơn các ứng dụng trên các hệ điều hành khác Đặc biệt, Windows Mobile hỗ trợ lập trình cả
bằng Net Compact Framework và các tập lệnh API
Hệ điều hành Windows Mobile hiện chiếm thị phần đứng thứ 3, thị phần củaWindows Mobile tăng dần cùng với sự phát triển của công nghệ cũng như sự phát
Trang 24triển của thị trường mobile Với tính năng tương thích tốt với màn hình cảm ứng, các hệ điều hành Windows Mobile được đánh giá là tiềm năng phát triển vẫn còn rất lớn.
1.4 Mục tiêu đề tài
Đề tài thuộc hướng tìm hiểu công nghệ và xây dựng ứng dụng Mục tiêuchính của đề tài nhằm xây dựng nên một framework dùng để phát triển cho cácgame trên hệ điều hành Windows Mobile
Đề tài bao gồm các phần sau:
Khảo sát những đặc điểm thường gặp của các game trên mobile
Nghiên cứu các kỹ thuật lập trình game trên Windows Mobile
Xác định các qui luật và khái niệm cho dòng game sẽ được xây dựng trong
đề tài
Xây dựng framework dùng để phát triển các game theo dòng game đã chọn
Xây dựng công cụ Game Editor hỗ trợ phát sinh project mã nguồn game vớicác tài nguyên đồ họa và thông tin đặc tả game dựa trên framework đã đề ra
Xây dựng thử nghiệm một game bằng công cụ Game Editor
1.5 Nội dung luận văn
Luận văn bao gồm 8 chương, chia thành 4 nhóm nội dung chính:
Phần 1: Tổng quan về thị trường mobile, cũng như các game phát triển trên mobile.
- Chương 1-Tổng quan: giới thiệu về thị trường mobile nói chung cũng
như thị trường game trên mobile nói riêng.
- Chương 2-Khảo sát hiện trạng: trình bày về việc khảo sát các game trên
thiết bị hiện nay cũng như đặc điểm của các game trên mobile.
Trang 25- Chương 3-Một số đặc trưng chính của dòng game xây dựng: từ một số
đặc điểm của game đã phân tích, chương này chúng em sẽ trình bày lối chơi của game sẽ xây dựng.
Phần 2: Các công nghệ, kỹ thuật phát triển game trên môi trường Windows Mobile 6.
- Chương 4-Các vấn đề và giải pháp phát triển xử lý đồ họa trong game trên Windows Mobile: quá trình phát triển game sẽ phát sinh nhiều vấn
đề cần giải quyết về xử lý đồ họa Chương này sẽ trình bày các vấn đề cũng như các giải pháp chúng em đã sử dụng để xử lý đồ họa trong game.
- Chương 5-Các vấn đề và giải pháp xử lý tương tác trong game trên
Windows Mobile: trình bày các vấn đề, giải pháp xử lý tương tác và lưu
trữ cho game trên Windows Mobile mà chúng em đã xây dựng và sử dụng
để phát triển game
- Chương 6-Kiến trúc game: trình bày về kiến trúc tổng thể của game cũng
như qui trình xử lý của một số những đối tượng chính trong game.
Phần 3: Game editor
- Chương 7-Game editor: giới thiệu về công cụ phát sinh mã nguồn cho
các game tương tự với game mà chúng em phát.
Phần 4: Kết luận các vấn đề đã làm được và hướng phát triển của đề tài
- Chương 8-Kết luận và hướng phát triển của đề tài: trình bày kết luận
của đề tài cũng như giới thiệu về các hướng phát triển của đề tài trong
tương lai
Trang 26Chương 2 Khảo sát hiện trạng
Nội dung của chương 2 trình bày về việc khảo sát các game trên thiết bị hiện nay cũng như đặc điểm của các game dạng này.
2.1 Khảo sát thị trường mobile và game trên mobile
Ngày nay, thiết bị mobile ngày một phổ biến Với sự phát triển mạnh mẽ của
công nghệ, các thiết bị Smartphone ra đời mỗi lúc một nhiều với chức năng xử lý tốt hơn trong khi giá thành không quá cao Trong đó, có thể kể đến các dòng máy
như: BlackBerry của hãng RIM, IPhone của Apple, Palm hay Android của
Google, Chính vì vậy, với những tính năng như một chiếc PC thu nhỏ, Smartphone ngày càng thu hút thêm nhiều người sử dụng Với sự cạnh tranh của
các hãng lớn trên thế giới cùng sự ra đời của các dòng máy Smartphone giá rẻ của
Nokia, chắc chắn thị trường máy Smartphone sẽ ngày càng tăng hơn nữa trong tương lai.
Trang 27Bên cạnh sự phát triển của các dòng máy Smartphone, các hệ điều hành phát triển cho mobile cũng phát triển không ngừng Tính đến quí 2 năm 2008 có 3 hệ
điều hành dành cho mobile chiếm thị phần lớn nhất đó là: Symbian(52,4%),
BlackBerry OS(16,6%) và Windows Mobile(11,8%) Trong đó, Windows Mobile là một trong số ít những hệ điều hành tương thích với màn hình cảm ứng nên tiềm năng phát triển của hệ điều hành này là rất tốt.
Hình 2-6-Một số tựa game nổi tiếng trên mobile
Sự phát triển mạnh mẽ đó của thị trường Smartphone chính là động lực thúc đẩy thị trường game trên Smartphone phát triển Thị trường game trên thế giới
cũng dần xuất hiện những tựa game thu hút được sự tham gia của nhiều game thủ
Có thể kể đến các tựa game phát triển mạnh mẽ như BotFighters của lits Alive!,Sonic N, Age of Empires:Age of King, Worms:World Party,
Trang 28Sodoku Thằng Bờm Lục Vân Tiên truyền kỳ F0-Đường đua vui nhộn
Hình 2-7-Một sô game trên mobile nổi tiếng hiện nay ở Việt Nam
Bên cạnh đó, thị trường game mobile Việt Nam cũng có những bước phát triển quan trọng Có thể kể đến những tựa game được người Việt thiết kế và xây dựng hoàn toàn như “Sodoku Thằng bờm”, “Lục Vân Tiên truyền kỳ” và “F0-
Đường đua vui nhộn” của FPT Mobile
Qua đó, có thể thấy các tựa game trên mobile rất đa dạng nhiều chủ đề nhưng hầu hết đều tập trung vào các thể loại game đơn giản, không chú trọng quá nhiều vào đồ họa bắt mắt mà tập trung xây dựng lối chơi lôi cuốn được người dùng.
Có thể xem Empire Earth là một ví dụ Bản thân là một game xây dựng đồ họatrong không gian 3 chiều nhưng khi chuyển sang mobile, game này được chuyển thểsang môi trường đồ họa không gian 2 chiều
2.2 Một số đặc điểm của game trên mobile
2.2.1 Thời lượng chơi game không nhiều
Đặc điểm: thời lượng chơi game trên các thiết bị di động thường không nhiều.
Phân tích
Mobile thường bị hạn chế về năng lượng, phải sử dụng Pin và cần phải sử dụng cho các mục đích khác quan trọng hơn như liên lạc với đối tác, khách hàng hay người thân, vì vậy không thể duy trì chơi game liên tục trong khoảng thời gian dài.
Trang 29Tetris Bejeweled Đoán ô chữ
Hình 2-8-Một số game có lối chơi đơn giản, thời lượng ít
Người dùng tìm đến với các game trên mobile trong thời gian nghỉ giữa giờ,
chờ đợi các cuộc hẹn hay trong những lúc làm việc căng thẳng cần thư giãn, thời gian không nhiều nên thời lượng chơi game cũng hạn chế, không được phép quá dài.
Kết luận: mỗi vòng chơi có thời lượng không quá dài, thế giới trong game
cũng không xây dựng quá lớn nhằm mục tiêu giảm thời gian lượng chơi game trong khi đó vẫn giữ được những tính năng cuốn hút người chơi như các phép
thuật, tùy chọn về các mức độ khó của game hay hệ thống các quân lính, côngtrình,
2.2.2 Lối chơi quen thuộc, đơn giản
Đặc điểm: hầu hết các game trên thiết bị mobile hiện nay đều xây dựng với
lối chơi khá đơn giản, quen thuộc với người dùng và xuất phát từ các game trên các hệ máy khác đã quen thuộc với người dùng.
Phân tích
Thời lượng chơi game không nhiều, chính vì vậy nên một game trên mobile phải có lối chơi đơn giản và quen thuộc với người dùng.
Trang 30The Sims 2 The Sim City Need for Speed
Hình 2-9-Một số game quen thuộc với người chơi trên PC
Để xây dựng một game không quá đơn giản nhưng lại quen thuộc với người dùng thì giải pháp là xây dựng các game đã có trên các hệ máy khác và quen thuộc trên người dùng.
Các game cũ trên máy tính cá nhân khi chuyển sang môi trường mobile đều
được làm đơn giản hóa cách chơi Game Empire Earth là một ví dụ Empire Earth
vốn là một game dàn trận thời gian thực xây dựng trong không gian 3 chiều nhưngkhi chuyển sang xây dựng trên mobile, game này cũng trở thành một game dàn trậntheo lượt xây dựng trên nền đồ họa 2 chiều Nếu như trong phiên bản trên PC có 14thời kì với chiều dài 500.000 năm lịch sử thì khi chuyển sang mobile, game chỉ còn
4 thời kỳ với chiều dài 2.000 năm lịch sử
Trang 31
Hình 2-10-Game Empire Earth với lối chơi được đơn giản hóa trên mobile (trái) và
phiên bản gốc trên PC (phải)
Kết luận: chúng em quyết định xây dựng một game có lối chơi được đơn giản
hóa từ lối chơi của các game mà người dùng đã quen thuộc trên PC Cụ thể, chúng em xây dựng game theo lối chơi của game Heroes of Might and Magic với một số sự thay đổi nhỏ để phù hợp hơn với đối tượng người dùng trên mobile như : số lượng quân hạn chế, giảm đi độ lớn của các vòng chơi nhưng
bù lại xây dựng thế giới nhỏ và tập trung vào các đối tượng cùng các nhiệm vụtrong game để khiến người dùng phải năng động hơn trong lối chơi Ví dụ :người dùng phải đi đến các điểm trên bản đồ để chiếm tài nguyên, khi bản đồlớn, họ không lo lắm đến việc bảo vệ các loại tài nguyên của mình nhưng khibản đồ trở nên nhỏ bé, số lượng tài nguyên ít hơn hẳn thì việc bảo vệ sẽ phảithực hiện cẩn thận hơn Nhờ đó, tăng tính chiến thuật cũng như sự cạnh tranh
và năng động cho game
Trang 32Tài nguyên dùng để xây dựng các đối tượng đồ họa 3 chiều hầu hết đều rấtkhó tìm Các game đồ họa 3 chiều khi được xây dựng đều có những nhóm họa sĩchuyên thiết kế đồ họa và nhóm lập trình viên cài đặt cho game riêng Chính vì vậy,vừa tập trung thiết kế đồ họa 3 chiều vừa xây dựng game là điều rất khó khăn.
Hệ điều hành Windows Mobile cho phép sử dụng DirectX để lập trình đồ
họa 3 chiều nhưng tốc độ xử lý vẫn chưa cao Hơn nữa với bộ nhớ mobile hạn chế thì không phải thiết bị mobile nào cũng có thể xây dựng game đồ họa 3 chiều được.
Các game đồ họa 3 chiều trên máy tính cá nhân khi được chuyển qua mobile cũng được các hãng đưa về đồ họa 2 chiều nhằm phù hợp hơn với những máy có
cấu hình thấp
Hình 2-11-Game Empire Earth trên mobile (trái) và trên PC (phải)
Kết luận: chúng em chọn giải pháp xây dựng game trên đồ họa 2 chiều để
chiếm ít bộ nhớ của hệ thống và dễ dàng phát triển game trên các hệ máy khác Qua đó, đưa game đến với nhiều người dùng hơn.
2.2.4 Số lượng đối tượng chuyển động cùng lúc ít
Đặc điểm: game trên mobile hiện nay thường không có nhiều đối tượng thể
hiện chuyển động cùng lúc.
Phân tích
Trang 33Người chơi trên mobile tương tác với game bằng màn hình cảm ứng hoặc bằng bàn phím trên máy Thao tác của họ trên màn hình không thể quá nhanh Chính vì vậy, nhiều đối tượng thể hiện cùng lúc khiến việc điều khiển game phức tạp hơn.
Bên cạnh đó, màn hình trên các thiết bị mobile không lớn như trên PC nên
không thể có đủ không gian để thể hiện nhiều đối tượng cùng lúc, nếu có quá nhiềuđối tượng trên màn hình sẽ khiến game bị rối, gây khó khăn cho người dùng khithao tác với game
Hình 2-12-Game Command & Conquer 3: Tiberium Wars trên mobile (trái) và trên
PC (phải) với đối tượng đồ họa không quá nhiều
Tốc độ xử lý của mobile không cao, xử lý game sẽ chậm đi nếu phải xử lý thể hiện nhiều đối tượng trên màn hình cùng lúc Bộ nhớ hạn chế của mobile cũng là một vấn đề trở ngại trong việc nạp quá nhiều tài nguyên vào bộ nhớ và thể hiện
chúng lên màn hình
Kết luận: chính vì những lý do trên, số lượng đối tượng thể hiện trên màn
hình cũng như số lượng đối tượng chuyển động cùng lúc trên màn hình không được xây dựng nhiều Để giải quyết vấn đề đó, mỗi nhóm quân trên bản đồ chỉ được thể hiện bằng một quân tương ứng để đại diện Chỉ khi nào các đối tượng
Trang 34quân lính tương tác như khi tấn công, phòng thủ thì các quân này mới được thểhiện lên màn hình.
2.2.5 Các tài nguyên chuyển động animation được xây dựng sẵn
Đặc điểm: trong một game, chuyển động animation là điều không thể thiếu.
Điều này làm tăng tính hấp dẫn cho game Chính vì vậy, game trên mobile hầu hết đều sử dụng các chuyển động animation.
ra cho từng bộ phận của đối tượng
Với cách đầu tiên, các hình chuyển động được tách ra thành nhiều tập tin, mỗi tập tin lưu 1 khung hình trong chuyển động đó của đối tượng Khi cần thể hiện chuyển động cho đối tượng, ta cần phải nạp tất cả danh sách các hình chuyển động vào bộ nhớ và thể hiện lần lượt từng hình ảnh ra màn hình cho mỗi chuyển động Với các làm này, ta sẽ dễ dàng trong việc thay đổi hình chuyển động của đối tượng nào đó bằng cách thay đổi các hình cho từng khung hình của đối tượng đó Thậm
chí có thể thay đổi chỉ một khung hình cho chuyển động đó cũng khá dễ dàng Tuy
nhiên, số tập tin ta cần phải nạp vào bộ nhớ khá nhiều, điều này làm tốn dung lượng cũng như xử lý chậm vì việc đọc quá nhiều tập tin.
Trang 35Hình 2-13-Dãy chuyển động gồm nhiều hình riêng lẻ
Cách thứ 2 có thể được làm tương tự như cách thứ nhất Tuy nhiên, thay vì ta
nạp danh sách các hình cho 1 chuyển động lên thì ta chỉ nạp duy nhất một hình lưu đầy đủ các khung hình của chuyển động rồi khi vẽ ra ta tính vị trí từng khung hình
để vẽ ra cho hoàn thành chuyển động Cách này thông dụng trong các tài liệu về lập trình game vì tính đơn giản của nó Chỉ cần nạp duy nhất 1 tập tin là ta có thể xử lý chuyển động cho đối tượng Có thể nói, phần nào cách này cũng làm giảm một phần bộ nhớ Cách cài đặt cũng đơn giản Tuy nhiên, khuyết điểm ở đây là tất cả các khung hình đều phải được xử lý trước để tạo thành một tập tin duy nhất Bên
cạnh đó, khi thay đổi một khung hình nào đó, ta buộc phải làm lại toàn bộ tập tin
Hình 2-14-Dãy chuyển động trong một hình
Cách thứ 3 có thể coi là cách mở rộng thêm cho 2 cách đầu tiên Nếu như 2 cách đầu tiên thiên về việc lưu trữ, thể hiện các hình thì ở đây, cách này thiên về việc giảm không gian lưu trữ cho tài nguyên Thông thường, 1 đối tượng game có thể di chuyển 4 hướng hoặc 8 hướng, và các hướng này đối xứng với nhau Chính vì vậy, thay vì ta xây dựng dầy đủ các hình cho từng hướng thì ta chỉ cần xây dựng cho 2 hướng (trái và trên với đối tượng chỉ di chuyển theo 4 hướng) hoặc 4 hướng (trên, trái trên, trái, trái dưới với đối tượng di chuyển theo 8 hướng) nhờ đó ta tiết kiệm được một nửa không gian lưu trữ Tuy nhiên, ta phải lấy đối xứng hình đã nạp vào khi muốn hiển thị các hướng không có.
Cách cuối cùng thường không phù hợp với các game đồ họa 2 chiều vì thể hiện quá phức tạp, thời gian xử lý sẽ tốn kém hơn rất nhiều so với các cách trên Tuy nhiên, từ đó ta có thể phát sinh ra tổ hợp các loại chuyển động khác nhau dựa
trên hình ảnh từng bộ phận của đối tượng
Trang 36Kết luận: Nhằm tận dụng tối đa bộ nhớ mà vẫn thể hiện các chuyển động
animation một cách tốt nhất, chúng em sử dụng cách thứ 2 và 3 để lưu trữ và tạo các chuyển động animation cho game Cụ thể, mỗi chuyển động trong
game sẽ có 1 tập tin lưu các khung hình chuyển động đó theo một số huớng.Các hướng còn lại sẽ được thể hiện bằng cách lấy đối xứng dựa trên các hình
đã có
2.2.6 Địa hình của game được dựng sẵn
Đặc điểm: mỗi game khi xây dựng các đối tượng đồ họa đều gồm 2 nhóm
Màn hình mobile khá nhỏ, việc thể hiện các đối tượng đồ họa không được quá nhiều để tạo nên giao diện thoáng và dễ thao tác hơn với người dùng Nếu các
đối tượng của game có thể tương tác với cả các đối tượng khác trong game cũngnhư các đối tượng địa hình thì lối chơi của game sẽ trở nên phức tạp hơn và khóthao tác đối với các màn hình tương đối nhỏ của mobile
Sự tương tác với các đối tượng địa hình hầu hết là qua các hoạt động khaithác tài nguyên, xây dựng, chiến đấu Tuy nhiên, các tương tác này phần làm gametrở nên phức tạp phần không thuộc phần xử lý chính của game mà chủ yếu là cáchiệu ứng nên sự tương tác đó là không cần thiết :
Trang 37 Tương tác địa hình qua khai thác tài nguyên : tương tác với tài nguyên sẽ
khiến việc khai thác dài hơn, từ đó làm tăng thời lượng chơi game trong khi thời lượng này không đáng có vì nó không ảnh hưởng nhiều đến lối chơi của game Ta có thể thay thế nó bằng cách tăng một lượng tài nguyên nào đó vào game sau một khoảng thời gian, điều này sẽ làm đơn giản hơn và người chơi tập trung hơn vào lối chơi chính của game Game Heroes of Might and
Magic trên PC là một ví dụ Các tài nguyên trong game được tăng lên saumỗi một ngày và không thể hiện các thao tác khai thác trong game Thay vào
đó, người chơi sẽ tập trung hơn vào các lối chơi chính của game như chiếnđấu và thực hiện các nhiệm vụ của game
Tương tác địa hình qua xây dựng công trình, chiến đấu : đây chỉ là hiệu
ứng phụ và không ảnh hưởng đến lối chơi chính của game Hơn nữa, với
màn hình lớn như trên PC, ta có thể dễ dàng thấy rõ các hiệu ứng này, nhưng
với các màn hình nhỏ như trên mobile, các hiệu ứng này rất nhỏ và khó thấy Nhưng nếu cài đặt nghĩa là ta phải cập nhật hình ảnh cho cả địa hình và gây chậm cho các xử lý Ngoài ra, nạp các dữ liệu này lên cũng tốn thêm một phần không nhỏ bộ nhớ của máy.
Hình 2-15-Game Heroes of Might and Magic 3 với các nhóm quân chỉ được thể hiện
là một đối tượng trên màn hình
Kết luận: để làm giảm bộ nhớ của máy cần thiết khi chạy game cũng như
tăng tốc độ xử lý, chúng em xây dựng sẵn các địa hình từ bên ngoài Sau đó,
khi game chạy, các địa hình này sẽ được nạp vào bộ nhớ để hiển thị
Trang 38Hình 2-16-Một trong những địa hình được xây dựng sẵn trong game Heroes of Might
and Magic 3
2.2.7 Các màn hình game chia ra nhiều phần
Đặc điểm: các game thường có nhiều loại màn hình khác nhau để thể hiện
nhiều loại, nhóm hành động khác nhau.
Phân tích
Một game thông thường có thể có nhiều loại màn hình chính cho phép thực hiện các loại hành động khác nhau trong game Ví dụ như màn hình lưu game, nạp
game, tạo game mới, Khi xây dựng một game, tùy thuộc vào lối chơi của game
mà ta sẽ xây dựng game với các màn hình như thế nào
Với lối chơi dàn trận theo lượt, thông thường, ta có thể xây dựng 3 loại màn hình cho game là màn hình chiến đấu, màn hình thể hiện thế giới của game và màn hình xây dựng của game Cách xây dựng game này thường thích hợp với các game
có tiết tấu chơi chậm, người dùng có thể ngưng game bất cứ lúc nào một cách dễ dàng, không đòi hỏi phải tương tác quá nhiều và nhanh với game Ta có thể lấy các
game Heroes of Might and Magic và game Age of Wonder là một ví dụ
Trang 39Giao diện thế giới Giao diện chiến đấu
mà đề cao khả năng tư duy, tìm ra chiến lược hợp lý để hoàn thành vòng chơi Final
Fantasy, Grandia là ví dụ cụ thể nhất cho các game xây dựng theo thể loại này
Hình 2-18-Hai loại màn hình trong game phiêu lưu Final Fantasy 9 trên máy
PlayStation 1: màn hình chiến đấu (trái) và màn hình thế giới
Trang 40Tuy nhiên, bên cạnh đó cũng có một số game xây dựng chỉ trên một loại mànhình duy nhất Các game này hầu hết là các game phiêu lưu hành động góc nhìnngười thứ nhất hoặc thứ 3 hay các game dàn trận thời gian thực Các thể loại gamenày đòi hỏi người dùng hành động, tương tác trực tiếp với game theo thời gian thực.Loại xây dựng này phù hợp với các hệ máy có tốc độ xử lý tốt, sự tương tác giữangười dùng và game thuận tiện như game trên máy PC.
Kết luận: chính vì vậy, để xây dựng game trên mobile với cách chơi không
quá đơn giản, nhàm chán cũng như phù hợp với thiết bị và người dùng trên mobile, chúng em xây dựng game dàn trận theo lượt với 3 loại màn hình : màn hình chiến đấu, màn hình thể hiện thế giới của game và màn hình xây dựng công trình Với cách xây dựng này, game không đòi hỏi người dùng phải chơi liên tục, tốn quá nhiều thời gian mà có thể chơi bất cứ lúc nào họ có thời
gian Hơn nữa, với 3 loại màn hình, game sẽ không quá đơn giản như các
game hiện có trên mobile, điều này làm tăng độ khó cho game cũng như đòi hỏi người chơi phải suy nghĩ nhiều hơn Từ đó tạo sự mới mẻ và hứng thú nơi
người chơi