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

Báo Cáo Thực Tập Tốt Nghiệp Đề Tài Tìm Hiểu Về Lập Trình Game 2D Với Unity.pdf

17 0 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

Nội dung

Trang 1

TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘIKHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO THỰC TẬP TỐT NGHIỆPĐề tài:

TÌM HIỂU VỀ LẬP TRÌNH GAME 2D VỚI UNITY

Sinh viên thực hiện: Hoàng Minh HùngNgành : Công nghệ thông tin

Lớp : PM25.14

Hà Nội - Năm 2024

Trang 2

LỜI CẢM ƠN

Em xin gửi lời cảm ơn chân thành tới Ban lãnh đạo của Công ty CP CodeGym Việt Nam, các anh chị trong công ty đã tận tình hướng dẫn, chỉ bảo trong quá trình em thực tập tại công ty Đồng thời em xin được gửi lời cảm ơn chân thành tới quý thầy,cô Khoa Công nghệ thông tin, Đại học Kinh doanh và công nghệ Hà Nội đã tận tìnhchỉ bảo, hướng dẫn em trong quá trình thực tập, khi gặp phải những khó khăn và vướng mắc liên quan đến kiến thức chuyên môn Em xin chân thành cảm ơn.

Trang 3

NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN Ở ĐƠN VỊ THỰC TẬP

Trang 4

Mục lục

TrangLời cảm ơn

Nhận xét của cán bộ hướng dẫn thực tậpNội dung báo cáo thực tập

Phần 1 Cơ sở lý luận1.1 Giới thiệu về tổ chức thực tập

1.2 Nhiệm vụ chính được giao1.3 Lý do chọn đề tài1.4 Công cụ thực hiện đề tài

1.5 Ngôn ngữ và giải thuậtPhần 2 Thực trạng đề tài2.1 Thực trạng đề tài ở Việt NamPhần 3 Kết quả đạt được qua đợt thực tập

Trang 5

NỘI DUNG BÁO CÁO THỰC TẬP PHẦN 1 CƠ SỞ LÝ LUẬN

1.1 Giới thiệu về tổ chức nơi thực tập: Công ty CP CodeGym.

- Khẩu hiệu : CHÚNG TÔI LÀ CODEGYM NỖ LỰC ĐỂ MANG ĐẾN NHIỀU GIÁ TRỊ HƠN CHO CUỘC SỐNG Công nghệ Thông tin là một ngành lớn và quan trọng của Việt Nam, nhưng sự thiếu hụt nhân lực cả về số lượng và chất lượng luôn là một rào cản để phát triển Nhân lực là mấu chốt quan trọng nhất để thúc đẩy ngành CNTT nước nhà phát triển Thấu hiểu được tình trạng đó, các nhà sáng lập của CodeGym – vốn xuất thân là các lập trình viên nhiều năm kinh nghiệm, giảng viên, chủ doanh nghiệp phần mềm có tâm huyết – đã quyết định xây dựng nên một mô hình đào tạo lập trình đột phá, giúp nâng cao hiệu quả và chất lượng đào tạo Không chỉ đủ để đóng góp một số lượng lớn lập trình viên cho ngành, mà còn thông qua đó nâng cao tiêu chuẩn chất lượng của ngành.

- Loại hình doanh nghiệp: Công ty cổ phần

1.2 Nhiệm vụ chính được giao

- Tìm hiểu lập trình game 2D cơ bản với Unity

1.3 Lý do lựa chọn đề tài

Thực trạng ngành game Việt Nam hiện nay :Phát triển mạnh mẽ:

Thị trường tiềm năng:

o Số lượng game thủ đông đảo: 60% dân số tham gia chơi game, trong đó 43% chơi game mobile.

o Tỷ lệ người chơi chi trả cho game gia tăng: 75% người chơi sẵn sàng chi tiền cho game.

Trang 6

o Lượng người xem eSports cao: 23 triệu người xem các giải đấu eSports.

Sự tham gia của các nhà đầu tư:

o Lượng vốn đầu tư vào ngành game tăng cao: 200 triệu USD trong năm 2022.

o Xuất hiện nhiều quỹ đầu tư chuyên biệt cho ngành game.

o Các startup game thu hút được nhiều vốn đầu tư.

Sự phát triển của các phân khúc game:

o Game mobile: Phân khúc phát triển mạnh nhất, chiếm 54% thị phần.

o Game PC: Dù bị ảnh hưởng bởi sự phát triển của game mobile nhưng vẫn duy trì lượng người chơi nhất định.

o Game console: Thị trường đang mở rộng với sự ra mắt của PlayStation 5 và Xbox Series X/S.

