Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 25 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
25
Dung lượng
8,04 MB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA ĐA PHƯƠNG TIỆN BÁO CÁO THỰC TẬP TỐT NGHIỆP Đề tài: Xây dựng sản phẩm game “Mô lái xe chở rác” phân phối chợ Google Store Nơi thực tập : CÔNG TY DASHBIT INTERACTIVE Giảng viên Ths Nguyễn Thị Thanh Tâm : hướng dẫn Sinh viên thực : Lê Anh Quân Mã sinh viên : B17DCPT163 Lớp : B17PTDPT2 Hà Nội, 2021 LỜI CẢM ƠN Thực tập tốt nghiệp trình thử sức, làm quen với môi trường làm việc chuyên nghiệp, bước đầu để xây dựng phát triển nghiệp tương lai sinh viên Trong thời gian lựa chọn tìm nơi thực tập cho riêng mình, cơng ty Dashbit Interactive nơi hoàn hảo phù hợp với đinh hướng đường mà em theo đuổi tương lai – Ngành lập trình game Trong thời gian thực tập có ỏi đây, em tiếp xúc với anh chị có kinh nghiệm lâu ngành, em vui có hội trải nghiệm thực tế Em xin chân thành cảm ơn ! MỤC LỤC Contents LỜI CẢM ƠN MỤC LỤC MỤC LỤC HÌNH ẢNH Phần A : GIỚI THIỆU ĐƠN VỊ THỰC TẬP I Chức III Các lĩnh vực hoạt động Phần B : NỘI DUNG THỰC TẬP .9 I Giới thiệu chung sản phẩm II Phương pháp tiếp cận giải vấn đề .11 III Công cụ xây dựng sản phẩm .14 IV Sản phẩm 16 V Một số kĩ thuật xây dựng game 22 Phần C Kết luận 25 I Kết đạt sản phẩm 25 II Hướng phát triển sản phẩm 25 III Kết luận thực tập 26 MỤC LỤC HÌNH ẢNH Ảnh 1: Giao diện người dùng 16 Ảnh : Chức mua bán lựa chọn xe game .17 Ảnh : Chức Custom phụ kiện cho xe 17 Ảnh : Gameplay 18 Ảnh : Tiếp thêm nhiên liệu cho xe 18 Ảnh : Cinemachine cảnh thu gom rác cho xe 19 Ảnh : Góc nhìn thứ 19 Ảnh : Screenshot chợ ứng dụng 20 Ảnh : Screenshot chợ ứng dụng 20 Ảnh 10 : Web sản phẩm chợ Google Play .21 Ảnh 11: Các node đặt thủ công .22 Ảnh 12: Code data Scriptable Object lưu thông tin xe 23 Ảnh 13: Data hiển thị Editor để kéo thả data 24 Ảnh 14: Ví dụ data engine xe rác 24 Phần A : GIỚI THIỆU ĐƠN VỊ THỰC TẬP I Chức năng, nhiệm vụ Công ty Dashbit Interactive thành lập vào tháng năm 2020 người Việt trẻ tuổi, hoạt động lĩnh vực phát triển phát hành Game Với phương châm "Tận hưởng niềm hạnh phúc việc áp dụng công nghệ để kết nối, phục vụ phát triển người" mục tiêu "Tạo sản phẩm kết nối hàng triệu người với nhau, với tuổi tác, văn hóa quốc gia", công ty không phát triển sản phẩm thật chất lượng, mang đậm dấu ấn Việt, mà tập trung vào việc phát triển cộng đồng, xây dựng hệ sinh thái chơi vui sống đẹp Hiện tại, Dashbit Interactive tự hào công ty cung cấp dịch vụ cho triệu người dùng, nhà phát triển, phát hành Game uy tín chất lượng khu vực Đông Nam Á II Tổ chức Để đảm bảo tính linh hoạt cao yêu cầu hoạt động có hiệu phải tổ chức máy hoạt động với quy mô hợp lý nhất, tối ưu nhất, khó khăn sai lầm phải khắc phục kịp thời Các phận chức phải có liên kết hỗ trợ lẫn để thực mục tiêu đặt Phương pháp quản lý theo phương pháp trực tuyến Giám đốc quản lý toàn hoạt động có kế hoạch điều chỉnh kịp thời phận chức chịu đạo trực tuyến từ giám đốc Mối quan hệ quản lý có ưu điểm gọn nhẹ tổ chức thông tin đảm bảo thông suốt, đường thơng tin ngắn sai lệch thơng tin không lớn phù hợp với chế độ thủ trưởng lãnh đạo Nhiệm vụ quy định theo nguyên tắc tập trung dân chủ quản lý Cơ cấu đảm bảo nguồn lực để giải vấn đề trọng tâm Bộ máy tổ chức thể qua sơ đồ sau Cơ cấu nhân cơng ty bao gồm: Giám đốc: người (Ơng Chu Thế Anh) Bộ phận 3D, hình họa mĩ thuật: người (Ơng Ngơ Quốc Hồn : Quản lý) Bộ phận kĩ thuật, kĩ sư phát triển: người (Ông Nguyễn Bảo Việt : Quản lý) Giám đốc Bộ phận kĩ thuật Bộ phận hình họa Giám đốc: Người trực tiếp quản lý lãnh đạo Công ty Dashbit Interactive, đề chiến lược phát triển, dự án kế hoạch đào tạo, hoạt động công ty Bộ phận hình họa: Bộ phận hình họa 3D đảm nhiệm công việc thiết yếu sản xuất mơ hình 3D để đưa vào game cho đội kĩ thuật lập trình Cơng việc đội 3D bao gồm dựng hình model, cắt ghép 2D Photoshop để làm da thịt cho Model 3D Bộ phận kĩ thuật: Bộ phận kĩ thuật đảm nhiệm cơng việc liên quan đến lập trình, quy trình thiết yếu phát triển game nói chung để sản phẩm cuối đăng tải chợ ứng dụng Đội ngũ nhân viên: Đội ngũ nhân viên nhân viên giám sát quản lý team, trực tiếp nhận nhiệm vụ thực công việc kết hợp với nhau, để sản phẩm cuối III Các lĩnh vực hoạt động Công ty Dashbit Interactive hoạt động lĩnh vực xây dựng úng dụng game lái xe mô phỏng, phân phối cho game mobile cho người dùng toàn cầu….Phát hành ứng dụng tảng Google Play Store AppStore Công ty phát triển trì cập nhật game chợ ứng dụng, game có triệu lượt tải năm Những sản phẩm bật công ty làm Cargo Truck Simulator (Mô lái xe chở hàng) Trash Truck Simulator (Mô xe đổ rác) Fire Truck (Mô lái xe cứu hoả) Trong trò chơi, người dùng tương tác điều khiển loại xe tương ứng, thay đồ trang trí cho xem, nâng cấp xe mình, làm nhiệm vụ để mở giới Phần B : NỘI DUNG THỰC TẬP I Công việc ĐỀ TÀI: Xây dựng sản phẩm game “Mô lái xe chở rác” phân phối chợ Google Store Nội dung công việc: - Công việc 1: Khảo sát sơ môi trường làm việc nơi thực tập - Cơng việc 2: Tìm hiểu tổng quan quy trình sản xuất game lên chợ ứng dụng - Công việc 3: Nhận công việc, trao đổi yêu cầu với người hướng dẫn - Công việc 4: Thiết kế lập trình hồn thiện sản phẩm Nội dung thực tập Thời Mục tiêu gian Khảo sát sơ môi trường làm việc nơi thực tập Tìm hiểu tổng quan Từ Tìm hiểu môi ngày trường làm việc, 19/7 đến cấu tổ chức công ngày ty, chức năng, nhiệm 24/7 vụ team,… Từ Tìm hiểu quy quy trình sản xuất game lên ngày trình xây dựng phần chợ ứng dụng 25/7 đến mềm cơng ty, ngày quy trình code base, 27/7 quy tắc báo cáo phong cách làm việc công ty 3 Nhận công việc, trao đổi yêu cầu với người hướng dẫn Từ Lên ý tưởng, ngày thiết kế code, nhận 28/7 đến module, bàn ngày cách thức lập trình 31/7 với sản phẩm giao Lập trình hồn thiện sản phẩm Từ Thực ngày 1/8 hoàn thiện công đến ngày việc 27/8 công, trao đổi công phân việc liên tục với người hướng dẫn nhóm làm việc Hoàn thiện báo cáo thực tập Từ ngày 28/8 đến ngày 31/8 Kết cần đạt: - Hiểu tham gia vào quy trình sản xuất game phân phối chợ ứng dụng - Hoàn thành tốt trách nhiệm giao - Có trao đổi nội dung cơng việc với nhóm thực - Thích nghi với mơi trường làm việc chun nghiệp - Rút học kinh nghiệp sau thời gian thực tập đơn vị - Có sản phẩm hoàn thiện phân phối chợ ứng dụng II Phương pháp tiếp cận giải vấn đề Phương pháp hướng đối tượng Lập trình hướng đối tượng (tiếng Anh: Object-oriented programming, viết tắt: OOP) mẫu hình lập trình dựa khái niệm "cơng nghệ đối tượng", mà đó, đối tượng chứa đựng liệu, trường, thường gọi thuộc tính; mã nguồn, tổ chức thành phương thức Phương thức giúp cho đối tượng truy xuất hiệu chỉnh trường liệu đối tượng khác, mà đối tượng có tương tác (đối tượng hỗ trợ phương thức "this" "self") Trong lập trình hướng đối tượng, chương trình máy tính thiết kế cách tách khỏi phạm vi đối tượng tương tác với Ngôn ngữ lập trình hướng đối tượng đa dạng, phần lớn ngơn ngữ lập trình theo lớp, nghĩa đối tượng ngôn ngữ xem thực thể lớp, dùng để định nghĩa kiểu liệu Những đối tượng ngôn ngữ OOP kết hợp mã liệu mà chúng nhìn nhận đơn vị Mỗi đối tượng có tên riêng biệt tất tham chiếu đến đối tượng tiến hành qua tên Như vậy, đối tượng có khả nhận vào thông báo, xử lý liệu (bên nó), gửi hay trả lời đến đối tượng khác hay đến môi trường Đa phần ngôn ngữ lập trình thơng dụng (như C++, Delphi, Java, Python etc.) ngơn ngữ lập trình đa mẫu hình hỗ trợ lập trình hướng đối tượng nhiều mức độ khác nhau, thường kết hợp với lập trình mệnh lệnh, lập trình thủ tục Các ngơn ngữ lập trình hướng đối tượng đáng ý gồm có Java, C++, C#, Python, PHP, Ruby, Perl, Object Pascal, Objective- C, Dart, Swift, Scala, Common Lisp, Smalltalk Tăng suất, đơn giản hóa độ phức tạp phần mềm bảo trì, nâng cấp Dễ tiếp thu Đa phần ngơn ngữ lập trình hỗ trợ lập trình hướng đối tượng nhiều mức độ khác Hiện sản phẩm sử dụng ngôn ngữ lập trình C# Mơ hình phát triển thác nước Mơ hình thác nước (tiếng Anh: waterfall model) mơ hình quy trình phát triển phần mềm, quy trình phát triển trơng giống dịng chảy, với pha thực theo trật tự nghiêm ngặt khơng có quay lui hay nhảy vượt pha là: phân tích yêu cầu, thiết kế, triển khai thực hiện, kiểm thử, liên kết bảo trì Người ta thường dẫn báo Winston W Royce xuất vào năm 1970 để giải thích nguồn gốc cho tên gọi "thác nước"; có điều thú vị Royce dùng mơ hình phát triển lặp khơng dùng thuật ngữ "mơ hình thác nước" Mơ hình thác nước bao gồm giai đoạn: Requirement gathering: Thu thập phân tích yêu cầu ghi lại vào tài liệu đặc tả yêu cầu giai đoạn System Analysis: Phân tích thiết kế hệ thống phần mềm, xác định kiến trúc hệ thống tổng thể phần mềm Code: Hệ thống phát triển theo unit tích hợp giai đoạn Mỗi Unit phát triển kiểm thử dev gọi Unit Test Test: Cài đặt kiểm thử phần mềm Cơng việc giai đoạn kiểm tra sửa tất lỗi tìm cho phần mềm hoạt động xác theo tài liệu đặc tả yêu cầu Implementation: Triển khai hệ thống môi trường khách hàng đưa thị trường Maintenance: Bảo trì hệ thống có thay đổi từ phía khách hàng, người sử dụng Ưu nhược điểm mơ hình thác nước Ưu điểm Dễ hiểu, dễ tiếp cận áp dụng Sản phẩm phát triển theo giai đoạn xác định rõ ràng Xác nhận giai đoạn, dễ dàng phát sửa lỗi Nhược điểm Kém linh hoạt, phạm vi điều chỉnh hạn chế Việc đo lường phát triển giai đoạn gặp khó khăn Khơng thích hợp áp dụng cho dự án lâu dài, diễn dự án cần thay đổi liên tục vòng đời phát triển Rất khó để quay lại giai đoạn trước III Cơng cụ xây dựng sản phẩm Unity Game Engine Tổng quan Unity Unity game engine đa tảng phát triển Unity Technologies mà chủ yếu để phát triển video game cho máy tính, consoles điện thoại Lần cơng bố chạy hệ điều hành OS X, Apple's Worldwide Developers Conference vào năm 2005, đến mở rộng 27 tảng Những ưu điểm Unity Game Engine: Chức cốt lõi đa dạng: cung cấp công cụ dựng hình (kết xuất đồ họa) cho hình ảnh 2D 3D, cơng cụ vật lý (tính tốn phát va chạm), âm thanh, mã nguồn, hình ảnh động, trí tuệ nhân tạo, phân luồng, tạo dị ng liệu xử lý, quản lý nhớ, dựng ảnh đồ thị kết nối mạng Nhờ có engine mà cơng việc làm game trở nên tốn đơn giản Hỗ trợ đa tảng: Một mạnh Unity3D khả hỗ trợ gần toàn tảng có bao gồm: PlayStation 3, Xbox 360, Wii U, iOS, Android, Windows, Blackberry 10, OS X, Linux, trình duyệt Web Flash Nói cách khác, với gói engine, studio làm game cho hệ điều hành dễ dàng convert chúng sang hệ điều hành khác Đồng thời, giải pháp cho game online đa tảng – chơi đồng thời nhiều hệ điều hành, phần cứng khác Web, PC, Mobile, Tablet… Dễ sử dụng: Unity3D built môi trường phát triển tích hợp, cung cấp hệ thống tồn diện cho lập trình viên, từ soạn thảo mã nguồn, xây dựng cơng cụ tự động hóa đến trình sửa lỗi Do hướng đến đồng thời lập trình viên khơng chun studio chun nghiệp, nên Unity3D dễ sử dụng Hơn nữa, engine phổ biến giới, người dùng dễ dàng tìm kiếm kinh nghiệm sử dụng “tiền bối” forum cơng nghệ Tính kinh tế cao: Unity Technologies cung cấp miễn phí engine Unity3D cho người dùng cá nhân doanh nghiệp có doanh thu 100.000 USD/năm Với Pro, người dùng phải trả 1.500 USD/năm – số khiêm tốn so với engine mang lại IV Sản phẩm Sản phẩm game (Link cũ chợ Google Play) : https://play.google.com/store/apps/details?id=com.dashbit.trashtrucksim Nội dung trò chơi : - Người chơi điều khiển loại xe chở rác góc nhìn thứ thành phố mơ qua joystick nút bấm tương tác - Trong game, người chơi tìm trạm lấy rác, thu thập xong tìm đến địa điểm đổ rác, địa điểm xuất đồ thu nhỏ game - Sau hoàn nhiệm vụ thu rác đổ rác, người chơi hoàn thành nhiệm vụ, thành tích, nhận tiền thưởng game - Người chơi dùng tiền để mua phụ kiện trang trí xe, update động cơ, sức mạnh xe để hồn thiện nhiệm vụ nhanh chóng hơn, mở thành phố nhiệm vụ số Screenshot game : Ảnh 1: Giao diện người dùng Ảnh : Chức mua bán lựa chọn xe game Ảnh : Chức Custom phụ kiện cho xe Ảnh : Gameplay Ảnh : Tiếp thêm nhiên liệu cho xe Ảnh : Cinemachine cảnh thu gom rác cho xe Ảnh : Góc nhìn thứ Ảnh : Screenshot chợ ứng dụng Ảnh : Screenshot chợ ứng dụng Ảnh 10 : Web sản phẩm chợ Google Play V Một số kĩ thuật xây dựng game Hệ thống tìm đường (Navigation) - Sử dụng thuật tốn A* để giải tốn tìm đường ngắn (Bài tốn thực tế tìm đường từ vị trí xe rác đến vị trị gần Trạm xăng, Nhà máy, Điểm đổ rác, etc - Thực sử dụng công cụ ITS (Intelligent Traffic System) Unity AssetStore để đặt “node” thủ công map - Các node đặt thủ cơng sau đưa vào đồ thị (Graph) để giải tốn tìm đường ngắn - Hệ thống tìm đường cịn dùng để lập trình AI di chuyển theo node, tạo hệ thống đường giao thông cho xe tải, người AI game Ảnh 11: Các node đặt thủ công Hệ thống quản lý data xe rác - Thực quản lý toàn input đầu vào data xe bao gồm + Tên hiển thị, tên prefab, ID, giá tiền + Tốc độ, mức tiêu tốn gas, sức chưa bình gas, sức chứa rác xe + Thực lưu trữ phận Customize cho xe mua bánh xe, ống xả khí, chắn bùn,etc - Data lưu trữ dạng Scriptable Object (1 dạng data container Unity Editor) - Tát data quản lý gọi lên script CustomizationController, code để lấy data đầu vào từ thư viện Các scripts khác hiển thị UI, gameplay truy cập vào để load model xe rác theo tên thư viện, load data thông số xe Ảnh 12: Code data Scriptable Object lưu thông tin xe Ảnh 13: Data hiển thị Editor để kéo thả data Ảnh 14: Ví dụ data engine xe rác Phần C Kết luận I Kết đạt sản phẩm - Sử dụng công cụ Unity Engine để phát triển game mobile - Xây dựng thành phần cho game giao diện người dùng (UI), lập trình logic tương ứng cho sản phẩm game - Sử dụng kĩ thuật lập trình để phát triển game - Sử dụng công cụ, tool hỗ trợ để đẩy nhanh giai đoạn phát triển - Xây dựng hệ thống game, đảm bảo khơng có lỗi, người chơi chạy game ổn định, - Kết hợp với thành viên team 3D để đưa model 3D vào game, kết hợp với thành viên khác để yêu cầu 3D đồ họa hiển thị với code - Test game debug tìm lỗi ẩn trình phát triển để sản phẩm cuối hoàn thiện - Xây dựng hệ thống cho game (Hệ thống mua bán, hệ thống thành tích, hệ thống Custom đồ, hệ thống Control) - Lập trình frontend, lấy API từ Server để hiển thị logic UI (Công ty sử dụng Playfab) - Sử dụng thuật tốn tìm đường ngắn nhất, cơng cụ tốn học, vật lý để tính tốn, lập trình logic cho game - Sử dụng công cụ để mô giao thông đô thị, người qua đường, Bản chơi thử, cài đặt file apk cho điện thoại Android : https://drive.google.com/drive/u/0/folders/1lG47J5x5JAvWpSXl657rloGPptU9mj2 II Hướng phát triển sản phẩm - Đưa vào thêm loại xe mới, đồ trang trí 3D cho xe - Thêm map mới, thêm chế đồ chơi nghề nghiệp (Career mode) - Thêm hệ thống thuê đồ, người dùng xem quảng cáo để dùng thử item - Thêm chức người chơi rời xe, điều khiển nhân vật người khám phá tương tác với thành phố - Cải thiện bổ sung chức xe (Gương chiếu hậu, còi, cần gạt nước mưa) - Thêm hệ thống mô ngày đêm cho game Hệ thống nắng, mưa III Kết luận thực tập Hoàn thiện sản phẩm game trình dài khó khăn, bao gồm nhiều cơng đoạn xử lý từ lên ý tưởng, khảo sát thị trường, prototype, test, hồn thiện sản phẩm Trong q trình dù không nhiều thực tập công ty, thân cá nhân em học nhiều cách làm việc, quy trình sản xuất, nhiệm vụ thành viên công ty Với kết sản phẩm ứng dụng chơi được, phát triển cho cơng ty, em vui có hội tuyệt vời Cuối cùng, em xin cảm ơn giảng viên hướng dẫn, cô giáo, Ths Nguyễn Thị Thanh Tâm hướng dẫn, nhiệt huyết bảo suốt giai đoạn thực tập chúng em ...LỜI CẢM ƠN Thực tập tốt nghiệp trình thử sức, làm quen với môi trường làm việc chuyên nghiệp, bước đầu để xây dựng phát triển nghiệp tương lai sinh viên Trong thời gian... phối chợ ứng dụng - Hoàn thành tốt trách nhiệm giao - Có trao đổi nội dung cơng việc với nhóm thực - Thích nghi với môi trường làm việc chuyên nghiệp - Rút học kinh nghiệp sau thời gian thực tập... data đầu vào từ thư viện Các scripts khác hiển thị UI, gameplay truy cập vào để load model xe rác theo tên thư viện, load data thông số xe Ảnh 12: Code data Scriptable Object lưu thông tin xe Ảnh