🌙
Code
Học thuật (OOP)

SWar

Một game bắn phi thuyền 2D viết bằng Python/Pygame, nơi mình nhập vai phi công chiến đấu với kẻ thù ngoài hành tinh. Đây là dự án nhóm nhưng gần như toàn bộ code do mình thực hiện.

Vai trò
Main Developer (99% code)
Thời gian
1 tháng
Nhóm
3 members (1 main coder, 2 media support)
SWar demo

Câu chuyện dự án

SWar ra đời khi nhóm mình muốn biến kiến thức OOP thành một sản phẩm game hoàn chỉnh. Mình là người đảm nhiệm hầu hết code: từ thiết kế kiến trúc, viết module (phi thuyền, đạn, bot, map, sound…) cho tới xử lý va chạm và hiệu ứng. Hai bạn trong nhóm hỗ trợ mình ở khâu tìm kiếm media (ảnh, âm thanh) và xây dựng kịch bản cho một map JSON. Kết quả là một game bắn phi thuyền vui nhộn, nhiều hiệu ứng và dễ mở rộng.

Tác động & Giá trị

Mình rèn được kỹ năng thiết kế hướng đối tượng, xử lý va chạm trong game và tổ chức module gọn gàng. Dự án cũng giúp nhóm có sản phẩm thực tế để áp dụng kiến thức OOP.

Thách thức

  • Thiết kế class hierarchy gọn gàng cho phi thuyền, đạn và boss.
  • Quản lý vòng đời đối tượng (xuất hiện, di chuyển, va chạm, biến mất).
  • Tạo chuyển động ngẫu nhiên cho boss và địch đặc biệt để tăng thử thách.
  • Giữ cho cấu trúc tài nguyên (ảnh, âm thanh, map JSON) rõ ràng và dễ thêm mới.

Giải pháp

  • Áp dụng nguyên lý SOLID để tách lớp và giảm phụ thuộc.
  • Quản lý dữ liệu bằng JSON, dễ thêm map hoặc đối tượng mới.
  • Tổ chức module riêng cho player, bot, bullet, map, frame, sound và game loop.
  • Bổ sung hiệu ứng hình ảnh, âm thanh để tăng cảm giác chân thực.

Kết quả đạt được

  • Hoàn thành đầy đủ yêu cầu môn học.
  • Có một game 2D hoàn chỉnh với nhiều màn chơi, địch và vật phẩm.
  • Codebase dễ mở rộng, chỉ cần thêm dữ liệu JSON là có nội dung mới.

Công nghệ sử dụng

Python
Pygame
JSON

Thông tin dự án

Trạng thái
Hoàn thành
Thời gian
1 tháng
Nhóm
3 members (1 main coder, 2 media support)
Vai trò
Main Developer (99% code)

Khám phá thêm dự án khác