Từ một ngành chỉ được coi là thú vui vô bổ, ngành game đã và đang phát triển rất mạnh mẽ, mang lại không những giải trí cho nhiều người khắp thế giới mà còn thúc đẩy sự hiện diện của nhi
Trang 2LỜI MỞ ĐẦU
Ngày nay, ngành công nghiệp game là một phần không thể thiếu của công nghiệp phần mềm Từ một ngành chỉ được coi là thú vui vô bổ, ngành game đã và đang phát triển rất mạnh mẽ, mang lại không những giải trí cho nhiều người khắp thế giới mà còn thúc đẩy sự hiện diện của nhiều công nghệ tân tiến như công nghệ đồ họa hay thực tế ảo Không những thế, trong những năm trở lại đây nhiều sự kiện thể thao trên thế giới đã công nhận, và cho phép thi đấu, các môn thể thao điện tử, với nền tảng là những game chiến lược đấu tổ đội Có thể thấy là ngành công nghiệp game sẽ không ngừng phát triển
và sẽ tiếp túc ảnh hưởng thế giới chúng ta ngày qua ngày
Trong quá trình toàn cầu hóa, nước Việt Nam chúng ta cũng đã và đang tiếp thu nhiều phát triển công nghệ, trong đó có ngành công nghiệp game Bên cạnh những công
ty trẻ trong nước nhu VNG, một số công ty lớn cũng đã đầu tư vào giúp ngành công nghiệp game của Việt Nam phát triển; điển hình nhất là Gameloft
Vốn thích chơi game từ nhỏ, em luôn có ước muốn sau này làm nhà phát triển game để có thể làm và thiết kế những trò chơi mong muốn của mình Em cũng nhận thấy ngành công nghiệp game là một ngành có triển vọng nhưng lại ít được để ý và còn khá non nớt ở Việt Nam Do mong muốn có kinh nghiệm trong ngành phần mềm, cũng như trải nghiệm quá trình phát triển game, em quyết định đăng ký thực tập vào đầu học kỳ này Em đã chọn tuyển vào Gameloft – một trong những công ty chuyên về game lớn nhất và thành công nhất hiện nay, đồng thời cũng là một trong những công ty game đầu
tư mở chi nhánh tại Việt Nam
Trang 3em cách viết báo cáo và tài liệu tham khảo của dự án, cũng như cho em biết về cấu trúc
và cách thức làm việc của một đội trong AGILE
Cũng xin cảm ơn thầy cô trong khoa Công nghệ Phần mềm đã nhiệt tình hỗ trợ, tạo điều kiện cho em làm bài báo cáo này
Lê Trường Long Hưng
TP Hồ Chí Minh, tháng 6/2022
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
Mục lục
Chương 1: Giới thiêu công ty thực tập 6
1 Giới thiệu công ty Gameloft 6
2 Sản phẩm của công ty 6
Chương 2: Nội dung thực tập 7
Chương 3: Chi tiết các project đã tham gia 12
1 Giới thiệu Applaydu & Friends 12
2 Tối ưu hóa hiệu suất hoạt động của A&F 14
3 Minigame: Tìm đường 16
4 Chế độ sáng tạo: Lưu và tải bản đồ 19
TỔNG KẾT 21
CÁC LINK THAM KHẢO 22
Trang 6Chương 1: Giới thiêu công ty thực tập
1 Giới thiệu công ty Gameloft
Gameloft SE là một công ty phát hành game của Pháp, thành lập vào năm 1999 bởi Michel Guillemot, một trong những nhà sáng lập Ubisoft Gameloft là một công ty
đa quốc gia, quản lý 18 studio trên thế giới, và chủ yếu phát triển game và ứng dụng cho thị trường dị động Từ 2016 trở đi, Gameloft là một công ty con của tập đoàn truyền thông Vivendi, một trong những công ty truyền thông lớn nhất ở châu Âu
2 Sản phẩm của công ty
Như đã nêu trên, Gameloft chủ yếu phát triển game cho nền tảng di động, máy tính bảng lẫn điện thoại, iOS lẫn Android Phần lớn những game được phát triển và xuất bản bởi Gameloft lấy cảm hứng từ những game có sẵn trên nền tảng PC hoặc Console, tạo cho người chơi một cảm giác như chơi những game đó trên một thiết bị di động cầm tay Một số tựa game nổi tiếng nhất của Gameloft có thể kể đến dòng game đua xe Asphalt, hay các game góc nhìn thứ nhất Brothers in Arms và Modern Combat
Về mặt thương mại, dịch vụ Gameloft for Brands cung cấp cho các thương hiệu khả năng kết nối với khách hàng và truyền bá sản phẩm của mình thông qua game Với những hợp đồng thỏa thuận, Gameloft hợp tác với các thương hiệu lớn tạo những trải nghiệm giúp liên kết thương hiệu với các khách hàng Nhiều tập đoàn lớn như Disney, Warner Bros và LEGO đã trở nên gần gũi với khách hàng hơn nhờ những trò chơi dựa trên các thương hiệu đấy mà Gameloft đã phát triển
Trang 7Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “Lập trình game Unity3D trên Android” nhằm mục đích giúp sinh viên thực tập được đào tạo toàn diện về cách phát triển game 3D trên nền tảng Android sử dụng game engine Unity, đồng thời rèn luyện những kỹ năng quan trọng khác như làm việc nhóm, giao tiếp và quản lý mã nguồn Tại công ty, sinh viên có cơ hội được học tập, khám phá và làm việc trong môi trường phát triển game chuyên nghiệp
1 Tìm hiểu công ty và các nội quy quy định
Thời gian: 3 ngày
người mới, và chính sách chống quấy rối
Kết quả: Hiểu biết thêm về nguồn gốc, tác phong xử sự và cấu trúc làm việc của
Gameloft SE; học thêm kỹ năng sử dụng e-mail trong công việc, tác phong môi trường làm việc, cũng như hiểu biết thêm về luật pháp
2 Giởi thiệu và làm quen với các thành viên trong đội
Thời gian: 1 ngày
Nội dung: Giới thiệu và làm quen với đội Applaydu & Friends, với anh Nguyễn Vinh
Tường và Timothy Dia là producer và anh Nguyễn Hữu Hậu là quản lý nhóm lập trình viên Giới thiệu các thành viên trong đội và sản phẩm được đội phát triển
Trang 8Kết quả: Làm quen được với các thành viên trong đội và sản phẩm, dự án đội đang làm
và phát triển
3 Nghiên cứu kỹ thuật
3.1 Nghiên cứu các công cụ làm việc
Thời gian: 3 ngày
Nội dung: Giới thiệu thực tập sinh đến những công cụ sẽ được sử dụng xuyên suốt quá
trình làm việc, bao gồm:
sử dụng asset, tài liệu thiết kế, …
cố phát hiện được
Thực hiện: Tìm hiểu và thực hành sử dụng các công cụ trên
Kết quả: Hiểu thấu các sử dụng những công cụ làm việc trong quy trình phát triển sản
phẩm
3.2 Nghiên cứu cấu trúc sản phẩm
Thời gian: 2 ngày
Nội dung: Nghiên cứu cách sắp xếp và bố trí các tài nguyên trong game và cấu trúc,
phân tầng các đối tượng trong cảnh Đồng thời giới thiệu thực tập sinh cách sử dụng Doozy, công cụ vẽ UI được sử dụng trong sản phẩm
Thực hiện: Quan sát, đọc tài liệu và ghi nhớ cách bố cục đối tượng trong từng cảnh
Đồng thời tìm hiểu và thực hành cách sử dụng Doozy
Kết quả: Hiểu rõ cách trình bày và sắp xếp tài nguyên trong dự án, cách bố trí đối tượng
trong cảnh, và cách tạo giao diện riêng của mình bằng Doozy
Trang 9Thời gian: 7 ngày
Nội dung: Nghiêm cứu các kỹ thuật áp dụng công nghệ thực tế cường hóa (AR) vào
Unity để thiết bị có thể thu cảm xúc của người chơi vào mặt của nhân vật ảo, đồng thời hiểu cách ứng dụng áp dụng các bộ lọc ảnh để tạo những hiệu ứng bắt mắt
tượng ngoài thế giới thực được cường hóa bởi thông tin giác quan được tạo bởi máy tính; là hệ thống kết hợp 3 tính năng cơ bản: kết hợp thế giới thực và ảo, tương tác thời gian thực, và đại diện chính xác vật thực và ảo trong không gian 3 chiều
Thực hiện: Tải cảnh ví dụ AR từ GitLab và tự nghiên cứu, sau đó tự thực nghiệm xem
thực tập sinh có thể cải thiện hay thêm tính năng gì mới không
Kết quả: Hiểu được cách dùng thư viện ARFoundation để tích hợp công nghệ AR vào
sản phẩm Unity, cách chiếu cảm xúc khuôn mặt vào mặt nhân vật ảo, đồng thời cải thiện được cảnh AR một phần (cảnh mặc đình chỉ có đầu nhân vật; thực tập sinh tìm được cách
vẽ thân nhân vật với vật lý ragdoll)
3.4 Tìm hiểu cách tối ưu hóa hiệu suất và tốc độ sản phẩm
Thời gian: ~3 tuần
Nội dung: Nghiên cứu cách sử dụng Mesh Baker để tăng hiệu suất chạy trò chơi bằng
cách kết hợp các đối tượng trong một cảnh thành một đối tượng duy nhất có thể vẽ hết sau một lần gọi hàm vẽ
một đối tượng 3D Một tam giác trong Unity được định nghĩa bởi ba điểm tạo nên
nó, được gọi là vertice
Batching: phương pháp tối ưu hóa hàm vẽ được sử dụng bởi Unity, yêu cầu kết hợp mesh sao cho Unity có thể vẽ chúng sử dụng ít hàm vẽ hơn
hàm vẽ hơn, và vì thế chạy nhanh hơn Kết hợp nhiều mesh thành một mesh sẽ
Trang 10giảm số lần gọi batch do Unity có thể vẽ những mesh lớn ấy bằng một hàm vẽ, tuy nhiên những mesh càng lớn lại làm tăng số tam giác và vertice cần phải vẽ ra Việc tối ưu hóa vì thế phải kiếm một sự cân bằng giữa số lần gọi batch được giảm và số tam giác và vertice mới được tạo ra
Thực hiện: Nghiên cứu cách sử dụng Mesh Baker, sau đó thử nghiệm những cách khác
nhau để kết hợp các đối tượng trong cảnh sao cho hiệu suất đạt mức tối ưu nhất Ngoài
ra, thực tập sinh được yêu cầu viết tài liệu hướng dẫn sử dụng lên Confluence để giúp các thành viên còn lại trong đội cũng có thể thực hiện công việc tối ưu hóa sản phẩm
Kết quả: Hiểu được cấu trúc các đối tượng trong cảnh và cách tổ chức đối tượng sao cho
gọn gang nhất, hiểu được một số khái niệm cơ bản liên quan đển đồ họa trong lập trình game 3D (i.e Mesh), hiểu được cách debug hiệu suất hoạt động của sản phẩm và tầm quan trong của việc tối ưu hóa sản phẩm, hiểu được cách viết tài liệu hướng dẫn cho tập thể tổ chức
4 Thực hiện project
Sau một tháng được luyện tập và thực hành, thực tập sinh đã nắm được những kiến thức cơ bản về sử dụng Unity và các công cụ phát triển khác như Jira, Sourcetree, cũng với những công nghệ quan trọng như ARFoundation và Doozy UI Từ tháng thứ 2 trở đi, thực tập sinh bắt đầu được giao task trong từng sprint, tham gia vào phát triển nhiều khía cạnh khác nhau của ứng dụng
5 Lịch làm việc
Tuần Công việc Người hướng dẫn
Mức
độ hoàn thành
Nhận xét của người hướng dẫn
1
- Tìm hiểu về công
ty, cách tổ chức của công ty, tác phong, nội quy làm việc
- Làm quen với các thành viên trong đội
và sản phẩm được phát triển
- Làm quen với các
Chị Nguyễn Hoàng Anh
Anh Nguyễn Hữu Hậu
Anh Nguyễn Vinh Tường
Anh Timothy Dia
Trang 11trong công ty
- Học cách trao đổi, làm việc qua email
1
- Nghiên cứu các công cụ làm việc
- Nghiên cứu cấu trúc sản phẩm
Anh Nguyễn Hữu Hậu
Anh Nguyễn Vinh Tường
Anh Timothy Dia
2
- Tìm hiểu công nghệ AR
- Thực hành cải thiện chức năng AR của sản phẩm
Anh Nguyễn Hữu Hậu
3 - 5
- Tìm hiểu kiến thức
cơ bản về đồ họa 3D trong Unity
- Tìm hiểu cách sử dụng Mesh Baker
để tối ưu hóa hiệu suất trò chơi
- Thực hành cách sử dụng Confluence thông qua viết tài liệu hướng dẫn sử dụng Mesh Baker
Anh Nguyễn Hữu Hậu
Từ tuần 5
Thực hiện các task theo sprint của team
Anh Nguyễn Hữu Hậu
Anh Nguyễn Vinh Tường
Anh Timothy Dia
Trang 12Chương 3: Chi tiết các project đã tham gia
1 Giới thiệu Applaydu & Friends
Applaydu & Friends(A&F) là thành quả của sự đối tác giữa Gameloft và thương
hiệu bánh kẹo Ferrero SpA thông qua dịch vụ Gameloft for Brands nhằm truyền bá cho khách hàng dòng sản phẩm trứng đồ chơi Kinder Surprise của Ferrero
Với sứ mệnh tạo một không gian vui chơi an toàn cho trẻ em từ 6 đến 15 tuổi,
đồng thời là bước kế tiếp sau Applaydu cho trẻ em từ 3 đến 5 tuổi, A&F hứa hẹn sẽ tạo một trải nghiệm tuổi thơ hấp dẫn cho con em đi học A&F không những là một môi
trường cho các bạn trẻ thi đua và vui chơi với nhau, nó còn là một mạng xã hội an toàn, cho phép trẻ có thể làm bạn và trò chuyện xuyên ngôn ngữ, hỗ trợ một phòng chat có phiên dịch ngôn ngữ tự động ở hai bên được kiểm soát chặt chẽ để tránh từ ngữ thô tục, đồng thời cho phép trẻ thể hiện bản thân và cá tính của mình thông qua một hệ thống tùy biến nhân vật với các trang phục và màu sắc khác nhau, và một môi trường cho phép sử dụng công nghệ AR chiếu mặt trẻ vào nhân vật của mình, kết hợp với các bộ lọc khác nhau để tạo những clip ngắn hài hước giống như là một sự kết hợp giữa Snapchat và TikTok Ngoài những nhân vật cá nhân của mình, người chơi có thể mở khóa nhân vật đặc biệt bằng cách quét mã QR trên những đồ chơi giấu trong các quả trứng Kinder Surprise – người chơi được khuyến khích thu thập những nhân vật này và mở khóa trong trò chơi như Pokémon
Nổi bật so với các game di động khác trên thị trường là việc A&F không có IAP
hay quảng cáo phiền phức trong game trong quá trình chơi Tất cả các trang phục, màu sắc, bộ lọc và hiệu ứng đều có thể mua được bằng tiền tệ trong game, vốn chỉ có thể nhận
được thông qua chơi trò chơi, không thể nạp tiền mua được Sử dụng tiền thật trong A&F
được giới hạn qua mua trứng Kinder Surprise, và chỉ để mở khóa những nhân vật đặc biệt không thể sử dụng các trang phục hay kiểu tóc được cung cấp bởi game, và vì thế không cần thiết phải có
Trong tương lai, A&F hứa hẹn sẽ mang thêm sự sáng tạo và tính giáo dục vào sản
phẩm của mình với chế độ chơi Sáng tạo (Creative mode), cho phép trẻ tự tạo bản đồ
Trang 13của những bản đồ đó
Chế độ chơi chính của A&F đặt người chơi vào một trường đua với 11 người chơi
khác tranh nhau đến được vạch đích đầu tiên Sử dụng cần điều khiển (joystick), người chơi điều động tay đua của mình để vượt mặt các tay đua khác và về đích nhanh nhất, đồng thời khéo léo điều động bản thân vượt qua những cạm bẫy và chướng ngại vật rải rác khắp bản đồ Để hỗ trợ người chơi, các tấm booster đặt trên bản đồ có thể ban cho những ai kích hoạt nó những sức mạnh khác nhau như tăng tốc hay lá chắn chống chướng ngại vật, và do các cạm bẫy có khả năng cho một hiệu ứng diện rộng kích hoạt trì hoãn như hố đen hay bom làm rớt sàn, những người chơi đặc biệt tinh nghịch có thể cố tình kích hoạt bẫy sao cho các người chơi sau bị mắc bẫy khi hiệu ứng có hiệu lực Bên cạnh đó, khắp bản đồ là những đồng xu cho phép người chơi thu thập; số tiền này có thể dùng để mua trang phục cho nhân vật của mình, hay thêm các bộ lọc và hiệu ứng cho chế
độ AR Sau cuộc đua, mỗi người chơi sẽ nhận thêm xu dựa trên vị trí cuối cùng mình đạt được
Trang 14A&F là một trò chơi chơi nhiều người, cho phép trẻ thi đấu với những người chơi
khác qua mạng Nếu không có mạng, người chơi có thể luyện tập offline thông qua chế
độ chơi đơn; khi này người chơi sẽ chơi với máy
2 Tối ưu hóa hiệu suất hoạt động của A&F
Một trong những phiền muộn phổ biến nhất Gameloft nhận được từ người chơi là
việc A&F rất nặng, gây vấn đề chậm hoạt động, tụt FPS trong những máy cấu hình yếu
hơn
Để giải quyết vấn đề này, đội sử dụng Mesh Baker, một công cụ từ Unity Asset Store được sử dụng để tối ưu game thông qua kết hợp đối tượng trong cảnh để hạn chế số hàm vẽ Unity gọi để vẽ những đối tượng đó Sau 3 ngày nghiên cứu, thực hành và thử nghiệm, thực tập viên hiểu rõ cách sử dụng Mesh Baker để tối ưu hóa game, cũng như cách sử dụng các công cụ và giao diện được cung cấp bởi Unity để so sánh hiệu suất trước và sau khi dùng
Trang 15các đối tượng trong cảnh Do một mesh được cấu thành bởi nhiều tam giác, và số tam giác cần phải vẽ có ảnh hưởng đến hiệu suất hoạt động của game, nên những mesh được cấu thành bởi càng nhiều mesh kết hợp lại dù có giảm số batch vẽ những mesh đó (do kết hợp nên chỉ cần một batch call thay vì gọi batch cho từng mesh) nhưng lại tạo ra những mesh rất lớn chứa rất nhiều tam giác Vì thế, trong quá trình thực hành, thực tập sinh phải thử nghiệm với nhiều cách và họa tiết kết hợp đối tượng khác nhau, nhằm tìm ra những
tổ hợp nào giảm được batch call nhiều nhất nhưng tăng tam giác ít nhất Mỗi lần thử nghiệm thực tập sinh quay clip và chụp màn hình trước và sau khi kết hợp để đối chiếu
và so sánh
Sau khi thực tập sinh chứng tỏ rằng Mesh Baker là một công cụ tối ưu hóa game hiệu quả với những kết quả thể hiện sự cải thiện rõ ràng, thực tập sinh được yêu cầu viết tài liệu hướng dẫn sử dụng Mesh Baker, để người sau có thể góp phần tối ưu hóa những cảnh mình làm góp vào dự án chung Tại đây, thực tập sinh lần đầu sử dụng Confluence
là một công cụ lưu trữ tài liệu, thay vì trước đây là một nguồn tài liệu vào để đọc