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

75 1 0
Tài liệu đã được kiểm tra trùng lặp
đồ án liên ngành đề tài lập trình game 2d bắn súng bằng godot

Đ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

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠOTRƯỜNG ĐẠI HỌC PHENIKAA

Giảng viên hướng dẫn : PhD Vũ Đức MinhNhóm sinh viên thực hiện : 02

2.

Trang 3

LỜI CẢM ƠN

Đầu tiên, xin được gửi lời cảm ơn chân thành tới các thầy, cô là giảng viênKhoa Công nghệ Thông tin Trường Đại học Phenikaa – những người đã đồnghành, hỗ trợ, cung cấp và trang bị cho chúng em những kiến thức chuyên môncùng với kĩ năng xử lý cần thiết trong suốt những năm học vừa qua – là nền tảngquan trọng để hoàn thành đề tài – đặc biệt là bản báo cáo đồ án này.

Chúng em xin được bày tỏ sự cảm ơn sâu sắc tới thầy Vũ Đức Minh – giảngviên - giám đốc Chương trình Đào tạo Công nghệ Thông tin Trường Đại họcPhenikaa – là người trực tiếp hướng dẫn, hỗ trợ nhóm trong suốt quá trình thựchiện dự án Sự định hướng, kiến thức, kĩ năng và kinh nghiệm mà thầy đã chia sẻlà nền tảng cốt lõi cho những gì mà công trình nghiên cứu của nhóm đạt được

Trong quá trình thực hiện xây dựng dự án, tất cả các thành viên nhóm đã cốgắng phối hợp, nỗ lực dưới sự chỉ đạo của trưởng nhóm, tuy nhiên thật khó đểtránh khỏi những sai sót Vậy nên, nhóm chúng em mong muốn nhận được sự gópý tận tình của các thầy, cô giảng viên, và tự hội đồng để đề tài nghiên cứu đượchoàn thiện nhất có thể.

Chúng em xin chân thành cảm ơn!

Hà Nội, tháng 11 năm 2023

Trang 4

LỜI CAM ĐOAN

Nhóm xin cam đoan rằng mọi thông tin và nội dung trong báo cáo này đềuđược trình bày một cách chân thực và trung thực nhất Tất cả các nguồn thông tintừ bên ngoài, cũng như các công trình nghiên cứu, ý kiến, và công nghệ sử dụng,đều được trích dẫn đúng cách theo quy tắc và tiêu chuẩn của ngành nghề Chúngem cam kết tôn trọng quyền sở hữu trí tuệ và công lao của những người đóng gópvào lĩnh vực này.

Hà Nội, tháng 11 năm 2023

Ký tên

Trang 5

BẢNG PHÂN CHIA CÔNG VIỆC TỪNG THÀNH VIÊN

Trang 6

I.2 Mục tiêu đề tài 13

I.3 Giới hạn và phạm vi đề tài 13

I.4 Kết quả dự kiến đạt được 13

I.5 Phương pháp tiếp cận 14

CHƯƠNG II: PHÂN TÍCH YÊU CẦU 15

II.1 Yêu cầu về kiến thức 15

II.1.1 Quy trình xây dựng Game 15

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

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

II.1.2.2 Vì sao là Godot ? 17

II.1.2.3 Tổng quan về các thành phần trong Godot 22

II.2 Yêu cầu về kĩ thuật 34

II.3 Yêu cầu về tài nguyên 34

II.4 Yêu cầu về nhân sự 35

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

II.6 Yêu cầu về hiệu suất 36

II.6.1 Các nguyên tắc thiết kế game nhằm đảm bảo hiệu suất 36

CHƯƠNG III: THỰC HIỆN THIẾT KẾ 37

III.1 Phân tích đề tài 37

Trang 7

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

III.1.2 Cách chơi 38

III.2 Xác định yêu cầu trò chơi 39

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

III.2.2 Giao tiếp về điều khiển 39

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

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

III.4 Sơ đồ quan hệ giữa các lớp 41

III.5 Thiết kế đặc tả chức năng 42

III.5.1 Biểu đồ Use-case 42

III.5.1.1 Biểu đồ Use-case tổng quát 42

