1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án liên ngành đề tài lập trình game 2d bắn súng bằng godot

75 7 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Lập Trình Game 2D Bắn Súng Bằng Godot
Tác giả Group 2
Người hướng dẫn PhD. Vũ Đức Minh
Trường học Trường Đại học Phenikaa
Chuyên ngành Công nghệ Thông tin
Thể loại Đồ Án Liên Ngành
Định dạng
Số trang 75
Dung lượng 7,86 MB

Cấu trúc

  • CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI (13)
    • I.1. Lý do chọn đề tài (14)
    • I.2. Mục tiêu đề tài (15)
    • I.3. Giới hạn và phạm vi đề tài (16)
    • I.4. Kết quả dự kiến đạt được (16)
    • I.5. Phương pháp tiếp cận (16)
  • CHƯƠNG II: PHÂN TÍCH YÊU CẦU (13)
    • II.1. Yêu cầu về kiến thức (17)
      • II.1.1. Quy trình xây dựng Game (17)
      • II.1.2. Kiến thức về Godot (19)
        • II.1.2.1 Đối tượng tham gia hệ thống (19)
        • II.1.2.2 Vì sao là Godot ? (20)
        • II.1.2.3 Tổng quan về các thành phần trong Godot (25)
    • II.2. Yêu cầu về kĩ thuật (37)
    • II.3. Yêu cầu về tài nguyên (37)
    • II.4. Yêu cầu về nhân sự (38)
    • II.5. Yêu cầu về đồ họa, âm thanh (39)
    • II.6. Yêu cầu về hiệu suất (39)
      • II.6.1 Các nguyên tắc thiết kế game nhằm đảm bảo hiệu suất (39)
  • CHƯƠNG III: THỰC HIỆN THIẾT KẾ (13)
    • III.1. Phân tích đề tài (40)
      • III.1.1 Khái niệm game Side Scroller (40)
      • III.1.2 Cách chơi (42)
    • III.2. Xác định yêu cầu trò chơi (42)
      • III.2.1 Giao tiếp hệ thống (42)
      • III.2.2 Giao tiếp về điều khiển (0)
      • III.2.3 Giao tiếp về giao diện (43)
    • III.3. Kịch bản trò chơi (cốt truyện) (43)
    • III.4. Sơ đồ quan hệ giữa các lớp (44)
    • III.5. Thiết kế đặc tả chức năng (45)
      • III.5.1. Biểu đồ Use-case (45)
        • III.5.1.1 Biểu đồ Use-case tổng quát (0)
        • III.5.1.2 Đặc tả Use-case (0)
        • III.5.1.2. a Đặc tả Use-case “Play Game” (46)
        • III.5.1.2. b Đặc tả Use-case “Help” (47)
        • III.5.1.2. c Đặc tả Use-case “Exit” (47)
    • III.6. Xây dựng Game (48)
      • III.6.1. Thiết kế đồ họa (48)
      • III.6.2. Thiết kế nhân vật, quái (49)
      • III.6.3. Thiết kế gameplay mechanic (49)
      • III.6.4. Thiết kế cấu trúc dữ liệu (52)
      • III.6.5. Thiết kế mô hình design pattern cho code flow (53)
        • III.6.5.1. Mô hình ECS (53)
      • III.6.6. Thiết kế Procedural Dungeon Generator (54)
        • III.6.6.1 Ý tưởng (54)
        • III.6.6.2. Các bước tạo Dungeon (54)
      • III.6.7. Thiết kế UI/UX (55)
  • CHƯƠNG IV: PHÁT TRIỂN (13)
    • IV.1. Xác Định Công Nghệ và Ngôn Ngữ Lập Trình (60)
    • IV.2. Xây Dựng Cơ Sở Hạ Tầng của Game (60)
    • IV.3. Phát Triển Gameplay và Tính Năng Tương Tác (60)
    • IV.4. Tạo Đồ Họa và Âm Thanh (60)
    • IV.5. Kiểm Thử và Tối Ưu Hóa (60)
  • CHƯƠNG V: KIỂM THỬ VÀ SỬA CHỮA (13)
    • V.1. Xác định các chức năng cần kiểm thử bao gồm (61)
      • V.1.1. Yêu cầu chức năng (61)
      • V.1.1. a Đối với người chơi (61)
      • V.1.1. b.Đối với quái (63)
      • V.1.1. c.Đối với UI (65)
      • V.1.1. d.Kiểm thử đối với thuật toán (67)
      • V.1.1. e.Kiểm thử đối với hiệu năng (67)
  • CHƯƠNG VI: QUẢN LÝ DỰ ÁN (70)
    • VI.1. Đưa ra lịch trình và quản lý tiến độ (70)
    • VI.2. Quản lý nguồn lực (70)
    • VI.3. Quản lý nhân lực (71)
    • VI.4. Quản lý rủi ro (71)
    • VI.5. Quản lý tài nguyên tài chính (72)
  • CHƯƠNG VII: KẾT LUẬN (73)
  • TÀI LIỆU THAM KHẢO (74)

Nội dung

GIỚI THIỆU ĐỀ TÀI

Lý do chọn đề tài

Như những gì đã tìm hiểu và nghiên cứu thông tin cơ bản về Game trong

“Lời Mở Đầu”, nhóm chúng tôi nhận thức rõ tầm quan trọng và tiềm lực phát triển vô hạn của Game trong cuộc sống và trong tương lai.

