DANH MỤC CÁC THUẬT NGỮ VIẾT TẮTLà một hệ thống phần mềm được sử dụng để phát triển và chạy các trò chơi máy tính.. Là một bộ công cụ phát triển phần mềm được cung cấp cho các nhà phát tr
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA ĐA PHƯƠNG TIỆN
TIỂU LUẬN MÔN LẬP TRÌNH GAME CƠ BẢN Tìm hiểu về một số engine được dùng để phát triển game
Giảng viên: Phạm Vũ Minh Tú
Nguyễn Quốc Đạt Nguyễn Văn Tuấn Nguyễn Hồng Nhung
HÀ NỘI, THÁNG 11/2023
Trang 26 Khả năng kết xuất và đa nền tảng:
7 Công cụ phân tích và gỡ lỗi:
8 Quản lý dự án:
9 Cộng đồng và thư viện tài nguyên:
10 Ưu điểm và nhược điểm:
6 Khả năng kết xuất và đa nền tảng:
7 Công cụ phân tích và gỡ lỗi:
8 Cộng đồng và thư viện tài nguyên:
9 Ưu điểm và nhược điểm:
6 Khả năng kết xuất và đa nền tảng:
7 Công cụ phân tích và gỡ lỗi:
8 Cộng đồng và thư viện tài nguyên:
Trang 39 Ưu điểm và nhược điểm:Bảng so sánh
Trang 4DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT
Là một hệ thống phần mềm được sử dụng
để phát triển và chạy các trò chơi máy tính
Nó cung cấp các chức năng và công cụ để quản lý đồ họa, vật lý, âm thanh, cũng như quy tắc chơi trong trò chơi, giúp nhà phát triển tạo ra trải nghiệm trò chơi tốt hơn
Không gian hai chiều, thường được sửdụng để mô tả hình ảnh, đồ họa hoặc bản
vẽ trên mặt phẳng, không có chiều sâu thứ
Không gian ba chiều, thường được sửdụng để mô tả các đối tượng, mô hình, hoặc mô phỏng có chiều sâu và thể hiện thông tin về độ cao, rộng và sâu
Công nghệ tạo ra môi trường ảo hoàn toàn, trong đó người dùng hoàn toàn ngập trong một thế giới tạo ra bởi máy tính AR (Augmented Reality) là công nghệ kết hợp thông tin thực tế với thông tin ảo, tạo ra một môi trường mở rộng cho người dùng
Một lĩnh vực trong khoa học máy tính và công nghệ liên quan đến việc phát triển máy tính hoặc hệ thống có khả năng học
và thực hiện các nhiệm vụ thông minh
Trang 5giống như con người AI có thể bao gồmhọc máy (machine learning), xử lý ngôn ngữ tự nhiên (natural
processing), thị giác máy tính (computer vision), và nhiều công nghệ khác để tạo ra các ứng dụng thông minh và tự động
Một chương trình máy tính hoặc máy tự động thiết kế để thực hiện các nhiệm vụ cụ thể, thường được sử dụng để tự động hóa công việc trên Internet hoặc giao tiếp với con người thông qua chat hoặc các tương
Ám chỉ đến máy tính cá nhân, một thiết bị tính toán dành cho sử dụng cá nhân hoặc văn phòng
Là một bộ công cụ phát triển phần mềm được cung cấp cho các nhà phát triển để giúp họ phát triển ứng dụng hoặc phần mềm cho một nền tảng cụ thể, như các ứng dụng di động hoặc ứng dụng trên một hệ thống cụ thể
Trang 6DANH MỤC CÁC HÌNH ẢNH
Hình A Các Game Engine hiện có trên thị trường
Hinh I.3 Ngôn ngữ lập trình C#
Hình I.8.1 Quản lý dự án trong Unity
Hình II.1 Hình ảnh trong phim Jurassic Park được tạo từ UE
Hình II.9.1.1 Unreal engine hỗ trợ nhiều công cụ
Hình II.9.1.2 Unreal engine trong thiết kế nội thất Hình III.4.1 Giao diện cơ bản CryEngine
Trang 7Game Engine là công cụ để các nhà sáng lập thiết kế các trò chơi điện tử Phần mềm này cung cấp tài nguyên cho các nhà sản xuất phát triển game Thông thường bao gồm các công cụ vật lý, kết xuất đồ hoạ cho hình ảnh 2D hoặc 3D, dựng ảnh đồ thị, tạo dòng dữ liệu xử lý, dựng ảnh đồ thị, quản lý bộ nhớ,…Game Engine thường áp dụng cho các tựa game bắn súng, nhập vai 3D với ngôn ngữ lập trình phức tạp.
Với sự phát triển của công nghệ thông tin và nhu cầu của người dùng, ngành công nghệ game có sự cạnh tranh khốc liệt, đòi hỏi nhà sản xuất luôn sáng tạo
và cập nhật để không bị đào thải Game Engine mang đến một bộ công cụ nền
để các nhà sản xuất phát triển và có thể tái sử dụng từng phần giúp tiết kiệm thời gian, chi phí cũng như công sức hiệu quả Game Engine hiện nay luôn được phát triển, các game Engine sử dụng các ngôn ngữ lập trình như Java và C# hay NET hay Python để phát triển
Một số các engine phổ biến được sử dụng: Unity, Unreal, CryEngine, Cocos2D, GameMaker Studio, PlayCanvas…
hiện có trên thị trường
Một số các Game Engine phổ biến
Trang 8Lịch sử ra đời:
là một game engine đa nền tảngđược phát triển bởi Unity Technologies, chủ yếu để phát triển video game cho máy tính, consoles và điện thoại Lần đầu tiên nó được công bố chạy trên hệ điều hành OS X, tại Apple's Worldwide Developers Conference vào năm 2005
Hơn 50% số lượng game trên thị trườngđược sản xuất bởi Unity Một vài tựa game vô cùng nổi tiếng được tạo ra bởi Unity có thể được kể đến như Pokémon
Go, Hearthstone, Ori And The Blind Forest, Monument Valley, Axie Infinity,…
Độ “phủ sóng” của Unity rất rộng, có thể được áp dụng phổ biến trong nhiều dòng game khác nhau từ game “hạng nặng” Triple A (AAA) cho đến game giáo dục đơn giản cho con nít
Trang 9Các phiên bản:
Cho tới hiện tại, đã có 6 phiên bản Unity được phát hành
: Đây là phiên bản đầu tiên của
: Đã hỗ trợ (đã bị loại sau khi phát hành
Ngoài ra, Unity cũng có các phiên bản Long Term Support (LTS) cho người dùng muốn duy trì và phát triển game/content trên một phiên bản ổn định trong thời gian dài Các phiên bản LTS bao gồm:
Ngôn ngữ lập trình sử dụng:
Unity sử dụng ngôn ngữ lập trình C# cho việc phát triển ứng dụng và trò chơi Đây là ngôn ngữ duy nhất được Unity hỗ trợ 1 cách chính thức
Trang 10C# là một ngôn ngữ lập trình hướng đối tượng, nếu bạn mới bắt đầu với Unity, nó là ngôn ngữ tốt nhất để bắt đầu.
nity từng hỗ trợ UnityScript (hay còn gọi là Javascript cho Unity) và Boo trong quá khứ Tuy nhiên, từ 2016, hãng đã loại bỏ ngôn ngữ này và tập trung vào C#
Hinh I.3 Ngôn ngữ lập trình C#
Giao diện cơ bản:
Scene View (Khung Hiển Thị Khung Cảnh): Đây là nơi bạn xây dựng và chỉnh sửa các khung cảnh (scenes) trong trò chơi Bạn có thể thêm các đối tượng, ánh sáng, camera và hiệu ứng vào khung cảnh từ đây
Trang 11Game View (Khung Hiển Thị Trò Chơi): Khung này cho bạn xem trước trò chơi trong thời gian thực Bạn có thể kiểm tra cách trò chơi sẽ hiển thị cho người chơi, cho phép bạn xem trước và kiểm tra trò chơi trong quá trình phát triển, từ đó phát hiện và sửa lỗi cũng như đánh giá trải nghiệm của người chơi.
Hierarchy (Danh Sách Đối Tượng): Danh sách này hiển thị tất cả các đối tượng trong khung cảnh Bạn có thể tìm kiếm, sắp xếp và quản lý các đối tượng từ đây
Trang 12Inspector (Bảng Thuộc Tính): Khi bạn chọn một đối tượng trong danh sách, thông tin chi tiết về đối tượng đó sẽ hiển thị ở đây Bạn có thể chỉnh sửa các thuộc tính của đối tượng từ bảng này Là nơi mà bạn có thể xem
và chỉnh sửa các thuộc tính và thành phần của đối tượng Tính năng này
signer cũng có thể tham gia vào quá trình làm game mà không cần biết quá nhiều về
Trang 13Project (Dự Án):Đây là nơi mà các developer quản lý tất cả tài nguyên, script và tệp liên quan đến dự án làm game Developer có thể tổ chức các tệp theo thư mục để dễ dàng tìm kiếm và kéo thả vào scene mình muốn.
Trang 14Console (Bảng Ghi Chú): Bảng này hiển thị thông báo lỗi, cảnh báo và ghi chú từ Unity hoặc từ mã lập trình của bạn.
Trang 15Toolbar (Thanh Công Cụ): Thanh này chứa các công cụ để tạo, chỉnh sửa
và quản lý trò chơi Bạn có thể thay đổi chế độ xem, tạo đối tượng mới và thực hiện các tác vụ khác từ thanh này
Unity có một cộng đồng lớn và phong phú với các tài liệu, tài nguyên và thư viện của cộng đồng, giúp bạn dễ dàng mở rộng tính năng của ứng dụng hoặc trò chơi của
Trang 16Unity có khả năng tự động đồng bộ hóa tài nguyên và mã nguồn cho các nền tảng khác nhau, giúp giảm thời gian và công sức cần thiết để phát triển và duyệt qua các phiên bản nền tảng khác nhau.
6.2 Khả năng kết xuất:
Độ phân giải và chất lượng hình ảnh: Unity cho phép bạn điều chỉnh độ phân giải, chất lượng hình ảnh và hiệu suất kết xuất dựa trên nền tảng và thiết bị cụ thể
Unity hỗ trợ nhiều hiệu ứng đặc biệt như ánh sáng và bóng, phản xạ, hiệu ứng nước, hiệu ứng hỏa hoạn, và nhiều hiệu ứng khác để làm cho hình ảnh trở nên sống động và hấp dẫn
Ánh sáng và bóng: Unity hỗ trợ hệ thống ánh sáng và bóng mạnh mẽ để tạo ra cảnh quang học phức tạp, bao gồm ánh sáng điểm, ánh sáng môi trường, bóng đổ, và phản xạ
Công cụ phân tích và gỡ lỗi:
User Profile: Là một công cụ quan trọng để theo dõi hiệu suất ứng dụng của bạn Nó cung cấp thông tin về FPS, thời gian CPU và GPU, và sử dụng bộ nhớ Điều này giúp bạn xác định và khắc phục vấn đề về hiệu suất
Trang 17Unity Analytics: Cho phép bạn theo dõi hành vi của người dùng trong ứng dụng hoặc trò chơi của bạn Bạn có thể thu thập dữ liệu về người dùng,
sự tương tác, và nhiều thông tin quan trọng khác để cải thiện trải nghiệm của họ
thể sử dụng các công cụ tích hợp sẵn trong Visual Studio để gỡ lỗi và phân tích mã nguồn 1 cách dễ dàng
Quản lý dự án:
Quản lý dự án trong Unity
Khi tạo 1 dự án trong Unity, nó tổ chức và quản lý dự án theo 1 cấu trúc thư mục cụ thể
Trang 18Thư mục Assets: Chứa tất cả các tài nguyên của dự án, bao gồm hình ảnh,
âm thanh, mô hình 3D, script, văn bản và các tài liệu khác Đây là nơi bạn
sẽ làm việc chủ yếu trong quá trình phát triển
Packages: Chứa các gói tài nguyên ngoài của Unity, bao gồm các gói mở rộng và plugin từ Unity Asset Store hoặc các nguồn khác
Cộng đồng và thư viện tài nguyên:
Unity có cộng đồng, để hỗ trợ mỗi khi người dùng có thắc mắc về cách sử dụng hoặc về các phiên bản cập nhật, khi gặp lỗi, bug
Bên cạnh, Unity còn có một kho tài nguyên, gọi là “chợ” plug
Ở đây, bạn có thể tải về các gói như mô hình 3D, vật liệu, âm thanh, script và nhiều thứ khác, giúp tiết kiệm thời gian làm dự án Trên chợ có những gói package do chính Unity hoặc các nhà phát triển khác sản xuất Thậm chí, có những nhà phát triển đăng tải toàn bộ một trò chơi hoặc một mô hình 3D hoàn chỉnh, bạn chỉ cần tải về và sử dụng Hầu hết tất cả những plug in trên chợ đều phải trả phí
Ưu điểm và nhược điểm:
10.1 Ưu điểm:
Editor: Với Editor, nhà phát triển không cần thiết phải viết Code để sắp đặt các đối tượng trong Game như những Engine khác mà Developer có thể kéo thả, thay đổi vị trí của từng đối tượng trong Game trực tiếp trên
Trang 19Đa nền tảng là lợi ích thứ 2 rất quan trọng với nhiều công ty cũng như developer Vì với việc bạn tạo ra Game mà Game đó có thể chạy được trên hầu hết những hệ điều hành quan trọng như Desktop (Mac, Window
và Linux) hay Mobile (iOS, Android) hoặc Web (WebGL) thì cũng đã tiết kiệm công sức cũng như chi phí rất nhiều cho doanh nghiệp đó.Miễn phí: Và yếu tố cuối cùng chính là chi phí Với Unity, miễn phí là một điểm thu hút rất nhiều Developer chọn làm việc với game engine này Tuy nhiên, với các game được tạo ra miễn phí thì bắt buộc phải có Logo
10.2 Nhược điểm:
Dung lượng Unity game bundle khá lớn: So với những game engine khác, Unity sản xuất game có dung lượng nặng nên đây là một điểm trừ lớn Thậm chí, game web do Unity sản xuất có thể có dung lượng lên đến cả trăm MB lên web chạy không nổi Chính vì thế, cũng cùng một game đó thì game mobile lại chạy tốt trong khi game web lại giật, lag
Các phiên bản cập nhật: Trong nội bộ một team, hoặc giữa team phát triển
và khách hàng, sử dụng các phiên bản Unity khác năm với nhau thì khi
sh code, đẩy code lên cho member thì sẽ bị lỗi hình ảnh, script, code,… thậm chí là mất hết tiến độ
Lịch sử ra đời:
còn được gọi là UE, là một công cụ phát triển trò chơi điện tử của công ty phát triển phần mềm và trò chơi điện tử Epic Games Với công cụ này, các nhà phát triển có khả năng xây dựng mô phỏng, chỉnh sửa video hoặc âm thanh và hiển thị hình ảnh động
Trang 20Unreal được phát hành lần đầu dưới dạng trò chơi bắn súng góc nhìn thứ nhất bởi vào năm 1998, trong đó Tim Sweeney nhà sáng lập đã đóng góp đến 90% trong quá trình sáng tạo Game Unreal lúc này được phát triển bởi hệ thống công cụ Unreal Engine đã thu hút nhiều người quan tâm Lúc này, game mang đến cho người chơi tính tùy biến bản đồ cực cao, khả năng tạo ra môi trường giàu vật thể với ánh sáng và màu sắc phong phú Nó đã tạo nên một cơn sốt rất lớn trong thế giới game lúc bấy giờ
Unreal Engine liên tục được cải tiến, trải qua các phiên bản lại được thêm thắt các tính năng ấn tượng và trở thành bộ công cụ không thể thiếu để sản xuất game bom tấn Hơn nữa, Unreal Engine còn được ứng dụng trong các công đoạn sản xuất hiệu ứng cho các phim bom tấn như
Hình ảnh trong phim Jurassic Park được tạo từ UE
Khả năng của Unreal Engine chính là tạo ra các thuật toán mới, kết xuất
đồ họa (render) để dựng nên hình ảnh 3D của vật thể, cháy nổ trông như thật Hiện nay Unreal Engine đã cho ra mắt phiên bản
khiến cả thế giới game mãn nhãn và kinh ngạc tột độ Những hiệu ứng chi
Trang 21tiết trên bề mặt vật thể và hiệu ứng ánh sáng được engine này phô diễn cho thấy ranh giới giữa game và đời thật mong manh hơn bao giờ hết Đến năm 2014, Unreal Engine đã được Sách Kỷ lục Thế giới (Guinness
ghi nhận là game engine thành công nhất thế giới khi có đến hơn 408 tựa game trên thế giới sử dụng công nghệ này
Unreal Engine 3 (2006): Unreal Engine 3 đánh dấu bước nhảy vọt đáng
kể về chất lượng đồ họa và hiệu năng Nó đã giới thiệu các tính năng như bóng động, chiếu sáng toàn cầu và hệ thống kịch bản trực quan mạnh mẽ
Unreal Engine 4 (2014): Unreal Engine 4 đại diện cho một cuộc đại tu lớn của động cơ Nó đã giới thiệu một giao diện thân thiện với người dùng hơn, khả năng đồ họa nâng cao và hệ thống tập lệnh trực quan Blueprint, cho phép các nhà phát triển tạo cơ chế chơi trò chơi phức tạp mà không cần viết mã Unreal Engine 4 đã được áp dụng rộng rãi và hỗ trợ cchơi phổ biến như Fortnite, PUBG và Detroit: Become Human
Unreal Engine 5 (2021): Unreal Engine 5 nhằm mục đích cung cấp tính tương tác và tính chân thực hơn nữa trong trò chơi và các trải nghiệm thời gian thực khác
Các ngôn ngữ lập trình sử dụng:
Một trong những ưu điểm chính của Unreal Engine là hệ thống tập lệnh trực quan Blueprint, cho phép các nhà phát triển tạo cơ chế chơi trò chơi, logic và tương tác mà không cần viết mã Tuy nhiên, nó cũng cung cấp
Trang 22hỗ trợ đầy đủ cho lập trình bằng C++, cho phép các nhà phát triển tạo chức năng tùy chỉnh và tối ưu hóa hiệu suất.
Giao diện cơ bản:
Viewport (Khung Hiển Thị Khung Cảnh): Đây là nơi bạn xây dựng và chỉnh sửa các khung cảnh (scenes) trong trò chơi Bạn có thể thêm các đối tượng, ánh sáng, camera và hiệu ứng vào khung cảnh từ đây
World Outliner (Danh Sách Đối Tượng): Danh sách này hiển thị tất cả các đối tượng trong khung cảnh Bạn có thể tìm kiếm, sắp xếp và quản lý các đối tượng từ đây
Trang 23Details Panel (Bảng Thuộc Tính): Khi bạn chọn một đối tượng tronsách, thông tin chi tiết về đối tượng đó sẽ hiển thị ở đây Bạn có thể chỉnh sửa các thuộc tính của đối tượng từ bảng này.
Trang 24Content Browser (Dự Án): Dự án chứa tất cả các tài nguyên của trò chơi, bao gồm hình ảnh, âm thanh, tệp văn bản và các tài liệu khác Bạn có thể
tổ chức và quản lý tài nguyên từ đây
Toolbar (Thanh Công Cụ): Thanh này chứa các công cụ để tạo, chỉnh sửa
và quản lý trò chơi Bạn có thể thay đổi chế độ xem, tạo đối tượng mới và thực hiện các tác vụ khác từ thanh này
Blueprint Editor (Trình Soạn Thảo Blueprint): Đây là nơi bạn tạo và chỉnh sửa các Blueprints, một hệ thống tập lệnh trực quan cho phép bạn tạo cơ chế chơi trò chơi, logic và tương tác mà không cần viết mã
Trang 25Unreal còn có những tính năng nâng cao như:
Marketplace: Cung cấp cho bạn những bảng mã về game giúp bạn có thể 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
Khả năng kết xuất và đa nền tảng:
6.1 Khả năng đa nền tảng:
Đa nền tảng: Unreal Engine cho phép phát triển game trên các hệ máy
, từ những tựa game 2D đơn giản đến những tựa game 3D đẹp mắt, mở rộng khả năng sáng tạo trên các thiết bị di động Nó hỗ trợ