Em xin chân thành cảm ơn ban lãnh đạo và các giảng viên của HB academy đã tạo điều kiện cho em được tham gia vào các dự án thực tẾ, hướng dẫn và động viên em trong suốt quá trình thực tậ
Trang 1BAO CAO THUC TAP TOT NGHIEP
_ Tên đề tài:
LẬP TRÌNH GAME VỚI UNITY2D
GIÁO VIÊN HƯỚNG DÂN:
SINH VIÊN THỰC HIỆN:
LỚP:
Hà Nội, tháng 10 năm 2023
Trang 2
MUC LUC LOI NOI DAU
GIOI THIEU CHUNG VE HB ACADEMY
I TÓM LUQC QUA TRINH HINH THANH VA PHAT TRIEN 4
1.1 Quá trình hình thành 4
1.2 Quá trình phát triỂn - 2-5 ©secseerersexersersrsersersree 4
II CHUC NANG, NHIEM VU VA DINH HUONG PHAT TRIEN 5
2.1 Chire nang cua HB Academy 5 2.2 Nhiệm vụ của HB Academy 5 2.3 Định hướng phát trién cia HB Academy 5
TRINH BAY CAC CONG VIEC DA LAM TRONG THOI GIAN THUC
PHAN TICH THUC TRANG GAME 2D, GIOI THIEU MOT SO THE LOAI
I PHAN TICH THUC TRANG GAME 2D 7
2.2 Đặc trưng cơ bản của C# 11
I LEN Y TUONG VA XAY DUNG GAMEPLAY csssscssssessssessesssesseses 12
IV DIEM START, CHECKPOINT VA END 16
Trang 3VY TRAP, ENEMY VA CHERRY
L Mặt tích cực:
Trang 4LOI NOI DAU
Unity là một công cụ phát triển trò chơi đa nền tảng, cho phép người dùng tạo
ra các ứng dụng trực quan, tương tác và thú vị cho nhiều thiết bị khác nhau Unity cung cấp một môi trường lảm việc linh hoạt và trực quan, với các tính năng như hỗ trợ
đồ họa 2D và 3D, hệ thống vật ly, âm thanh, giao diện người dùng, mạng lưới, thực tế
ảo và thực tế tăng cường Unity cũng hỗ trợ nhiều ngôn ngữ lập trình nhự C#, JavaScript và Boo, cho phép người dùng viết mã logic cho các đối tượng và hành vi trong trò chơi Unity là một công cụ mạnh mẽ vả phố biến, được sử dụng bởi hàng triệu nha phat triển trò chơi trên toản thé giới
Em xin chân thành cảm ơn ban lãnh đạo và các giảng viên của HB academy đã tạo điều kiện cho em được tham gia vào các dự án thực tẾ, hướng dẫn và động viên em trong suốt quá trình thực tập Em cũng xin cảm ơn các bạn thực tập sinh khác đã chia
sẻ và hỗ trợ em khi gặp khó khăn Em hy vọng rằng những kinh nghiệm và bài học mà
em thu được từ HB academy sẽ lả nền tảng vững chắc cho sự nghiệp của em sau này Trong quá trình thực tập, em đã nhận được sự hướng dẫn tận tình và chu đáo của thầy Thầy đã giúp em nắm vững các kiến thức và kỹ năng cần thiết đề phát triển trò chơi trên Unity Trước khi bắt đầu thực tập, thầy đã cung cấp cho em các tai liệu vả hướng dẫn cần thiết Thầy cũng đã đành thời gian để giải đáp các thắc mắc của em Trong quá trình phát triển trò chơi, thầy đã thường xuyên kiểm tra tiễn độ và đưa ra những góp ý chỉ dẫn hữu ích Thầy cũng đã giúp em giải quyết các vấn đề kỹ thuật gap phải Nhờ sự hướng dẫn tận tình của giáo viên hướng dẫn, em đã có thể hoản thành tốt dé tai thực tập của mình
Em xin chân thành cảm ơn thầy đã giúp đỡ em trong quá trình thực tập
Trang 5GIO1 THIEU CHUNG VE HB ACADEMY
I TÓM LƯỢC QUÁ TRÌNH HÌNH THÀNH VÀ PHÁT TRIỄN
4.2 Quá trình phát triển
Trong những năm qua, HB Academy đã không ngừng phát triển và mở rộng quy mô Hiện nay, HB Academy có 2 cơ sở tại Hà Nội và TP Hồ Chí Minh Trung tâm luôn nỗ lực để mang đến cho học viên một môi trường học tập chuyên nghiệp và hiệu quả
Các giai đoạn phát triển của HB Academy:
e Giai đoạn I (2021 - 2022): Giai đoạn nảy, HB Academy tập trung phát triển đội ngũ giảng viên và xây dựng chương trình đào tạo Trung tâm cũng bắt đầu tổ chức các khóa học lập trình game từ cơ bản đến nâng cao
Giai đoạn 2 (2022 - 2023): Giai đoạn này, HB Academy tiếp tục mở rộng quy mô
và phát triển thêm các khóa học mới Trung tâm cũng bắt đầu hợp tác với các công ty game hàng đâu đề mang đên cho học viên cơ hội thực tap va lam việc Giai đoạn 3 (2023 - nay): Giai đoạn này, HB Academy hướng tới trở thành một trung tâm đào tạo lập trình game hàng đầu Việt Nam Trung tâm sẽ tiếp tục đầu
tư vào đội ngũ giảng viên, chương trình đảo tạo và cơ sở vật chất
Những thành tựu của HB Academy
® - Đã đảo tạo thành công hàng nghỉn học viên lập trình game
e Tham gia giảng dạy vả đảo tạo cho các công ty game hàng đầu Việt Nam
© - Đạt được nhiều giải thưởng trong các cuộc thi lập trình game
Trang 6Mét sé dau méc quan trong trong qua trinh hinh thanh va phat trién cua HB Academy: Thang 8 nam 2021: HB Academy duoc thanh lap
Tháng 9 năm 2021: HB Academy bắt đầu tô chức các khóa học lập trình game
từ cơ bản đến nâng cao
Tháng 12 năm 2021: HB Academy mở thêm cơ sở thứ hai tại TP Hồ Chí Minh Tháng 3 năm 2022: HB Academy hop tac voi ABI Game Studio - OneSoft dé mang đến cho học viên cơ hội thực tập và làm việc
Tháng 6 năm 2022: HB Academy dat được giải thưởng "Trung tâm đào tạo lập trinh game xuất sắc nhất" tại Vietnam Game Awards
Tháng 9 năm 2022: HB Academy mở thêm khóa học lập trình game 3
Thang 12 nim 2022: HB Academy hợp tác với các công ty game hảng đầu Việt Nam đề mang đến cho học viên cơ hội thực tập và làm việc
Tháng 3 năm 2023: HB Academy hướng tới trở thành một trung tâm dao tao lập trinh game hang dau Viét Nam
II CHỨC NĂNG, NHIỆM VỤ VÀ ĐỊNH HUONG PHAT TRIEN
2.1 Chức năng của HB Academy
HB Academy có chức năng đảo tạo, bồi dưỡng kiến thức vả kỹ năng lập trình game cho học viên Trung tâm cung cấp các khóa học lập trình game từ cơ bản đến nâng cao, phủ hợp với mọi trình độ
2.2 Nhiém vu cda HB Academy
HB Academy co nhiém vu:
Đảo tạo, bồi đưỡng kiến thức và kỹ năng lập trình game cho học viên Cung cấp môi trường học tập chuyên nghiệp và hiệu quả cho học viên Giúp học viên phát triển tư duy sáng tạo và kỹ năng giải quyết vấn đề Giúp học viên có cơ hội thực tập và làm việc cho các công ty game hàng đâu
2.3 Định hướng phát triển của HB Academy
Trang 7HB Academy hướng tới trở thảnh một trung tâm đảo tạo lập trinh game hang dau Viét Nam, cung cấp cho học viên kiến thức vả kỹ năng cần thiết để trở thành những lập trinh viên game chuyên nghiệp
Để đạt được mục tiêu nảy, HB Academy sẽ tiếp tục đầu tư vào đội ngũ giảng viên, chương trình đảo tạo vả cơ sở vật chất Trung tâm cũng sẽ mở rộng quy mô vả phát triển thêm các khóa học mới đề đáp ứng nhu cầu của học viên
TRÌNH BÀY CÁC CÔNG VIỆC ĐÃ LÀM TRONG THỜI GIAN THỰC
TẠP
Trong thời gian thực tập tại Hồ Academy, em đã có cơ hội làm việc với các lập trình viên game chuyên nghiệp và học hỏi thêm nhiều kiến thức và kỹ năng mới Dưới đây là một số công việc mả em đã làm trong thời gian thực tập:
e _ Tham gia phát triển một game 2D: Em đã tham gia phát triển một game 2D đơn giản với vai trò là lập trình viên game Trong quá trình phát triển game, em
da hoc cach su dung Unity để tạo ra các đối tượng, cảnh và hiệu ứng trong game
¢ Tham gia cai thiện hiệu năng của một game 2D: Em đã tham gia cải thiện hiệu năng của một game 2] với vai trò là lập trình viên game Trong quá trình cải thiện hiệu năng game, em đã học cách sử dụng các kỹ thuật tối ưu hóa game
để giảm thiểu lag vả giật
¢ Hỗ trợ các lập trình viên game khác: Em đã hỗ trợ các lập trình viên game khác trong quá trình phát triển game Trong quá trình hỗ trợ, em đã học cách giải quyết các vẫn đề kỹ thuật và đưa ra các giải pháp hiệu quả
Ngoài ra, em cũng đã tham gia các buổi đảo tạo và workshop về lập trình game tat HB Academy Qua cac buổi dao tao va workshop này, em đã học được thêm nhiều kiến thức và kỹ năng mới, giúp em nâng cao trình độ chuyên môn Nhìn chung, thời gian thực tập tại HB Academy là một trải nghiệm vô cùng quý giá đối với em Em đã học hỏi được rất nhiều kiến thức vả kỹ năng mới, giúp em có thể trở thành một lập trinh viên game chuyên nghiệp
Dưới đây là một số kỹ năng và kiến thức mả em đã học được trong thời gian thực tập:
Trang 8¢ Kién thire vé lip trinh game: Em đã học được kiến thức về lập trinh game 2D va 3D, bao gồm các khái niệm cơ bản, các kỹ thuật lập trình game và các công cụ lập trình game
°_ Kỹ năng lập trình: Em đã nâng cao kỹ năng lập trình của mình, bao gồm kỹ năng lập trình hướng đối tượng, kỹ năng lập trình hàm và kỹ năng lập trình hiệu năng
© Kỹ năng giải quyết vấn đề: Em đã học cách giải quyết các vấn đề kỹ thuật trong lap trinh game
® Kỹ năng làm việc nhóm: Em đã học cách làm việc nhóm hiệu quả với các lập trinh viên game khac
Em rất biết ơn HB Academy đã tạo cơ hội cho em được thực tập và học hỏi Em
sẽ tiếp tục nỗ lực đề trở thành một lập trình viên game chuyên nghiệp và đóng góp cho
sự phát triển của ngành game Việt Nam
PHÂN TÍCH THỰC TRẠNG GAME 2D, GIỚI THIỆU MỘT SÓ THẺ LOẠI GAME VÀ LÝ DO CHỌN ĐÈ TÀI
I PHÂN TÍCH THỰC TRẠNG GAME 2D
1.1 Thực trạng game 2D
Game 2D là một loại game sử dụng dé họa 2D đề tạo nên hình ảnh và hiệu ung Game 2D đã xuất hiện từ rất lâu và vẫn đang được phát triển cho đến ngày nay Hiện nay, game 2D vẫn chiếm một thị phần đáng kề trong ngành game Theo một báo cáo của Newzoo, thị trường game 2D toàn cầu năm 2022 đạt giá trị 12,2 ty USD, chiếm 21% tông thị trường game
Game 2D vẫn được ưa chuộng bởi một số ly do sau:
¢ Do hoa don giản, dễ tiếp cận: Đồ họa 2D thường đơn giản hơn dé hoa 3D, giúp game dễ tiếp cận với nhiều người chơi
e _ Yêu cầu cấu hình thấp: Game 2D thường yêu cầu cấu hình thấp, giúp game có thé chay trén nhiều thiết bi khác nhau
se Có thế chơi trên nhiều nền tảng: Game 2D có thể chơi trên nhiều nền tảng khác nhau, từ PC, mobile đến console
Tuy nhiên, game 2D cũng đang phải đối mặt với một số thách thức, bao gồm:
Trang 9© Céng nghé đồ họa 3D ngày càng phát triển: Công nghệ đồ họa 3D ngày càng phát triển, khiến cho game 2D có thê bị lép về về mặt hình ảnh
© Thị hiếu người chơi thay đỗi: Thị hiếu người chơi đang có xu hướng chuyển sang game 3D, khiến cho game 2D có thế bị mất đi một số thi phan
1.2 Tương lai của game 2D
Mặc dù đang phải đối mặt với một số thách thức, nhưng game 2D vẫn có một tương lai tươi sáng Game 2] vẫn sẽ được ưa chuộng bởi một số đối tượng người chơi, chăng hạn như trẻ em, người chơi di động
Ngoài ra, game 2D cũng có thê được kết hợp với các công nghệ mới, chẳng hạn như thực tế ảo, thực tế tăng cường, để tạo ra những trải nghiệm mới lạ và hấp dẫn hơn cho người chơi
Dưới đây là một số xu hướng phát triển của game 2D trong tương lai:
e©_ Tăng cường tính tương tác: Game 2D sẽ được phát triển để tăng cường tính tương tác với người chơi, chắng hạn như sử dụng các công nghệ thực tế ảo, thực tế tăng cường
e - Đồ họa 2D nâng cao: Game 2D sẽ được phát triển với đồ họa 2D nâng cao, sử dụng các kỹ thuật moi dé tao ra hình ảnh đẹp hơn vả chân thực hơn
se Chuyén déi sang game 3D: Một số game 2D sẽ được chuyên đổi sang game 3D, dé dap ứng nhu cầu của người chơi
1.3 Kết luận
Game 2D vẫn sẽ là một phần quan trọng của ngành game trong tương lai Game 2D sẽ được phát triển với những xu hướng mới, để đáp ứng nhu cầu của người chơi và mang lại những trải nghiệm mới lạ và hấp dẫn hơn
II GIỚI THIỆU MỘT SÓ THẺ LOẠI GAME
Có nhiều loại game 2d trên thị trường hiện nay, ví dụ như:
- Game phiêu lưu: là loại game mà người chơi phải khám phá các môi trường khác nhau, giải quyết các câu đồ và thách thức Ví dụ: Super Mario Bros., The Legend of Zelda, Limbo, v.v
Trang 10- Game nhap vai: 1a loai game ma ngudi choi phai diéu khién mét nhan vat hodc một nhóm nhân vật, tham gia vào các cuộc chiến và nâng cao kỹ năng của họ
Vi du: Final Fantasy, Chrono Trigger, Pokémon, v.v
- Game đối kháng: là loại game mà người chơi phải chiến đấu với nhau hoặc với máy tính bằng cách sử dụng các kỹ năng và chiêu thức khác nhau Ví dụ: Street Fighter, Mortal Kombat, Tekken, v.v
- Game đua xe: là loại game mà người chơi phải lái xe hoặc các phương tiện khác
để cạnh tranh với các đối thủ khác Ví du: Mario Kart, Sonic & All-Stars Racing Transformed, F-Zero, v.v
- Game giáo dục: là loại game mà người chơi phải học hỏi các kiến thức hoặc kỹ năng mới thông qua các hoạt động va trò choi Vi du: Brain Age, Math Blaster, Typing of the Dead, v.v
Ill LY DO CHON DE TAI
Game 2d là một loại game đồ họa hai chiều, có nghĩa là các đối tượng trong game chỉ có chiều rộng vả chiều cao, không có chiều sâu Game 2d có nhiều ưu điểm so với game 3d, như:
- Dễ đàng phát triển hơn, vì không cần phải xử lý các vấn đề về ánh sáng, bóng, góc nhìn, va chạm, v.v
- _ Tiết kiệm tài nguyên hơn, vì không cần phải sử đụng nhiều bộ nhớ, CPU,
GIỚI THIỆU UNITY VÀ C#
Trang 11| PHAM MEM UNITY: - Unity là công cụ phát triên game đa nên tảng của Unity Technologies, nó hỗ trợ thiết kế sản phẩm cho máy tính, consoles, websites, điện thoại và các thiết bị thực tế ảo Unity cung cấp các công cụ dựng hình ảnh 2D/3D, công cụ xử lý va chạm vật lý, âm thanh, chuyên động động, trí tuệ nhân tạo và mã nguồn
Unity hỗ trợ hầu hết các nền tảng hiện có, từ Windows, OS X, Linux, Web, thiết bị điện thoại sử dụng hệ điều hành Android, IOS cho đến các hệ máy chơi game Playstation, Xbox, Nintendo va kinh thyc tế ảo Oculus của Facebook Unity là công cụ trực quan dễ sử dụng, ít phải sử dụng ngôn ngữ lập trình và
có thê dễ dàng tiếp cần bởi cả đối tượng lập trình viên chuyên nghiệp và không
chuyên C# là ngôn ngữ chủ đạo sử dụng trong Unity
Unity có kho thư viện không lồ hỗ trợ tạo các ứng dụng nhanh và rẻ, có cộng đồng sử dụng khống lồ, người dùng có thể đễ dàng tìm kiếm sự giúp đỡ trên các nhom chat cua Discord va cả trên Youtube
Voi muc dich hoc tap va str dung ca nhan, Unity 1a céng cu hoan toan mién phí Phiên bản trả phí chủ yêu hỗ trợ làm việc nhóm, ưu tiên khi sử dụng tính năng
hỗ trợ trực tuyến, cung cấp công cụ phân tích, server Unity có thê hỡ trợ nhiều hướng phát triển của ngành công nghệ thông tin cũng như xu thế phát triển đang lên của các sản phẩm thực tế ảo
Cùng với Unreal, Unity là một trong hai công cụ phát triển game phô biến
nhất hiện nay trên thế giới
PIA Bes J BOKON XS oS androidtv
Cac nén tang hé tro boi Unity
Trang 12
1.1 Giao dién téng Unity:
A: Thanh céng cu (Toolbar)
B: Của số phân cấp (Hierarchy): chứa tất cả các tài nguyên đang sử dụng trong dự
án, trình bảy phân cấp theo đối tượng cha-con
C: Cửa số mô phỏng chương trình (Game View): mô phỏng thông qua góc nhìn bằng các camera đã thiết lập trong cửa số thiết kế
D: Cửa số thiết kế chương trình (Scene View): tạo và chỉnh sửa khung cảnh cũng như các đối tượng
E: Cửa số thuộc tính đối tượng (Inspector): giao diện tùy thuộc đối tượng được chọn
F: Cửa số dự án (Project): chứa tất cả tài nguyên có thể sử đụng trong dự án G: Thanh tình trạng (Status Bar): chứa thông tin về các hoạt động cũng như các lỗi
Công dụng:
Trang 13Unity Store là cửa số chứa các tài nguyên(Assets) có thê sử đụng bởi công cụ Unity Các tải nguyên này được tạo vả tải lên bởi nhà phát triển Unity hoặc bởi chính người dùng
Người dùng được chia 70% lợi nhuận của các gói am được bản trên Unity Store
Unity Store giúp rút ngắn thời gian phát triển sản phẩm thông qua chia sẻ tai nguyên giữa cộng đồng người dùng với nhau (có phí hoặc miễn phí)
NGÔN NGỮ C#
2.1 C# là gì
C# la ngôn ngữ lập trình đơn giản, an toàn, hiện đại, hướng đối tượng, đặt trọng tâm vảo Internet, có khả năng thực thi cao trong môi trường NET Ngôn ngữ C# được phát triển bởi đội ngũ kỹ sư của Microsoft Trong đó, ngwoi dan dau la Anders Hejlsberg va Scott Wiltamuth
Phát hành phiên bản đầu tiên vào tháng 7 năm 2000
2.2 Đặc trưng cơ bản của C#
Nhắc đến C# là gi, bạn không thê bỏ qua các đặc trưng cơ bản của nó Với những đặc điểm độc đáo dưới đây, C# đang có xu hướng được ứng dụng phô biến và thường xuyên hơn trong phát triển ứng dụng
Đơn giản: Đặc trưng đầu tiên của C# là loại bỏ những vấn đề phức tạo đã có trong Java va C++ nhu macro, template, tính đa kế thừa, lớp cơ sở ảo (hay còn gọi virtual base class) Các cú pháp, toán tử, biêu thức và cả tính năng của C# khá tương đương Java và C++~ song đã qua cải tiền nên đơn giản hơn
nhiều
Hiện đại: C# sở hữu nhiều khả năng như xử lý ngoại lệ, tự động trong thu
gom bộ nhớ, bảo mật mã nguồn, đữ liệu mở rộng Đây là tất cả những đặc điểm được mong chờ ở một ngôn ngữ lập trình hiện đại
Hướng đối tượng: C# là một trong những ngôn ngữ được đánh giá là thuần hướng đối tượng Nó sở hữu cả 4 tính chất quan trọng, đặc trưng là tính kế thừa, tính đóng gói, tính trừu tượng và tính đa hình