Lý do chủ quan: Đối với nhóm những sinh viên thuộc ngành Công nghệ Thông tin, dù đã được học nhiều môn học chuyên ngành, cũng đã tham gia thực hiện một số sản phẩm công nghệ, tuy nhiên hầu hết đều là các app hoặc trang web mà chưa có bất kì một sản phẩm nào về Game

Người làm IT cũng phải giống như công nghệ, phải bắt kịp được sự tăng trưởng của nó, phải thích nghi nhanh nhạy với sự biến thiên của nó, phải tiếp xúc với nhiều mảng của ngành IT nhất có thể để “tiến hóa” và luôn luôn làm chủ được những gì bản thân muốn làm

Bên cạnh đó, chúng tôi cũng tìm hiểu và nhìn nhận một sự thật rằng, có thể trong tương lai, phần xây dựng Web hay App rất có thể sẽ bị thoái trào nhưng sức mạnh phát triển và tốc độ chuyển mình của Game như đã phân tích là vô hạn Việc chọn xây dựng game có thể chính là cách để tự tạo cho bản thân những sinh viên như chúng tôi một cơ hội bắt đầu đặt những viên gạch nền móng đầu tiên, tạo ra kịp xu hướng của thời đại, chuẩn bị tốt hơn cho những thay đổi trong tương lai. Chúng tôi sẽ có được một “môi trường ngành” thêm hoàn thiện và toàn diện hơn

Một lí do nữa dẫn chúng tôi đến ý tưởng xây dựng Game cho học phần này chính bởi đặc điểm của việc xây dựng game mà quá trình xây dựng Web hay App không có được Không phải là cấu trúc cứng nhắc: header – body – footer như khi xây dựng trang web; cũng chẳng phải những danh mục, công cụ, và tính năng chuyên sâu được yêu cầu như khi xây dựng các app; đối với việc xây dựng Game, chúng tôi được tự do và thỏa sức suy nghĩ, sáng tạo, vận dụng tư duy logic của bản thân mình để xây dựng những gì mình muốn Bên cạnh đó, giao diện phần nhìn của game có sự tập trung mạnh mẽ vào thiết kế đồ họa và giao diện người dùng để tạo ra những trải nghiệm thú vị và hấp dẫn cho người chơi, khác biệt hoàn toàn với sự tập trung vào tính năng, trải nghiệm và buộc tương tác với những khối dữ liệu cứng nhắc Dẫu biết game thường đòi hỏi nhiều thời gian và nguồn lực đầu tư hơn do yêu cầu cao về đồ họa và chi tiết từng tính năng phức tạp nhưng giống như mục đích ban đầu, đó thực sự sẽ là một trải nghiệm bắt đầu không thể bỏ lỡ

Người ta thường nói game chỉ nhằm mục đích giải trí dành cho người chơi, nhưng đối với những người thiết kế và xây dựng nên nó, game còn là một phương tiện để thể hiện và truyền đạt những ý tưởng, tư tưởng, quan điểm với thế giới ảo của riêng mình, điều khiển các yếu tố tương tác và kể câu chuyện Nó nâng cao khả năng tiếp cận các đối tượng mục tiêu cụ thể hoặc bao quát mà bạn muốn hướng đến Việc giải quyết các thách thức công việc trong quá trình xây dựng game sẽ chứa nhiều thú vị và đầy thử thách bởi lẽ game đa phần là được xây dựng từ công thức toán học và vật lý Đây là một trong những cách tốt nhất để chúng tôi áp dụng toàn bộ kiến thức vào thực hành, tự rèn luyện sự kiên nhẫn, thúc đẩy não bộ linh hoạt và nhanh nhạy trong tư duy và giải quyết vấn đề.

Mục tiêu đề tài

Bản báo cáo này trình bày lại toàn bộ nội dung, quá trình cũng như các vấn đề liên quan trong việc thực hiện dự án “Xây dựng game bắn súng 2D” Nhóm chúng em sẽ đi sâu vào các khía cạnh thiết kế, kiến thức, kĩ thuật, quá trình phối kết hợp để cung cấp cho người đọc một cái nhìn từ tổng quan đến chi tiết về công việc xây dựng và phát triển, vận hành một Game.

Giới hạn và phạm vi đề tài

Sản phẩm của đề tài “Xây dựng game bắn súng 2D” sử dụng công cụ Godot để thiết kế và Công cụ lập trình Visual Studio Code để thực hiện lập trình tính năng.

Các tài liệu liên quan sử dụng các phần mềm thuộc Microsoft Office để tạo lập: báo cáo, sơ đồ usecase,

Cơ sở dữ liệu sử dụng nền tảng PhpAdmin để tạo lập, thiết kế sơ đồDatabase Relationship.

Kết quả dự kiến đạt được

Tìm hiểu chi tiết quy trình xây dưunjg và phát triển một Game.

Tìm hiểu chi tiết về công cụ Godot.

Xây dựng và phát triển “game bắn súng 2D” đáp ứng các yêu cầu cơ bản

PHÂN TÍCH YÊU CẦU

Yêu cầu về kiến thức