o Nhu cầu nhân lực cao nhưng nguồn cung chưa đáp ứng đủ.

o Chất lượng nhân lực chưa đồng đều.

o Thị trường game có nhiều nhà phát hành, cạnh tranh cao.

o Các game nước ngoài chiếm ưu thế trên thị trường.

Vấn đề quản lý:

Trang 7

o Hệ thống pháp lý chưa hoàn thiện, dẫn đến khó khăn trong việc quản lý hoạt động game.

o Việc kiểm soát nội dung game còn nhiều hạn chế.

Nhìn chung, ngành game Việt Nam đang phát triển mạnh mẽ với nhiều tiềm năng Tuy nhiên, để phát triển bền vững, ngành game cần giải quyết các

thách thức về nhân lực, hạ tầng công nghệ, cạnh tranh và quản lý.

Vậy nên em lựa chọn bước đầu làm quen với việc làm game 2d cơ bản với Unity với một số lý do sau:

1 Phổ biến và phù hợp: Unity là một trong những công cụ phát triển game phổ biến nhất hiện nay Nó hỗ trợ nhiều ngôn ngữ lập trình, nền tảng và loại game khác nhau, bao gồm cả game 2D Điều này giúp bạn có thể áp dụng kiến thức học được vào thực tế một cách linh hoạt.

2 Dễ học: Unity có giao diện người dùng trực quan và nhiều tài liệu hướng dẫn, giúp người mới học lập trình game có thể tiếp cận một cách dễ dàng Bên cạnh đó, Unity cung cấp một API mạnh mẽ và dễ sử dụng, giúp việc lập trình game trở nên dễ dàng hơn.

3 Cộng đồng lớn: Unity có một cộng đồng lập trình viên game lớn và năng động, nơi mà bạn có thể tìm thấy nhiều hướng dẫn, thảo luận và sự hỗ trợ Điều này giúp bạn có thể giải quyết các vấn đề gặp phải một cách nhanh chóng và hiệu quả.

4 Tiết kiệm thời gian và nguồn lực: Unity cung cấp nhiều công cụ và nguồn lực sẵn có, giúp giảm thiểu thời gian và công sức cần thiết để phát triển một trò chơitừ đầu Ví dụ, Unity cung cấp hệ thống vật lý, hệ thống đồ họa, hệ thống âm thanh, và nhiều công cụ khác

Trang 8

1.4 Công cụ thực hiện đề tài

Unity là một game engine đa nền tảng được phát triển bởi công ty Unity Technologies, chủ yếu được dùng để phát triển video game cho 21 nền tảng bao gồm máy tính, game consoles (như PlayStation) và điện thoại,…

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.

Tính năng cơ bản của Unity là gì?

Unity hỗ trợ mạnh các tính năng sau:

 Tạo giao diện UI của Game như tạo drop bar, textbox,… Hiển thị mô hình 3D, 2D – hệ thống vật lý 2D, 3D Networking: Hỗ trợ tạo game chơi nhiều người cùng lúc Hỗ trợ nền tảng đặc biệt mới: AR – Augmented reality (Thực tế

tăng cường), VR – Virtual reality (Thực tế ảo)

 AI – Hỗ trợ con bot trong màn hình game, hỗ trợ package tạo nên bot trong game

 Hỗ trợ hiển thị chữ bằng font đặc biệt

Trang 9

Ưu điểm của Unity:1 Dễ sử dụng và học tập:

 Giao diện trực quan, dễ dàng thao tác bằng chuột và kéo thả.

 Cộng đồng lớn với nhiều tài liệu hướng dẫn và hỗ trợ miễn phí.

 Nhiều khóa học online và offline cho người mới bắt đầu.

3 Hiệu suất cao:

 Tối ưu hóa tốt cho cả phần cứng cấu hình thấp và cao.

 Phù hợp cho việc phát triển game 2D và 3D.

4 Cộng đồng lớn và hoạt động:

 Diễn đàn, nhóm thảo luận, blog với nhiều thông tin hữu ích.

 Nhiều tài nguyên miễn phí và trả phí.

Trang 10

 Các sự kiện và hội nghị thường xuyên được tổ chức.

 Hỗ trợ nhiều ngôn ngữ lập trình như C#, JavaScript, Boo.

 Cung cấp nhiều API và plugin để mở rộng tính năng.

 Tích hợp với các công cụ khác như 3D Maya, Blender, Photoshop.

Nhược điểm của Unity:1 Khả năng đồ họa:

 Khả năng đồ họa không bằng Unreal Engine.

 Không phù hợp cho việc phát triển game 3D cao cấp.

