Lập trình mobile game 2d

21 3 0
Lập trình mobile game 2d

Đ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

1 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 MOBILE GAME 2D Công ty thực tập: PocketSized Games Người phụ trách: Anh Nguyễn Vĩnh Lộc Thực tập sinh: Trần Nguyên Tiến Nam TP Hồ Chí Minh, tháng 12 năm 2022 Nguyễn Vĩnh Lộc Trần Nguyên Tiến Nam LỜI MỞ ĐẦU Ngày nay, game không thú vui tiêu khiển, mà sản phẩm đem lại nguồn lợi nhuận lớn Ngành công nghiệp game phát triển mạnh mẽ nhanh chóng vũ bão, ngày đem đến cho game thủ sản phẩm chất lượng Xu kéo theo nhu cầu nhân chất lượng cao Nghề làm game dần trở thành định hướng nghề nghiệp xán lạn Càng cho em thêm lý để theo đuổi niềm đam mê u thích với loại hình giải trí mẻ Thực tập giai đoạn chập chững đứa trẻ tập đi, cá vùng vẫy từ ao nông biển rộng Thực tập bước khởi đầu cho hành trình định vị thân Đứng trước nhiều lựa chọn cơng ty, tập đồn lớn VNG, Gameloft, Wolffun,… đem lại môi trường chuyên nghiệp, quy củ, em lại chọn startup có tuổi đời trẻ PocketSized Games để gắn bó thời gian thực tập Ở PocketSized Games, em tin mài dũa mơi trường động, trải nghiệm qua nhiều vai trò, từ có nhìn tổng quan Nguyễn Vĩnh Lộc Trần Nguyên Tiến Nam LỜI CẢM ƠN Trân trọng gửi lời cảm ơn đến Công ty PocketSized Games tạo điều kiện cho em có hội thực tập công ty Chỉ thời gian ngắn, nhờ dẫn nhiệt tình anh Nguyễn Vĩnh Lộc, nhóm thực tập chúng em tiếp thu nhiều kiến thức quan trọng Unity, tư lập trình, tư giải vấn đề Đặc biệt cảm ơn anh Nguyễn Vĩnh Lộc giúp đỡ cho chúng em tận tình vượt qua khó khăn công việc Chân thành cảm ơn chị Tiên Nguyễn, anh Trần Gia Khánh giúp chúng em làm quen với môi trường Chân thành cảm ơn anh Martin Vũ, đưa phản hồi giúp chúng em nhìn nhận ưu nhược điểm thân để khắc phục phát huy Trần Nguyên Tiến Nam Tp.HCM, ngày 23 tháng 12 năm 2022 Nguyễn Vĩnh Lộc Trần Nguyên Tiến Nam NHẬN XÉT CỦA KHOA Nguyễn Vĩnh Lộc Trần Nguyên Tiến Nam MỤC LỤC LỜI MỞ ĐẦU LỜI CẢM ƠN NHẬN XÉT CỦA KHOA 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 Sản phẩm công ty Văn hóa cơng ty 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 Lịch làm việc 12 Chương 3: Chi tiết dự án 14 Giới thiệu game 14 Thực 18 Kế hoạch 19 TÀI LIỆU THAM KHẢO 20 TỔNG KẾT 21 Nguyễn Vĩnh Lộc Trần Nguyên Tiến Nam Chương 1: Giới thiêu công ty thực tập Giới thiệu công ty PocketSized Games thành lập vào năm 2020 Hiện nay, cơng ty có 10 nhân viên làm việc với dự án outsource, NFT dự án riêng cơng ty Cơng ty có kinh nghiệm làm việc với nhiều nhà phát hành game casual hyper-casual Nổi bật đối tác đồng hành với PocketSized Games RFOX, Amanotes, Boombit, Playmobil, Jambox,… Bên cạnh đó, PocketSized Games phát triển, phát hành tựa game NFT đến cộng đồng Sản phẩm công ty Với nguồn lực sẵn có, PocketSized Games sản xuất game thuộc đa dạng thể loại khoảng thời gian ngắn Công ty thực dự án chính, bao gồm: • SDK cho phép bổ sung nhanh chóng tính NFT vào game tảng WAX Binance • Dungeon Pets: Game NFT thể loại idle gacha, auto chess nhấn mạnh vào khía cạnh gameplay hẳn việc chơi để kiếm tiền game NFT khác thị trường Nguyễn Vĩnh Lộc Trần Nguyên Tiến Nam • Playmobil Companion App: App sưu tầm vật phẩm hệ sinh thái đồ chơi Playmobil tập đồn Brandstätter Bên cạnh đó, trước đây, PocketSized Games đảm nhận phát triển nhiều dự án game casual, hyper-casual NFT, kể đến Kogs Slam!, War of Nations, Basket Bounce,… Văn hóa cơng ty Thời gian làm việc linh động, không cố định khung ngày hay khung ngày tuần Công ty không bắt buộc nhân viên phải làm việc văn phòng, hầu hết nhân viên Nguyễn Vĩnh Lộc Trần Nguyên Tiến Nam làm việc gia Điều giúp em thuận tiện xếp công việc để vừa học vừa làm, miễn hồn thành cơng việc giao Với quy mô nhân hạn chế, nhiều anh chị đồng nghiệp thường kiêm nhiều vai trị Thế nên, có nhu cầu trao đổi cơng việc xoay quanh – người Buổi họp tồn cơng ty thường tổ chức online lúc 21 thứ Hai tuần Đây buổi họp định kì để team cập nhật tiến độ dự án thông báo kế hoạch Văn phịng cơng ty có khơng gian để anh em giải lao hoạt động chơi game console, buổi tabletop game Nguyễn Vĩnh Lộc Trần Nguyên Tiến Nam Chương 2: Nội dung thực tập Đợt thực tập với chủ đề “Lập trình game 2D thiết bị di động” 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 2D Android, đồng thời rèn luyện kỹ mềm làm việc nhóm, thuyết trình, giao tiếp 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 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 nghe người phụ trách giới thiệu công ty, trình thành lập phát triển, quy trình làm việc, cách thức tổ chức văn hóa cơng ty Ngồi ra, thực tập sinh cịn giới thiệu khái quát quy trình sản xuất game vị trí quan trọng lĩnh vực phát triển game Kết quả: Hiểu thêm công ty PocketSized Games, q trình thành lập phát triển Làm việc có kế hoạch, có kỷ luật, có trách nhiệm Nghiên cứu kỹ thuật 2.1 Các công cụ làm việc Thời gian: ngày Nội dung: Tìm hiểu cơng cụ sử dụng q trình làm việc Trong thời gian này, mentor hướng dẫn thực tập sinh làm quen với việc sử dụng công cụ quản lý dự án, giao tiếp công việc Ba phần mềm sử dụng Jira, Slack Google Drive Thực hiện: Thực hành sử dụng phần mềm nêu Kết quả: Đã làm quen với quy trình làm việc 2.2 Tìm hiểu tổng quan kiến thức C# Unity Thời gian: ngày (1 tuần) Nội dung: • Cấp phát vùng nhớ: Nguyễn Vĩnh Lộc Trần Nguyên Tiến Nam 10 o Phân biệt stack memory heap memory: Stack memory Heap memory Định nghĩa Là mảng vùng nhớ, Là khu vực vùng nhớ, tuân theo cấu trúc LIFO liệu lưu trữ loại bỏ theo thứ tự Sử dụng cho đối tượng nào? Kiểu giá trị Kiểu tham chiếu Kiểu cấp phát Tĩnh Động Kiểu lưu trữ Trực tiếp Gián tiếp Có thể thay đổi kích thước? Khơng thể Có thể Tốc độ truy cập Nhanh Chậm o Garbage collector Unity: Unity sử dụng Boehm–Demers–Weiser garbage collector cơng cụ thu gom lại vùng nhớ khơng cịn sử dụng Khi script cố cấp phát heap memory khơng có đủ đủ vùng nhớ cho việc cấp phát, Unity chạy garbage collector Mặc định, Unity sử dụng chế độ tăng cường, tức chia nhỏ cơng việc lên nhiều frame thay dừng hẳn luồng CPU Điều tạo nên gián đoạn ngắn thay buộc chương trình ngưng hoạt động khoảng thời gian dài • Rendering pipeline: Ở mức độ tiếp cận, anh mentor đề cập đến giai đoạn Rendering thay bao gồm giai đoạn khác Culling Post-processing Cách hình ảnh kết xuất, số lưu ý sử dụng sprite asset để tối ưu hiệu • Cách tổ chức thư mục, quy ước đặt tên file, code Thực hiện: • Tham gia đầy đủ buổi training công ty • Làm thực hành, kiểm tra kiến thức học Kết quả: • Nâng cao kỹ lập trình với ngơn ngữ C# Nguyễn Vĩnh Lộc Trần Ngun Tiến Nam 11 • Có kiến thức quan trọng cho việc lập trình game mobile sau • Biết thêm số quy tắc việc viết code dễ đọc, dễ hiểu 2.3 Lập trình Hệ thống Giả lập Trận đấu Theo lượt Thời gian: ngày (1 tuần) Nội dung: Trận đấu Theo lượt trình nhân vật luân phiên thực hành động Thay việc xử lý logic trận đấu song song với việc hiển thị hình ảnh cho người chơi theo dõi, ta có cách tiếp cận khác tách việc xử lý logic trận đấu riêng tái diễn sau tiến trình giả lập hồn tấc Điều giúp số game kiểm sốt tính bảo mật server, tránh bị người chơi local tác động vào Thực hiện: • Thực prototype hoạt động hồn tồn local • Kiểu hành động nhân vật chưa đa dạng, có tăng giảm loại số Kết quả: • Prototype hồn thiện không sử dụng dự án khác 2.4 Lập trình game Playmobil Companion App Thời gian: tuần Nội dung: Cộng tác anh Nguyễn Vĩnh Lộc, nhóm em có hội thực chiến dự án nhỏ Chi tiết dự án đề cập phần sau tài liệu Thực : • Tìm hiểu UI System: Đây kiến trúc anh Nguyễn Vĩnh Lộc tự phát triển, giúp quản lý, mở đóng giao diện thuận tiện tối ưu hiệu • Lập trình giao diện, logic, flow hình: Main, Shop, Collection, User Info, Setting • Tìm hiểu triển khai số plugin hữu ích vào dự án: o Dotween: Cho phép tạo Tween dạng Tweener (Tween đơn lẻ) Sequence (gồm nhiều Tween tiếp nối nhau) để nội suy nhiều kiểu liệu (float, vector, transform, color,…) với đa dạng tùy chỉnh (thời gian, giá trị đầu cuối, lặp, hàm nội suy…) Nguyễn Vĩnh Lộc Trần Nguyên Tiến Nam 12 o Spine: Tích hợp animation tạo từ phần mềm hoạt ảnh bên thứ ba Spine o Super Scroll View: Giao diện cuộn open source load liệu item nằm vùng nhìn thấy, giúp tiết kiệm hiệu thay load tất item Scroll View Unity o I2 Localization: Tạo phiên bản địa hóa cho khu vực mà game phát hành Các thành phần địa hóa chữ, hình ảnh, âm thanh,… • Lập trình minigame Pair Matching • Triển khai asset skeleton animation, background music, sound effect Kết quả: • Hồn thành cơng việc tiến độ • Chất lượng hoàn thiện tương đối tốt, đặc biệt minigame Pair Matching • Học cách sử dụng thành phần UI plugin hỗ trợ cho Unity Lịch làm việc Tuần Công việc Tìm hiểu cơng ty, hệ thống tổ chức, quy trình, văn hóa cơng ty Người hướng dẫn Mức độ hoàn thành Nhận xét người hướng dẫn Anh Martin Vũ Anh Nguyễn Vĩnh Lộc Làm quen với cơng cụ quản lý dự án Tìm hiểu chi tiết thành phần Unity Thực demo Hệ thống Giả lập Trận đấu Theo lượt Anh Nguyễn Vĩnh Lộc Làm quen với UI System Anh Martin Vũ Làm UI số hình Anh Nguyễn Vĩnh Lộc Nguyễn Vĩnh Lộc Trần Nguyên Tiến Nam 13 Tìm hiểu I2Localization Anh Martin Vũ Tìm hiểu Spine Animation Anh Nguyễn Vĩnh Lộc Làm giao diện, tính hình Bộ sưu tập Làm Audio System, Event System (dựa design pattern Event Bus) Anh Martin Vũ Anh Nguyễn Vĩnh Lộc 6–8 Test, fix bug, làm tutorial flow cho dự án Dungeon Pets Thực game Match3 Anh Martin Vũ - 12 Nguyễn Vĩnh Lộc Anh Nguyễn Vĩnh Lộc Anh Khởi Vũ Anh Nguyễn Vĩnh Lộc Trần Nguyên Tiến Nam 14 Chương 3: Chi tiết dự án Giới thiệu game Tên dự án: Playmobil Companion App Mô tả: Playmobil Companion App mobile app thuộc thương hiệu đồ chơi Playmobil Người dùng ngẫu nhiên nhận mơ hình vật phẩm nhân vật Hero thông qua việc mua mở gói game Người chơi nhập mã code sản phẩm đồ chơi Playmobil ngồi đời thực để có phần game Người chơi sở hữu đơn vị tiền ảo game vàng, dùng để mua gói quà chứa vật phẩm sưu tầm vật phẩm bổ trợ giúp tăng khả kiếm tiền thông qua việc chơi minigame Game có minigame Pair Matching Vật phẩm sưu tầm bao gồm nhân vật hero trang bị tương ứng với hero Nguyễn Vĩnh Lộc Trần Nguyên Tiến Nam 15 Nguyễn Vĩnh Lộc Trần Nguyên Tiến Nam 16 1.1 Giới thiệu minigame Pair Matching Nguyễn Vĩnh Lộc Trần Nguyên Tiến Nam 17 Mô tả: Khu vực chơi game ma trận 8x8, chứa biểu tượng nhiều màu sắc số nhân vật game Mục tiêu: Kiếm nhiều điểm thời gian giới hạn Cách chơi: Chạm vào khối màu liền kề để phá hủy chúng nhận lượng điểm tương ứng với số khối bị phá hủy Với số lượng khối kết nối định tạo powerup tương ứng • Từ – khối: Crayola • Từ – khối: Pizza Nguyễn Vĩnh Lộc Trần Nguyên Tiến Nam 18 • Từ 10 khối trở lên: Disco Khi chạm vào khối powerup nhận lượng điểm tương ứng kích hoạt cơng đặc biệt riêng kết hợp với powerup liền kề để kích hoạt cơng mạnh mẽ Nếu có nhiều powerup khác xung quanh, kết hợp với powerup để tạo combo có độ ưu tiên cao • Crayola, phá hủy ngẫu nhiên hàng cột khối • Pizza, phá hủy khối bán kính đơn vị, có tâm Pizza kích hoạt (8 khối xung quanh) • Disco, phá hủy tất khối có màu với Disco Màu Disco màu khối tạo nên powerup trước • Crayola + Crayola, phá hủy hàng cột • Crayola + Pizza, phá hủy ngẫu nhiên hàng cột • Pizza + Pizza, phá hủy khối bán kính đơn vị, có tâm Pizza kích hoạt (24 khối xung quanh) • Disco + powerup khác, biến tất khối có màu trở thành powerup kích hoạt chúng • Disco + Disco, phá hủy tất khối Trong q trình chơi, người chơi sử dụng powerup mua trước vào minigame để cải thiện kết Kết quả: Hết thời gian, lượng điểm mà người chơi có quy đổi sang lượng vàng nhận Để tăng hiệu lần chơi, người chơi sử dụng vật phẩm mua minigame Pair Matching, booster thêm thời gian, tăng lượng điểm lượng vàng kiếm Thực thành viên team internship PocketSized Games: • Trần Nguyên Tiến Nam • Anh Nguyễn Trung Nghĩa Và giúp đỡ tận tình cộng tác mentor anh Nguyễn Vĩnh Lộc Nguyễn Vĩnh Lộc Trần Nguyên Tiến Nam 19 Kế hoạch Việc sản xuất kéo dài tháng, với tháng tương ứng với milestone sau: 2.1 Milestone (15 tháng – 15 tháng 7) Những tính cho việc phát hành MVP Google play Appstore • Bộ sưu tập 24 Hero có hoạt ảnh • Phiên Hero • Nhập code để mở gói • Những tính app đăng nhập, thiết lập cài đặt,… • Setup Firebase 2.2 Milestone (18 tháng – 12 tháng 8) Trau chuốt hồn thiện • Cải thiện art asset ảnh background animation • Sửa lỗi chuẩn bị cho lần phát hành • Sự kiện Firebase 2.3 Milestone (15 tháng – 16 tháng 9) • Bảng phân tích liệu cơng cụ cho quản trị viên • Một số công cụ khác Appsflyer, tùy theo nhu cầu khách hàng Nguyễn Vĩnh Lộc Trần Nguyên Tiến Nam 20 TÀI LIỆU THAM KHẢO Unity (n.d.) User Manual Retrieved from Unity Document: https://docs.unity3d.com/Manual/ Loc, N V (n.d.) UI System Manual Dermigiant (n.d.) Dotween Document Retrieved from http://dotween.demigiant.com EsotericSoftware (n.d.) spine-unity Runtime Documentation Retrieved from http://en.esotericsoftware.com/spine-unity#spine-unity-Runtime-Documentation InterIllusion (n.d.) I2LocalizationManual Retrieved from http://interillusion.com/assets/I2LocalizationManual/I2LocalizationManual.html RainbowArt (n.d.) Super ScrollView for UGUI 2.4 Retrieved from https://www.dropbox.com/s/yuk0cpydcaufyz8/DocumentV2_4.pdf?dl=0 Nguyễn Vĩnh Lộc Trần Nguyên Tiến Nam 21 TỔNG KẾT Kết thúc quãng thời gian tháng thực tập ý nghĩa hứng khởi, em thu nạp nhiều kiến thức, kinh nghiệm kỹ bổ ích Đây bước chạy đà đáng giá cho nghiệp phát triển game sau Một lần nữa, xin chân thành cảm ơn giúp đỡ bảo tận tình anh chị gia đình nhỏ PocketSized Games, đồng hành chúng em Nguyễn Vĩnh Lộc Trần Nguyên Tiến Nam ... kỹ lập trình với ngơn ngữ C# Nguyễn Vĩnh Lộc Trần Ngun Tiến Nam 11 • Có kiến thức quan trọng cho việc lập trình game mobile sau • Biết thêm số quy tắc việc viết code dễ đọc, dễ hiểu 2.3 Lập trình. .. tồn diện lập trình game 2D Android, đồng thời rèn luyện kỹ mềm làm việc nhóm, thuyết trình, giao tiếp 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 chun... trình thành lập phát triển, quy trình làm việc, cách thức tổ chức văn hóa cơng ty Ngồi ra, thực tập sinh cịn giới thiệu khái qt quy trình sản xuất game vị trí quan trọng lĩnh vực phát triển game

Ngày đăng: 01/02/2023, 21:23