II.1.1 Quy trình xây dựng Game Đề tài dự án “Xây dựng game bắn súng 2D” là dự án thiết kế game đầu tiên mà nhóm chúng em tự thực hiện Vậy nên, việc tìm hiểu, nghiên cứu chi tiết về quy trình để xây dựng và phát triển một game là vô cùng quan trọng Đó là khung kiến thức nền tảng giúp nhóm vạch rõ kế hoạch, thời gian, công đoạn và các phần cần thực hiện để tạo nên một sản phẩm hoàn chỉnh theo mong muốn; đảm bảo mọi công việc và vấn đề có liên quan logic, không bị thiếu sót hay bị dư thừa.

Vậy, về cơ bản, quy trình sản xuất game có thể được gói trong 3 giai đoạn chính như sau:

Tiền kỳ là giai đoạn cực kỳ quan trọng, làm tiền đề cho cả quá trình, tiền để cho sự phát triển ý tưởng của Game Các công việc trong giai đoạn này có thể bao gồm:

+ Bàn luận và thống nhất cốt truyện hoàn chỉnh.

+ Xây dựng tuyến nhân vật phù hợp với cốt truyện.

+ Thiết kế thử thách, vạch ra cách hoạt động của game.

+ Dự báo rủi ro + Ở giai đoạn tiền kỳ này, game designer là những người thực hiện và chịu trách nhiệm chính Sau khi các công đoạn trên được hình thành và phát triển, game designer sẽ phải tổng hợp thành một tài liệu chi tiết, đầy đủ ý tưởng và cách thức thực hiện để các thành viên tham gia vào các công việc ở giai đoạn sau có thể hiện thực hóa ý tưởng, bám sát yêu cầu ban đầu, tránh xảy ra chệch hướng, giảm thiếu tối đa việc sửa chữa không cần thiết.

>> Production (Sản xuất): Đây là giai đoạn chiếm nhiều thời gian và tài nguyên nhất trong quá trình tạo ra một game Mọi công đoạn đều phải đảm bảo tính tối ưu hóa và hạn chế sai sót nhiều nhất có thể Các nhiệm vụ ở mảng Art (thiết kế đồ họa) cần thực hiện trong khâu sản xuất bao gồm: Modeling, Animation, Texturing, Lighting, FX,… và mảng Development (Lập trình) sẽ bắt đầu thực hiện song song. Ở giai đoạn này, vị trí “xương sườn” của toàn bộ game là những người lập trình game, hỗ trợ kỹ thuật (Tech Artist) Họ sẽ đi xuyên suốt quy trình làm game để đảm bảo được sự liên kết và xử lý những lỗi có thể xảy ra trong quá trình làm game

Vào cuối giai đoạn sản xuất, bộ phận Test game sẽ liên tục kiểm tra và phản hồi những vấn đề cần khắc phục Một sản phẩm hoàn thiện là sản phẩm ổn định, đầy đủ các tính năng được yêu cầu và không có lỗi.

Thông thường giai đoạn hậu kỳ thuộc về bộ phận Marketing của nhà phát hành game Từ giai đoạn sản xuất đã có thể dần hé lộ những chi tiết trong game với khán giả công chúng, nhưng hậu kỳ mới là lúc đội ngũ Truyền thông hoạt động mạnh mẽ nhất Thời điểm này, các tựa game sẽ xuất hiện trên nhiều đầu báo, tạp chí, blog hay review của các youtuber, streamer,

… Đây cũng là giai đoạn mà nhà phát triển game (Game Developer) sẽ tiếp tục cải thiện trò chơi trong những trường hợp có lỗi mới Thông thường, nhà phát hành sẽ ra mắt trước các bản dùng thử để khán giả trải nghiệm và phản hồi những lỗi phát sinh Sau đó các nhà lập trình game sẽ sửa chữa đồng thời ra mắt thêm các tính năng mới để giữ chân và thu hút thêm người chơi.

II.1.2 Kiến thức về Godot

II.1.2.1 Đối tượng tham gia hệ thống

Godot Engine là một nền tảng phát triển game mã nguồn mở được tạo ra để đáp ứng nhu cầu của các nhà phát triển game đa nền tảng Với thiết kế dễ sử dụng và cung cấp nhiều tính năng hấp dẫn, Godot Engine đã thu hút sự quan tâm của đông đảo lập trình viên.

II.1.2.2 Vì sao là Godot ?

Hiện tại, có khá nhiều Engine đã tạo được danh tiếng của mình trong việc hỗ trợ thiết kế và xây dựng game Nó rút ngắn quá trình, tiết kiệm thời gian và công sức cho người sản xuất Hãy cùng điểm qua một số engine nổi tiếng mà nhóm chúng tôi tìm hiểu được. a Unity Engine

Unity Engine là một môi trường phát triển trò chơi cực kì mạnh mẽ và đa dụng đã được sử dụng rộng rãi trong cả ngành công nghiệp thiết kế game, thậm chí còn được mang vào giảng dạy lập trình Unity có những điểm cộng to lớn làm nên sức hút mạnh mẽ của nó:

+ Đa nền tảng: Unity cho phép người sản xuất phát triển trò chơi của mình trên nhiều nền tảng khác nhau như PC, smartphone, tablet, các thiết bị kĩ thuật số thực tế ảo (VR) và nhiều hệ thống máy móc dành riêng cho việc chơi game khác nữa Điều này giải quyết xuất sắc vấn đề xung đột hay không tương thích giữa game với thiết bị của người dùng Khi game có chất lượng, ưu điểm này của Unity sẽ giúp nó được phủ sóng nhanh chóng và mạnh mẽ, tổng hợp được số lượng người chơi khủng.