2 Khó khăn trong việc tối ưu hóa:

 Việc tối ưu hóa game cho các thiết bị di động có thể gặp nhiều khó khăn.

 Yêu cầu kiến thức lập trình và kỹ năng để tối ưu hóa hiệu suất game.

3 Hiệu suất trên web:

 Hiệu suất game trên trình duyệt web có thể không tốt so với game chạy trên máy tính.

 Yêu cầu sử dụng các plugin hoặc công nghệ web để cải thiện hiệu suất.

4 Cộng đồng chủ yếu tập trung vào game 2D:

 Cộng đồng Unity có nhiều người phát triển game 2D hơn là game 3D.

 Khó khăn trong việc tìm kiếm hỗ trợ cho các vấn đề liên quan đến game 3D.

Trang 11

Tóm lại, Unity là một công cụ phát triển game mạnh mẽ, dễ sử dụng và đa nền tảng Tuy nhiên, nó cũng có một số nhược điểm như khả năng đồ họa hạn chế, khó khăn trong việc tối ưu hóa và chi phí phát triển cao Lựa chọn Unity hay không phụ thuộc vào nhu cầu, mục tiêu và ngân sách của bạn.

1.5 Ngôn ngữ sử dụng trong Unity

Ngôn ngữ chủ yếu sử dụng trong Unity là C#( hay C sharp) là một ngôn ngữlập trình đơn giản, được phát triển bởi đội ngũ kỹ sư của Microsoft vào năm2000 C# là ngôn ngữ lập trình hiện đại, hướng đối tượng và được xây dựng trênnền tảng của hai ngôn ngữ mạnh nhất là C++ và Java.

Đặc trưng của ngôn ngữ lập trình C# là gì?

C# là ngôn ngữ đơn giản

C# loại bỏ một vài sự phức tạp và rối rắm của những ngôn ngữ như Java và c++,bao gồm việc loại bỏ những macro, những template, đa kế thừa, và lớp cơ sở ảo.Ngôn ngữ C# đơn giản vì nó dựa trên nền tảng C và C++ Nếu chúng ta thânthiện với C và C++ hoặc thậm chí là Java, chúng ta sẽ thấy C# khá giống về diệnmạo, cú pháp, biểu thức, toán tử và những chức năng khác được lấy trực tiếp từngôn ngữ C và C++, nhưng nó đã được cải tiến để làm cho ngôn ngữ đơn giảnhơn.

C# là ngôn ngữ hiện đại

Điều gì làm cho một ngôn ngữ hiện đại? Những đặc tính như là xử lý ngoại lệ,thu gom bộ nhớ tự động, những kiểu dữ liệu mở rộng, và bảo mật mã nguồn lànhững đặc tính được mong đợi trong một ngôn ngữ hiện đại C# chứa tất cảnhững đặc tính trên Nếu là người mới học lập trình có thể chúng ta sẽ cảm thấynhững đặc tính trên phức tạp và khó hiểu Tuy nhiên, cũng đừng lo lắng chúngta sẽ dần dần được tìm hiểu những đặc tính qua các nội dung khoá học này.

C# là một ngôn ngữ lập trình thuần hướng đối tượng

Lập trình hướng đối tượng (OOP: Object-oriented programming) là một phươngpháp lập trình có 4 tính chất Đó là tính trừu tượng (abstraction), tính đóng gói(encapsulation), tính đa hình (polymorphism) và tính kế thừa (inheritance) C#hỗ trợ cho chúng ta tất cả những đặc tính trên.

Trang 12

C# là một ngôn ngữ ít từ khóa

C# là ngôn ngữ sử dụng giới hạn những từ khóa Phần lớn các từ khóa được sửdụng để mô tả thông tin Chúng ta có thể nghĩ rằng một ngôn ngữ có nhiều từkhóa thì sẽ mạnh hơn Điều này không phải sự thật, ít nhất là trong trường hợpngôn ngữ C#, chúng ta có thể tìm thấy rằng ngôn ngữ này có thể được sử dụngđể làm bất cứ nhiệm vụ nào.

Trang 13

Phần 2 Thực trạng đề tài2.1 Thực trạng đề tài này tại Việt Nam

Thực trạng các công ty sử dụng Unity tại Việt Nam:Sử dụng rộng rãi:

 Unity là công cụ phát triển game phổ biến nhất tại Việt Nam, được sử dụng bởi nhiều công ty game lớn nhỏ.

 Lý do chính cho sự phổ biến này là do Unity dễ sử dụng, học tập nhanh chóng, đa nền tảng và có cộng đồng hỗ trợ lớn.

 Các công ty game Việt Nam đang ngày càng đầu tư vào việc phát triển game chất lượng cao, sử dụng Unity như một công cụ chính để hiện thực hóa ý tưởng của họ.

