Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
1,58 MB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN - BÁO CÁO THỰC TẬP SE501.L11 LẬP TRÌNH GAME VỚI UNITY3D Cơng ty thực tập: Gameloft Người phụ trách: Huỳnh Lê Trung Hậu Thực tập sinh: Lê Quốc Phương TP Hồ Chí Minh, tháng năm 2021 LỜI MỞ ĐẦU Ngày nay, ngành công nghiệp game phận thiếu ngành công nghiệp phần mềm Với tốc độ phát triển vô mạnh mẽ, ngành game nhân tố kích thích phát triển cơng nghệ thơng tin giới, phần cứng phần mềm Cùng với xu phát triển giới, Việt Nam ngoại lệ Ngành công nghiệp game non trẻ Việt Nam phát triển mạnh mẽ, để hịa nhập với cơng ty hàng đầu game giới Bên cạnh công ty game trẻ tuổi nước, công ty game lớn giới (như Gameloft) gia nhập vào thị trường Việt Nam, góp phần lớn vào phát triển tích cực ngành game Việt Ngành game sinh nhu cầu giải trí giới trẻ thiết bị công nghệ Và giới trẻ nguồn nhân lực quan trọng cho việc phát triển ngành game sau Vì lý này, em định chọn lập trình game làm định hướng cho việc học tập Sau ba năm học tập trường, mong muốn có thêm kinh nghiệm thực tế, muốn tham gia làm game môi trường chuyên nghiệp, em có dự định thực tập hè Vì vậy, em định chọn Gameloft - môi trường lý tưởng, đại, chuyên nghiệp - nơi giúp em thực dự định LỜI CẢM ƠN Em xin trân trọng gửi lời cảm ơn tới công ty Gameloft tạo điều kiện cho em có hội thực tập cơng ty Dù thời gian ngắn nhờ dẫn nhiệt tình anh mentor Huỳnh Lê Trung Hậu anh Đinh Xuân Dụy, em tiếp thu kiến thức quan trọng để tham gia rõ ràng công việc dự án thực tế Chân thành cảm ơn anh Huỳnh Lê Trung Hậu, anh Đinh Xuân Dụy, anh Fred anh chị Gameloft giảng giải, hướng dẫn giúp đỡ em tận tình làm quen mơi trường việc tiếp cận kiến thức cơng nghệ, kỹ lập trình tư sản phẩm để thực tốt dự án cá nhân dự án thực tế thời gian qua Cũng xin cảm ơn thầy cô khoa Công nghệ phần mềm nhiệt tình hỗ trợ, tạo điều kiện em làm báo cáo TP HCM, ngày 15 tháng năm 2021 Lê Quốc Phương NHẬN XÉT CỦA KHOA MỤC LỤC LỜI MỞ ĐẦU LỜI CẢM ƠN NHẬN XÉT CỦA KHOA Chương 1: Giới thiệu công ty Giới thiệu công ty Gameloft LEAP Program Chương 2: Nội dung thực tập Tìm hiểu cơng ty kỹ công ty Nghiên cứu kỹ thuật 2.1 Các công cụ làm việc 2.2 Tìm hiểu ngôn ngữ C# 2.3 Lập trình game với Unity Engine 10 Thực Project 12 Lịch làm việc 13 Chương 3: Chi tiết Project 15 Giới thiệu thành viên Game .15 Thực 15 Kế hoạch tính .19 Chương 4: Tự đánh giá .22 Trải nghiệm thân 22 Kết đạt .22 Định hướng .22 TÀI LIỆU THAM KHẢO .23 Chương 1: Giới thiệu công ty Giới thiệu công ty Gameloft Gameloft SE nhà phát triển phát hành trò chơi điện tử có trụ sở Paris, Pháp, thành lập người đồng sáng lập nên Ubisoft Michel Guillemot Cơng ty có 21 studio phát triển toàn giới, tập trung chủ yếu phát hành sản phẩm thị trường game điện thoại di động Từng công ty đại chúng Sàn giao dịch chứng khoán Paris, Gameloft mua lại trở thành công ty tập đồn cơng nghệ Vivendi Pháp vào năm 2016 Gameloft vận hành mạng lưới phân phối hoàn chỉnh ngành cơng nghiệp trị chơi điện tử với quan hệ đối tác trực tiếp 318 nhà mạng 150 quốc gia Gameloft có mặt tất cửa hàng ứng dụng trực tuyến lớn (bao gồm Apple App Store, Google Play Amazon), nhà sản xuất điện thoại di động, điện thoại thông minh máy tính bảng hàng đầu, nhà sản xuất TV thơng minh top đầu kỹ thuật số mạng xã hội Gameloft điều hành lực lượng truyền thông xã hội lớn ngành (hơn 11.5 triệu người hâm mộ Facebook 265 triệu lượt xem Youtube) điều chỉnh hoạt động tiếp thị theo địa phương Văn hóa làm việc GameLoft thỏa mái, mặc trang phục miễn tơn trọng văn hóa cơng ty Thời gian làm việc từ - 8h30 sáng đến 12h nghĩ trưa 1h30 làm tiếp tới 5h30 Tuy nhiên nhóm linh hoạt thời gian, miễn đảm báo tiến độ công việc LEAP Program Được biết đến thương hiệu nhà tuyển dụng hấp dẫn sinh viên ngành CNTT bình chọn, Gameloft Việt Nam đặt việc phát triển tài trẻ lên hàng đầu Để thực hóa sứ mệnh đó, Gameloft triển khai LEAP Program nhiều năm liền LEAP chương trình đào tạo thực tập thường niên Gameloft Việt Nam dành riêng cho bạn sinh viên ngành CNTT đặc biệt bạn có niềm đam mê với lĩnh vực cơng nghệ “hot” nhì giới – lập trình game Khác với năm trước, thay tập trung vào ngơn ngữ C++ engine Cocos2dx năm LEAP mở rộng thêm ngôn ngữ C# engine Unity – engine phổ biến Khởi động từ tháng 7, chương trình LEAP TP Hồ Chí Minh thu hút 250 đơn đăng kí từ bạn sinh viên năm 3, khối ngành Công nghệ Trải qua sau tuần thử thách tuyển chọn gắt gao, hình ảnh 18 ứng viên thức trở thành Leapers gia nhập vào đại gia đình Gameloft Cũng may mắn qua vòng tuyển gồm vòng: vòng kiểm tra tư thuật tốn vịng vấn, em tham gia LEAP Program 2020 Chương 2: Nội dung thực tập Tìm hiểu cơng ty kỹ công ty Thời gian: ngày Nội dung: giới thiệu công ty, cách tổ chức công ty Các anh/ chị phụ trách mentor giới thiệu cơng ty, q trình thành lập phát triển, sản phẩm bật tham quan môi trường làm việc Gameloft Quy định thời gian làm việc số buổi nghỉ phép cần tuân thủ tham gia LEAP Program, thực tập sinh giảng cách viết CV quản lý công việc cách hiệu Kết quả: em hiểu rõ công ty Gameloft môi trường làm việc quy định cần tuân thủ suốt tập Nghiên cứu kỹ thuật 2.1 Các công cụ làm việc Nội dung: Tìm hiểu cơng cụ sử dụng trình làm việc Xuyên suốt thời gian chương trình, mentors hướng dẫn thực tập sinh tìm hiểu cơng cụ hỗ trợ cho công việc quản lý mã nguồn git, github/ gitlab Sourcetree (git UI), Unity Hub để quản lý dự án Unity Sử dụng nhân vật animation 3D Mixamo, trao đổi thông tin công việc qua nhóm Skype, quản lý cơng việc hiệu Trello Các mơi trường tích hợp phát triển lập trình Visual Studio, Visual Code Thực hiện: thực hành sử dụng phần mềm nói Kết quả: học sử dụng nhiều công cụ mới, làm việc hiệu dễ dàng suốt chương trình 2.2 Tìm hiểu ngơn ngữ C# Thời gian: ngày Nội dung: Được training kiến thức C# kiến thức C# nâng cao - Kiến thức bản: Được giảng kiến thức cú pháp (syntax) biểu thức câu lệnh điều kiện if - else, switch case, câu lệnh lặp for, foreach, while, Các kiểu liệu thuộc tham trị (value type) tham chiếu (reference type) - Lập trình hướng đối tượng: Lập trình hướng đối tượng sử dụng class, abstract class, interface, hướng dẫn kế thừa, đa hình, - C# Nâng cao: Sử dụng delegate – hàm ủy quyền, tương tự với trỏ hàm c++, event – bao đóng delegate kiểu liệu C# hỗ trợ dựa delegate Action Func Sử dụng Extension Method để thêm hàm vào kiểu liệu có sẵn Học số pattern đơn giản sử dụng Unity Singleton – lớp có thực thể Mediator để quản lý nhiều class Học cách sử dụng LINQ, sử dụng hàm ẩn danh (anonymous function) biểu thức lambda Thực hiện: - Tham gia đầy đủ buổi training công ty - Làm tập thực hành hiểu rõ kiến thức giảng 2.3 Lập trình game với Unity Engine Thời gian: 10 ngày Nội dung: giới thiệu cách sử dụng Unity Hub Unity Editor, áp dụng kiến thức C# vào Unity3D, khái niệm bao quát kiến thức cần có để hồn thiện Project - Giới thiệu Unity (1 buổi): Cài đặt hub setup phiên SDK, NDK, JDK Unity Editor LTS 2019.4 (Long Term Support) 10 - Unity Concepts: GameObject & Component (1 buổi): Giới thiệu GameObject hình Scene tab Hierachy, quan hệ child-parent gameObjects Traning số components để di chuyển Transform, vật lý: Rigidbody(2D), Collider – BoxCollider(2D), SphereCollider – Circle Collider, Các components vẽ vật thể: SpriteRenderer, MeshRenderer, MeshFilter, - Tạo Project thực hành kiến thức học (1 ngày): Sử dụng components học để tạo dựng GameObject, gắn components Tạo component Script MonoBehaviour, học cách sử dụng hàm đặc biệt: Awake, Start, OnEnable, Thực hành tập di chuyển phím, bắn Raycast phát vật thể - Animation Character FBX (1 ngày): Học cách triển khai animation, thiết lập animation parameters nhằm chuyển đổi state animation Sử dụng mơ hình nhân vật miễn phí Mixamo (.fbx) animation có sẵn (cũng Mixamo cung cấp) để thực hành tập animation - Tạo vật thể game Object Pooling Pattern (1 ngày): Học cách sử dụng Prefab, thay đổi prefab, áp dụng thay đổi child tới prefab Tạo vật thể game cách tạo nhiều phiên clone Prefab thông qua hàm Instantiate Unity hỗ trợ Xóa vật thể hàm Destroy Unity hỗ trợ Tối ưu nhớ GC (Garbage Collector) môi trường C# Object Pooling - Hiệu ứng: Skybox, Particles Lights (1 ngày) 11 Cách sử dụng Skybox tạo môi trường ảo trời, mây, không gian xung quanh Sử dụng component PartitcleSystem để tạo hiệu ứng lửa, cháy nổ, sấm chớp, Giới thiệu loại component Lights Unity3D Directional Light, Spot Light, Point Light, - Sử dụng package có sẵn: Cinemachine: Cinemachine dùng để tạo cảnh quay, lia camera cảnh phim - Tạo Game 2D đơn giản: Game 2D sử dụng để thực hành lấy nguồn từ game 2D Roguelike trang thức Unity (learn.unity) - UI & Controls (2 ngày + buổi) Thực hành tạo GameObject thuộc loại UI, tương tác với game Start, Pause, Continue, Tìm hiểu components thuộc loại UI Image, CanvasGroup, RectTransform, Text, - AR (2 ngày) Học khái niệm AR & ARCore Triển khai sản phẩm quét môi trường, phát mặt đất tường Đặt vật thể môi trường Thực Project Thời gian: 25 ngày Nội dung: Chia nhóm thực dự án - Ý tưởng Prototype (5 ngày): Lập nhóm ngẫu nhiên thành viên khóa training, 18 người tổng nhóm 12 Mỗi nhóm có thêm mentor Game Design, đồng thời mentors hướng dẫn thêm số kỹ thuật việc thiết kế Các buổi cịn lại, nhóm lên kế hoạch thiết kế Prototype cho game - Thực dự án (18 ngày): Mỗi tuần nhóm sản phẩm hồn chỉnh MVP – minimum viable product Yêu cầu sản phẩm tuần: có thêm chức mentor feedback, sửa lỗi thiết kế, cân chức trước, khơng có lỗi nghiêm trọng (critical bug) Tối ưu báo cáo (2 ngày): - Các nhóm có ngày để tối ưu dự án, build phiên apk cuối cùng, tạo trailer gửi cho mentor để chuẩn bị báo cáo Báo cáo, thuyết trình trước hội đồng mentor giám khảo Đánh giá nhóm xếp hạng Chi tiết thực project trình bày Chương - Lịch làm việc Period Days Main Topic From C# for Unity 14/07/20 16/07/2020 17/07/20 20/07/20 LEAP 2020 10 Unity Training Day 13/07/20 15/07/20 To 21/07/20 22/07/20 0.5 0.5 Details Introduction & Getting Start Source Version Control: Git/SVN C# Basic: Data type & Logic statements C# Advance: - Class & Abstracts Class, Interfaces - Delegates & Events Design patterns in C# LINQ - Language Integrated Query Introduction Unity Engine Unity Concepts: GameObject & Components Create Your First Unity Project in 3D Characters FBX and Animation 13 23/07/20 24/07/20 Duration Ideas & Prototyping 20 40 Game developement days 1 0.5 Spawning Object & ObjectPools Effects: Skybox, Particles and Lights Unity Package: Cinemachine Create an original 2D Game 27/07/20 29/07/20 2.5 UI & Controls 30/07/20 31/07/20 AR/ ARCore 0.5 Formup the Team 03/08/20 0.5 Game Design Documents (GDD) 04/08/20 07/08/20 Prototyping First release with Main Features 10/08/20 25/08/20 12 Feedback & Review #1 Testing and Balancing 26/08/20 01/09/20 Feedback & Review #2 Vietnamese National Independence Day Optimization 03/09/20 04/09/20 Final Release & Presentation 14 Chương 3: Chi tiết Project Giới thiệu thành viên Game Thành viên: nhóm có thành viên đến từ trường khác bao gồm: Lê Sang (ĐH Mở), Quốc Minh (ĐH Bách Khoa) em, Lê Quốc Phương (ĐH Công nghệ Thông tin) Giới thiệu Game: Game đặt tên Evading – trốn tránh, dựa ý tưởng đuổi bắt xe cảnh sát kẻ đua xe, thể loại Hyper Casual nhằm hướng tới đối tượng 12 – 25 tuổi, dễ chơi, dễ hiểu, dễ đặt quảng cáo kiếm tiền Kết hợp với yếu tố: o Chasing: đuổi bắt người chơi (player) xe cảnh sát (bot) o Skill: để tránh né xe cảnh sát, người chơi cần phải rèn luyện kỹ drift thả phannh qua vịng chơi, “game dễ chơi khó để master” xu hướng game Hyper Casual o Simple: game phải đơn giản, player chơi không cần phải qua hướng dẫn phức tạp, đồng thời game nhóm có nút trái phải Thực Công cụ: - Trello Github/ Sourcetree Unity Engine Visual Studio Discord + Skype Chiến lược: 15 - Họp đầu tuần thứ 2, xác định công việc tuần sau nhận feedback mentor, lên kế hoạch trello, phân công việc cho thành viên - Họp nhóm buổi sáng 9h - 15’, xác định cơng việc hồn thành ngày hơm qua, công việc cần làm hôm thành viên - Git: người quản lý features riêng, thêm tính merge vào branch dev, release vào cuối tuần merge vào master - Ý tưởng: - Trọng tâm (core) game: người chơi sử dụng kỹ drift để né xe cảnh sát, thu thập vật phẩm, nâng cấp xe cố gắng sống sót lâu điểm cao 16 - Cách thức điều khiển: người chơi cần sử dụng ngón tay để phanh (drift) sang trái sang phải, game có cung cấp hình ảnh hướng dẫn: - Hệ thống xe quân đối phương đa dạng, hình thức di chuyển tốc độ di chuyển, phanh xe khác nhau: - Các vật phẩm người chơi nhặt bao gồm: o Nam châm giúp người hút thu thập đồng tiền thuận lợi hơn, o Đồng xu để tăng số lượng vàng mua loại xe cao cấp 17 - Cửa hàng bao gồm nhiều loại xe, xe đắt tốc độ khả drift nâng cao - Quảng cáo: xe người chơi bị nổ, game có cung cấp chức hồi sinh (chơi tiếp) cách click vào xem quảng cáo 18 Kế hoạch tính - Giai đoạn Prototype o Xây dựng character – xe, enemey – xe cảnh sát o Tạo tính di chuyển tái sử dụng o Xử lý va chạm player – enemy, enemy – enemy o Tạo hiệu ứng bánh xe di chuyển o Tạo hiệu ứng nổ đơn giản o Tạo vòng lặp game đơn giản bao gồm: bắt đầu, thua, chơi lại - Release MVP(s) #1: Phiên o o o o Viết AI cho xe cảnh sát, xử lý va chạm Tạo hiệu ứng rung cho camera có vụ nổ xảy Tạo chức lưu điểm điểm cao Quản lý gameState GameManager.cs 19 o Tạo xe cảnh sát ngẫu nhiên class quản lý: EnemySpawner.cs o Tìm assets cho game fix bugs o Cân demo MVPs #2: Phiên o Tạo cảnh báo cho người chơi enemies tiến lại gần o Cải tiến control cho mượt hơn, tăng cảm giác drift giống thực tế o Tạo levels đơn giản, điểm cao, xe cảnh sát nhiều loại o Tạo hiệu ứng mặt đất vơ hạn o Tạo hiệu ứng Camera phóng to thu nhỏ người chơi drift thả phanh o Cải tiến cách tính tốn điểm o Tạo vật phẩm đồng tiền đặt logic o Thêm animation chỉnh sửa size cho đồng xu o Viết logic tự động phá hủy cho vật phẩm nằm ngồi hình o Thêm nhiều background tự động tạo background o Cân level để xe cảnh sát xuất hợp lý o Tạo hiệu ứng bụi (dust) xe di chuyển o Viết logic lưu tiền người chơi o Tạo hiệu ứng cộng điểm xe cảnh sát va chạm với o Fix bug điểm cộng sau Game Over o #3: Phiên o o o o o o o o Tăng hiệu ứng rung cho camera Thêm shadow (logic sprite) Thêm logic cho loại xe cảnh sát thứ Viết script xử lý âm Thiết kế lại số UI sau feedback MVP#2 Tạo cửa hàng, tìm kiếm hình ảnh xe cân thông số Thêm vật phẩm nam châm (sprite + logic) Hiệu ứng animation ánh sáng cho biển cảnh sát - Giai đoạn test, cân tối ưu game: 20 o Redesign lại UI, thêm animation cho UI o Tìm fix bugs o Cân thơng số game số xe cửa hàng, tốc độ xe cảnh sát, - Báo cáo: o Chuẩn bị trailer o Chuẩn bị slide thuyết trình o Chuẩn bị apk demo 21 Chương 4: Tự đánh giá Trải nghiệm thân Xuyên suốt chương trình LEAP Gameloft, thân em học nhiều, củng cố kiến thức mà kỹ mềm, kỹ xã hội, giao tiếp, thuyết trình hay viết CV Trong số bạn em có kinh nghiệm với Unity trước đó, nên khơng gặp khó khăn kiến thức, em được anh mentors củng cố thêm nhiều kiến thức sâu tảng Unity Đặc biệt kỹ xã hội, lần học tập, làm việc với 17 người khác, chơi trị chơi teamwork hay đứng thuyết trình hội đồng gồm nhiều anh chị bạn Gameloft trải nghiệm khó quên mà em chưa có hội tham gia Kết đạt Game nhóm em may mắn giải nhận giải thưởng 3.5 triệu đồng Được đào tạo lập trình game điện thoại di động cách thức vận dụng vào dự án cụ thể, nắm vững kiến thức tổng quát lập trình game Các kỹ xã hội thuyết trình nâng cao chút, tiếp xúc với nhiều bạn tới từ trường khác nhau, học thêm nhiều kiến thức ngồi lề từ bạn Có hội trở thành nhân viên thức hồn thành chương trình LEAP 2020 Chứng nhận hồn thành Chương trình thực tập Gameloft Định hướng Các anh chị mentors Gameloft cho em nhiều cảm hứng lập trình thiết kế game, dẫn hướng đường học tập Tiếp tục trau dồi thân để trở nên cởi mở hơn, hòa đồng rèn dũa kỹ mềm 22 TÀI LIỆU THAM KHẢO Documents: https://docs.unity3d.com/Manual/index.html https://thoxaylamcoder.wordpress.com/2016/03/08/unity-xu-ly-va-cham/ https://phuongne.com/singleton-pattern-trong-unity3d/ https://phuongne.com/object-pooling-trong-unity/ http://dotween.demigiant.com/documentation.php References: https://www.youtube.com/watch?v=SwzFzSlit_8 https://www.youtube.com/watch?v=bBBi4r8pwgo\ https://www.youtube.com/watch?v=rSLjYEgyy9s 23 ... thành chương trình LEAP 2020 Chứng nhận hồn thành Chương trình thực tập Gameloft Định hướng Các anh chị mentors Gameloft cho em nhiều cảm hứng lập trình thiết kế game, dẫn hướng đường học tập Tiếp... Được đào tạo lập trình game điện thoại di động cách thức vận dụng vào dự án cụ thể, nắm vững kiến thức tổng quát lập trình game Các kỹ xã hội thuyết trình nâng cao chút, tiếp xúc với nhiều bạn... trọng (critical bug) Tối ưu báo cáo (2 ngày): - Các nhóm có ngày để tối ưu dự án, build phiên apk cuối cùng, tạo trailer gửi cho mentor để chuẩn bị báo cáo Báo cáo, thuyết trình trước hội đồng mentor