Tải bản đầy đủ (.pdf) (21 trang)

Lập trình mobile game 2d

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.43 MB, 21 trang )

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


2

LỜI MỞ ĐẦU


Ngày nay, game không chỉ là một thú vui tiêu khiển, mà còn là một 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ẽ và nhanh chóng như vũ
bão, ngày càng đem đến cho game thủ những sản phẩm mới chất lượng. Xu thế đó kéo theo nhu
cầu về nhân sự 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ý do để theo đuổi ngồi niềm đam mê u thích với loại hình giải trí mới
mẻ này.
Thực tập là giai đoạn chập chững của một đứa trẻ tập đi, một con cá vùng vẫy từ ao nông
ra biển rộng. Thực tập cũng là bước khởi đầu cho hành trình định vị bản thân mình. Đứng trước
nhiều sự lựa chọn ở cơng ty, tập đoàn lớn như VNG, Gameloft, Wolffun,… sẽ đem lại môi
trường chuyên nghiệp, quy củ, em lại chọn một startup có tuổi đời trẻ như PocketSized Games
để gắn bó trong thời gian thực tập này. Ở PocketSized Games, em tin rằng mình sẽ được mài
dũa ở một mơi trường năng động, được trải nghiệm qua nhiều vai trò, từ đó cũng có cái nhìn
tổng quan hơn.

Nguyễn Vĩnh Lộc

Trần Ngun Tiến Nam


3

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ó
cơ hội được thực tập tại công ty.
Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của anh Nguyễn Vĩnh Lộc,
nhóm thực tập chúng em đã tiếp thu được nhiều kiến thức quan trọng về Unity, tư duy lập trình,
tư duy giải quyết 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 những khó khăn trong 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 mới. Chân thành cảm ơn anh Martin Vũ, đã đưa
ra những phản hồi giúp chúng em nhìn nhận được ưu nhược điểm của bản thân để khắc phục và

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


4

NHẬN XÉT CỦA KHOA
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................


Nguyễn Vĩnh Lộc

Trần Nguyên Tiến Nam


5

MỤC LỤC
LỜI MỞ ĐẦU ........................................................................................................................... 2
LỜI CẢM ƠN ............................................................................................................................ 3
NHẬN XÉT CỦA KHOA.......................................................................................................... 4
MỤC LỤC ................................................................................................................................. 5
Chương 1: Giới thiêu công ty thực tập ....................................................................................... 6
1. Giới thiệu công ty ............................................................................................................ 6
2. Sản phẩm của công ty ...................................................................................................... 6
3. Văn hóa cơng ty ............................................................................................................... 7
Chương 2: Nội dung thực tập ..................................................................................................... 9
1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty ..................................................... 9
2. Nghiên cứu kỹ thuật ......................................................................................................... 9
3. Lịch làm việc ................................................................................................................. 12
Chương 3: Chi tiết về dự án ..................................................................................................... 14
1. Giới thiệu về game ......................................................................................................... 14
1. Thực hiện ....................................................................................................................... 18
2. 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


6

Chương 1: Giới thiêu công ty thực tập

1. Giới thiệu công ty
PocketSized Games được thành lập vào năm 2020. Hiện nay, cơng ty đang có hơn 10 nhân
viên làm việc với những dự án outsource, NFT và những dự án riêng của 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 và hyper-casual. Nổi bật trong
những đối tác đã từng đồng hành với PocketSized Games là RFOX, Amanotes, Boombit,
Playmobil, Jambox,… Bên cạnh đó, PocketSized Games đã và đang phát triển, cũng như phát
hành một tựa game NFT đến cộng đồng.

2. Sản phẩm của công ty
Với nguồn lực sẵn có, PocketSized Games có thể sản xuất game thuộc đa dạng thể loại
trong một khoảng thời gian ngắn. Công ty đang thực hiện 3 dự án chính, bao gồm:
• SDK cho phép bổ sung nhanh chóng những tính năng NFT vào game trên nền tảng WAX
và 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 hẳn việc chơi để kiếm tiền của các game NFT khác trên thị trường.

Nguyễn Vĩnh Lộc

Trần Nguyên Tiến Nam


7


• Playmobil Companion App: App sưu tầm vật phẩm trong hệ sinh thái đồ chơi Playmobil
của tập đoà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 và NFT, có thể kể đến như Kogs Slam!, War of Nations, Basket Bounce,…

3. Văn hóa cơng ty
Thời gian làm việc linh động, khơng cố định 1 khung giờ trong ngày hay 1 khung ngày trong
tuần. Công ty cũng không bắt buộc nhân viên phải làm việc tại văn phòng, và hầu hết nhân viên
Nguyễn Vĩnh Lộc