Nhìn chung, ngành công nghiệp game Việt Nam đang phát triển mạnh mẽ và Unity đóng vai trò quan trọng trong sự phát triển này Với những ưu

điểm và tiềm năng của mình, Unity hứa hẹn sẽ tiếp tục là công cụ phát triển game được ưa chuộng tại Việt Nam trong thời gian tới.

Trang 14

Một số ví dụ về công ty sử dụng Unity tại Việt Nam:

VNG: Sử dụng Unity để phát triển các game mobile nổi tiếng như

ZingSpeed Mobile, Võ Lâm Truyền Kỳ Mobile, 3Q Mobile.

FPT Software: Sử dụng Unity để phát triển các game PC như Kiếm Thế,

Cổ Kiếm, Võ Lâm 1.

VinaGame: Sử dụng Unity để phát triển các game mobile như MU

Origin, Phong Vân Truyền Kỳ, Võ Lâm Chi Mộng.

Gamota: Sử dụng Unity để phát triển các game mobile như Hải Tặc

Mobile, Truyền Thuyết Bánh Bao, Bích Tuyết Mobile.

SOFA Studio: Sử dụng Unity để phát triển game Flappy Bird VR, được

đánh giá cao trên thị trường game VR quốc tế.

Kết luận:

Unity là công cụ phát triển game mạnh mẽ, dễ sử dụng và đa nền tảng, được sử dụng rộng rãi bởi các công ty game tại Việt Nam Với những ưu điểm và tiềm năng của mình, Unity hứa hẹn sẽ tiếp tục đóng vai trò quan trọng trong sự phát triển của ngành công nghiệp game Việt Nam trong tương lai.

Trang 15

Phần 3 Kết quả đạt được qua đợt thực tậpKiến thức:

o Có khả năng thực hiện các phép toán tọa độ cơ bản như cộng, trừ, nhân, chia.

Giao diện người dùng (UI):

o Hiểu biết về các thành phần giao diện người dùng cơ bản (button, label, image, etc.).

o Có khả năng sử dụng các công cụ UI trong công cụ phát triển game để tạo giao diện người dùng cho game.

o Hiểu biết về các nguyên tắc thiết kế UI để tạo giao diện người dùngđẹp mắt và dễ sử dụng.

Tương tác người chơi:

Trang 16

o Nắm vững các khái niệm cơ bản về tương tác người chơi, bao gồm:sự kiện người chơi (nhấn phím, di chuyển chuột), phản hồi người chơi.

o Có khả năng xử lý các sự kiện người chơi và tạo ra phản hồi phù hợp trong game.

Lập trình hướng đối tượng:

o Nắm vững các khái niệm cơ bản về lập trình hướng đối tượng, bao gồm: lớp, đối tượng, phương thức, thuộc tính.

o Có khả năng sử dụng lập trình hướng đối tượng để thiết kế và lập trình game 2D.

o Hiểu biết về các lợi ích của việc sử dụng lập trình hướng đối tượng trong phát triển game.

Kỹ năng:

Có thể tự tạo các game 2D đơn giản:

o Lập trình logic game cơ bản để điều khiển cách thức hoạt động của game.

Trang 17

o Tạo đồ họa 2D và animation cho game.

o Thêm âm thanh và hiệu ứng âm thanh vào game.

o Thiết kế giao diện người dùng (UI) cho game.

o Kiểm tra và sửa lỗi game.

Có khả năng lập trình logic game cơ bản:

o Xử lý sự kiện người chơi (nhấn phím, di chuyển chuột).

o Quản lý trạng thái game (chơi game, kết thúc game).

o Cập nhật và hiển thị đồ họa game.

o Áp dụng các nguyên tắc vật lý vào game để tạo ra chuyển động thực tế cho các đối tượng.

o Sử dụng logic game để tạo ra các thử thách và mục tiêu cho người chơi.

Có khả năng sử dụng các công cụ phát triển game 2D:

o Sử dụng công cụ phát triển game để tạo sprite, animation, âm thanh, giao diện người dùng.

o Viết code lập trình game bằng ngôn ngữ lập trình phù hợp.

o Kiểm tra và sửa lỗi game bằng các công cụ tích hợp trong công cụ phát triển game.

Có khả năng làm việc nhóm để phát triển game 2D:

o Giao tiếp hiệu quả với các thành viên khác trong

Ngày đăng: 16/07/2024, 17:15

w