III.5.1.2 Đặc tả Use-case 42

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

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

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

III.6 Xây dựng Game 44

III.6.1 Thiết kế đồ họa 44

III.6.2 Thiết kế nhân vật, quái 45

III.6.3 Thiết kế gameplay mechanic 46

III.6.4 Thiết kế cấu trúc dữ liệu 49

III.6.5 Thiết kế mô hình design pattern cho code flow 50

III.6.5.1 Mô hình ECS 50

III.6.6 Thiết kế Procedural Dungeon Generator 51

III.6.6.1 Ý tưởng 51

III.6.6.2 Các bước tạo Dungeon 51

III.6.7 Thiết kế UI/UX 52

CHƯƠNG IV: PHÁT TRIỂN 56

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

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

Trang 8

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

IV.4 Tạo Đồ Họa và Âm Thanh 57

IV.5 Kiểm Thử và Tối Ưu Hóa 57

CHƯƠNG V: KIỂM THỬ VÀ SỬA CHỮA 57

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

V.1.1.Yêu cầu chức năng: 57

V.1.1.a Đối với người chơi 57

V.1.1.b.Đối với quái: 60

V.1.1.c.Đối với UI: 61

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

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

CHƯƠNG VI: QUẢN LÝ DỰ ÁN 65

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

VI.2 Quản lý nguồn lực: 65

VI.3 Quản lý nhân lực: 66

VI.4 Quản lý rủi ro: 66

VI.5 Quản lý tài nguyên tài chính: 67

CHƯƠNG VII: KẾT LUẬN 68

TÀI LIỆU THAM KHẢO 69

Trang 9

Hình 6.a Thành phần The Project Manager 26

Hình 6.b Thành phần The Project Manager 26

Hình 6.c Thành phần The Project Manager 26

Hình 7.a Trình Soạn Thảo Của GoDot 27

Hình 7.b Trình Soạn Thảo Của GoDot 27

Hình 7.c Trình Soạn Thảo Của GoDot 28

Hình 7.d Thanh công cụ Trình Soạn Thảo Của GoDot 28

Hình 7.e Thanh công cụ Trình Soạn Thảo Của GoDot 28

Trang 10

Hình 11.c Game SWAT Tank 38

Hình 12 Sơ đồ quan hệ giữa các lớp 41

Hình 13 Biểu đồ Use-case tổng quát 42

Hình 25 Các chỉ số máu, mana, phòng thủ của nhân vật chính 53

Hình 26 Menu cài đặt – âm thanh 54

Hình 27 Menu tùy chọn 54

Hình 28 Về trang chủ 55

Hình 29 Tiếp tục chơi 55

Hình 30 Mở cài đặt 56

Trang 11

LỜI MỞ ĐẦU

Bỏ lại phía sau tất cả hình ảnh của màu lịch sử, của cuộc sống khó khăn nơi hang cùng, hốc cụt; loài người chúng ta đã phát triển vượt qua cả thời gian để tự xây dựng cuộc sống chất lượng cao cho riêng mình Cùng với những bước tiến vượt bậc của khoa học, kĩ thuật và công nghệ, người ta đã đi từ nhu cầu ăn no, mặc đủ; vươn lên thành ăn ngon, mặc đẹp và hiện tại là vượt ra cả những nhu cầu thỏa mãn về thể chất, tinh thần của mỗi cá nhân Trong đó, nhu cầu giải trí luôn là yếu tố đi đầu

Từ việc giải trí chỉ nhằm để thư giãn, đến giải trí nhắm vào chất lượng và biến cả thời gian giải trí trở thành thời gian để tạo ra nguồn thu nhập cho mỗi cá nhân, Game đang làm quá xuất sắc những yêu cầu đó – nó là top những mảng giải trí nhận được sự quan tâm lớn nhất với giá trị lợi nhuận cao nhất Chỉ tính riêng ở Việt Nam năm 2021, giá trị mang lại từ Game được ước tính khoảng 136.000.000 USD – tương đương 3,1 nghìn tỷ đồng và những con số này chưa bao giờ cho thấy dấu hiệu chững lại sự tăng trưởng