+ Cộng đồng lớn: Nó như thể là một điều tất yếu! Sự nổi tiếng và tính năng hỗ trợ của Unity giúp nó xây dựng một cộng đồng lập trình viên, nhà thiết kế và game thủ rất lớn, ưu điểm này giúp những người mới tiếp cận dễ dàng tìm kiếm sự hỗ trợ, tài liệu và giải đáp những câu hỏi, thắc mắc trong quá trình sử dụng và vận hành

+ Asset Store: Asset Store của Unity cung cấp cho người xây dựng game một thư viện lớn các tài nguyên, script và plug-in giúp họ tăng tốc quá trình thiết kế và phát triển.

+ Dễ học: theo như đánh giá từ các lập trình viên, Unity có giao diện dễ sử dụng và hỗ trợ nhiều ngôn ngữ lập trình như C# và JavaScript, điều này hỗ trợ cho những người mới bắt đầu có thể nắm bắt nhanh chóng.

+ Render chất lượng cao: một game chất lượng phải thu hút game thủ ngay từ phần nhìn Unity cung cấp hệ thống render mạnh mẽ giúp người thiết kế game dễ dàng hơn trong việc tạo ra hình ảnh chất lượng cao, cho dù họ đang xây dựng trò chơi 2D hay 3D. b Unreal Engine

Yêu cầu về kĩ thuật

Để thực hiện xây dựng và phát triển dự án “xây dựng game bắn súng 2D”, yêu cầu về kĩ thuật cần có đối với nhóm thực hiện bao gồm:

+ Kĩ thuật sử dụng Godot.

+ Kĩ thuật lập trình ngôn ngữ GDscript.

+ Kĩ thuật xử lý hình ảnh, thiết kế đồ họa cơ bản.

+ Kĩ thuật thiết kế mô hình design pattern cho code flow sử dụng ESC.

+ Kĩ thuật design về procedural dungeon generator.

Yêu cầu về tài nguyên

Dưới đây là hệ thống phân cấp tệp tài nguyên của dự án “Xây dựng game bắn súng 2D”:

Hình 9 Hệ thống phân cấp tệp

Res:// - là directory hiện tại

Assets: tổng hợp các tài nguyên

 Sound: tài nguyên âm thanh nền và sound effect.

 Sprites: tài nguyên hình ảnh.

 Visual effects: tài nguyên hiệu ứng hình ảnh.

Scenes: tổng hợp các cánh trong game.

Srcipts: tổng hợp các thành phần đoạn mã của game

 Components: tổng hợp các đoạn mã theo thuộc tính.

 Player components: đoạn mã chỉ phục vụ player.

 Enemy components: đoạn mã chỉ phục vụ cho enemy.

 Enemy_player components: đoạn mã sử dụng cho cả player và enemy.

 Gun components: đoạn mã sử dụng cho vũ khí.

 Map components: đoạn mã để tạo map.

 Systems: hệ thống chương trình chính của game.

Yêu cầu về nhân sự

Do quy mô của dự án không lớn, tập trung vào đối tượng là nhóm sinh viên thực hiện học phần, vậy nên, yêu cầu về nhân sự không cần phải là một hệ thống như trong một công ty hay doanh nghiệp, nhưng các thành viên đều cần phải đóng góp và phải có đủ nhân sự có năng lực, đảm bảo cơ bản các quy trình xây dựng và phát triển Game được thực hiện đúng.

Vai trò và nhiệm vụ chính của các thành viên được mô tả chi tiết trong

“Phân công công việc”, ngoài ra còn có các tài liệu “Meeting Minutes” chỉ ra vai trò và công việc của từng nhân sự trong từng giai đoạn xây dựng và phát triển

Yêu cầu về đồ họa, âm thanh

Hoạch định ban đầu là “game bắn súng 2D” – vậy đồ họa trong game là đồ họa 2D.

Thiết kế đồ họa cần đảm bảo nổi bật; dễ quan sát các đối tượng trong màn chơi; đảm bảo độ phân giải không bị mờ, lỗi; kết hợp phát triển vào đó yếu tố mĩ thuật giúp thu hút người chơi với giao diện đẹp, hình ảnh đẹp.

 Âm thanh Âm thanh nền, âm thanh thao tác, âm thanh khi nhân vật di chuyển, âm thanh khi nhân vật tấn công, âm thanh khi kẻ địch tấn công, đảm bảo rằng: có đủ âm thanh đối với mọi tương tác trong game, âm thanh có thể điều chỉnh độ lớn, nhỏ, bật hoặc tắt âm thanh.

Các hiệu ứng âm thanh được nhóm tìm từ các nguồn trên Internet và ghép với tương tác trong game.

THỰC HIỆN THIẾT KẾ

Phân tích đề tài

III.1.1 Khái niệm game Side Scroller

Game Side-Scrolling hay Side-Scroller là một thuật ngữ phổ biến trong ngành thiết kế trò chơi điện tử Side-Scrolling có nghĩa là “trượt phía bên hông”.

