Phát triển trò chơi di động khá khó khăn bởi vì nó đòi hỏi nhiều kỹ năng và kiến thứcngoài các kiến thức Technical mà còn đòi hỏi phải tìm hiểu và nghiên cứu sâu cũngnhư sự hiểu biết về
Trang 1TRƯỜ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
Mobile Game Developer
Công ty thực tập: Công Ty TNHH Athena Studio
Người phụ trách: anh Phạm Khắc Cảnh
Thực tập sinh: Phạm Hoài Bảo - 19520406
Trang 2TP Hồ Chí Minh, tháng 06 năm 2023
LỜI MỞ ĐẦU
Ngày nay, trò chơi di động mang lại nhiều lợi ích khiến chúng trở thành một phầnkhông thể thiếu trong cuộc sống của giới trẻ Chúng có thể được sử dụng để giải trí,tương tác xã hội, học tập, giải quyết vấn đề và sáng tạo Trong bối cảnh các thiết bị diđộng tiếp tục trở nên mạnh mẽ và phổ biến hơn, trò chơi di động sẽ càng trở nên quantrọng hơn trong cuộc sống của chúng ta Do đó, phát triển trò chơi di động là mộtngành đang phát triển nhanh chóng Cùng với đó là nhu cầu nhân lực vô cùng lớn mớinhững lợi ích hấp dẫn
Phát triển trò chơi di động khá khó khăn bởi vì nó đòi hỏi nhiều kỹ năng và kiến thứcngoài các kiến thức Technical mà còn đòi hỏi phải tìm hiểu và nghiên cứu sâu cũngnhư sự hiểu biết về công nghệ Bất chấp sự khó khăn, phát triển trò chơi di động cũng
sẽ là một trải nghiệm rất bổ ích Nếu bạn thích trò chơi và có kỹ năng phát triểnchúng, chắc chắn phát triển trò chơi di động sẽ là một nghề nghiệp tuyệt vời dành chobạn
Sau những ngày tháng trong môi trường đại học, với mong muốn vận dụng các kiếnthức đã học và có những trải nghiệm trong môi trường thực tiễn, em đã quyết địnhứng tuyển vào Athena Studio – một môi trường lý tưởng và chuyên nghiệp để hiệnthực hóa mong muốn của mình Em cũng cũng rất vui được làm việc trong quá pháttriển trò chơi, làm việc với một nhóm những người tài năng để đưa trò chơi vào cuộcsống
Trang 3LỜI CẢM ƠN
Em xin trân trọng gửi lời cảm ơn Athena Studio đã tạo điều kiện cho em cơ hội đượcthực tập tại công ty Dù trong thời gian ngắn nhưng nhờ sự chỉ dẫn nhiệt tình của anhPhạm Khắc Cảnh, em đã tiếp thu những kiến thức quan trọng để có thể tham gia một
dự án thực tế
Chân thành cảm ơn anh Phạm Khắc Cảnh và các anh chị trong team Mainbase đã bỏ
ra nhiều thời gian, công sức để hướng dẫn, hướng dẫn, giúp đỡ em tận tình trong khilàm quen môi trường mới cũng như trong việc tiếp cận kiến thức công nghệ, kỹ nănglập trình và tư duy sản phẩm để có thể thực hiện tốt dự án cá nhân và dự án thực tếtrong thời gian qua
Em 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 em làm báo cáo này
TP HCM, ngày 25 tháng 06 năm
2023
Phạm Hoài Bảo
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
MỤC LỤC
LỜI MỞ ĐẦU 2
LỜI CẢM ƠN 3
MỤC LỤC 5
CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP 6
1.1 Giới thiệu 6
1.2 Sản phẩm công ty 7
1.3 Lịch làm việc khi thực tập tại công ty 8
CHƯƠNG 2: NỘI DUNG THỰC TẬP 10
2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 10
2.2 Nghiên cứu kỹ thuật 10
2.2.1 Tuần 1 10
2.2.2 Tuần 2 10
2.3 Dự án Tile Home Makeover (Tile Matching) 10
2.3.1 Công nghệ và kiến trúc hệ thống: 10
2.3.2 Mô tả dự án: 11
2.3.3 Quá trình thực hiện: 11
2.3.4 Kết quả: 14
2.4 Dự án Tile Blast 14
2.4.1 Công nghệ và kiến trúc hệ thống: 14
2.3.2 Mô tả dự án: 14
2.3.2 Quá trình thực hiện: 16
2.4 Dự án Magical Survival 20
2.4.1 Công nghệ và kiến trúc hệ thống: 20
2.4.2 Mô tả dự án 20
2.3.2 Quá trình thực hiện: 20
CHƯƠNG 3: TỔNG KẾT 25
3.1 Điểm mạnh 25
3.2 Điểm yếu 25
3.3 Chuẩn đạt được 25
TÀI LIỆU THAM KHẢO 26
Trang 6CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP
1.1 Giới thiệu
Hình 1.1 Logo Athena Studio
Athena Studio là một công ty công nghệ đa quốc gia chuyên cung cấp nhữngsản phẩm trò chơi di động phục vụ cho người tiêu dùng trên khắp thế giới Athena tậptrung vào những sản phẩm game thuộc dòng casual - giải đố và tự tạo những nền tảngmarketing trực tuyến
Logo Athena Studio là một mô tả cách điệu của Athena, nữ thần trí tuệ, thủcông và chiến tranh của Hy Lạp Logo kết hợp mũ bảo hiểm và giáo và chữ "A" trongthiết kế Biểu trưng thể hiện cam kết của Athena Studio trong việc tạo ra các trò chơi
di động chất lượng cao thú vị và hấp dẫn Mũ bảo hiểm tượng trưng cho sự tập trungcủa công ty vào sự sáng tạo và đổi mới, trong khi ngọn giáo tượng trưng cho cam kếtcủa công ty về chất lượng sản phẩm xuất sắc Chữ "A" đại diện cho tên công ty vàcũng thể hiện mục tiêu của công ty là mang lại niềm vui và sự phấn khích cho ngườichơi trên khắp thế giới Logo là một thiết kế đơn giản nhưng có sức ảnh hưởng, nắmbắt được bản chất sứ mệnh của Athena Studio và chắc chắn sẽ nổi bật trong thị trườnggame di động đông đúc
Athena Studio được chính thức thành lập vào tháng 9 năm 2015 có trụ sở đặttại thành phố Hồ Chí Minh, Việt Nam, tham gia vào ngành phát triển game toàn cầuvới mục tiêu tạo ra những sản phẩm game chất lượng cao Cuối năm 2015 đánh dấucột mốc 10 triệu giờ chơi của người dùng trên những sản phẩm đã ra mắt
Năm 2017, lần đầu tiên một sản phẩm của công ty - Woody Puzzle đứng đầubảng xếp hạng của Canada và Nhật bản Với 20 triệu người chơi trên tất cả sảnphẩm đã phát hành
Trang 7Đầu năm 2019, đạt được mốc 1 tỷ giờ chơi và sản phẩm Woody Battle đượcfeature toàn cầu trên Google Play Store.
Vào năm 2020, văn phòng của Athena được mở rộng gấp 3 lần, phát hànhnhiều sản phẩm
Vào năm 2021, các trò chơi của Athena sẽ vượt mốc 2 tỷ giờ chơi, liên tụcđứng đầu bảng xếp hạng AppStore tại Nhật Bản, Pháp và Úc Ngày nay, Athena cũng
là một trong những đối tác lớn của Google, Apple và Facebook Nó cũng liên tục đượcxếp hạng trong số 50 nhà sản xuất trò chơi giải đố hàng đầu tại Mỹ
Những thành tựu lớn của công ty bao gồm:
● Phát hành hơn 60 tựa game, đạt 2 tỷ lượt tải xuống các trò chơi của họ
● Nổi bật trên Google Play và App Store
● Giành được nhiều giải thưởng, trong đó có giải "Game di động hay nhất" tạiAppy Awards
● Hợp tác với các thương hiệu lớn, chẳng hạn như Disney và Warner Bros
Athena Studio chính là thành viên thứ 10 của giới khởi nghiệp Việt Nam thamgia mạng lưới Endeavor toàn cầu Trước đó, chúng ta đã có Giao Hàng Nhanh, TheCoffee House, Elsa, Trusting Social, Topica, Ecomobi, NextPay, OhmniLabs, Katalon
1.2 Sản phẩm công ty
Woody Block Puzzle Battle: Một trò chơi giải đố ghép khối nhiều người chơitrong đó người chơi cạnh tranh để loại bỏ các khối của đối thủ Trò chơi đã được tảixuống hơn 2 tỷ lần và đã xuất hiện trên Google Play và App Store Trò chơi cũng làmột cách tuyệt vời để cải thiện khả năng phối hợp tay mắt và phản xạ của bạn Khichơi, bạn sẽ cần nhanh chóng phản ứng với các khối bị rơi và đảm bảo rằng bạn đặtchúng vào đúng vị trí Woody Block Puzzle Battle là một trò chơi thú vị và đầy thửthách dành cho người chơi ở mọi lứa tuổi Đó là một cách tuyệt vời để kiểm tra chiếnlược và kỹ năng giải quyết vấn đề của bạn, đồng thời cũng có thể rất thú vị khi chơivới bạn bè hoặc gia đình
Pixel Art: Color Island: Trò chơi tô màu nghệ thuật pixel nơi người chơi có thểtạo ra những tác phẩm nghệ thuật pixel của riêng mình Trò chơi đã được tải xuốnghơn 100 triệu lượt, Trò chơi có nhiều hình ảnh khác nhau cho đến màu sắc, từ độngvật, phong cảnh đến đồ vật Người chơi có thể chọn từ nhiều màu khác nhau để tômàu cho hình ảnh của mình và họ cũng có thể sử dụng các công cụ khác nhau để tạo
Trang 8các hiệu ứng khác nhau.Trò chơi cũng có nhiều cấp độ khác nhau, từ dễ đến khó Điềunày cho phép người chơi ở mọi cấp độ kỹ năng thưởng thức trò chơi Color Island làmột trò chơi thú vị và thư giãn phù hợp với người chơi ở mọi lứa tuổi Đó là một cáchtuyệt vời để thể hiện sự sáng tạo của bạn và để thư giãn.
Word Search Duo: Một trò chơi tìm từ dành cho hai người chơi Người chơithay phiên nhau cố gắng tìm các từ trong một lưới các chữ cái Trò chơi dễ học nhưngkhó thành thạo Người chơi phải sử dụng vốn từ vựng và kỹ năng giải quyết vấn đềcủa mình để tìm ra càng nhiều từ càng tốt Trò chơi có nhiều từ khác nhau, từ những
từ phổ biến đến những từ khó hiểu hơn Điều này giữ cho trò chơi đầy thử thách vàthú vị Người chơi có thể thách thức bạn bè hoặc gia đình của họ trực tuyến Đây làmột cách tuyệt vời để cạnh tranh với những người khác và xem ai là người chơi tìmkiếm từ tốt nhất Người chơi có thể xem cách họ xếp hạng so với những người chơikhác trên bảng xếp hạng Đây là một cách tuyệt vời để theo dõi tiến trình của bạn vàxem bạn đang cải thiện như thế nào
Block Jewel Puzzle: Một trò chơi giải đố ghép 3 trong đó người chơi ghép cáckhối cùng màu để xóa chúng khỏi bàn cờ Trò chơi đã được khen ngợi vì lối chơi đầythử thách nhưng bổ ích Trò chơi có nhiều cấp độ khác nhau, từ dễ đến khó Điều nàygiữ cho trò chơi đầy thử thách và thú vị Người chơi có thể sử dụng Power-up để giúp
họ xóa nhiều khối hơn Điều này bổ sung thêm một lớp chiến lược cho trò chơi Ngườichơi có thể xem cách họ xếp chồng lên nhau so với những người chơi khác trên bảngxếp hạng Đây là một cách tuyệt vời để theo dõi tiến trình của bạn và xem bạn đangcải thiện như thế nào
Trang 9CHƯƠNG 2: NỘI DUNG THỰC TẬP
2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty
Thời gian: 1 ngày
Nội dung: giới thiệu về công ty, cách tổ chức của công ty, được nghe người phụ tráchgiới thiệu về công ty, quá trình thành lập và phát triển, quy trình làm việc của công ty,các phòng ban, … Ngoài ra, thực tập sinh còn được giới thiệu về văn hóa làm việctrong công ty như thời gian đi làm, các quy định, cách sử dụng email trong công việc,Kết quả: Kết thúc thời gian tìm hiểu, em đã có hiểu được về sơ bộ cách tổ chức nhân
sự của Công ty, giúp bản thân tự định hướng làm việc trong ngành sản xuất game trênthiết bị di động
2.2 Nghiên cứu kỹ thuật
2.2.1 Công cụ sử dụng:
Thời gian : 1 ngày
Nội dung:
Giới thiệu về một số công cụ được sử dụng trong công ty
○ Jira: là công cụ để quản lý dự án, kiểm soát và theo dõi các vấn đề xảy ratrong dự án, quản lý tiến độ của các dự án đang thực hiện
○ Slack: là ứng dụng làm việc giúp team làm việc hiệu quả hơn thông qua sựtương tác, trao đổi qua khung chat linh hoạt Slack lại tập trung phát triểncác tính năng giúp việc tương tác nhóm mạnh mẽ, gắn kết các cuộc hộithoại dễ được tìm kiếm và theo dõi theo mỗi dự án riêng biệt, các thành viên
Trang 10có thể gọi, trao đổi, chia sẻ dữ liệu, các tệp và kết nối với các ứng dụng khác
do có mở cổng API trên nhiều phần mềm
○ Confluent: là một nền tảng dựa trên được thiết kế để giúp các doanh nghiệpxây dựng, vận hành và quản lý các hệ thống dữ liệu phân tán thời gian thực.Với Confluent, người dùng có thể xử lý, lưu trữ và phân phối dữ liệu từnhiều nguồn khác nhau, đồng thời cung cấp khả năng xử lý dữ liệu thời gianthực và đáp ứng cao Trong các dự án của công ty, đây là nơi để viết và lưutrữ các tài liệu về Game Design - là phương thức chính để giao tiếp giữagame designer và game developer
Kết quả:
Tham khảo một số dự án của công ty, để có cái nhìn tổng quan hơn vềStandard, giúp cho việc code của bản thân được tốt hơn giúp việc làm việc giữa cácdeveloper được diễn ra suôn sẻ
Cocos2d-x là một khung đa nền tảng, có nghĩa là các trò chơi được phát triểnvới nó có thể chạy trên nhiều nền tảng khác nhau, bao gồm iOS, Android, Windows,macOS và Linux Những dự án Cocos2Dx thường là những quảng cáo chơi được đểnhúng vào các ứng dụng
Trang 11Kết quả:
Giúp em nắm rõ hơn về các logic trong việc phát triển game nói chung và công
cụ Cocos nói riêng, cũng như học được cách sử dụng JavaScript/TypeScript vàonhững dự án nhỏ:
Kết quả:
Giúp em nâng cao hiểu biết hơn về việc quản lý các tài nguyên trong game.Giải quyết các vấn đề được tốt hơn Đồng thời học cách sử dụng ngôn ngữ C# trongviệc phát triển các Game bằng Unity
ECS có một số lợi thế so với các kiến trúc phát triển trò chơi truyền thống,chẳng hạn như lập trình hướng đối tượng (OOP) ECS hiệu quả hơn, có thể mở rộng
và dễ lý giải hơn Nó cũng phù hợp với các trò chơi có số lượng thực thể lớn, chẳnghạn như trò chơi chiến lược thời gian thực và trò chơi trực tuyến nhiều người chơi(MMO) Unity hỗ trợ ECS thông qua gói Thực thể của nó Gói Thực thể cung cấpmột tập hợp các lớp và phương thức để tạo và quản lý các thực thể và thành phần Nócũng cung cấp một số hệ thống có thể được sử dụng để xử lý các thực thể và thànhphần
Trang 12Kết quả: Hiểu được tốt hơn về 2 kiến trúc được sử dụng trong hệ thống công ty Giúpcải tiến khả code của bản thân theo kiến trúc cần thiết để đáp ứng nhu cầu phát triểncủa các dự án riêng biệt
xử lý cơ sở hạ tầng và bảo trì nền tảng Điều này giải phóng các developer trò chơi đểtập trung vào việc tạo trò chơi
Kết quả:
Giúp em biết cách tương tác thông qua các API của game đến server Hiểu rõhơn về cách hoạt động của những dự án đang hoạt động, ngoài phát triển cácgameplay còn phải trú tâm đến quản lý sản phẩm đang hoạt động Biết cách tạo nhữngcustom API bằng Javascript trên nền tảng của Playfab
Tìm hiểu và xử lý những vấn đề gặp phải của Unity sau khi export sang cácproject native của Android và IOS Khắc phục những sự cố gặp phải thường là do cácthư viện không có khả năng tương thích trên mọi nền tảng
Kết quả:
Biết được cách xử lý các lỗi xảy ra sau khi export thành những project native,hiểu được cách code bằng ngôn ngữ Java và Swift ứng với mỗi nền tản
Trang 132.3 Dự án Tile Home Makeover (Tile Matching)
2.3.1 Công nghệ và kiến trúc hệ thống:
● Game Engine: Unity
● Nền tảng: iOS, Android
● Backend: Microsoft Azure Playfab,
● Report tools: Firebase Crashlytic
Khi tham gia, dự án đã hoàn thiện hoàn chỉnh những chức năng chính và pháthành trên Apple Store, Google Play Store
Trang 142.3.3 Quá trình thực hiện:
Tính năng Shop và In-App-Purchase:
● Dựa vào mô tả của Game Design Document và những sprite vẽ của bộ phậnGame Artist, code hoàn chỉnh màn hình Shop cũng như những cửa sổ và itemtrong Shop
● Xử lý dữ liệu được lấy từ Backend thông qua API để load lên những IAP thànhcác item trong shop với UI dựa trên những dữ liệu đó
● Kết nối các Shop Item để gọi về những API mua IAP tương ứng
● Deploy tính năng và kiểm tra những lỗi phát sinh từ Firebase Crashlytics và
bộ phận QA
Tính năng Health:
● Xem mô tả của Game Design Document về tính năng Health - tức số lần chơi
có thể chơi trước khi đợi hồi phục
● Thêm dữ liệu Health vào thông tin người dùng, cập nhật những sự kiện vào/kếtthúc màn chơi ứng với những yêu cầu về Health của Game Designer
● Lưu những mốc thời gian chơi của người chơi, hồi phục Health khi mở ứngdụng dựa vào mốc thời gian đã lưu (chạy trên thiết bị người chơi mà khôngcần backend)
● Thêm dữ liệu Health ở backend để ứng với dữ liệu từ thiết bị người dùng
● Deploy tính năng và kiểm tra những lỗi phát sinh
Công cụ thiết kế màn chơi:
Những màn chơi được đọc từ những dữ liệu lưu dưới file JSON, những dữ liệu nàyđược tạo ra bởi Game Designer từ những Google Sheets Thiết kế công cụ làm mànchơi với tính năng chính là đặt các ô vuông trong trò chơi vào các vị trí tương ứngngay trên chính Unity và có thể xuất dữ liệu đó thành file JSON để lưu lại dữ liệumàn chơi
● Dựa vào những thông tin màn chơi và cách đọc màn chơi đã có, tạo ra công cụ
để xuất dữ liệu từ những thao tác trên màn hình
● Hiển thị thông tin đã lưu thành những ô vuông tương tự như trong màn chơi.Lưu những dữ liệu này vào bộ nhớ tạm, cập nhật dữ liệu đó vào file khi thựchiện lưu dữ liệu