Game gần như miễn nhiễm ảnh hưởng bởi những yếu tố tác động từ thế giới và môi trường bên ngoài Bởi lẽ đơn cử như tình hình đại dịch Covid 19 hoành hành khắp thế giới thời gian vừa qua; số lượng người chơi game, đầu tư vào game, thậm chí “ăn ngủ cùng game” đã đẩy mức doanh thu ngành Game liên tục phá vỡ những kỉ lục do chính nó tạo ra về lợi nhuận Tất cả những điều đó cho thấy sức mạnh ảnh hưởng và khả năng phát triển không giới hạn của Game là lớn đến như thế nào

Trang 12

Một số lớp tư tưởng cho rằng: “việc chơi game có hại đối với bản thân con người” với rất nhiều lí do khác nhau Điều đó không hoàn toàn là sai Việc chơi game chỉ sai khi người chơi game mang tư tưởng và mục đích sai, dẫn đến hành động sai, để lại hậu quả không tốt đẹp mà thôi Theo những nghiên cứu khoa học đã được xác thực, chơi game thực sự mang lại những lợi ích bất ngờ

+ Rèn luyện khả năng quan sát tốt và phản xạ nhạy bén: các nhà khoa học đã làm một phép thử với những người bình thường và người chơi game lâu năm, đặc biệt là những thể loại game hành động Kết quả chỉ ra người chơi game lâu năm dễ dàng hơn trong việc tránh né và phản xạ lại các chướng ngại vật bất ngờ, cần hành động nhanh, dứt khoát và chính xác Họ dường như đã luyện được cho bản thân kĩ năng sử dụng linh hoạt tay, chân và mắt, sóng não bộ của họ cũng đưa ra phân tích và xử lý nhanh nhạy hơn những người bình thường

+ Rèn luyện tính kiên trì và tăng khả năng làm việc nhóm: Việc thự hiện những thử thách khó trong game sẽ tạo cho bạn tính kiên trì, óc tư duy để giải quyết những rào cản từ thế giới ảo đến thế giới thực Đồng thời những game chiến thuật đồng đội giúp bạn tăng khả năng làm việc nhóm, suy nghĩ tạo ra lối chơi hay, phối hợp ăn ý với đồng đội, xử lý tốt hơn nếu xảy ra những tình huống mâu thuẫn

+ Tăng cường thị lực, cải thiện tầm nhìn và sự tập trung: Điều này sẽ không hề vô lí nếu bạn không ngồi lì hàng giờ đồng hồ nhìn chằm chằm vào màn hình liên tục Một số thể loại game buộc bạn duy trì sự tập trung, mở rộng cảm giác không gian và thị lực bao quát; luyện cho não bộ của bạn cách tích hợp ngay từ những chi tiết nhỏ

Đó chỉ là một số ít trong rất nhiều lợi ích của Game – miễn là bạn khai thác đúng cách và đúng mục đích mà thôi.

Nhận thức được những giá trị to lớn ấy, nhóm chúng em đã chọn đề tài “Xây dựng game bắn súng 2D” Bản báo cáo này là toàn bộ nội dung, quá trình và những vấn đề liên quan để xây dựng sản phẩm Tất cả được bao gồm trong 8 chương:

Trang 13

Chương I: Giới thiệu đề tài

Giới thiệu chung về đề tài: xác định mục tiêu và phạm vi dự án, đưa ra lý do lựa chọn đề tài, kết quả dự kiến đạt được của đề tài.

Chương II: Phân tích yêu cầu

Xác định rõ những yêu cầu dự án: yêu cầu về kiến thức, yêu cầu kĩ thuật, yêu cầu nhân sự, yêu cầu tài nguyên, yêu cầu về đồ họa, âm thanh, yêu cầu về hiệu suất.

Chương III: Thực hiện thiết kế

Hệ thống các phần thiết kế chính của sản phẩm: thiết kế giao diện, thiết kế nhân vật, thiết kế vũ khí, thiết kế kẻ địch, thiết kế map, thiết kế dữ liệu

Chương IV: Phát triển

Xác định: lựa chọn công nghệ, ngôn ngữ lập trình, xây dựng cơ sở hạ tầng của game, phát triển gameplay và các tính năng tương tác, tạo đồ họa, âm thanh cho game