Tại sao vậy ? Đối với loại trò chơi này, góc máy quay trung tâm nằm ở bên hông nhân vật chính Người chơi sẽ nhìn vào bên hông của nhân vật chính Khi nhân vật chính di chuyển, thường chỉ là di chuyển trái, phải, lên, xuống và khi ấy cảnh vật xung quanh cũng di chuyển, thay đổi theo bước hành trình của nhân vật chính Do bản chất của các game dạng side-scroller thường chỉ cho phép nhân vật di chuyển theo hướng trái – phải, lên cao – xuống thấp nên các trò chơi này thường được thiết kế với định dạng 2 chiều: 2D Đây cũng là định dạng của game mà nhóm chúng em thiết kế.

Một số tựa game kinh điển mà hầu như bất cứ ai cũng đã từng thấy, từng chơi được thiết kế theo Side-Scroller có thể kể đến:

Game bắn súng 2D mà nhóm xây dựng và phát triển cũng là một tựa game tương tự.

Mục tiêu của trò chơi là người chơi phải hòa mình vào nhân vật “nhà thám hiểm”, yêu cầu di chuyển nhân vật chính bằng các nút nhấn trên bàn phím để tránh những đòn tấn công của kẻ địch, đồng thời sử dụng chuột máy tính để điều khiển hướng của vũ khí, nhấp chuột trái để bắn – tấn công để tiêu diệt kẻ thù.

Nhân vật sẽ tấn công quái vật cho đến khi quái vật hết máu sẽ chết, người chơi được công nhận đã qua ải, người chơi sẽ nhận được phần thưởng hoặc tăng điểm kinh nghiệm Nếu trong quá trình chiến đấu, nhân vật bị trúng đòn tấn công quá nhiều dẫn đến hết máu sẽ chết, người chơi sẽ phải thực hiện vượt ải đó một lần nữa cho đến khi chiến thắng hoặc sẽ chọn ngừng trò chơi.

Xác định yêu cầu trò chơi

III.2.1 Giao tiếp hệ thống

Game bắn súng 2D do nhóm thiết kế phải có hệ thống đáp ứng đầy đủ chức năng của một game Trong đó:

+ Các nút điều khiển di chuyển nhân vật phải được liên kết chặt chẽ, đảm bảo thời gian delay là nhỏ nhất, hạn chế giật, lag hoặc lẫn lộn chức năng giữa các phím Ưu tiên: sử dụng 4 phím mũi tên trên bàn phím để thực hiện di chuyển tương ứng Ngoài ra có thể sử dụng 4 phím ký tự: W – A – S – D.

+ Sử dụng chuột điều hướng vũ khí và tấn công phải được liên kết đúng, đáp ứng độ trễ thấp nhất, không giật lag Di chuột: con trỏ chuột ở đâu thì vũ khí hướng tới vị trí đó, click chuột trái để bắn phát một, nhấn giữ chuột trái để bắn liên tục.

Các điều khiển không chỉ phải đầy đủ, mà còn phải đúng và dễ dàng sử dụng để người chơi không bị cảm giác gượng khi thao tác và tương tác với game.

Các điều khiển phải có hệ thống quản lý rõ ràng, liên kết chặt chẽ với nhau và đặt phải phục vụ đầy đủ các chức năng khi người dùng chơi game.

III.2.3 Giao tiếp về giao diện

Giao diện game trước hết phải đáp ứng sử dụng các hình ảnh sắc nét, mượt mà, nổi bật và mới lạ, nhưng phải dễ nhìn, không tạo cảm giác khó chịu, nhức mỏi thị giác ngay trong thời gian ngắn, điều đó thu hút người chơi và kéo dài thời gian chơi với cảm giác tận hưởng, thoải mái.

Giao diện game phải sắp xếp các nút điều khiển: chuyển tiếp trang, chuyển tiếp màn chơi, lựa chọn nền, điều chỉnh âm thanh một các vừa có tính khoa học, vừa kết hợp tính thẩm mĩ, có sự phân bố hợp lý mà không bị rối loạn hay chỉ mang tính chất làm đầy giao diện.

Một lưu ý quan trọng nữa là giao diện cần phải phù hợp với kích cỡ màn hình và độ phân giải màn hình của nhiều thiết bị khác nhau.

Kịch bản trò chơi (cốt truyện)

Game bắn súng 2D là một game side-scrolling lấy bối cảnh là một “nhà thám hiểm” có tên là Jackson, với niềm đam mê tham hiểm, khám phá thế giới và tìm kiếm kho báu, anh đã lên đường thực hiện chuyến tham hiểm của mình.

Tuy nhiên, những chuyến thám hiểm không bao giờ là thuận buồm xuôi gió. Càng đi xa trong chuyến thám hiểm, mỗi nơi mà Jackson đến ngoài kho báu, tiền thưởng, đợi chờ anh còn là những quái vật hung tợn canh giữ kho báu Nhiệm vụ của Jackson là phải sống sót bằng mọi giá, tiêu diệt lũ quái vật mà anh gặp để tích lũy kinh nghiệm và lấy được kho báu tiền thưởng mong muốn.

Khi game được chạy, hệ thống sẽ chuyển người dùng đến giao diện Menu, ở đây, người chơi có thể thực hiện bật – tắt hoặc tăng – giảm độ lớn âm thanh Hoặc bỏ qua, người dùng chỉ cần nhấn vào nút Play, hệ thống sẽ chuyển người dùng đến một giao diện khác đó là giao diện chọn màn chơi.

