1. Trang chủ
  2. » Công Nghệ Thông Tin

Báo cáo thực tập lập trình GAME 3d TRÊN ANDROID BẰNG UNITY

21 10 0

Đ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

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO THỰC TẬP LẬP TRÌNH GAME 3D TRÊN ANDROID BẰNG UNITY Công ty thực tập Người phụ trách Thực tập sinh MSSV : : : : Công Ty Cổ Phần Gihot Huỳnh Phúc Trí Hồng Thế Kỷ 18520964 TP Hồ Chí Minh, tháng 12 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 lớn tiếng giới Gameloft, Athena, cơng ty game bắt đầu lớn mạnh nước (như Gihot) gia nhập vào thị trường Việt Nam giới, 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 Đồng thời để thỏa mãn đam mê lấy từ nguồn cảm hứng chơi xem trò chơi, 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 chun nghiệp, em có dự định thực tập sau hè Vì vậy, em định chọn Gihot - mơi trường lạ, hịa đồng thành lập không lâu lại không thiếu chuyên nghiệp - nơi giúp em thực dự định Trang LỜI CẢM ƠN Trân trọng gửi lời cảm ơn Công Ty Cổ Phần Gihot tạo điều kiện cho em có hội thực tập cơng ty Trong vịng tháng, em hoàn thành sản phẩm game 3D theo phong cách Casual game, hiểu cơ chế nhận – gửi tin nhắn Client Server, có kiến thức thành phần quan trọng Unity game 3D Online, biết sử dụng phần mềm quản lý Source code (Source Tree) tương tác với phần mềm trình làm việc, hiểu chế hoạt động dự án game lớn đồng thời có nhìn rõ ràng cơng việc vị trí thành viên phận game Client Chân thành cảm ơn lòng nhiệt tình giúp đỡ anh chị Leader, Mentor trưởng HR dìu dắt hỗ trợ, hướng dẫn từ ngày đầu em bước vào công ty Đặc biệt cảm ơn anh Huỳnh Phúc Trí hướng dẫn cận kề hỗ trợ kiến thức tảng lúc em cịn làm quen mơi trường làm việc Cảm ơn anh Trần Đại Dương hướng dẫn tận tình kiến thức cần nắm trình tìm hiểu, vận dụng trình tiếp cận dự án thật, làm việc Em xin chân thành cảm ơn thầy cô khoa Công nghệ phần mềm hỗ trợ, tạo điều kiện em hoàn thành báo cáo Hồng Thế Kỷ Tp Hồ Chí Minh, ngày 20 tháng 12 năm 2021 Trang NHẬN XÉT CỦA KHOA ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… Trang MỤC LỤC Nội dung MỤC LỤC Chương 1: Giới thiệu công ty thực tập Giới thiệu Công Ty Cổ Phần GIHOT Sản phẩm công ty Chương 2: Nội dung thực tập Tìm hiểu cơng ty kỹ làm việc Nghiên cứu trải nghiệm công cụ sử dụng trình làm việc Thực mini game 10 Làm quen với Regular Expression .12 Tạo hệ thống chat client chung mạng 12 Tìm hiểu Unity 3D 13 Tìm hiểu, cài đặt sử dụng phần mềm quản lí Source code 17 Tiếp cận dự án thật, trải nghiệm công việc .18 Chương 3: Lịch làm việc 19 TÀI LIỆU THAM KHẢO 20 TỔNG KẾT 21 Trang Chương 1: Giới thiệu công ty thực tập Giới thiệu Công Ty Cổ Phần GIHOT Công ty Cổ phần GIHOT thành lập từ năm 2014, cơng ty lập trình phát triển game tạo giá trị thương mại thị trường game Việt GIHOT - studio Việt Nam chuyên sản xuất phát triển game online hai tảng WEB MOBILE Với đam mê mong muốn đưa sản phẩm game online Việt Nam giới, GIHOT nỗ lực không ngừng để mang đến cho người dùng trải nghiệm tuyệt vời Được thành lập năm 2015, trải qua nhiều năm nỗ lực không ngừng, GIHOT triển khai thành công dịch vụ Game Online nước Việt Nam, Trung Quốc, Lào, Cam-pu-chia, Phi-lip-pin… q trình chuẩn bị mở rộng tồn khu vực Đơng Nam Á nói riêng Châu Á nói chung, mục tiêu “Vươn biển lớn – Sea to Ocean” Trang Sản phẩm công ty Thể loại MMORPG, 3D : - Cửu Dương Truyền Kỳ (android, IOS) - Thiếu niên nhẫn giả (android, IOS) - Spirit Land Legend (android, IOS) Thể loại Turn-based, 3D : - Hải trình huyền thoại (android, IOS) - Chiến binh vũ trụ (android, IOS) Trang Chương 2: Nội dung thực tập Đợt thực tập với chủ đề “Lập trình game 3D Android Unity” nhằm mục đích giúp sinh viên thực tập đào tạo toàn diện lập trình game 3D Android bước đầu làm quen với Unity, đồng thời rèn luyện kỹ mềm làm việc nhóm, trao đổi trình bày ý kiến Tại cơng ty, sinh viên có hội học tập, khám phá làm việc môi trường phát triển game chuyên nghiệp Bên cạnh đó, sinh viên cịn có hội tìm hiểu tồn cảnh vai trị đội ngũ phát triển game, đồng thời rèn luyện kỹ giao tiếp giải vấn đề phải làm việc chung với đội ngũ Tìm hiểu cơng ty kỹ làm việc Thời gian : ngày Nội dung : Giới thiệu công ty, nơi làm việc, quy định công sở Được nghe người phụ trách giới thiệu công ty Gihot, trình thành lập phát triển, sản phẩm làm nên tên tuổi Được gặp gỡ anh, chị quản lý cấp cao phận, đội ngũ công ty Giới thiệu làm quen với anh mentor, bạn fresher chung nhóm Studio gồm đội ngũ chính: o Client: Đội ngũ chuyên xử lí Front End (thực tập sinh bố trí vị trí phận đạo anh Huỳnh Phúc Trí – Leader phận hướng dẫn anh Trần Đại Dương – Mentor đợt thực tập này) o Server: Đội ngũ chuyên xử lí Back End o Design: Đội ngũ chuyên thiết kế, lên ý tưởng Sau thực tập sinh giới thiệu văn hóa làm việc cơng ty, bao gồm giấc làm việc, cách thức chấm công, quy định chung môi trường làm việc, Trang khu vực công ty tủ lạnh – bếp, phòng họp, lối vào Cuối thực tập sinh bố trí vị trí làm việc, hướng dẫn cài đặt thiết bị chuẩn bị cho công việc Kết : Hiểu thêm công ty, đặc biệt quy trình phong cách làm việc Làm quen với anh mentor, bạn fresher Nắm rõ lịch trình ngày làm việc cơng ty Có tinh thần kỷ luật trách nhiệm Nghiên cứu trải nghiệm cơng cụ sử dụng q trình làm việc Thời gian : ngày Nội dung : Tìm hiểu công cụ sử dụng trình làm việc Trong thời gian này, thực tập sinh cài đặt làm quen công cụ hỗ trọ công việc sau Một số phần mềm số Tortoise SVN - sử dụng làm việc nhóm, dùng để chia liệu nhanh thành viên phận đội ngũ, Telegram – kênh chat chung công ty nơi trao đổi ý kiến, vấn đề q trình làm việc hay báo cáo cơng việc cuối ngày lên nhóm chat phận, trang Web nội công ty – dùng để nhận cập nhật công việc hàng ngày cá nhân công ty Kết : Nắm sử dụng cơng cụ phổ biến, nhận tính tiện dụng cơng cụ hình dung rõ quy trình làm việc Trang Thực mini game Thời gian : tuần Nội dung : Hiện thực game tương tự Stack jump, sử dụng Unity 2017.4.39 Trong thời gian này, thực tập sinh cài đặt làm quen với Unity 3D, đồng thời kết việc làm quen – tìm hiểu engine thực game 3D với chế tương tự game Stack jump Quy trình : - Tìm hiểu chế game, ghi cần làm, cần có game Trang 10 - Bắt đầu thực, thử tạo khối hộp (cube) sử dụng làm bắt đầu game đổi màu kéo kích cỡ nhỏ lại làm moving platform, cuối khối nhỏ, trắng đại diện cho nhân vật chơi - Tìm hiểu cách vật thể game sử dụng lực trọng lực, cách xét va chạm Tiến hành tìm hiểu code người chơi Input “Space”, nhân vật nhảy lên - Code moving platform di chuyển qua lại không bị ảnh hưởng trọng lực, phát sinh vấn đề moving platform di chuyển theo thứ tự người chơi chạm platform - Tìm hiểu cách khởi tạo vật thể mà không cần đặt sẵn trước không gian, xét moving platform khởi tạo ngẫu nhiên từ trái phải, với tốc độ ngẫu nhiên khoản định, nảy sinh vấn đề game không tối ưu tiếp tục khởi tạo vật thể vật thể khởi tạo không dùng lại cịn tồn - Thay phải phá hủy vật thể khỏi tầm mắt người chơi, người hướng dẫn (anh Huỳnh Phúc Trí) gợi ý sử dụng Object pool pattern (một pattern cho phép sử dụng lại vật thể dùng mà không ảnh hưởng đến gameplay, giúp việc tối ưu game chạy dài), sau áp dụng pattern, không tồn vật thể không dùng tầm mắt người chơi - Viết code hệ thống moving platform, khởi tạo moving platform lúc bắt đầu game, nhân vật nhảy lên rơi xuống va chạm phía moving platform di chuyển, platform dừng lại đứng yên, hệ thống khởi tạo platform mới, cịn nhân vật khơng nhảy nhảy va chạm moving platform phía khác, hệ thống ngừng khởi tạo (game kết thúc) - Tìm hiểu thực cách load lại level nhân vật thua - Tìm hiểu thực code tính điểm in bên phải vị trí nhân vật nhảy lên platform, phát sinh tình có bonus point nhân vật nhảy lên platform đồng thời platform xếp chồng xác platform mà khơng thừa không thiếu - Tạo sai số theo chiều x không gian, nhân vật nhảy lên platform thành cơng platform dừng lại, tâm platform platform phía theo chiều x nằm khoảng sai số, tự động platform dịch chuyển xếp chồng hồn hảo tính bonus point cho người chơi Trang 11 - Cuối cùng, tìm hiểu tạo UI để người chơi nhấn bắt đầu game, nhấn xem high score lần chơi trước lưu - Xuất game file apk để chơi thử điện thoại Kết : Nắm kiến thức lập trình game Unity 3D game đơn giản 3D điện thoại, cho nhìn tổng quan trạng thái game Làm quen với Regular Expression Thời gian : ngày Nội dung : Tìm hiểu ý nghĩa, nội dung Regex pattern, đồng thời cách áp dụng vào tình thường sử dụng Làm số ví dụ minh họa sử dụng Regex Regular Expression pattern cho phép lấy thông tin cần thiết đoạn text dựa đặc điểm nhận dạng biết Từ cho phép áp dụng vào nhiều tình đời thường nhắn tin điện thoại, phân loại message server – client cho tình cụ thể Kết : Nắm kiến thức việc sử dụng Regex cách áp dụng vào tình đời thường, cho nhìn tổng quan việc xử lí tin nhắn nhận gửi Tạo hệ thống chat client chung mạng Thời gian : 1,5 tuần (11 ngày) Nội dung : Thiết kế hệ thống server lắng nghe – gửi tin nhắn đến từ client chung mạng Quy trình : - Tìm hiểu sử dụng Socket (Socket API cung cấp phương thức để giao Trang 12 tiếp thông qua mạng) để dựng sẵn Client mẫu sử dụng TcpClient, tạo yêu cầu kết nối đến Server với port xác định phương thức Connect lấy luồng giao tiếp GetStream - Thiết kế Server – Client với TCP/IP (định sẵn IP để server lắng nghe port cụ thể), tạo TcpListener để bắt đầu lắng nghe cổng cục bộ, xác nhận kết nối với Client phương thức AcceptSocket trả đối tượng Socket dùng để gửi nhận liệu - Thiết kế Regex cho hệ thống chat, giúp Client nhận tin nhắn nhận diện tin nhắn đến từ Client nào, giúp Server nhận tin nhắn biết tin nhắn đến từ Client gửi cho Client nào, từ dễ dàng điều phối tin nhắn cách hợp lý - Thiết kế UI cho Server Client : o Server: có nút khởi động/ tắt Server, danh sách Client (kèm tên) kết nối đến Server o Client: có chỗ điền tên nút kết nối đến Server, danh sách Client (kèm tên) kết nối đến Server, từ chọn vào Client để Tab nhắn tin riêng Kết : Cho nhìn cụ thể cách hoạt động việc xử lí hệ thống chat, từ nắm khái quát cách vận hành giao tiếp Server Client game Online Tìm hiểu Unity 3D Thời gian : tuần Nội dung : Tìm hiểu làm ví dụ thể nội dung phổ biến anh mentor Đại Dương - Character: o Model: file model chứa mơ hình 3D, nhân vật hay tòa nhà, đồng thời chứa liệu animation truyền vào từ Trang 13 Animation Clips o Texture: file ảnh 2D chứa liệu pixel o Material: định nghĩa bề mặt render o Shader: đoạn code nhỏ, chứa tính tốn cơng thức để tính màu pixel render, dựa vào ánh sáng nhận cấu hình Material - Map: o Baked light: Unity tính tốn cho Baked light, sau lưu lại kết dạng liệu ánh sáng, trình gọi baking Khi chạy, Unity load liệu ánh sáng baked vào scene (giảm chi phí chạy khơng thể thay đổi trình chạy) o Dynamic Light: tính tốn thời gian thực • Point light: bóng đèn sợi đốt, chiếu sáng vật thể dựa khoản cách với vật thể • Directional light: mặt trời, tác dụng lên toàn vật thể • Spot light: đèn pin hay đèn pha xe tơ, chiếu theo hướng theo hình phểu o Static batching: tập hợp vật thể static (không di chuyển) vào Meshes lớn, render chúng nhanh - Animation: o Mecanim: hệ thống animation, cho phép: workflow dễ dàng, có khả sử dụng animations từ character model sang character model khác, thuận tiện cho việc xem trước animation clip lúc chuyển cảnh chúng o Legacy: hệ thống animation lỗi thời, dùng để chạy dự án cũ o Animation type: • Humanoid: dùng để animate các dạng mơ hình người, cho phép sử dụng Animation Retarget (Animation Retarget cho phép sử dụng lại animation nhân vật sử dụng khung xương giống Trang 14 nhau) • Generic: dùng để animate tất vật thể khác Humanoid, không dùng Animation Retarget o Animation Clip: khối xây dựng nhỏ animation Unity, đại diện cho cử động nhỏ (như nhảy, chạy, ) kết hợp với animation clip khác o Transition: đoạn chuyển cảnh chuyển từ trạng thái animation sang trạng thái animation khác - Effect: o Particle: hệ thống Particle mơ render hình ảnh nhỏ hay Meshes (được gọi particles) để tạo hiệu hứng hình ảnh o 2D: sử dụng Effector 2D để tạo hiệu ứng sau: • PlatformEffector2D: tạo hành vi cho platform, ví dụ va chạm chiều • PointEffector2D: tạo lực hút đẩy nam châm vật thể • BuoyancyEffector2D: tạo hiệu ứng bề mặt nước có vật thể tác động • AreaEffector2D: tạo khu vực có vật thể vào chịu tác dụng lực với góc lực định sẵn o 3D: • Trail Renderer: tạo vệt đường vẽ phía sau vật thể di chuyển theo thời gian thực • Lens Flare: mô hiệu ứng ánh sáng bị khúc xạ lens camera • Halo: vùng ánh sáng hào quang bao quanh nguồn sáng, dùng để tạo cảm giác có hạt bụi nhỏ khơng gian o UI: • Canvas: thành phần Game Object, tất thành phần Trang 15 UI vật thể này, tất thành phần UI vẽ chồng theo thứ tự Hierarchy (hệ thống cấp bậc vật thể Scene) • Panel: đơn giản thành phần hình ảnh Game Object kéo giãn, chứa thành phần UI làm • Image: điều khiển Image trình bày hình ảnh khơng thể tương tác (như trang trí icon) người chơi • Button: điều khiển Button phản hồi cho click từ người chơi, dùng để khởi tạo chấp thuận hành động • Rect Transform: thành phần 2D layout Game Object, đại diện cho hình chữ nhật mà thành phần UI đặt bên o Life Cycle: Trang 16 - Một số nội dung việc code: o Coroutine / Invoke: cho phép chờ / trì hỗn đoạn code / hàm o Singleton: đảm class có instance (khi khởi tạo), cung cấp cách toàn cầu để truy cập đến instance o Asset Bundle: tài nguyên (như hình ảnh, Prefab, ) lưu trữ mạng, sử dụng load lên, tránh trường hợp load tài nguyên từ đầu game, dẫn đến tốn thời gian RAM) Kết : Cho nhìn cụ thể cách hoạt động việc xử lí phận game 3D, từ nhận thấy tầm quan trọng thành phần đóng góp vào game Tìm hiểu, cài đặt sử dụng phần mềm quản lí Source code Thời gian : ngày Nội dung : Tìm hiểu cách sử dụng Source Tree kết hợp với Gitlab để tiếp cận dự án công ty Trang 17 Kết : Có nhìn cận cảnh dự án vai trò thành viên phận Client, hiểu cách thức thành viên team hoạt động chung với để xây dựng sản phẩm Tiếp cận dự án thật, trải nghiệm công việc Thời gian : 1,5 tuần (10 ngày) Nội dung : Tiếp cận dự án phát triển công ty, nhận số công việc để trải nghiệm Tiến hành chạy thử game dự án Unity, chơi qua để hiểu chế game cách vận hành Tìm hiểu ngôn ngữ – Lua dự án, bắt đầu đọc code để hiểu số luồng game dùng để gọi event Nhận số Task (công việc) để trải nghiệm thử công việc vị trí phận game Client hướng dẫn anh mentor Đại Dương (Các Task fix bug, đòi hỏi thực tập sinh phải hiểu cách hoạt động UI luồng code để lấy liệu từ Server Config đưa lên hình game) Kết : Có nhìn cụ thể công việc thành viên phận game Client, hiểu cách hoạt động lớp, luồng code dự án lớn trình chạy game nào, đồng thời cho cảm giác lạ hoàn thành số Task đẩy lên Source code dự án công ty Trang 18 Chương 3: Lịch làm việc Tuần Công việc Người hướng dẫn - Tìm hiểu cơng ty kỹ làm việc (Trang 8) - Nghiên cứu trải nghiệm cơng cụ sử dụng q trình làm việc (Trang 9) - Bắt đầu thực mini game (Trang 10-12) - Chị Sao: trưởng phận HR - Anh Trí: trưởng phận game Client 100% - Kết thúc thực mini game (Trang 10-12) - Làm quen với Regular Expression (Trang 12) - Anh Trí: trưởng phận game Client 100% - Bắt đầu tạo hệ thống chat client chung mạng (Trang 12-13) - Anh Trí: trưởng phận game Client 100% - Kết thúc tạo hệ thống chat client chung mạng (Trang 12-13) - Anh Trí: trưởng phận game Client 100% - Bắt đầu tìm hiểu Unity 3D (Trang 13-17) - Anh Dương: phó phận game Client kiêm Mentor 100% - Kết thúc tìm hiểu Unity 3D (Trang 13-17) - Anh Dương: phó phận game Client kiêm Mentor 100% - Tìm hiểu, cài đặt sử dụng phần mềm quản lí Source code (Trang 17) - Bắt đầu tiếp cận dự án thật, trải nghiệm công việc (Trang 18) - Anh Trí: trưởng phận game Client - Anh Dương: phó phận game Client kiêm Mentor 100% - Kết thúc tiếp cận dự án thật, trải nghiệm công việc (Trang 18) - Anh Trí: trưởng phận game Client - Anh Dương: phó phận game Client kiêm Mentor 100% Trang 19 Mức độ hoàn thành TÀI LIỆU THAM KHẢO Game Stack Jump https://www.youtube.com/watch?v=t3BhIoYbEa8&t=7s Object Pooling https://learn.unity.com/tutorial/introduction-to-object-pooling https://www.youtube.com/watch?v=tdSmKaJvCoA Regular Expression https://openplanning.net/10795/csharp-regular-expression Socket https://yinyangit.wordpress.com/2011/06/22/socket-communication-with-tcp-clientserver/ Unity 3D https://docs.unity3d.com/ Sourcetree tutorial https://confluence.atlassian.com/get-started-with-sourcetree Trang 20 TỔNG KẾT Trong vòng tháng, em hoàn thành sản phẩm game 3D theo phong cách Casual game, hiểu cơ chế nhận – gửi tin nhắn Client Server, có kiến thức thành phần quan trọng Unity game 3D Online, biết sử dụng phần mềm quản lý Source code (Source Tree) tương tác với phần mềm trình làm việc, hiểu chế hoạt động dự án game lớn đồng thời có nhìn rõ ràng cơng việc vị trí thành viên phận game Client Chân thành cảm ơn lòng nhiệt tình giúp đỡ anh chị Leader, Mentor trưởng HR dìu dắt hỗ trợ, hướng dẫn từ ngày đầu em bước vào công ty Một lần xin trân trọng cảm ơn công ty – studio Gihot tổ chức chương trình thực tập em hội thử sức với vai trò Game Developer Cảm ơn thầy cô khoa Công nghệ Phần mềm tạo điều kiện cho em tham gia thực tập hoàn thiện báo cáo Trang 21 ... vũ trụ (android, IOS) Trang Chương 2: Nội dung thực tập Đợt thực tập với chủ đề ? ?Lập trình game 3D Android Unity? ?? nhằm mục đích giúp sinh viên thực tập đào tạo tồn diện lập trình game 3D Android. .. quy trình làm việc Trang Thực mini game Thời gian : tuần Nội dung : Hiện thực game tương tự Stack jump, sử dụng Unity 2017.4.39 Trong thời gian này, thực tập sinh cài đặt làm quen với Unity 3D, ... đị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 chun nghiệp, em có dự định thực tập sau

Ngày đăng: 10/03/2022, 20:34

Xem thêm:

TỪ KHÓA LIÊN QUAN

w