Bài tập lớn Python phát triển game GHOSTBUSTERS sẽ giúp cho sinh viên có thể tham khảo cách để phát triển các tính năng như nhân vật, map, vật phẩm,... trong game GHOSTBUSTERS nói rieng và game nói chung
Trang 1Lời nói đầu
Python là ngôn ngữ lập trình phổ biến và đa dạng, nó ứng dụng rất nhiều trong thời buổi công nghệ phát triển ngày nay, trong đó có ngành phát triển game Đây là thể loại game đa dạng và phổ biến với sự phát triển và kết hợp giữa ngôn ngữ lập trình mạnh mẽ của python và các thư viện đa dạng như Pygame, chúng em đã phát triển từ mã nguồn gốc
có sẵn để tạo lên một trò chơi hoàn chỉnh và đặc sắc hơn Do đây mới chỉ là thành quả bọn
em nghiên cứu, hợp tác và phát triển nên còn rất nhiều thiếu sót cũng như nhiều thứ không hiểu phải nhờ cũng như tham khảo cách làm từ nhiều nguồn nên còn nhiều hạn chế, mong thầy thông cảm
Trang 2Mục lục:
I Giới thiệu……….4
II Phương pháp nghiên cứu và cải tiến ……… 4
III Cơ chế hoạt động và cách chơi………7
IV Kết luận……… 14
V Tài liệu tham khảo……….15
VI Phân công nhiệm vụ ……….15
Trang 3I Giới thiệu:
- GhostButterV1 là một trò chơi điện tử hành động với cốt truyện hấp dẫn, đồ họa 2D đẹp mắt và lối chơi đầy thử thách Trong trò chơi này, người chơi sẽ nhập vai 1 thành viên trong nhóm Ghostbusters – những người diệt quỷ đang trải qua những cuộc phiêu lưu đầy mạo hiểm để tiêu diệt những con ma, quỷ dữ và hồn ma đang hoành hành khắp nơi
- Với đội ngũ Ghostbusters chuyên nghiệp và trang thiết bị hiện đại, người chơi sẽ phải khám phá, điều tra và chống lại các hoạt động siêu nhiên đáng sợ trong những địa điểm khác nhau Họ sử dụng những vũ khí độc đáo và các kỹ năng đặc biệt, người chơi sẽ phải đối mặt với những thách thức và giải quyết những bí ẩn hết sức nguy hiểm
- Ngoài cốt truyện chính, GhostBusterv1 cũng có nhiều sự lựa chọn nhân vật đa dạng cho phép người chơi thỏa sức khám phá và tận hưởng trải nghiệm chơi game Đồ họa được thiết kế đơn giản nhưng đẹp mắt và ấn tượng, đặc sắc khiên người chơi gần như sống trong thế giới game đầy cảm xúc
- GhostBustersv1 là 1 tựa game hoàn hảo cho những người yêu thích thể loại game hành động, đem lại trải nghiệm đáng nhớ và căng thẳng đến từng giây phút chơi game Sẵn sàng đối đầu với những hồn ma tội ác và trở thành người hung tiêu diệt
ma quỷ trong thế giới của GhostBustersV1
II Phương pháp nghiên cứu và cải tiến:
a Phương pháp nghiên cứu
- Với mã nguồn được lấy từ Github, chúng em nghiên cứu và phát triển, tạo ra con game hoàn chỉnh hơn và hấp dẫn hơn
- Từ mã nguồn chính, chúng em them vào một số nhân vật cũng như hiệu ứng kỹ năng, them vào các màn chơi cũng như các hoạt động, cách di chuyển của nhân vật cũng như của các hồn ma trong trò chơi
- Mã nguồn mới được phát triển hầu hết dựa vào mã nguồn chính, chủ yếu xoay quanh pygame( thư viện của Python dùng để phát triển game ), sử dụng các công cụ, chức năng của pygame để tạo đồ họa, âm thanh, xử lý dữ liệu người dùng, tương tác với các thành phần khác trong trò chơi như cửa sổ, chuột, các phím và hệ thống vật lý
Trang 4- Về phần dữ liệu chúng em sử dụng thư viện JSON được tích hợp sẵn trong thư viện chuẩn của Python cho phép các ứng dụng python có thể trao đổi dữ liệu với các ứng dụng khác, đọc và ghi dữ liệu dưới định dạng JSON
- Về cấu hình, sử dụng module ConfigParser xử lý phân cấp, chia nhóm và truy cập các giá trị cấu hình, giúp tách biệt giữa dữ liệu cấu hình và mã nguồn của chương trình game
- Pickle: serialize và deserialize, chuyển đổi các đối tượng thành dạng dữ liệu nhị phân có thể lưu trữ trên đĩa hoặc truyền qua mạng và sau đó đọc lại và chuyển đổi trở lại thành các đối tượng
- Pygame.init(): khởi tạo môi trường pygame và chuẩn bị các module cần thiết để sử dụng trong pygame
- Pygmae.display.set_model(): sử dụng để tạo một cửa sổ đồ họa cho trò chơi Cấu hình các thông số kích thước, độ phân giải và chế độ màn hình
- Pygame.display.update(): sử dụng để cập nhật nội dung của cửa sổ đồ họa hiện đồ họa hiển thị lên màn hình
- Pygame.event.get(): sử dụng xử lý sự kiện, bàn phím, chuột và cửa sổ trả về danh sách các đối tượng sự kiện cho phép kiểm tra và xử lý các sự kiện trong trò chơi
- Pygame.draw: cung cấp các hàm để vẽ hình học đơn giản, vẽ các đối tượng đồ họa trên cửa sổ pygame
- Pygame.image: cung cấp hàm xử lý ảnh, vẽ hình ảnh lên cửa sổ pygame,
- Pygame.sprite: cung cấp cơ chế để quản lý vẽ các đối tượng đồ họa động các đối tượng được vẽ lên màn hình pygame và có thể được di chuyển, xử lý va chạm,
- Pygame.time: cung cấp các hàm để xử lý thời gian trong trò chơi
- Pygame.font: cung cấp hàm để làm việc với phông chữ
- Về phần nhân vật, một số nhân vật có sẵn trong mã nguồn gốc của chương trình, cùng với các hiệu ứng kỹ năng, cách di chuyển, vũ khí là do mã nguồn gốc cung cấp, ngoài ra, bọn em có tự tay thiết kế them một số nhân vật với các kỹ năng cũng như cách di chuyển, chuyển động khác để tăng them phần trải nghiệm cho trò chơi
- Sử dụng hàm reset_level(level): để đặt lại cấp độ game, xóa các đối tượng trong
game, tải lại dữ liệu của cấp độ và tạo lại thế giới của cấp độ trong game
- Sử dụng hàm get_info_plater(type_): để lấy thông tin nhân vật trong game trên loại type_ của nhân vật đó như các tệp cấu hình được lưu trữ, đối tượng đọc cấu
Trang 5hình, nơi lưu trữ thông tin nhân vật, các thuộc tính của nhân vật, hình ảnh, kỹ năng của nhân vật,…
- Sử dụng hàm reset_player(): dùng để thiết lập lại trạng thái của nhân vật trong
game bao gồm các cập nhật thông tin của nhân vật từ tệp cấu hình và tạo lại đối tượng nhân vật từ lớp tương ứng, cũng như khởi tạo lại các biến liên quan đến trạng thái di chuyển của nhân vật
- Sử dụng hàm load_data_continue_pre_game(): dùng để lưu trữ dữ liệu trạng thái
của trò chơi từ tệp tin lưu trữ, đồng thời cập nhật lại thông tin nhân vật trong game
như level, health, grenades, scoures,
- Sử dụng hàm draw_image_skill: để tạo hình ảnh kỹ năng và thời gian hồi chiêu
của các kỹ năng của từng nhân vật trong trò chơi sử dụng một số hàm và lớp có sẵn
trong pygame được sử dụng như pygame.draw.rect(), pygame.sprite.Group(),
pygame.event.get(),… Để duyệt những sự kiện, tạo hình trên bề mặt trò chơi, …
- Giao diện đồ họa 2D hầu như giữ nguyên so với mã nguồn gốc, chúng em them một
số màn chơi cũng như các tính năng qua màn, hi sinh và tính điểm, sắp xếp lại một
số bố cục không hợp lý ở mã nguồn gốc cũng như tăng tính hài hòa về màu sắc, âm thanh, tạo cho người chơi có thể hòa nhập vào game một cách dễ dàng hơn
- Tất cả những gì mà chúng em thêm vào so với mã nguồn gốc đều có sự trao đổi và nhất trí của tất cả các thành viên trong nhóm, mặc dù nhiều chỗ chúng em chưa hiểu
và cũng chưa thể chữa lỗi nhưng chúng em đã biết cách tạo nhân vật cũng như một giao diện đồ họa đơn giản
b Các cải tiến đã thực hiện
Game ban đầu:
Không có thống kê điểm người chơi
Không thể tạm dừng khi bắt đầu
Không có giao diện chọn nhân vật
Không thể lưu game và tiếp tục chơi
Màn hình chờ không có thao tác sử dụng nhân vật
Trang 6 Đã được cải tiến
- Cách chơi:
Game ban đầu:
Chỉ có 1 nhân vật (Snow)
Nhân vật chỉ tấn công được bên trái
Không có thời gian chơi
Không có điểm vòng chơi
Không thống kê lần chết
- Màn chơi: Chỉ có 1 giao diện màn chơi
Trang 7III Cơ chế hoạt động, cách chơi
- Mô tả lại về game: Game GhostBustersV1 là thể loại game hành động nhập vai, người chơi sẽ nhập vai vào 1 trong những thành viên của quân đoàn GhostBuster để tiến hành cuộc phiêu lưu diệt quỷ của mình của mình Trong chuyển phiêu lưu săn quỷ, chúng ta sẽ gặp những con quỷ và nhiệm vụ phải tiêu diệt chúng mới được tiếp tục cuộc hành trình
- Giao diện bắt đầu trò chơi:
- Từ giao diện chính của trò chơi, chúng ta có 3 phần: continue, play, scoreboard, controls, exit
Continue: tiếp tục khi người chơi dừng trò chơi
Play: bắt đầu trò chơi mới:
Chọn nhân vật: Mỗi nhân vật, có các thuộc tính, vũ khí, chiêu thức riêng, người chơi
có thể xem được sức tấn công, cách di chuyển, cách dùng chiêu thức trước khi chọn chúng ta có 5 nhân vật: Snow, Ignis, warrior, Knight, Archer
Snow:
Trang 8 Ignis:
Warrior:
Trang 9 Knight:
Archer:
Trang 10 Sau khi lựa chọn được nhân vật, người chơi ấn Select để bắt đầu:
Màn hình bắt đầu:
Trang 11 Trên màn hình có hiện lên số mạng chết, cấp độ(màn), điểm số đạt được, số mạng còn lại, kỹ năng
Số mạng chết:
Cấp độ:
Số điểm đạt được:
Thời gian chơi:
Kỹ năng nhân vật:
+ Snow:
+ Ignis:
+ Warrior: 2 kỹ năng
+ Knight:
+ Archer:
Các hồn ma:
Các viên đá quý:
Các bình thuốc :
Và các chướng ngại vật:
Trang 12 Người chơi sử dụng nhân vật đã chọn để đi tiêu diệt những hồn ma cùng với việc thu thập đá quý để nâng cao điểm số của mình, trò chơi có rất nhiều màn chơi, người chơi tiêu diệt hết hồn ma để qua màn, tạo cho người chơi 1 cuộc phiêu lưu gay cấn
và cam go
Scorebroad ( điểm số và xếp hạng ): tại đây, người chơi có thể xem điểm số và xếp hạng của mình sau mỗi lượt chơi
Controls ( hướng dẫn cách chơi ):
Trang 13- Người chơi sử dụng các phím lên xuống, sang trái sang phải để điều khiển nhân vật của mình, sử dụng phím Space để sử dụng kỹ năng, sử dụng phím Q để dừng trò chơi và trở về màn hình chính
Cuối cùng là exit: khi muốn thoát trò chơi, người chơi chỉ cần về màn hình chính và
ấn vào nút exit để thoát trò chơi
IV Kết luận:
GhostButtersV1 là một tựa game phiêu lưu mạo hiệm được phát triền bằng ngôn ngữ lập trình Python, ngôn ngữ lập trình phổ biến và vô cùng đa dạng
- Nội dung hấp dẫn : Game có nội dung và cốt truyện cùng với mục tiêu rõ rang và
có thử thách nhất định cho người chơi
- Tính đa dạng và phong phú: Game có nhiều tính năng cũng như lựa chọn nhân vật
đa dạng với nhiều ohong cách chơi giúp người chơi có thể trải nghiệm
- Đồ họa và âm thanh hấp dẫn: với đồ họa 2D đẹp mắt cùng với âm thanh bắt tai tạo
sự hài hòa cho trò chơi
Trang 14- Trò chơi có phần tính điểm cũng như xếp hạng sau mỗi lần chơi tạo sự thử thách lớn cho người trải nghiệm