Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
11,3 MB
Nội dung
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 GAME 2D TRÊN NỀN TẢNG ANDROID VỚI UNITY3D Công ty thực tập : Anttizen Người phụ trách : Lê Thành Đạt Thực tập sinh : Trần Xuân Bắc TP Hồ Chí Minh, tháng 07 năm 2020 Người phụ trách: Lê Thành Đạt Trần Xuân Bắc LỜI CẢM ƠN Đầu tiên, em xin gửi lời cảm ơn đến công ty Anttizen đặc biệt anh Lê Thành Đạt, giám đốc công ty, cho em hội thực tập công ty Thời gian thực tập Anttizen thật ngắn ngủi, có tháng, giúp em học hỏi nhiều điều bổ ích, đồng thời rèn luyện kỹ lập trình C#, thiết kế hướng đối tượng làm việc nhóm Thực tập khơng để “code”, Anttizen cho chúng em hội gặp gỡ với bậc tiền bối, tiếp xúc với bậc đàn anh, đàn chị trước nghe chia sẻ kinh nghiệp từ họ Ngoài chúng em tham dự buổi trainning tuần lần, với hoạt động ngoại khoá vô hấp dẫn giúp em nhận “đi làm khơng phải cắm đầu vào máy tính” Em xin gửi lời cảm ơn đến chị Đoàn Thị Thu Thương, trưởng phịng Nhân sự, giúp đỡ nhóm thực tập sinh nhiệt tình vui vẻ, tổ chức hoạt động, ln tạo khơng khí vui tươi thảo luận công ty hoạt động ngoại khoá Em xin gửi lời cám ơn đến anh ban training: - Anh Nguyễn Thanh Cao - Anh Đinh Hoàng Khang training, hỗ trợ kỹ thuật C# Unity3D nhiều, giúp em cải thiện nhiều kỹ lập trình, kỹ sử dụng Framework, kỹ tổ chức nhóm, trình bày, báo cáo,… giúp chúng em hồn thành đợt thực tập Cuối cùng, em xin cảm ơn thầy/cô khoa Công nghệ Phần Mềm tạo điều kiện để em thực báo cáo Trần Xuân Bắc Tp.HCM, tháng năm 2020 Người phụ trách: Lê Thành Đạt Trần Xuân Bắc LỜI MỞ ĐẦU Phát triển game trở thành ngành công nghiệp quan trọng chiếm tỉ lệ không nhỏ công nghiệp phát triển phần mềm Ngày có nhiều cơng ty đầu tư vào ngành cơng nghiệp này, khơng mảng PC mà cịn thị phần game tảng di động để đáp ứng nhu cầu giải trí cho người dùng tồn giới Một số tựa game nhiều người biết đến Tuy quốc gia đứng đầu ngành cơng nghiệp game, Việt Nam góp phần không nhỏ vào việc phát triển game cung ứng cho thị trường ngồi nước Chính thị trường cần nguồn nhân lực trẻ phát triển game nên em mong muốn định hướng thân theo đường làm game chuyên nghiệp tương lai Do đó, em đăng kí thực tập hè cơng ty Anttizen với mong muốn tích lũy thêm nhiều kinh nghiệm cho thân học tập làm việc môi trường chuyên nghiệp đại Người phụ trách: Lê Thành Đạt Trần Xuân Bắc NHẬN XÉT CỦA KHOA Người phụ trách: Lê Thành Đạt Trần Xuân Bắc MỤC LỤC 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 Anttizen Sản phẩm công ty .6 Chương 2: Nội dung thực tập .7 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# nâng cao 2.3 Lập trình game 2D với UNITY3D 2.4 Các phần mềm hỗ trợ 2.5 Build game chạy tảng android Thực project .10 Lịch làm việc 11 Chương 3: Chi tiết project 13 Giới thiệu game 13 2.1 Bối cảnh .13 2.1 Cách chơi 13 Thực 17 Kế hoạch 18 Tài liệu tham khảo 19 Tổng kết 20 Người phụ trách: Lê Thành Đạt Trần Xuân Bắc Chương 1: Giới thiêu công ty thực tập Giới thiệu công ty Anttizen Anttizen công ty khởi nghiệp, hoạt động lĩnh vực công nghệ thông tin Thời gian đầu thành lập công ty tập trung phát triển phần mềm Windows webapp Cuối năm 2019 Anttizen mở rông thêm lĩnh vực trí tuệ nhân tạo game Sản phẩm công ty Công ty tập trung hướng đến game thể loại esports casino phát hành Google Play Một số game công ty phát hành Người phụ trách: Lê Thành Đạt Trần Xuân Bắc Chương 2: Nội dung thực tập Đợt thực tập với chủ đề “Lập trình game2D tảng android với Unity3D” 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 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 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 (như nhắc đến trên), quy trình làm việc từ cao xuống thấp, cách thức tổ chức công ty Ngồi ra, thực tập sinh cịn giới thiệu cách thức làm việc công ty thời gian làm, quy định cần phải tuân thủ, cách sử dụng email công việc… Kết : Hiểu thêm cơng ty Anttizen, q trình thành lập phát triển Có thêm kỹ việc sử dụng email cơng việc, 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 2.2 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, supervisor hướng dẫn thực tập sinh tìm hiểu cơng cụ giúp ích cho cơng việc sau Một số phần mềm số Soure Tree – sử dụng để commit source nhóm, Jira – ghi task, phân chia cơng việc nhóm, Visual Studio Code 2019, Unity3D Thực : Thực hành sử dụng phần mềm nêu Kết : Lập trình sử dụng cơng cụ miễn phí, giúp dễ dàng kết hợp công cụ với nhau, so với việc dung IDE Tìm hiểu ngơn ngữ C# nâng cao Thời gian : ngày (1 tuần) Nội dung : Được training kỹ thuật C# nâng cao, kiến thức quan trọng cho việc tối ưu Android - Lập trình hướng đối tượng Các kiến thức lập trình hướng đối tượng khái niêm, đặc tính tính kế thừa, tính đóng gói, tính ảo hóa, tính đa hình Ngồi ra, thực tập sinh cịn hướng dẫn cách thiết kế lớp cho đối tượng game Người phụ trách: Lê Thành Đạt Trần Xuân Bắc - Biến Instance(Monosingeton): Biến Instance môt phần quan trọng lập trình game, cần phải sử dụng để gọi object - Quản lý nhớ Thực tập sinh hướng dẫn cách cấp phát, quản lý nhớ cho tối ưu, tránh rò rỉ nhớ, phần quan trọng lập trình game điện thoại, nhớ điện thoại khơng thể lớn máy tính Save Load liệu lưu nhớ - Linq Hiểu sử dụng số hàm xếp Thực : - 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 : - 2.3 Nâng cao kỹ lập trình với ngơn ngữ C# Có kiến thức quan trọng cho việc lập trình game mobile sau Ngồi cịn biết thêm số quy tắc việc viết code cho chuẩn, dễ đọc, dễ hiểu Lập trình game 2D với UNITY3D Nội dung: Các kiến thức UNITY3D để làm game đơn giản - Các thành phần project Hiểu scene game, scripts game, asset game resource, cách tổ chức đặt tên thành phần project - Monobehavier(component transform rect transform): Hiểu cách hoạt động object component position, vị trí position theo scene hay theo tọa độ word - Shader Là phép biến đổi vertex, color hiệu ứng đặc biệt - DoTween Di chuyển thay đổi tọa độ position, hình ảnh, scale, nhằm tạo effect UI game Người phụ trách: Lê Thành Đạt Trần Xuân Bắc - File config (ScriptObject) Là file model tĩnh Nó chứa thơng tin, số game - PlayerPref : Giúp lưu liệu vào nhớ máy Thực : - Tham gia đầy đủ buổi trainning Làm tập thực hành làm số game đơn giản: Flappy Bird, Car Tìm kiếm tài liệu mạng để tìm hiểu thêm Kết : 2.4 - Có thể tạo trò chơi đơn giản với UNITY3D - Biết thêm nhiều kiến thức việc làm giao diện, xử lý game giúp cho việc phát triển lập trình game sau Các phần mềm hỗ trợ - Source Tree (GitLab): Lưu source commit source thành viên team - Slack: Chat, liên lạc team - Jira: Lưu task quản lý tiến độ project - Blue stack, nox: Một số chương trình giả lập test game 2.5 Build game chạy tảng android Nội dung : Hướng dẫn build game cho tảng android - Định nghĩa Android: Người phụ trách: Lê Thành Đạt Trần Xuân Bắc 10 Android tập hợp phần mềm (software stack) dành cho thiết bị di động, bao gồm hệ điều hành, phần mềm trung gian (middleware)và ứng dụng chủ chốt (key applications) Google Inc mua lại phát triển ban đầu phần mềm từ Android Inc., năm 2005 Hệ điều hành di động Android dựa tẳng Linux - Thêm số thư cần thiết: android SDK, android JDK, NDK - Tìm hiểu kích thước hình cài đặt tùy biến game cho kích thước hình khác - Build cài đặt build trò chơi tảng android Thực : - Tham gia đầy đủ buổi training Tạo trò chơi cài đặt chạy điện thoại android Kết quả: - Đã tạo trò chơi cài đặt tảng andoid Thực project Sau tháng training thực hành, thực tập sinh nắm kiến thực C#, UNITY3D, Android Trong tháng thứ hai, trainer hướng dẫn thực tập sinh áp dụng kiến thức học để thực project game 2D Android Chi tiết đồ án nói phần sau Người phụ trách: Lê Thành Đạt Trần Xuân Bắc 11 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, cách tổ chức công ty - Làm quen với công cụ làm việc công ty - Học cách trao đổi, làm việc nhóm - Tìm hiểu ngơn ngữ lập trình C# nâng cao - Thực hành C# - Làm test C# - Tìm hiểu UNITY3D - Thực hành tạo trò chơi - Tìm hiểu Android - Thực hành build game tảng android Giai đoạn Alpha(1): - Lên ý tưởng trị chơi - Tìm kiếm thể loại xu hướng game Giai đoạn Alpha(2): - Viết lớp quản lý Object, lớp - Xây dựng hệ thống chuồng trại quản lý chuồng trại Giai đoạn Alpha(3): - Code hiển thị hệ thống chuồng trại - Lưu liệu vào Anh Lê Thành Đạt - Mức độ hoàn thành Nhận xét người hướng dẫn Anh Đinh Hoàng Khang Anh Nguyễn Thanh Cao Anh Đinh Hoàng Khan Anh Nguyễn Thanh Cao Anh Nguyễn Thanh Cao Anh Đinh Hoàng Khang Anh Đinh Hoàng Khang Người phụ trách: Lê Thành Đạt Trần Xn Bắc 12 nhớ Tính tốn load liệu người chơi khơng mở trị chơi Giai đoạn Beta giai Anh Nguyễn đoạn kết thúc, báo cáo : Thanh Cao - Fix bug - Cân hệ thống số tiền game - Báo cáo cuối đợt thực tập - Người phụ trách: Lê Thành Đạt Trần Xuân Bắc 13 Chương 3: Chi tiết project Giới thiệu game Game lấy ý tưởng từ thể loại Idle Farm thịnh hành Google Play, từ xây dựng nơng trại đơn giản thực tế, kết hợp việc trị chơi tự hoạt động với việc thao tác, tính toán người chơi 1.1 Bối cảnh Người chơi trở thành người chủ trang trại vật nuôi, người chơi phải cố gắng phát triển trang trại minh ln trì số tiền để đảm bảo trang trại hoạt động 1.2 Cách chơi Mơ tả Người chơi bắt đầu trị chơi với trang trại nuôi gà với số lượng gà ban đầu, người chơi chăm sóc chúng chúng đẻ trứng, người chơi thu hoạch trứng, trứng để bán trao đổi chợ để thành vật phẩm hay loại thức ăn khác Người phụ trách: Lê Thành Đạt Trần Xuân Bắc 14 Kinh nghiệm Cứ hoạt động, người chơi nhận số kinh nghiệm đủ kinh nghiệm ô nuôi loại vật nuôi mở người chơi phép dùng vàng để mở ô vật nuôi Chuồng nuôi Mỗi ô chuồng nuôi nâng cấp số lần nâng cấp tối đa tới level 6, lần nâng cấp cần khoản vàng, sau nâng cấp số lượng khay thức ăn tăng, trữ lượng trứng tang, đồng thời số lượng vật nuôi tang theo Người phụ trách: Lê Thành Đạt Trần Xn Bắc 15 Vật ni Có chuồng nuôi chuồng nuôi tương ứng với loại vật nuôi, xếp từ: gà, vịt, heo, dê, cừu, ong Tương ứng với vật ni có loại thức ăn khác Vật ni có nhiều trạng thái khác nhau: Ăn, đẻ, di chuyển, đứng yên, đói, bệnh, buồn Ở trạng thái đợi người chơi tương tác (đói, bệnh, buồn) vật ni đứng n đợi cho đên người chơi có hành động tương tác phù hợp với trạng thái (ví dụ: cho ăn, cho uống thuốc) Hệ thống item vật phẩm Có loại item: item thuốc dùng vật nuôi bị bệnh, item trái tim dùng vật nuôi buồn Có trứng(vật phẩm thu hoach được) loại vật nuôi thức ăn loại vật nuôi Chợ Người phụ trách: Lê Thành Đạt Trần Xuân Bắc 16 Hệ thống giá chợ thay đổi sau 30 phút, nhằm mục đích giúp người chơi thường xuyên vào trò chơi để bán hay mua vật phẩm cho có lợi Hệ thống mua, bán: mua bán vật phẩm phù thuộc vào bảng giá chợ Hệ thống trao đổi vật phẩm: thay bán vật phẩm, người chơi sử dụng trứng, nông sản để trao đổi item hay thức ăn cho vật nuôi Người phụ trách: Lê Thành Đạt Trần Xuân Bắc 17 Thực thành viên team: - Hà Đăng Hoàng Trần Xuân Bắc Và giúp đỡ tận tình team trainer Anttizen Kế hoạch Giai đoạn Alpha: - UI Scene: Loading, GamePlay Hiển thị danh sách nông trại Viết hệ thống nhân vật chuồng trại Viết hệ thống data config Lưu liệu data Tính tốn liệu người chơi mở game Tạo hệ thống tiền kinh nghiệm game Đã chơi được, chưa cân game Thiếu số dialog phụ Kết : - Hầu hết tính thực Hệ thống liên kết với file config nhằm dễ dàng thay đổi thơng số game hay hình ảnh Giai đoạn Beta: - Hoàn thành scene: Loading GamePlay Cân game (70%) Tạo hệ thống chợ buôn bán Người phụ trách: Lê Thành Đạt Trần Xuân Bắc 18 - Tạo hệ thống tiền Kết : - Đã hoàn thành tồn tính - Game chưa tối ưu cân Người phụ trách: Lê Thành Đạt Trần Xuân Bắc 19 TÀI LIỆU THAM KHẢO - DoTween: http://dotween.demigiant.com/getstarted.php Shader Effect: https://github.com/mob-sakai/UIEffect PlayerPref: https://docs.unity3d.com/ScriptReference/PlayerPrefs.html Learn UNITY3D: https://learn.unity.com/ Lập trình UNITY3D: https://codelearn.io/sharing/lap-trinh-game-voi-unity-nhu-the-nao-phan-1 Người phụ trách: Lê Thành Đạt Trần Xuân Bắc 20 TỔNG KẾT Như vậy, vịng tháng ngắn ngủi, nhóm kịp hồn thành game 2D tảng android Game có đầy đủ tính đề ban đầu Do thời gian có hạn nên tính game cịn đơn giản, hình ảnh chưa đẹp mong đợi Nhưng game phát triển theo framework có tính kế thừa nên sau có thời gian phát triển lên mức cao Chân thành cảm ơn giúp đỡ anh chị nhóm trainer Anttizen, nỗ lực nhóm để hoàn thành game Cảm ơn thầy Đỗ Duy Thanh giúp em hoàn thành báo cáo Người phụ trách: Lê Thành Đạt Trần Xuân Bắc ... Bắc Chương 2: Nội dung thực tập Đợt thực tập với chủ đề ? ?Lập trình game2 D tảng android với Unity3D? ?? 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... Nâng cao kỹ lập trình với ngơn ngữ C# Có kiến thức quan trọng cho việc lập trình game mobile sau Ngồi biết thêm số quy tắc việc viết code cho chuẩn, dễ đọc, dễ hiểu Lập trình game 2D với UNITY3D. .. chương trình giả lập test game 2.5 Build game chạy tảng android Nội dung : Hướng dẫn build game cho tảng android - Định nghĩa Android: Người phụ trách: Lê Thành Đạt Trần Xuân Bắc 10 Android tập