Các màn chơi sẽ được hiển thị, theo cấp độ từ dễ đến khó Các màn chơi mà người chơi đã vượt qua trước đó sẽ được đánh dấu tích “xanh” và những màn chơi chưa vượt qua sẽ được khoanh “đỏ” Hình ảnh nhân vật Jackson sẽ đứng ở màn chơi người dùng chưa vượt qua, ngay sau màn chơi cấp độ khó cao nhất mà người chơi đã được công nhận là vượt qua thành công trước đó Người chơi phải vượt qua từng màn chơi theo cấp độ, họ có thể chọn lại các màn chơi đã vượt qua trước đó hoặc nhấn chọn ngay Play để chơi màn chơi chưa vượt qua gần nhất hiện tại.

Khi đã chọn được màn chơi thích hợp, Jackson sẽ bắt đầu ở màn đấy và điều đầu tiên mà người chơi có thể tương tác là nhấn các nút mũi tên hoặc A – di chuyển trái, D – di chuyển phải, W – di chuyển lên, S – di chuyển xuống Ngoài ra Jackson có thể thay đổi hướng khẩu súng nhắm đến theo hướng con trỏ chuột và bắn đạn phát một hoặc bắn đạn liên tục theo thao tác chuột của người chơi.

Về kẻ địch – quái vật sẽ di chuyển hoặc bắn ra những viên đạn hướng vào Jackson khiến anh va vào chúng và mất máu dần dần Khi máu của nhân vật chính hết thì phải chơi hệ thống sẽ thông báo “Lose” – thua ải và đưa người chơi về lại giao diện chọn màn, khi ấy Jackson sẽ đứng ở màn chơi vừa thua.

Khi sống sót đến hết màn chơi và tiêu diệt thành công quái vật, Jackson sẽ được nhận kho báu phần thưởng của ải đó, hệ thống sẽ thông báo “Win” – qua ải và đưa người chơi về lại giao diện chọn màn – khi ấy Jackson sẽ đứng ở màn chơi kế tiếp Jackson sẽ có thể tiếp tục hành trình thám hiểm của mình.

Sơ đồ quan hệ giữa các lớp

Class Main: Đây là class để xử lý tiến trình bắt đầu game cũng như kết thúc game, (tiến trình chọn màn chơi, thay đổi cài đặt âm thanh).

Class EnemyMove: Đây là class xử lý di chuyển của Enemy.

Class GameController: Đây là class lưu trữ các enemy và xử lý random

Class GamePlayController: Đây là class dùng để xử lý di chuyển nhân vật, kích hoạt Laze và các xử lý va chạm với enemy, máu, kho báu thưởng…

Class EnemyState : Đây là class dùng để xử lý va chạm của enemy, xử lý số điểm, gây sát thương…

Class Laze: Là class để xử lý vũ khí, xử lý bay của viên đạn cũng như xử lý va chạm với Enemy.

Thiết kế đặc tả chức năng

Để hiểu chi tiết về yêu cầu đề tài cũng như nắm bắt nhanh hơn, nhóm nghiên cứu đề xuất phương án thiết các biểu đồ về cách thức hoạt động, cách xử lý của đề tài.

III.5.1 Biểu đồ Use-case a) III.5.1.1 Biểu đồ Use-case tổng quát b)

Hình 13 Biểu đồ Use-case tổng quát c) III.5.1.2 Đặc tả Use-case

III.5.1.2.a Đặc tả Use-case “Play Game”

Tên use-case: Play Game.

Người sử dụng: Người chơi.

Mục đích: use-case này là chức năng chơi game – cũng là chức năng sử dụng chính của sản phẩm được xây dựng và phát triển.

Yêu cầu đặc biệt: Không có.

Trạng thái hệ thống trước khi bắt đầu thực hiện Use-case

Hệ thống hiển thị ở màn hình giao diện chính – giao diện menu game. Trạng thái hệ thống sau khi Use-case được thực hiện.

Hệ thống hiển thị ra màn hình chơi game chính.

Hành động của tác nhân Phản ứng của hệ thống

1 1 Người chơi vào ứng dụng Hệ thống đưa ra giao diện chính

2 2 Người chơi nhấn vào button

Hệ thống hiển thị ra màn hình chọn màn chơi.

3 3 Người chơi nhấn chọn màn chơi thích hợp

Hệ thống hiển thị ra màn hình chơi game.

45 Điểm mở rộng: Không có.

Người chơi chọn màn chơi có độ khó vượt quá phạm vi cho phép (nhảy bước màn chơi mà không theo thứ tự).

III.5.1.2.b Đặc tả Use-case “Help”

Tên use-case: Help Game.

Người sử dụng: Người chơi.

Mục đích: use-case này là chức năng cung cấp các thông tin về game.

Các yêu cầu đặc biệt: Không có.

Trạng thái hệ thống trước khi bắt đầu thực hiện Use-case

Hệ thống hiển thị ở màn hình giao diện chính – giao diện menu game.

Trạng thái hệ thống sau khi Use-case được thực hiện.

Hệ thống hiển thị ra màn hình giới thiệu các thông tin về game. Điểm mở rộng: Không có.

Hành động lỗi: Không có.

III.5.1.2.c Đặc tả Use-case “Exit”

Người sử dụng: Người chơi.

Mục đích: use-case này là chức năng thoát khỏi game.

