Tuy nhiên, mục tiêu của em khi thực hiện đề tài này không phải là nghiên cứu về game và thị trường game mà em chỉ đi sâu nghiên cứu về mảng game nhỏ, dành cho đối tượng người chơi dùng g
Trang 1Đại Học Quốc Gia TP.HCM
Trường Đại Học Công Nghệ Thông Tin
BÀI THU HOẠCH MÔN PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC
Trang 2LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời chân thành cảm ơn đến Ban Chủ nhiệm trường Đại học công nghệ thông tin TP HCM đã tạo điều kiện cho em được tiếp cận với bộ môn Phương pháp nghiên cứu khoa học Bộ môn này đã giúp em có những phương pháp làm việc khoa học để hoàn thành tốt bài tiểu luận này
Em xin cảm ơn thầy GS.TSKH Hoàng Kiếm đã tận tình truyền đạt kiến thức cho chúng
em cũng những gì thầy đã giúp đỡ, hướng dẫn để em thực hiện bài tiểu luận
Em cũng xin gửi lời cảm ơn sâu sắc đến quý thầy cô trong Khoa Công nghệ Thông tin cùng các bạn bè thân hữu đã nhiệt tình đóng góp ý kiến, cũng như động viên để em hoàn thiện hơn đề tài của mình
Mặc dù đã rất cố gắng nhưng đề tài khó tránh khỏi những thiếu sót và sai lầm, em mong thầy cô và bạn bè cho ý kiến để đề tài ngày càng hoàn thiện hơn
Một lần nữa,em xin chân thành cảm ơn!
Tp HCM, tháng 4 năm 2012
Bùi Chí Cường CH1101007
Trang 3MỤC LỤC
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC HÌNH VẼ
CHƯƠNG I - MỞ ĐẦU 5
1.1 Giới thiệu chung 5
1.2 Hoạt động nghiên cứu 6
CHƯƠNG II - CÁC PHƯƠNG PHÁP NGHIÊN CỨU 7
2.1 Nguyên tắc 1 - Nguyên tắc phân nhỏ 7
2.2 Nguyên tắc 2 - Nguyên tắc tách khỏi 7
2.3 Nguyên tắc 3 - Nguyên tắc xếp lồng 7
2.4 Nguyên tắc 4 - Nguyên tắc phẩm chất cục bộ 7
2.5 Nguyên tắc 5 - Nguyên tắc kết hợp 7
2.6 Nguyên tắc 6 - Nguyên tắc vạn năng 8
2.7 Nguyên tắc 7 - Nguyên tắc thực hiện sơ bộ 8
2.8 Nguyên tắc 8 - Nguyên tắc thay đổi màu sắc 8
CHƯƠNG III - PHÂN TÍCH VÀ THIẾT KẾ GAME BẮN XE TĂNG VỚI FLASH 9
3.1 Áp dụng nguyên tắc phân nhỏ 9
3.2 Áp dụng nguyên tắc tách khỏi 12
3.3 Áp dụng nguyên tắc xếp lồng 14
3.4 Áp dụng nguyên tắc phẩm chất cục bộ 15
3.5 Áp dụng nguyên tắc kết hợp 15
3.6 Áp dụng nguyên tắc vạn năng 16
3.7 Áp dụng nguyên tắc quan hệ phản hồi 18
3.8 Áp dụng nguyên tắc thay đổi màu sắc 21
CHƯƠNG IV - KẾT LUẬN 23
4.1 Tóm tắt các kết quả đạt được 23
4.2 Hướng phát triển 23
4.3 Tài liệu tham khảo 23
Trang 4DANH MỤC CÁC HÌNH VẼ
Hình 1 - Đối tượng Tank cấu thành từ các bộ phận rời rạc 9
Hình 2 - Bản đồ trong game 10
Hình 3 - Các loại tường 11
Hình 4 - Cấu trúc tường gạch 12
Hình 5 - Cấu trúc tường đá, thép 12
Hình 6 - Cấu trúc file Excel cho Map 13
Hình 7 - Cơ chế thêm hình của Flash 14
Hình 8 - Đối tượng thêm sau chồng lên đối tượng thêm trước nó 14
Hình 9 - Độc lập giữa code và giao diện 15
Hình 10 - Một Map hoàn chỉnh trong Game 16
Hình 11 - Độ lệch tâm của đạn 17
Hình 12 - Tương tác giữa các đối tượng 19
Hình 13 - Hệ thống chuyển động 20
Hình 14 - Xe tăng người chơi 22
Hình 15 - Xe tăng địch 22
Trang 51 CHƯƠNG I - MỞ ĐẦU
1.1 Giới thiệu chung
Trong cuộc sống số ngày nay, game được xem như là một công cụ giải trí hiệu quả Những máy chơi game thế hệ mới ra đời, công nghệ đồ họa không ngừng phát triển, các thiết bị giải trí cầm tay ngày càng mạnh và đa năng phần nào đã giúp công nghệ game phát triển Những game lớn có mức đầu tư hàng trăm đô la, nhiều thể loại game mới ra đời, game trực tuyến thu hút sự quan tâm của số lượng lớn người chơi ở nhiều
độ tuổi, ngành nghề Tất cả như minh chứng cho thấy nhu cầu về game vẫn còn rất dồi dào và thị trường game vẫn còn là mảnh đất màu mỡ cho các nhà sản xuất game
Tuy nhiên, mục tiêu của em khi thực hiện đề tài này không phải là nghiên cứu về game và thị trường game mà em chỉ đi sâu nghiên cứu về mảng game nhỏ, dành cho đối tượng người chơi dùng game để giải trí đích thật, những người chỉ có những khoản thời gian rảnh rỗi ngắn ngủi để giải trí, những người mong muốn có những game nho nhỏ, vui tươi và không quá phức tạp Và game xây dựng trên nền tảng Flash dường là một lựa chọn không tồi
Có rất nhiều thể loại game có thể lựa chọn và phát triển : hành động, nhập vai, đối kháng, mô phỏng, thể thao, chiến thuật Tuy nhiên, với nguồn tài chính và nhân lực ít
ỏi cùng với mục tiêu của đề tài, nhóm em quyết đinh sẽ lựa chọn thể loại Game mini
sẽ là thể loại game được lựa chọn và phát triển
Tuy nhiên, trong thể loại game mini có rất nhiều tựa game hay, lối chơi cũng rất đa dạng Vậy, một câu hỏi nữa đặt ra là nhóm sẽ lựa chọn xây dựng game theo một tựa
game nào đây? Sau khi đã xem xét đã quyết định xây dựng game theo tựa game bắn xe tăng mà nổi tiếng nhất là tựa game Battle City được xây dựng trên hệ máy NEC (máy
bỏ băng) Tuy nhiên, không phải ngẫu nhiên mà em chọn thể loại game này mà em thấy nó thỏa mãn được một số tiêu chí sau:
Trang 6 Game 2D : để phù hợp với môi trường phát triển là game Flash, xây dựng không quá phức tạp
Nhẹ : Game thành phẩm có dung lượng nhỏ , tốt nhất là dưới 10Mb
Có thể chơi hai người : Chơi chung với ai đó luôn tạo cảm giác vui vẻ hơn
là chơi một mình
Nội dung hấp dẫn : Cuốn hút, tạo nhiều cảm giác cho người chơi
Có tính thực dụng : Có thể chơi được, làm xong có thể upload cho mọi người download, tặng bạn bè
AI không quá khó : viết AI là một công việc không phải dễ, nếu làm một game có sự tham gia của máy mà quá phức tạp, việc viết một AI chấp nhận được quả là không phải dễ, nhiều lúc ảnh hưởng trực tiếp đến game đang xây dựng, AI tồi có thể làm game phá sản
Đồ họa đơn giản và sinh động : Cũng như vấn đề AI, không phải ai cũng có năng khiếu vẽ, việc tập luyện để vẽ thành thạo không phải ngày một ngày hai và vấn đề thẩm mỹ không phải tự dưng mà có
Với những lý do ở trên, có vẻ như thể loại game bắn xe tăng sẽ là lựa chọn tốt cho
em
1.2 Hoạt động nghiên cứu
- Áp dụng các nguyên tắc cơ bản trong bộ môn Phương pháp nghiên cứu khoa học để phân tích những nguyên tắc sáng tạo đã được áp dụng để xây dựng đề tài luận văn “Tìm hiểu và xây dựng Game với Flash” của mình
Trang 72 CHƯƠNG II - CÁC PHƯƠNG PHÁP NGHIÊN CỨU
Áp dụng các nguyên tắc trong phương pháp nghiên cứu khoa học để giải quyết vấn đề:
2.1 Nguyên tắc 1 - Nguyên tắc phân nhỏ
Chia đối tượng thành các phần độc lập
Làm đối tượng trở nên tháo lắp được
Tăng mức độ phân nhỏ của đối tượng
2.2 Nguyên tắc 2 - Nguyên tắc tách khỏi
Tách phần gây phiền phức ra khỏi đối tượng hoặc ngược lại Tách lấy phần cần thiết
Các phần khác nhau của đối tượng phải có các chức năng khác nhau
Mỗi phần của đối tượng phải có các chất năng khác nhau
Trang 82.6 Nguyên tắc 6 - Nguyên tắc vạn năng
Đối tượng thực hiện một số chức năng khác nhau do đó không cần sự tham gia của đối tượng khác
2.7 Nguyên tắc 7 - Nguyên tắc thực hiện sơ bộ
Thực hiện trước sự thay đổi, tác động cần có, hoàn toàn hoặc từng phần, đối tượng với đối tượng
Cần sắp xếp các đối tượng trước, sao cho chúng có thể hoạt động từ vị trí thuận lợi nhất và không mất thời gian dịch chuyển
2.8 Nguyên tắc 8 - Nguyên tắc thay đổi màu sắc
Thay đổi màu sắc của đối tượng hay môi trường bên ngoài
Thay đổi độ trong suốt của đối tượng hay môi trường bên ngoài
Để có thể quan sát được những đối tượng hoặc những quá trình, sử dụng các chất phụ gia màu, huỳnh quang
Nếu các chất phụ gia đó đã được sử dụng, dùng các nguyên tử đánh dấu
Sử dụng các hình vẽ, ký hiệu thích hợp
Trang 93 CHƯƠNG III - PHÂN TÍCH VÀ THIẾT KẾ GAME BẮN
XE TĂNG VỚI FLASH
3.1 Áp dụng nguyên tắc phân nhỏ
Áp dụng nguyên tắc phân nhỏ thiết kế các đối tượng :
Đối tượng xe tank :
Trong Flash, ta có chế độ kết hợp nhiều MovieClip để tạo thành 1 MovieClip mới Điều này rất có ý nghĩa trong việc thiết kế các đối tượng phức tạp, có nhiều chi tiết Trong trường hợp này, ta sẽ phân ra thiết kế các “đối tượng con” của đối tượng đó sau đó ráp lại để thành 1 đối tượng hoàn chỉnh Mặt khác, cơ chế này còn cho phép ta chỉnh sửa dễ dàng các chi tiết khi cần thiết và có thể kế thừa để thiết kế các đối tượng khác
Hình 1 - Đối tượng Tank cấu thành từ các bộ phận rời rạc
Bản đồ và môi trường trong game :
Bản đồ game được chia thành nhiều ô nhỏ và ghép lại :
Trang 10Hình 2 - Bản đồ trong game
Ứng với mỗi ô trên bản đồ ta sẽ có nhiều lớp đối tượng khác nhau, mà lớp dưới
cùng sẽ là môi trường cho game
Các loại môi trường trong game bao gồm:
o Cỏ đồng bằng
o Cát sa mạc
Trang 13Hình 6 - Cấu trúc file Excel cho Map
Tên map được đặt như sau : mapX.xml với X là một số nguyên không âm được
đánh tăng dần tương ứng với level mà ta chơi
Dưới đây là ví dụ cấu trúc một Map
<?xml version="1.0" encoding="utf-8" ?>
< maps >
< map x ="0" y ="0" dirX ="15" dirY ="11" style ="1" type ="1" model ="0" evir ="1"/>
< map x ="1" y ="1" dirX ="4" dirY ="0" style ="2" type ="1" model ="0" evir ="1" />
< map x ="4" y ="6" dirX ="1" dirY ="0" style ="2" type ="1" model ="0" evir ="1" />
< map x ="4" y ="7" dirX ="1" dirY ="0" style ="2" type ="1" model ="0" evir ="1" />
< map x ="10" y ="6" dirX ="1" dirY ="0" style ="2" type ="1" model ="0" evir ="1" />
< map x ="10" y ="7" dirX ="1" dirY ="0" style ="2" type ="1" model ="0" evir ="1" />
< map x ="4" y ="10" dirX ="1" dirY ="0" style ="2" type ="1" model ="0" evir ="1" />
< map x ="10" y ="10" dirX ="1" dirY ="0" style ="2" type ="1" model ="0" evir ="1"/>
< map x ="7" y ="6" dirX ="0" dirY ="2" style ="2" type ="1" model ="0" evir ="1" />
< map x ="8" y ="6" dirX ="0" dirY ="2" style ="2" type ="1" model ="0" evir ="1" />
< map x ="6" y ="5" dirX ="0" dirY ="0" style ="1" type ="7" model ="0" evir ="1" />
< map x ="9" y ="5" dirX ="0" dirY ="0" style ="1" type ="7" model ="0" evir ="1" />
< border left ="-1" top ="-1" right ="16" bottom ="12" />
< wallnerve x ="7" y ="10" style ="2" type ="1" model ="2" evir ="1" />
< wallnerve x ="8" y ="10" style ="2" type ="1" model ="2" evir ="1" />
< wallnerve x ="7" y ="11" style ="2" type ="1" model ="3" evir ="1" />
< wallnerve x ="8" y ="11" style ="2" type ="1" model ="4" evir ="1" />
< nerve x ="7.5" y ="11" evir ="1" />
< behind x ="6" y ="11" style ="1" type ="1" model ="0" evir ="1" />
< behind x ="9" y ="11" style ="1" type ="2" model ="0" evir ="1" />
< behind x ="0" y ="0" style ="2" type ="3" model ="0" evir ="1" />
Trang 14< behind x ="5" y ="0" style ="2" type ="3" model ="0" evir ="1" />
< behind x ="10" y ="0" style ="2" type ="3" model ="0" evir ="1" />
< behind x ="15" y ="0" style ="2" type ="3" model ="0" evir ="1" />
</ maps >
Bên cạnh đó các file âm thanh trong game cũng được tách khỏi chương trình được lưu trữ ở bên ngoài, giảm đáng kể dung lượng của 1 game Flash và có thể thay đổi âm thanh khác nhau một cách tùy thích
3.3 Áp dụng nguyên tắc xếp lồng
Các đối tượng khi add vào được hiểu như add vào một mảng chiều (như một mảng một chiều quản lý các đối tượng hiển thị) Vì vậy, những đối tượng được thêm vào sau được để ở phía trên (nằm chồng lên) các đối tượng được thêm trước nó
Hình 7 - Cơ chế thêm hình của Flash
Trang 153.4 Áp dụng nguyên tắc phẩm chất cục bộ
Thiết kế các đối tượng phải độc lập với nhau Sự thay đổi của đối tượng này phải không được ảnh hưởng đến các đối tượng khác Ví dụ: Khi ta thêm loại mới cho đối tượng xe tăng người chơi thì không ảnh hưởng đến xe tăng địch, thêm một loại môi trường mới hay một loại tường mới nào đó,
Việc độc lập các đối trong thiết kế sẽ giúp cho ta dễ dàng bảo trì cũng như năng cấp về sau Hoặc sau này nếu có nhu cầu mở rộng thêm ta sẽ tích hợp thêm những đối tượng khác Bên cạnh việc độc lập các đối tượng, việc cài đặt code trong từng đối tượng cũng phải không được đồng nhất, phải tách rời phần hiển thị ra khỏi phần coding Trong Action Script 3 cho ta phần code ở 1 file và đối tượng MovieClip ở 1 file khác rất tiện cho chúng ta bảo trì hay
Trang 16Hình 10 - Một Map hoàn chỉnh trong Game
3.6 Áp dụng nguyên tắc vạn năng
Trong game, xe tăng có thể chuyển đổi các loại đạn qua lại và sẽ có thêm loại đạn mới nếu ăn được nó trong game, em xây dựng 8 loại đạn dược với tính năng, công dụng và sức công phá khác nhau Điều này hứa hẹn làm game thêm đa dạng và hấp dẫn hơn
Các thông số chính của đạn :
Damage_min : Sức sát thương tối thiểu
Damage_max : Sức sát thương lớn nhất
D_Walls : Số lớp gạch công phá
Trang 17Tốc độ bắn
Damage Min
Damage Max
Trang 186 Gun 6 - - - 6 1
Bảng các loại súng
Súng cơ bản xe tăng qua các Level
Xe tăng Level Loại súng cơ bản
Bảng loại súng cơ bản của các loại xe tăng
3.7 Áp dụng nguyên tắc quan hệ phản hồi
Đối với các game nói chung và các game nhỏ nói riêng, va chạm vật lý giữa các đối tượng được xem là vấn đề then chốt đối với việc xây dựng game Kiểm tra sự va chạm giữa các đối tượng cùng với xây dựng trạng thái của chúng là hai vấn đề chính khi xây dựng thể loại game này
Trong game bắn xe tăng thì có sự va chạm giữa các đối tượng
Trang 19Hình 12 - Tương tác giữa các đối tượng
Các di chuyển vật lý trong game được đặt dưới sự quản lý của hệ thống chuyển động Hệ thống này sẽ đảm bảo cho sự chuyển động trở nên thực hơn Hệ thống này gồm các thành phần :
o Tốc độ tối đa : Tốc độ tối đa của đối tượng (maxspeed)
o Tăng tốc : Sự gia tăng tốc độ của đối tượng qua từng frame (tangtoc)
o Giảm tốc : Sự giảm tốc của môi trường di chuyển qua từng frame (giamtoc)
o Tốc độ tối đa trên môi trường : Độ ảnh hưởng của môi trường đến tốc độ tối
o Đối tượng di chuyển tăng tốc từ từ đến vận tốc tối đa
o Giảm tốc từ từ khi dừng lại
o Ảnh hưởng của môi trường di chuyển sẽ được thể hiện