Trần Nguyên Tiến Nam


8
đều đang làm việc tại gia. Điều này giúp em thuận tiện sắp xếp công việc để vừa đi học vừa đi
làm, miễn vẫn hồn thành cơng việc được giao.
Với quy mô nhân sự hạn chế, nhiều anh chị đồng nghiệp thường kiêm nhiều vai trị. Thế
nên, khi có nhu cầu trao đổi cơng việc thì chỉ xoay quanh 2 – 3 người.
Buổi họp tồn cơng ty thường được tổ chức online lúc 21 giờ mỗi thứ Hai hằng tuần. Đây là
buổi họp định kì để các team cập nhật tiến độ dự án hoặc thông báo về kế hoạch mới.
Văn phịng cơng ty cũng có khơng gian để các anh em giải lao bằng các hoạt động như chơi
game trên console, các buổi tabletop game.

Nguyễn Vĩnh Lộc

Trần Nguyên Tiến Nam


9


Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “Lập trình game 2D trên thiết bị di động” nhằm mục đích giúp sinh
viên thực tập được đào tạo tồn diện về lập trình game 2D trên Android, đồng thời rèn luyện
những kỹ năng mềm như làm việc nhóm, thuyết trình, giao tiếp. 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ột mơi trường phát triển game chun nghiệp.

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ách giới thiệu về cơng ty, q trình thành lập và phát triển, quy trình
làm việc, cách thức tổ chức và văn hóa của cơng ty.
Ngồi ra, thực tập sinh cịn được giới thiệu về khái quát quy trình sản xuất game và những vị
trí quan trọng trong lĩnh vực phát triển game.
Kết quả: Hiểu thêm về công ty PocketSized Games, q trình thành lập và phát triển. Làm
việc có kế hoạch, có kỷ luật, có trách nhiệm hơn.

2. Nghiên cứu kỹ thuật
2.1. Các công cụ làm việc
Thời gian: 3 ngày
Nội dung: Tìm hiểu về các cơng cụ sẽ được sử dụng trong quá 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ác công cụ
quản lý dự án, giao tiếp trong cơng việc. Ba phần mềm chính được sử dụng là Jira, Slack và
Google Drive.
Thực hiện: Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả: Đã làm quen được với quy trình làm việc bài bản.
2.2. Tìm hiểu tổng quan kiến thức về C# và Unity
Thời gian: 5 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 và heap memory:
Stack memory

Heap memory

Định nghĩa

Là một mảng các vùng nhớ, Là một khu vực các vùng nhớ,
tuân theo cấu trúc LIFO
trong đó dữ liệu được lưu trữ
và loại bỏ theo thứ tự bất kỳ.

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 trong Unity: Unity sử dụng Boehm–Demers–Weiser garbage
collector như một công cụ thu gom lại vùng nhớ khơng cịn được sử dụng nữa.
Khi một script cố cấp phát heap memory nhưng khơng có đủ đủ vùng nhớ cho
việc cấp phát, Unity sẽ chạy garbage collector. Mặc định, Unity sẽ sử dụng chế độ
tăng cường, tức chia nhỏ cơng việc lên nhiều frame thay vì dừng hẳn luồng CPU
chính. Điều này tạo nên những gián đoạn ngắn thay vì buộc chương trình ngưng
hoạt động trong một khoảng thời gian dài.
• Rendering pipeline: Ở mức độ mới tiếp cận, anh mentor chỉ đề cập đến giai đoạn
Rendering thay vì bao gồm cả 2 giai đoạn khác là Culling và Post-processing. Cách hình
ảnh được kết xuất, một số lưu ý khi sử dụng sprite asset để tối ưu hiệu năng.
• Cách tổ chức thư mục, quy ước đặt tên file, code.
Thực hiện:

• Tham gia đầy đủ các buổi training của cơng ty.
• Làm các bài thực hành, kiểm tra về kiến thức đã học.
Kết quả:
• Nâng cao kỹ năng lập trình với ngơn ngữ C#.

Nguyễn Vĩnh Lộc

Trần Nguyên Tiến Nam