Hành động của tác nhân Phản ứng của hệ thống

1 1 Người chơi vào ứng dụng Hệ thống đưa ra giao diện chính

2 2 Người chơi nhấn vào button

Hệ thống hiển thị ra màn hình giới thiệu thông tin về game, giới thiệu các chức năng trong game (phần chính).

Hành động của tác nhân Phản ứng của hệ thống

1 Người chơi quay về giao diện chính

Hệ thống đưa ra giao diện chínhTiến trình game sẽ tắt, trở về màn

Các yêu đặc biệt: Không có.

Trạng thái hệ thống trước khi bắt đầu thực hiện Use-case

Hệ thống hiển thị ở màn hình giao diện chính – giao diện menu game.

Trạng thái hệ thống sau khi Use-case được thực hiện.

Hệ thống tắt tiến trình game, quay về màn hình Desktop. Điểm mở rộng: Không có.

Hành động lỗi: Không có.

PHÁT TRIỂN

Xác Định Công Nghệ và Ngôn Ngữ Lập Trình

Trong giai đoạn này, quá trình xác định công nghệ và ngôn ngữ lập trình đã tập trung vào sự linh hoạt và hiệu suất của Godot Engine Nhóm chúng em đã quyết định sử dụng Godot Engine với ngôn ngữ lập trình GDScript vì tính năng tích hợp sẵn, tương thích nhiều nền tảng lẫn thiết bị, cộng đồng lớn và khả năng phát triển linh hoạt theo yêu cầu cụ thể của dự án.

Xây Dựng Cơ Sở Hạ Tầng của Game

Trong quá trình xây dựng cơ sở hạ tầng của game, nhóm chúng em đã tạo ra các module quan trọng như quản lý tài nguyên, đối tượng, và hệ thống cấp độ trongGodot Engine Đồng thời cũng đã chú trọng vào việc tối ưu hóa để đảm bảo game chạy mượt mà trên nền tảng 2D và có khả năng mở rộng dễ dàng trong tương lai.

Phát Triển Gameplay và Tính Năng Tương Tác

Phần này tập trung vào việc thực hiện ý tưởng gameplay và tính năng tương tác trong game bắn súng 2D Bằng cách sử dụng GDScript và công cụ Godot,nhóm thực hiện đã xây dựng các hệ thống vận động, di chuyển, tấn công, và tính năng đối tượng tương tác để tạo ra một trải nghiệm chơi game độc đáo và thú vị.

Tạo Đồ Họa và Âm Thanh

Thành viên thiết kế đồ họa và âm thanh đã sử dụng Godot Engine để tạo đồ họa và âm thanh cho game Với khả năng tích hợp các tài nguyên đa phương tiện trực tiếp vào Godot, chúng em đã tạo ra các đối tượng, có hiệu ứng và âm thanh để làm cho game trở nên sinh động và hấp dẫn.

KIỂM THỬ VÀ SỬA CHỮA

Xác định các chức năng cần kiểm thử bao gồm

Chức năng cài đặt: âm lượng, nhạc, sfx:

Chức năng tạm dừng và bắt đầu chơi:

Chức năng di chuyển của nhân vật:

Chức năng tấn công của nhân vật:

Các yêu cầu phi chức năng của người chơi:

Quái Sâu: sau đây là bảng kiểm thử sau khi test game play

Quái Boss: sau đây là bảng kiểm thử sau khi test game play

Quái Gấu: sau đây là bảng kiểm thử sau khi test game play

Kiểm thử phản hồi button setting:

Kiểm thử phản hồi button trang chủ:

Kiểm thử đối với map:

V.1.1.d.Kiểm thử đối với thuật toán

Chúng em đã test các chức năng trong game và được thu được các kết quả khá tích cực, mặc dù có một vài bug nhưng bọn em đã fix thành công.

V.1.1.e.Kiểm thử đối với hiệu năng

Chúng em đã thử test game trên một số cấu hình máy khác nhau, từ đó cho ra được các đánh giá giá tích cực : Đối với cấu hình mạnh: Đối với các cấu hình yếu hơn:

QUẢN LÝ DỰ ÁN

Đưa ra lịch trình và quản lý tiến độ

1 Xác định các công việc cần thực hiện để hoàn thành dự án, bao gồm:

 Thiết kế và tạo hình các nhân vật và môi trường trong game:

 Sáng Tạo Ý Tưởng: Họp nhóm để đề xuất ý tưởng và thiết kế cơ bản cho nhân vật và môi trường dựa trên yêu cầu của dự án.

 Vẽ Phác Thảo: Bắt đầu với các phác thảo tay để hiểu rõ hình dạng, trang phục, và đặc điểm đặc trưng của nhân vật Tìm kiếm cảm hứng từ game tương tự và xu hướng ngành công nghiệp.

 Tạo Hình và Animation: Chuyển các phác thảo thành hình ảnh số và tạo animation để xem trước cách nhân vật di chuyển và tương tác trong game.

 Mô Hình Hóa Môi Trường: Sử dụng công cụ mô hình hóa để tạo các khối cơ bản và mô hình hóa các đối tượng trong môi trường.

2 Xây dựng cơ chế bắn súng, di chuyển và va chạm cho nhân vật.

3 Xử lý hình ảnh, âm thanh và hiệu ứng đặc biệt.