Chương V: Kiểm thử và sửa chữa

Xác định, phân loại và chọn lọc quy trình kiểm thử: kiểm thử đơn vị, kiểm thử tích hợp, kiểm thử chất lượng, các bản ghi chú và báo cáo lỗi

Chương VI: Quản lý dự án

Đưa ra lịch trình và quản lý tiến độ: quản lý nguồn lực quản lý nhân lực, quản lý rủi ro, quản lý tài nguyên tài chính.

Chương VII: Kết luận và báo cáo

Tóm tắt dự án, kết quả đã đạt được thực tế, các phần đóng góp, sáng tạo của từng thành viên, đóng góp kinh nghiệm, sự học hỏi trong quá trình xây dựng dự án.

Chương VIII: Tài liệu tham khảo

Danh sách tài liệu, các nguồn tham khảo

- Phụ lục (Phần kèm theo, không được tính vào số lượng chương nội dung)

Trang 14

CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI I.1 Lý do chọn đề tài

Lý do khách quan:

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 sự thích nghi tốt hơn, tiếp xúc sâu rộng hơn và rèn luyện tư duy logic hơn để bắt

Trang 15

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 đề.

I.2 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.

Trang 16

I.3 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.

I.4 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

I.5 Phương pháp tiếp cận

Cách tiếp cận: trực tiếp tham gia sử dụng các ứng dụng game tương tự đã được xây dựng trước đó nhằm trải nghiệm và rút ra kinh nghiệm, từ đó vạch ra định hướng chi tiết để xây dựng game của nhóm tốt hơn, chế độ phục vụ ổn định hơn.

Sử dụng các phương pháp nghiên cứu: tìm hiểu, nghiên cứu tài liệu về quy trình thiết kế game, kiến thức về Godot, tài liệu thiết kế đồ họa trên Internet và sách.

Trang 17

CHƯƠNG II: PHÂN TÍCH YÊU CẦU II.1 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:

>> Pre-Production (Tiền kỳ):

Trang 18

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 + Tạo storyboard.

+ Thiết kế thử thách, vạch ra cách hoạt động của game + Dự báo tài nguyên.

+ 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.

Trang 19

>> Post-Production (Hậu kỳ):

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.

Trang 20

Hình 10 Godot Engine

II.1.2.2 Vì sao là Godot ?

Hình 1 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ó:

Trang 21

+ Đ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

Trang 22

Bên cạnh danh tiếng của Unity, Unreal Engine cũng là một trong những engine phát triển trò chơi và ứng dụng 3D thuộc top đầu trên thị trường Không kém cạnh Unity, Unreal cũng có những ưu điểm lớn của nó.

+ Đồ họa và hiệu ứng chất lượng cao: một trong những điểm cộng đầu tiên tạo nên danh tiếng của Unreal Engine là khả năng tạo ra đồ họa và hiệu ứng 3D chất lượng cao, nổi tiếng là trong trò chơi AAA Hệ thống render của Unreal cho phép người thiết kế tạo ra hình ảnh đẹp mặt với hiệu ứng ánh sáng sắc nét và đổ bóng phức tạp.

+ Cộng đồng lớn và tài liệu phong phú: cũng giống như Unnity, Unreal Engine xây dựng được một cộng đồng lập trình viên rất lớn, thư viện hướng dẫn với rất nhiều tài liệu và khóa học, nhóm hỗ trợ được xây dựng giúp những người mới sử dụng có thể dễ dàng tiếp cận để học và giải quyết vấn đề

+ Đa nền tảng: Unreal hỗ trợ xây dựng game tương thích với nhiều nền tảng bao gồm PC, console, điện thoại di động, VR và rất nhiều hệ thống khác.

+ Blueprint Visual Scripting: tính năng nổi bật này là một công cụ được Unreal cung cấp cho phép người xây dựng lập trình mà không cần phải viết mã, nó thích hợp cho người mới bắt đầu hoặc các nghệ sĩ đồ họa dễ dàng tạo nên kết quả tốt hơn và nhanh hơn mà không cần can thiệp quá nhiều.