11
• Có được những kiến thức quan trọng cho việc lập trình game mobile sau này.
• Biết thêm một số quy tắc trong 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: 5 ngày (1 tuần)
Nội dung: Trận đấu Theo lượt là một quá trình các nhân vật luân phiên nhau thực hiện hành
động của mình. Thay vì việc xử lý logic của một 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ó một cách tiếp cận khác là tách việc xử lý logic của trận đấu
riêng và tái diễn nó sau khi tiến trình giả lập hồn tấc. Điều này giúp một số game kiểm sốt
tính bảo mật trên server, tránh bị người chơi ở local tác động vào.
Thực hiện:
• Thực hiện một prototype hoạt động hồn tồn ở local.
• Kiểu hành động của các nhân vật chưa đa dạng, chỉ có tăng hoặc giảm 1 loại chỉ số.
Kết quả:
• Prototype đã được hồn thiện nhưng khơng được sử dụng trong bất kỳ dự án nào khác.
2.4. Lập trình game Playmobil Companion App
Thời gian: 6 tuần
Nội dung: Cộng tác cùng anh Nguyễn Vĩnh Lộc, nhóm em đã có cơ hội thực chiến ở một dự án
nhỏ. Chi tiết về dự án sẽ được đề cập ở phần sau của tài liệu.
Thực hiện :

• Tìm hiểu UI System: Đây là kiến trúc do anh Nguyễn Vĩnh Lộc tự phát triển, giúp quản
lý, mở và đóng các giao diện thuận tiện và tối ưu hiệu năng.
• Lập trình giao diện, logic, flow các màn hình: Main, Shop, Collection, User Info, Setting.
• Tìm hiểu và triển khai một số plugin hữu ích vào dự án:
o Dotween: Cho phép tạo một Tween dưới dạng Tweener (Tween đơn lẻ) hoặc
Sequence (gồm nhiều Tween tiếp nối nhau) để nội suy nhiều kiểu dữ 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 được tạo ra từ phần mềm hoạt ảnh bên thứ ba Spine.
o Super Scroll View: Giao diện cuộn open source chỉ load dữ liệu của những item
nằm trong vùng nhìn thấy, giúp tiết kiệm hiệu năng thay vì load tất cả item như
Scroll View của Unity.
o I2 Localization: Tạo ra các phiên bản bản địa hóa cho từng khu vực mà game
được phát hành. Các thành phần có thể được bản địa hóa có thể là chữ, hình ảnh,
âm thanh,…
• Lập trình minigame Pair Matching.
• Triển khai các asset như skeleton animation, background music, sound effect.
Kết quả:
• Hồn thành cơng việc đúng tiến độ.
• Chất lượng hoàn thiện tương đối tốt, đặc biệt là minigame Pair Matching.
• Học được cách sử dụng cơ bản các thành phần UI và các plugin hỗ trợ cho Unity.

3. Lịch làm việc
Tuần


Cơng việc
Tìm hiểu về cơng ty, hệ
thống tổ chức, quy trình,
văn hóa của cơng ty.

1

Người hướng dẫn

Mức độ
hồn thành

Nhận xét
của người
hướng dẫn

Anh Martin Vũ
Anh Nguyễn Vĩnh Lộc

Làm quen với các cơng cụ
quản lý dự án.
Tìm hiểu chi tiết các thành
phần cơ bản của Unity.

2

3

Thực hiện 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 một số màn hình.

Anh Nguyễn Vĩnh Lộc

Nguyễn Vĩnh Lộc

Trần Nguyên Tiến Nam


13

4

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 năng

của màn hình Bộ sưu tập.
Làm Audio System, Event
System (dựa trên design
pattern Event Bus).

Anh Martin Vũ

5

Anh Nguyễn Vĩnh Lộc

6–8

Test, fix bug, làm tutorial
flow cho dự án Dungeon
Pets.
Thực hiện game Match3.

Anh Martin Vũ

9 - 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 về dự án
1. Giới thiệu về game
Tên dự án: Playmobil Companion App.
Mô tả: Playmobil Companion App là một mobile app thuộc thương hiệu đồ chơi Playmobil.
Người dùng sẽ ngẫu nhiên nhận được mơ hình và vật phẩm của các nhân vật Hero thông qua
việc mua và mở gói trong game. Người chơi cũng có thể nhập mã code trên sản phẩm đồ chơi
Playmobil ngoài đời thực để có được phần quả trong game.

Người chơi sở hữu một đơn vị tiền ảo trong game là vàng, dùng để mua những gói quà chứa
vật phẩm sưu tầm hoặc những vật phẩm bổ trợ giúp tăng khả năng kiếm tiền thơng qua việc
chơi các minigame. Game hiện tại có một minigame là Pair Matching. Vật phẩm sưu tầm bao
gồm nhân vật hero và 3 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 về minigame Pair Matching

Nguyễn Vĩnh Lộc

Trần Nguyên Tiến Nam


17