4 Thiết kế và xây dựng các cấp độ và giao diện người dùng.

5 Kiểm thử, sửa lỗi và tối ưu hóa game.

6 Lập lịch trình thực hiện công việc trên và phân chia thời gian cho từng giai đoạn của dự án.

7 Theo dõi tiến độ thực hiện các công việc và so sánh với kế hoạch ban đầu để đảm bảo tuân thủ lịch trình Điều chỉnh lịch trình nếu cần thiết để đáp ứng yêu cầu và mục tiêu của dự án.

Quản lý nguồn lực

1 Xác định các nguồn lực cần thiết để xây dựng game bắn súng 2D, bao gồm: Máy tính và phần mềm phát triển Godot.

Thư viện đồ họa và âm thanh.

Công cụ thiết kế và biên tập hình ảnh, âm thanh.

2 Quản lý và sử dụng hiệu quả các nguồn lực trên suốt quá trình dự án.

3 Đảm bảo rằng các nguồn lực được cung cấp đúng thời điểm và đáp ứng được yêu cầu của dự án.

Quản lý nhân lực

1 Xác định và cấp phát nhiệm vụ cho các thành viên trong nhóm phát triển game bắn súng 2D:

Nhân viên thiết kế và tạo hình.

2 Đảm bảo rằng các thành viên có đủ kỹ năng và tư duy để thực hiện công việc của mình.

3 Theo dõi và hỗ trợ các thành viên trong quá trình làm việc, giải quyết các vấn đề phát sinh và tăng cường sự hợp tác trong nhóm.

Quản lý rủi ro

1 Xác định và đánh giá các rủi ro có thể xảy ra trong quá trình xây dựng game bắn súng 2D:

Lỗi phần mềm và xử lý không chính xác.

Thời gian phát triển kéo dài hơn dự kiến.

Sự cạnh tranh từ các game khác trên thị trường.

2 Phát triển các biện pháp phòng ngừa và ứng phó với rủi ro, đảm bảo rằng dự án không bị ảnh hưởng nghiêm trọng bởi các sựcố không mong muốn Điều này có thể bao gồm sau:

Thực hiện kiểm tra và kiểm tra liên tục để phát hiện lỗi phần mềm và sửa chữa chúng kịp thời.

Thiết lập các mốc kiểm tra tiến độ để đảm bảo rằng dự án không chậm tiến độ quá nhiều.

Nghiên cứu thị trường và đối thủ để hiểu và đáp ứng được sự cạnh tranh trong ngành công nghiệp game.

Quản lý tài nguyên tài chính

1 Xác định và quản lý nguồn tài chính cần thiết để thực hiện dự án xây dựng game bắn súng 2D.

2 Theo dõi và kiểm soát chi phí, đảm bảo sử dụng tài nguyên tài chính một cách hiệu quả và đáp ứng được yêu cầu của dự án.

3 Đề xuất các nguồn tài chính bổ sung nếu cần thiết và lập kế hoạch nguồn tài chính cho các giai đoạn tiếp theo của dự án.

Ngày đăng: 01/05/2024, 08:28

HÌNH ẢNH LIÊN QUAN

Hình 10. Godot Engine - đồ án liên ngành đề tài lập trình game 2d bắn súng bằng godot
Hình 10. Godot Engine (Trang 20)
Hình 1. Godot - đồ án liên ngành đề tài lập trình game 2d bắn súng bằng godot
Hình 1. Godot (Trang 20)
Hình 2.a. Thành phần Scenes - đồ án liên ngành đề tài lập trình game 2d bắn súng bằng godot
Hình 2.a. Thành phần Scenes (Trang 25)
Hình 2.b. Thành phần Scenes Nodes - đồ án liên ngành đề tài lập trình game 2d bắn súng bằng godot
Hình 2.b. Thành phần Scenes Nodes (Trang 26)
Hình 3.b. Thành phần Nodes - đồ án liên ngành đề tài lập trình game 2d bắn súng bằng godot
Hình 3.b. Thành phần Nodes (Trang 27)
Hình 4. Thành phần The scene tree Signals - đồ án liên ngành đề tài lập trình game 2d bắn súng bằng godot
Hình 4. Thành phần The scene tree Signals (Trang 28)
Hình 5. Thành phần Signals - đồ án liên ngành đề tài lập trình game 2d bắn súng bằng godot
Hình 5. Thành phần Signals (Trang 29)
Hình 6.a. Thành phần The Project Manager - đồ án liên ngành đề tài lập trình game 2d bắn súng bằng godot
Hình 6.a. Thành phần The Project Manager (Trang 29)
Hình 6.c. Thành phần The Project Manager - đồ án liên ngành đề tài lập trình game 2d bắn súng bằng godot
Hình 6.c. Thành phần The Project Manager (Trang 30)
Hình 7.b. Trình Soạn Thảo Của GoDot - đồ án liên ngành đề tài lập trình game 2d bắn súng bằng godot
Hình 7.b. Trình Soạn Thảo Của GoDot (Trang 31)
Hình 7.g. File System - đồ án liên ngành đề tài lập trình game 2d bắn súng bằng godot
Hình 7.g. File System (Trang 32)
Hình 7.i. Tab Inspector - đồ án liên ngành đề tài lập trình game 2d bắn súng bằng godot
Hình 7.i. Tab Inspector (Trang 33)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w