Có thể nói, những Engine được nêu ở trên hiện đang rất thịnh hành và được ưa chuộng sử dụng nhiều, hỗ trợ đắc lực trong việc thiết kế và xây dựng một trò chơi điện tử.

Nhưng đối với đề tài này, chúng tôi quyết định xây dựng “game bắn súng 2D” với sự hỗ trợ của Godot! Bởi lẽ:

Trang 23

+ Miễn phí và mã nguồn mở: Godot Engine là một dự án mã nguồn mở hoàn toàn miễn phí, giúp tiết kiệm chi phí phát triển và phù hợp cho cả những dự án cá nhân lẫn doanh nghiệp Với một nhóm các cá nhân là sinh viên Công nghệ Thông tin – đặc điểm phù hợp này là điểm cộng đầu tiên.

+ Dễ học và dễ sử dụng: Theo những đánh giá từ các lập trình viên, giao diện của Godot Engine được thiết kế trực quan, ngôn ngữ lập trình GDScript tương tự như Python, dễ học và dễ sử dụng, nó rất phù hợp với những người mới bắt đầu làm quen với việc thiết kế và xây dựng game.

+ Hỗ trợ nhiều nền tảng: Gdot hỗ trợ nhiều nền tnagr như Windows, macOS, Linux, Android, iOS, HTML5 và khá nhiều nền tảng khác, giúp người sử dụng phát triển trò chơi dễ dàng mà không quá lo ngại vấn đề xung đột.

+ Kích thước nhẹ và hiệu năng tốt: Godot có kích thước nhẹ, phù hợp cho quá trình sử dụng, nó làm việc tốt trên nhiều loại máy tính và thiết bị di dộng Đồng thời nó có khả năng tối ưu hóa hiệu suất để đảm bảo cho người chơi game một trải nghiệm mượt mà.

+ Cộng đồng tài liệu phong phú: dù chưa thể nói là có không giạn lớn bằng cộng đồng Unreal hay Unity, nhưng Godot cũng đã kịp tạo cho mình một cộng đồng sáng tạo và nhiệt tình, cùng với tài liệu ví dụ trực quan hỗ trợ tốt nhất cho người phát triển.

So sánh với các Engine khác:

Mặc dù là các bậc đàn anh trong số những engine hiện hành được ưu tiên nhất, nhưng để so sánh về độ phù hợp dành cho cá nhân – cụ thể là nhóm sinh viên chúng tôi, Godot lại là engine tạo được bước đà tốt nhất.

+ Kích thước ứng dụng: Unity – những ứng dụng hay game được phát triển từ engine này có kích thước lớn hơn so với với engine khác, đặc

Trang 24

biệt là khi bạn sử dụng nhiều tài nguyên và plug-in từ Asset Store Unreal cũng đòi hỏi ở người phát triển một hệ thống máy tính đủ mạnh và hao tốn tài nguyên hệ thống cao để phát triển và chạy các trò chơi cũng như ứng dụng 3D Trong khi đó, Godot lại giải quyết khá ổn vấn đề này Với kích thước nhẹ, dung lượng thấp, phù hợp để làm việc tốt trên nhiều loại máy tính cũng như thiết bị di động mà chúng tôi có thể đầu tư được.

+ Hiệu năng: Hiện tại, mặc dù Unity có khả năng tối ưu hóa hiệu năng, tuy nhiên, việc thiết kế và phát triển trò chơi từ engine này đòi hỏi người phát triển có kiến thức và một trình độ tốt về tối ưu hóa để giảm thiểu tối đa hiện tượng giật lag cũng như tính toán để tối thiểu mức tiêu tốn tài nguyên Unreal Engine cũng không khác biệt hơn Unity về vấn đề này Trong khi đó, Godot lại có thể đảm bảo trải nghiệm tốt và mượt mà hơn.

+ Cấu trúc dự án: đối với những người mới bắt đầu, cấu trúc dự án của Unity hay Unreal thực sự là một vấn đề khó khăn bởi nó không rõ ràng, đặc biệt là trong các dự án lớn, gây trở ngại trong việc quản lý mã nguồn.