Mô tả: Khu vực chơi của game là một ma trận 8x8, chứa biểu tượng nhiều màu sắc của một số
nhân vật trong game.
Mục tiêu: Kiếm được càng nhiều điểm trong thời gian giới hạn.
Cách chơi: Chạm vào những khối cùng màu liền kề nhau để phá hủy chúng và nhận một lượng
điểm tương ứng với số khối đã bị phá hủy. Với một số lượng khối được kết nối nhất định sẽ tạo
ra các powerup tương ứng.
• Từ 4 – 6 khối: Crayola
• Từ 7 – 9 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 các khối powerup sẽ nhận được một lượng điểm tương ứng và kích hoạt cơng
năng đặc biệt riêng hoặc kết hợp với một powerup liền kề để kích hoạt một cơng năng mạnh mẽ
hơn. Nếu có nhiều hơn 1 powerup khác xung quanh, nó sẽ kết hợp với powerup để tạo ra combo
có độ ưu tiên cao hơn.

• Crayola, phá hủy ngẫu nhiên một hàng hoặc một cột khối.
• Pizza, phá hủy những khối trong bán kính 1 đơn vị, có tâm là Pizza được kích hoạt (8
khối xung quanh).
• Disco, phá hủy tất cả khối có cùng màu với Disco. Màu của Disco là màu của những
khối đã tạo nên powerup này trước đó.
• Crayola + Crayola, phá hủy 1 hàng và 1 cột.
• Crayola + Pizza, phá hủy ngẫu nhiên 3 hàng hoặc 3 cột.
• Pizza + Pizza, phá hủy những khối trong bán kính 2 đơn vị, có tâm là Pizza được kích
hoạt (24 khối xung quanh).
• Disco + 1 powerup khác, biến tất cả khối có cùng màu trở thành powerup đó và lần lượt
kích hoạt chúng.
• Disco + Disco, phá hủy tất cả khối.
Trong quá trình chơi, người chơi có thể sử dụng những powerup được mua trước khi vào
minigame để cải thiện kết quả.
Kết quả: Hết thời gian, lượng điểm mà người chơi hiện có sẽ được quy đổi sang lượng vàng có
thể nhận được. Để tăng hiệu quả của mỗi lần chơi, người chơi có thể sử dụng những vật phẩm
mua ngồi minigame Pair Matching, như booster thêm thời gian, tăng lượng điểm và lượng
vàng kiếm được.

1. Thực hiện
2 thành viên của team internship PocketSized Games:
• Trần Nguyên Tiến Nam
• Anh Nguyễn Trung Nghĩa
Và sự giúp đỡ tận tình và cộng tác của mentor anh Nguyễn Vĩnh Lộc.
Nguyễn Vĩnh Lộc

Trần Nguyên Tiến Nam


19


2. Kế hoạch
Việc sản xuất kéo dài trong 3 tháng, với mỗi tháng tương ứng với từng milestone sau:
2.1. Milestone 1 (15 tháng 6 – 15 tháng 7)
Những tính năng cơ bản cho việc phát hành bản MVP trên Google play và Appstore.
• Bộ sưu tập 24 Hero có hoạt ảnh.
• Phiên bản cơ bản của mỗi Hero.
• Nhập code để mở gói.
• Những tính năng cơ bản của app như đăng nhập, thiết lập cài đặt,…
• Setup cơ bản Firebase.
2.2. Milestone 2 (18 tháng 7 – 12 tháng 8)
Trau chuốt và hồn thiện.
• Cải thiện art asset như ảnh background và animation.
• Sửa lỗi và chuẩn bị cho lần phát hành kế tiếp.
• Sự kiện Firebase.
2.3. Milestone 3 (15 tháng 8 – 16 tháng 9)
• Bảng phân tích dữ liệu và cơng cụ cho quản trị viên.
• Một số công cụ khác như Appsflyer, tùy theo nhu cầu của 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: />Loc, N. V. (n.d.). UI System Manual.
Dermigiant. (n.d.). Dotween Document. Retrieved from
EsotericSoftware. (n.d.). spine-unity Runtime Documentation. Retrieved from

/>InterIllusion. (n.d.). I2LocalizationManual. Retrieved from />RainbowArt. (n.d.). Super ScrollView for UGUI 2.4. Retrieved from
/>
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 3 tháng thực tập ý nghĩa và hứng khởi, em đã thu nạp được rất
nhiều kiến thức, kinh nghiệm và kỹ năng bổ ích. Đây là bước chạy đà đáng giá cho sự nghiệp
phát triển game sau này.
Một lần nữa, xin chân thành cảm ơn sự giúp đỡ và chỉ bảo tận tình của các anh chị trong
gia đình nhỏ PocketSized Games, đã đồng hành cùng chúng em.

Nguyễn Vĩnh Lộc

Trần Nguyên Tiến Nam



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×