Unreal Engine là gìUnreal Engine là một bộ công cụ lập trình trò chơi điện tử do lập trình viên 28 tuổi Tim Sweeney sáng tạo ra và được phát triển bởi Epic Games, giới thiệu lần đầutiên
Trang 1TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO ĐỒ ÁN KHMT
ĐỀ TÀI Xây dựng game 2D Run and Gun bằng Unreal Engine 5
Sinh viên thực hiện: Nguyễn Hồng Quân
Mã SV: 2021050544
Hà Nội – 2024
Trang 2Tổng quan đề tài
1 Lý do chọn đề tài
Ngày nay, với sự phát triển mạnh mẽ của khoa học kỹ thuật, đặc biệt là khoa học máy tính, em đã chứng kiến sự tiến bộ đáng kinh ngạc trong lĩnh vực game Công nghệ thông tin đã mang lại nhiều cơ hội và lợi ích đáng kể cho ngành công nghiệp game, và việc chọn đề tài game có thể tận dụng những lợi ích này
Khoa học máy tính đã cung cấp cho ngành game những công cụ và công nghệtiên tiến để tạo ra những trải nghiệm đáng kinh ngạc Đồ họa chân thực, âm thanh sốngđộng, hiệu ứng hấp dẫn và trò chơi tương tác là những yếu tố mà công nghệ đã giúp cải thiện Việc chọn đề tài game có thể tận dụng những tiềm năng và khả năng mà công nghệ thông tin mang lại để tạo ra một trải nghiệm tuyệt vời cho người chơi Xây dựng một game là cơ hội để rèn luyện và phát triển kỹ năng công nghệ thông tin Việc phát triển một game yêu cầu kiến thức về lập trình, đồ họa, thiết kế giao diện, quản lý
dữ liệu và nhiều khía cạnh công nghệ khác
Đề tài game cho phép em áp dụng và nâng cao kỹ năng của mình trong lĩnh vực Khoa Học Máy Tính, đồng thời mang lại niềm vui và sự sáng tạo trong quá trình phát triển Lĩnh vực game mở ra một thế giới sáng tạo không giới hạn Bằng cách chọn
đề tài game, em có thể sáng tạo và thể hiện ý tưởng của mình thông qua việc xây dựng một thế giới ảo, các nhân vật và cơ chế trò chơi Do đó, để tạo nên một game giải trí vàthư giãn, thách thức và cạnh tranh, kết nối xã hội, phát triển kỹ năng rèn luyện tư duy
và làm hài lòng người chơi là một việc không hề dễ dàng
2 Mục tiêu đề tài
- Tạo ra một trò chơi hành động chất lượng cao: Mục tiêu là xây dựng một trò chơi side scroller run and gun 2d với đồ họa đẹp mắt, âm thanh hấp dẫn và gameplay mượt mà, mang lại trải nghiệm hành động tuyệt vời cho người chơi
- Cung cấp hệ thống điều khiển linh hoạt và phản ứng: Mục tiêu là tạo ra một hệthống điều khiển dễ dùng, cho phép người chơi di chuyển player và tấn công kẻ thù một cách linh hoạt và phản ứng nhanh
- Đa dạng hóa kẻ thù: Mục tiêu là cung cấp một loạt kẻ thù có khả năng tấn công và hành vi khác nhau
Trang 33 Giới thiệu ý tưởng
Game chủ yễu tập trung vào 1 nhân vật là Dwarven Swordwoman của dòng 2d platformer run and gun game giống những game như là Megaman, Cuphead,…Lối chơi của các game này liên quan chủ yếu tới việc di chuyển nhân vật phải
có 1 số kĩ năng nhật định để có thể vượt qua các chướng ngại vật ví dụ như chạm vào quái vật thì nhân vật mất đi 1 máu trong tổng 10 máu hiện có Nếu nhân vật mà người chơi điều khiển không được tốt và tuột xuống còn 0 máu thì
sẽ quay lại vị trí xuất phát của màn chơi hiên tại hoặc là checkpoint đã chạm vào, người chơi phải thật sự cẩn thận và có sự tập trung cao độ trong các bước
di chuyễn mỗi màn chơi đều có rất nhiều bẫy đặt sẵn và quái rất khó giết
4 Nội dung game
Trò chơi xoay quanh nhân vật Dwarven Swordwoman trong cuộc hành trình tìm kiếm quặng kim cương đỏ khổng lồ, được cất giấu trong những tàn tích cổ xưa nằm sâu dưới lòng đất hàng nghìn năm và bị che phủ bởi một ngôi mộ cổ Người chơi sẽ hóa thân thành nhân vật chính để truy tìm kho báu cổ đại này Trên hành trình, người chơi sẽ phải đối mặt với vô số loại quái vật khác nhau vàcần phải tập trung cao độ để vượt qua các thử thách và tìm được kho báu
5 Mục tiêu nghiên cứu
Nghiên cứu quy trình xây dựng trò chơi bằng UE5: Mặc dù unreal engine không có nhiều support trong việc tạo game theo dạng 2d mục tiêu này nhằm tìm hiểu và nắm vững quy trình phát triển trò chơi trong môi trường UE5 Bằng cách tìm hiểu về các công cụ, tài liệu và nguyên tắc phát triển game trong UE5, nghiên cứu sẽ giúp hiểu rõ các bước quan trọng từ việc thiết kế, lập trình, tạo hình đến kiểm tra và triển khai trò chơi
Trang 4Mục Lục
Contents
TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT 0
Tổng quan đề tài 1
1 Lý do chọn đề tài 1
2 Mục tiêu đề tài 1
3 Giới thiệu ý tưởng 2
4 Nội dung game 2
5 Mục tiêu nghiên cứu 2
Chương 1: Nội dung lý thuyết 4
I Công Cụ Unreal Engine (UE) 4
1 Unreal Engine là gì 4
2 Lịch sử hình thành 5
3 Mục đích hình thành và phát triển 6
4 Tính năng và công cụ phổ biến 7
5 Ưu điểm và nhược điểm của Unreal Engine 7
II Giới thiệu về Blueprint Visual Scripting 7
III Các nội dung cần thực hiện 8
Chương 2: Thiết Kế và Triển Khai Game 8
I Chức năng: 8
II Thiết Kế và Triển Khai Game 8
1 Thực hiện thiết kế các scence Menu, Map cho game 8
2 Thực hiện Task tạo animation và sprite cho game 12
3 Xử lý Logic của quái vật trong Game 14
4 Xử lý logic cho nhân vật trong game 20
Chương 3: Kết Luận 21
Trang 5Chương 1: Nội dung lý thuyết
1 Unreal Engine là gì
Unreal Engine là một bộ công cụ lập trình trò chơi điện tử do lập trình viên
28 tuổi Tim Sweeney sáng tạo ra và được phát triển bởi Epic Games, giới thiệu lần đầu
tiên trong tựa game bắn súng góc nhìn thứ nhất Unreal năm 1998 Ban đầu Unreal
Engine được sử dụng để phát triển cho các game bắn súng góc nhìn thứ nhất, sau đó Unreal Engine được sử dụng trong nhiều thể loại game khác, bao gồm cả các trò chơi chiến đấu, trò chơi nhập vai trực tuyến nhiều người chơi MMORPG và các game nhập vai khác Được viết bằng C++, Unreal Engine có tính di động cao, hỗ trợ nhiều loại nền tảng
Unreal Engine cho phép người dùng sáng tạo ra các hình ảnh 3D, các hiệu ứngtương tác với chất lượng hình ảnh cao và chuyển động mượt mà Nó nổi bật với tính
Trang 6tùy biến bản đồ cao, có thể tạo ra môi trường giàu vật thể với ánh sáng và màu sắc phong phú, mờ vân bềmặt khi ở xa Ngoài ra, game engine còn có thể xử lý hiệu ứng
âm thanh, hiệu ứng ánhsáng, hiệu ứng va chạm vật lý, xây dựng trí tuệ nhân tạo (AI)
để điều khiển hành động của nhân vật trong game
Unreal Engine có thể sử dụng cho việc phát triển game trên nhiều nền tảng từ
PC đếncác hệ máy console như PS4, Xbox One và Nintendo Switch Bên cạnh đó, nó cũng hỗ trợ hai ngôn ngữ lập trình là C++ và Python Unreal Engine đã tạo ra một cuộc cách mạng trong lịch sử ngành game, giúp tiết kiệm được nhiều thời gian công sức mà vẫn mang lại hiệu quả cao
2 Lịch sử hình thành
Unreal Engine đã được phát hành lần đầu tiên dưới dạng là một tựa game bắn súng sử dụng góc nhìn thứ nhất bởi Epic năm 1998 Trong đó Tim Sweeney người sáng lập ra phần mềm đã đóng góp 90% trong quá trình sáng tạo ra tựa game này
Tựa game Unreal lúc này được phát triển bởi hệ thống công cụ của UE, đã thu hút được rất nhiều người quan tâm Thời điểm đó, tựa game này đã mang đến cho người chơi các tùy biến bản đồ cực cao, khả năng tạo ra được môi trường nhiều vật thể
và ánh sáng cực phong phú UE đã chính thức tạo ra một cơn sốt lớn nhất thế giới game tại thời điểm lúc bấy giờ
Sau đó Unreal Engine đã được cải tiến liên tục, trải qua nhiều phiên bản khác nhau, được thêm thắt các tính năng mới UE đã trở thành một trong những công cụ không thể thiếu trong ngành sản xuất game bom tấn Hơn nữa UE còn được ứng dụng trong các công đoạn sản xuất phim bom tấn của Hollywood như là Jurassic Park, Independence Day,…
Khả năng của UE chính là tạo ra được một thuật toán mới, kết xuất được đồ họa để có thể dựng được hình ảnh 3D của vật thể, tạo hiệu ứng cháy nổ như thật Hiện
UE đã cho ra mắt khá nhiều phiên bản đến bản Unreal Engine 5 đã khiến cả thế giới mãn nhãn và ngạc nhiên tột độ Từng chi tiết hiệu ứng trên bền mặt vật thể và hiệu ứngánh sáng trong game trở nên thật đến kinh ngạc
Đến năm 2014 thì UE đã được sách kỷ lục thế giới ghi nhận là một trong những game engine thành công nhất trên thế giới khi đạt được 408 tựa game sử dụng công nghệ này
2.1 Các phiên bản của Unreal Engine (UE)
2.1.1 Unreal Engine 1
Phiên bản Unreal Engine đầu tiên được ra mắt người chơi vào những năm 1998 Khi tựa game này đã được phát triển trên UE với tên là Unreal UE ban đầu chỉ là một công cụ hoàn toàn dựa vào kết xuất phần mềm, có nghĩa là các tính toán đồ họa được xử lý bởi CPU Theo thời gian, thì UE đã có thể tận dụng được các khả năng cung cấp bởi card đồ họa trong quá trình xử lý đồ họa
2.1.2 Unreal Engine 2
Phiên bản Unreal Engine 2 là bản kế nhiệm của bản đầu tiên được ra mắt sau đó 4 năm vào năm 2002 Khi mà Epic kết hợp với quân đội Hoa Kỳ cho ra một tựa game bắn súng ở góc nhìn thứ nhất để phục vụ cho việc tuyển dụng quân nhân
Trang 7Thế hệ này đã có những cải tiến đáng kể hơn trong mặt hiển thị, cũng như bộ công
cụ, khả năng chạy chi tiết hơn 100 lần so với thế hệ đầu Các công cụ đã được tích hợp nhiều tính năng hơn, bao gồm cả công cụ chỉnh sửa điện ảnh, trình xuất 3D,…2.1.3 Unreal Engine 3
Unreal Engine 3 là bản nâng cấp được ra mắt vào tháng 7 năm 2004 Với các tính năng mới được cập nhật như hiển thị cho các trình lập viên về thiết kế hướng đối tượng Tình kế xuất, hệ thống âm thanh, hệ thống vật lý, các công cụ đều đã rõ ràng, mạnh mẽ hơn so với phiên bản thứ 2
2.1.4 Unreal Engine 4
Unreal Engine thế hệ thứ 4 đã được công bố đến những người tham dự hội nghị phát triển trò chơi vào năm 2012 Phiên bản thứ 4 này đã được bổ sung nhiều tính năng chiếu sáng toàn cầu theo thời gian thực, có thể sử dụng theo dõi hình nón Voxel
2.1.5 Unreal Engine 5
Unreal Engine 5 là phiên bản được ra mắt mới nhất vào năm 2020 Một trong những tính năng mới của phiên bản này là Nanite Đây là một công cụ cho phép nhập tài liệu nguồn sáng ảnh để đạt được độ chi tiết cao hơn vào trong game Công
cụ này đã giúp cho các nhà phát triển game có thể dễ dàng tạo ra thế giới trò chơi chi tiết hơn mà không cần mất quá nhiều thời gian để tạo các chi tiết mới
3 Mục đích hình thành và phát triển
Unreal engine ra đời đã cung cấp cho các nhà phát triển game một bộ công
cụ nền đểphát triển đồ họa một cách dễ dàng hơn Từ unreal engine, người ta có thểphát triển những game có đồ họa đẹp như thật mà không cần mất nhiều thời gian vàcông sức Đặc biệt trong ngành công nghiệp game - một ngành vô cùng cạnh tranh
và có tốc độ phát triển theo cấp số nhân, thì những sản phẩm trí tuệ lại mang tính sống còn Unreal engine ra đời với mục đích giải quyết những yêu cầu cấp thiết về giảm thiểu chi phí và sáng tạo, để từ đó giảm giá thành và tiếp tục duy trì sức hút với người tiêu dùng
Bên cạnh đó, Unreal engine cũng thúc đẩy sự cạnh tranh bên trong nội bộ ngành công nghiệp game Trên nền của Unreal engine, các nhà phát triển sẽ phải
cố hết sức để vừa đạt được mức đồ họa "chuẩn" yêu cầu hiện tại, vừa "căng nét" hơn và độc đáo hơn để có thể ghi dấu ấn
4 Tính năng và công cụ phổ biến
Trang 8-Blueprints: Blueprints Visual Scripting cho phép bạn nhanh chóng chạy thử nghiệm và xuất bản ra một tựa game hoàn chỉnh một cách nhanh chóng Có thể thử sứctạo ra game của riêng mình mà không nhất thiết phải biết quá nhiều về lập trình.
-Tools: Unreal là một bộ công cụ đầy đủ để giúp xây dựng hoàn hảo mọi khía cạnh của Project Ngoài ra còn có những tính năng nâng cao như: physically-
basedrendering, UI, animation, visual effects, networking, và asset management
-Marketplace: Cung cấp cho người dùng những bảng mã về game giúp tăng tốc tiến độ lập trình và phát triển một Game bằng những dự án mẫu, art, audio,
blueprint logic sẵn có thậm chí là những dòng code C++ đã được viết trước
5 Ưu điểm và nhược điểm của Unreal Engine
-Ưu điểm :
+ Quy trình làm việc linh hoạt, tiết kiệm thời gian:
Với tất cả những dụng cụ hỗ trợ có sẵn trong Unreal Engine, người làm game, làm phim có thể dễ dàng tự tạo workflow, pipeline riêng, linh hoạt và phù hợp với công việc của họ
Unreal Engine đi theo hướng lập trình kéo – thả nhằm mục đích giảm thời gian lập trình, phù hợp với những game developer muốn nhìn thấy thành quả sau khi code lập tức Game developer có thể dùng tính năng kéo thả của Unreal Engine – được hỗ trợ bởi hệ thống Blueprint, để test logic cho đến khi ổn, nếu logic đúng thì viết lại bằng C++ Tuy nhiên, có những việc thì viết code sẽ nhanh hơn là kéo thả
+ Phù hợp với người dùng không giỏi code:
Unreal Engine có giao diện và cách sử dụng thân thiện với người mới, hoặc người chuyên làm nội dung game, không giỏi code như game artist, game designer,… nhờ vào hệ thống Blueprint
-Nhược điểm:
+ Hỗ trợ quá nhiều workflow:
Đây là một ưu điểm mà cũng là một nhược điểm của Unreal Engine Đối với những người mới sử dụng, người tự học sẽ dễ bị rối, không biết nên chọn workflow nào
+ Documentation không đầy đủ và chưa được cập nhật:
Documentation không đầy đủ là nhược điểm chung của nhiều game engine Trong quá trình làm việc, ta sẽ phát hiện có vài điều mà documentation chưa cập nhật so với phiên bản mới nhất của engine, viết không đủ Nguyên nhân chủ yếu là do tốc độ phát triển của game engine nhanh hơn tốc độ viết document
Trang 9BluePrint là một hệ thống trực quan và mạnh mẽ trong Unreal Engine 5 (UE5) để xây dựng logic trò chơi và hành vi của các đối tượng trong môi trường 3D cũng như là 2D.
Nó là một công cụ lập trình không cần viết mã, cho phép người dùng tạo ra các tác vụ, chức năng và hành vi trong trò chơi một cách dễ dàng
Trong BluePrint, người dùng sử dụng một giao diện trực quan dựa trên nút kéo và thả
để tạo ra các đối tượng và xây dựng logic BluePrint hỗ trợ một loạt các nút và chức năng có thể được kết hợp lại để tạo ra các hành vi phức tạp Người dùng có thể kéo và thả các nút, kết nối chúng lại với nhau và thiết lập các thông số để xác định cách các đối tượng trong trò chơi tương tác với nhau và với người chơi
BluePrint hỗ trợ việc tạo ra các tác vụ như di chuyển đối tượng, kiểm tra va chạm, xử
lý sự kiện, tạo hiệu ứng đặc biệt, điều khiển ánh sáng và âm thanh, và nhiều hơn nữa
Nó cũng cho phép người dùng tạo ra các biểu đồ trạng thái phức tạp để quản lý hành vicủa nhân vật trong trò chơi, ví dụ như trạng thái đứng, chạy, nhảy
Tóm lại, BluePrint là một công cụ mạnh mẽ và trực quan trong UE5 cho phépngười dùng xây dựng logic và hành vi trong trò chơi một cách dễ dàng và không cần viếtmã
Nó phù hợp cho cả người dùng không chuyên nghiệp và lập trình viên kinh nghiệmđể tạo ra các trò chơi độc đáo và phong phú
Để xây dựng game hoàn chỉnh, cần có các nội dung sau:
- Thiết kế môi trường và nhân vật: Cần thiết kế dungeon và các nhân vật liên quan đến câu chuyện như Dwarven Swordwomen và những con quái vật trong dungeon
- Hệ thống cơ chế chơi: Điều khiển và tương tác với nhân vật, môi trường cần phát triển hệ thống chơi phù hợp với câu chuyện
- Cơ chế chiến đấu: Cần thiết kế hệ thống chiến đấu để người chơi có thể đối đầu với những con quái vật
-Âm thanh và hình ảnh: Thiết kế âm thanh và hình ảnh phù hợp
.- Testing và debugging: Kiểm tra và sửa lỗi trong game để đảm bảo tính năng
hoạtđộng tốt và trải nghiệm chơi game tốt hơn
Chương 2: Thiết Kế và Triển Khai Game
-Hold J: Charge Attack
1 Thực hiện thiết kế các scence Menu, Map cho game
Trang 10Hình 1.1 – Menu Map
Hình 1.1 – Options Map
Trang 11Hình 1.3- Map01.1
Hình 1.4-Map01.2
Trang 12Hình 1.5- Map02.1
Hình 1.6-Map02.2
Trang 13Hình 1.7-Map03
2 Thực hiện Task tạo animation và sprite cho game
- Nội Dung: Tạo animation cho nhân vật và quái bằng paper2d và paperzd
- Cơ sở lý thuyết:
+ Paper 2D, được giới thiệu trong Unreal Engine 4 (UE4) là một hệ thống dựa trên sprite để tạo ra các trò chơi 2D và 2D/3D hybrid hoàn toàn trong editor Tại cốt lõi của Paper 2D là Sprites Bạn có thể chỉnh sửa Sprites bên trong UE4 bằng Sprite Editor và tạo hoạt ảnh dựa trên sprite với Flipbooks (hoạt ảnh hóa một loạt các Sprites tuần tự bằng cách sử dụng các khung hình chính và chỉ định thời lượng hiển thị chúng theo khung hình)
+ Paper ZD, là một plugins miễn phí được phát triển bởi Critical Failure Studio có thể tìm thấy ở trong Unreal Engine Market Place Plugins này được tạo ra bởi vì sự hỗ trợ cho animation cho 2D objects của Unreal Engine rất thấp Với Paper ZD, bạn có thể tạo Animation Blueprint 2D một cách dễ ràng