Ngược lại, Godot với một giao diện trực quan và dễ sử dụng, dễ quản lý, sẽ là điểm cộng phù hợp để lựa chọn.

+ Giấp phép và kinh phí: Unity và Unreal đều là các engine có thể cung cấp phiên bản miễn phí, tuy nhiên, muốn khai thác tốt mọi chức năng để tạo ra một sản phẩm hoàn chỉnh là có giới hạn Để loại bỏ những hạn chế và sử dụng các tính năng mạnh mẽ hơn, người phát triển game cần phải trả chi phí cho các điều khoản này Nhưng Godot lại là một engine miễn phí hoàn toàn.

+ Hạn chế kiểm soát và giới hạn nền tảng: Trong một số trường hợp, Unity có thể sẽ hạn chế sự kiểm soát của bạn trong việc xử lý nhiều

Trang 25

khía cạnh của trò chơi, đặc biệt là trong việc xử lý sâu các đối tượng và sự tương tác phức tạp Trong khi đó, Unreal lại giới hạn khi phát triển trò chơi cho một số thiết bị di dộng có cấu hình thấp Với tình hình sử dụng thiết bị di dộng cực kỳ nhiều như hiện nay, giới hạn này là một bất lợi Godot sẽ xử lý ổn thỏa vấn đề này mà không có sự hạn chế kiểm soát hay giới hạn nền tảng.

II.1.2.3 Tổng quan về các thành phần trong Godot

Trong Godot, bạn chia nhỏ trò chơi của mình thành các Scenes có thể sử dụng lại.

Cảnh có thể là một nhân vật, vũ khí, menu trong giao diện người dùng, một ngôi nhà, toàn bộ cấp độ hoặc bất cứ thứ gì bạn có thể nghĩ ra Các cảnh của Godot rất linh hoạt; chúng đảm nhận vai trò của cả tiền chế và cảnh trong một số công cụ trò chơi khác.

Hình 2.a Thành phần Scenes

Bạn cũng có thể lồng các Scenes Ví dụ: bạn có thể đặt nhân vật của mình vào mộtcấp độ và kéo và thả một Scenes như một phần tử con của Scenes đó.

Trang 26

Hình 2.b Thành phần ScenesNodes

Một scene bao gồm một hoặc nhiều nodes Nodes là các khối xây dựng nhỏ nhất

của trò chơi mà bạn sắp xếp thành cây Đây là một ví dụ về các nodes của một nhân vật.

Hình 3.a Thành phần Nodes

Lưu ý cách các nodes và scene trông giống nhau trong trình chỉnh sửa Khi bạn lưu một cây nodes làm scene, nó sẽ hiển thị dưới dạng một nodes duy nhất, với cấu trúc bên trong của nó được ẩn trong trình chỉnh sửa Godot cung cấp một thư viện phong phú về các loại nodes cơ sở mà bạn có thể kết hợp và mở rộng để xây dựng những loại nodes mạnh hơn Giao diện 2D, 3D hoặc người dùng, bạn sẽ thực hiện

Trang 27

Hình 3.b Thành phần Nodes

The scene tree

Tất cả các scenes trong trò chơi của bạn đều tập hợp lại trong scene tree, nghĩa đen

là một scene tree Và vì scene là cây của nút, nên cây scene cũng là cây của nút Nhưng sẽ dễ dàng hơn khi nghĩ về trò chơi của bạn dưới dạng các cảnh vì chúng có thể đại diện cho các nhân vật, vũ khí, cánh cửa hoặc giao diện người dùng của bạn.

Trang 28

Hình 4 Thành phần The scene treeSignals

Các node phát ra tín hiệu khi một số sự kiện xảy ra Tính năng này cho phép bạn làm cho các node giao tiếp mà không cần nối cứng chúng bằng mã Nó mang lại cho bạn rất nhiều sự linh hoạt trong cách bạn cấu trúc các cảnh của mình

Trang 29

Hình 5 Thành phần Signals

The Project Manager(Quản lý dự án)

Khi bạn khởi chạy Godot, cửa sổ đầu tiên bạn nhìn thấy là Trình quản lý dự án Trong tab mặc định Local Project, bạn có thể quản lý các dự án hiện có, nhập hoặc tạo dự án mới, v.v.

Hình 6.a Thành phần The Project Manager

Ở đầu cửa sổ, có một tab khác có tên “Asset Library” Bạn có thể tìm kiếm các dự án demo trong thư viện tài sản nguồn mở, bao gồm nhiều dự án do cộng đồng phát triển.

Hình 6.b Thành phần The Project Manager

Trang 30

Bạn cũng có thể thay đổi ngôn ngữ của trình soạn thảo bằng cách sử dụng menu thả xuống ở bên phải phiên bản của công cụ ở góc trên bên phải của cửa sổ Theo mặc định, nó bằng tiếng Anh (EN).

Hình 6.c Thành phần The Project Manager

Trình Soạn Thảo Của GoDot

Khi bạn mở một dự án mới hoặc một dự án hiện có, giao diện của trình soạn thảo sẽ xuất hiện Hãy nhìn vào các lĩnh vực chính của nó.

Hình 7.a Trình Soạn Thảo Của GoDot

Theo mặc định, nó có các menu, main screens và các nút chơi thử dọc theo cạnh trên của cửa sổ.

Trang 31

Hình 7.b Trình Soạn Thảo Của GoDot

Ở giữa là viewport với toolbar ở trên cùng, nơi bạn sẽ tìm thấy các công cụ để di chuyển, chia tỷ lệ hoặc khóa các nút của cảnh.

Hình 7.c Trình Soạn Thảo Của GoDot

Ở hai bên của khung nhìn có các bến cảng Và ở dưới cùng của cửa sổ là bảng điều khiển phía dưới.

Thanh công cụ thay đổi dựa trên ngữ cảnh và nút được chọn Đây là thanh công cụ 2D.

Hình 7.d Thanh công cụ Trình Soạn Thảo Của GoDot

Dưới đây là hình thanh công cụ 3D.

Hình 7.e Thanh công cụ Trình Soạn Thảo Của GoDot

Trang 32

Tab FileSystem liệt kê các tệp dự án của bạn, bao gồm tập lệnh, hình ảnh, mẫu âm

Trang 33

Hình 7.i Tab Inspector

Bảng điều khiển phía dưới, nằm bên dưới khung nhìn, là máy chủ dành cho bảng điều khiển gỡ lỗi, trình chỉnh sửa hoạt ảnh, bộ trộn âm thanh, v.v Chúng có thể chiếm không gian quý giá, đó là lý do tại sao chúng được gấp lại theo mặc định.

Hình 7.k Tab Control

Khi bạn nhấp vào một cái, nó sẽ mở rộng theo chiều dọc Dưới đây, bạn có thể thấy trình chỉnh sửa hoạt ảnh được mở.

Trang 34

Hình 7.l Tab Control

Màn Hình Chính

Có bốn nút màn hình chính được đặt chính giữa ở đầu trình chỉnh sửa: 2D, 3D, Script và AssetLib.

Bạn sẽ sử dụng màn hình 2D cho tất cả các loại trò chơi Ngoài các trò chơi 2D, màn hình 2D là nơi bạn sẽ xây dựng giao diện của mình.

Hình 8.a Màn hình chính

Trang 35

Trong màn hình 3D , bạn có thể làm việc với các mắt lưới, ánh sáng và cấp độ thiết kế cho trò chơi 3D.

Hình 8.b Màn hình thiết kế

Chú ý nút phối cảnh bên dưới thanh công cụ Nhấp vào nó sẽ mở ra danh sách các tùy chọn liên quan đến chế độ xem 3D.

Hình 8.c Thanh công cụ phối cảnh

Script screen là trình chỉnh sửa mã hoàn chỉnh với trình gỡ lỗi, tính năng tự động hoàn thành phong phú và tham chiếu mã tích hợp.

Trang 36

Hình 8.d Script Screen

Cuối cùng, AssetLib là một thư viện gồm các tiện ích bổ sung, tập lệnh và tài sản nguồn mở và miễn phí để sử dụng trong các dự án của bạn.

Hình 8.e AssetLib

Trang 37

II.2 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.

II.3 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”:

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

Tài liệu cùng người dùng

Tài liệu liên quan