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

Báo cáo thực tập lập trìnhGAME MOBILE với UNITY

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.45 MB, 20 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
SE501.M11
LẬP TRÌNH GAME MOBILE VỚI UNITY
Cơng ty thực tập: DTNSolution
Người phụ trách: Nguyễn Thanh Đoan
Thực tập sinh: Nguyễn Văn Minh
TP.HCM, ngày 24 tháng 12 năm 2021

Nguyễn Văn Minh


2

LỜI MỞ ĐẦU

Hiện tại trên thế giới ngành công nghiệp Game Mobile rất phát triển, về cả lượng người
chơi và lợi nhuận. Tại thị trường châu Âu, số gamer trả phí và lượng thời gian chơi vẫn đang
tăng lên, trong khi đó sự phát triển tại những thị trường mới nổi như châu Á - Thái Bình
Dương là nhờ kết nối online, sự phổ biến của smartphone và khả năng truy cập 3G, 4G ngày
càng cao.
Trong khi đó, Unity là lựa chọn hàng đầu cho các nhà phát triển Game Mobile - là một
phần mềm làm game đa nền tảng được phát triển bởi Unity Technologies, mà chủ yếu để phát
triển video game cho máy tính, consoles và điện thoại. Lần đầu tiên nó được cơng bố chạy trên
hệ điều hành OS X, tại Apple's Worldwide Developers Conference vào năm 2005, đến nay đã
mở rộng 27 nền tảng.
1. Là phần mềm mã nguồn mở, dễ tùy biến và thêm các chức năng cần thiết. Cộng đồng sử


dụng cũng khá lớn nên có rất nhiều sự đóng góp trong việc phát triển các chức năng mà
chính cơng cụ này chưa có.
2. Là phần mềm miễn phí. Tuy miễn phí nhưng vì lý do nêu trên nên nó trở thành một cơng
cụ rất mạnh mẽ và được nhiều sử dụng
3. Dễ dàng sử dụng
Bên cạnh Unity, các cơng cụ tương tự có thể kế đến như Unreal Engine, Godot. Godot
mới phát triển gần đây, tuy rất được đánh giá cao nhưng cộng đồng của Unity lại rộng hơn. Còn
Unreal Engine tuy cộng đồng cũng khá lớn và có hỗ trợ làm game Mobile với chất lượng hình
ahr tốt hơn nhưng nó lại hướng PC, console hơn là nền tảng mobile; Unity thì chất lượng hình
ảnh đang phát triển rất tốt và chạy tốt hơn trên nền tảng mobile nên sử dụng trong làm Game rất
phù hợp.
Vì lý do đó, em quyết định chọn Unity là Engine nên tảng cho công việc lập trình Game
của mình.

Nguyễn Văn Minh


3

LỜI CẢM ƠN

Trân trọng gửi lời cảm ơn Công ty DTNSolution Việt Nam đã 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 nhóm trainer, nhóm
thực tập chúng em đã tiếp thu được những kiến thức quan trọng để có thể làm được một game
Mobile hoàn chỉnh. Chân thành cảm ơn các anh chị trong nhóm trainer đã bỏ ra nhiều thời
gian,cơng sức để hướng dẫn chúng em hoàn thành đợt thực tập này.
Đặc biệt cảm ơn anh Nguyễn Thanh Đoan đã training Unity, hướng dẫn, giúp đỡ cho
chúng em tận tình cả những khó khăn trong cơng việc, đến những khó khăn việc làm quen với
môi trường mới; Cảm ơn chị Nguyễn Thị Thúy, đã training 3D, hỗ trợ chúng em rất nhiều về các

vấn đề kỹ thuật 3D, Android trong quá trình làm game; chỉ dẫn chúng em về cách làm báo cáo,
lên kế hoạch, những kỹ năng không thể thiếu.
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ài báo cáo này.

Nguyễn Văn Minh
Tp.HCM, ngày 24 tháng 12 năm 2021

Nguyễn Văn Minh


4

NHẬN XÉT CỦA KHOA

...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................

...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................

Nguyễn Văn Minh


5

MỤC LỤC

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

Giới thiệu công ty DTNSolution ............................................................................................... 6

2.

Sản phẩm của công ty ............................................................................................................... 6

Chương 2: Nội dung thực tập ................................................................................................................. 6
1.

Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty ............................................................ 6

2.

Nghiên cứu kỹ thuật .................................................................................................................. 6


3.

Thực hiện project .................................................................................................................... 12

4.

Lịch làm việc ........................................................................................................................... 12

Chương 3: Chi tiết về project ............................................................................................................ 14
1.

Giới thiệu về game .................................................................................................................. 14

2.

Thực hiện................................................................................................................................. 17

3.

Kế hoạch .................................................................................................................................. 17

TÀI LIỆU THAM KHẢO ................................................................................................................... 19
TỔNG KẾT........................................................................................................................................ 20

Nguyễn Văn Minh


6

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

1. Giới thiệu công ty DTNSolution
DTNSolution được thành lập ngày 25/09/2020 tại quận Bình Thạnh, Tp.Hcm, là
cơng ty chủ yếu Lập trình máy vi tính, nghiên cứu thị trường và thăm dị dư luận,
Cổng thông tin, quảng cáo.. Gần đây bắt đầu phát triển các tựa game Mobile.

2. Sản phẩm của công ty
DTNSolution chủ yếu hoạt động trên lĩnh vực Lập trình máy vi tính, mới hoạt
động ở lĩnh vực game cho điện thoại di động chưa được bao lâu nên vẫn chưa có quá
nhiều sản phẩm. 1 số sản phẩm như là: Milk Crate Challenge, Ball 2048, Craft
Smashers IO..

Chương 2: Nội dung thực tập
Làm việc ở công ty với các tự game Mobile đã giúp cho em có cái nhìn tồn diện về lập
trình Game trên Mobile, đồng thời cải thiện khả năng mềm như làm việc nhóm, thuyết trình,
giao tiếp. Thời gian qua chỉ làm việc Online với nhau, tuy nhiên em đã học tập, khám phá và
làm việc trong môi trường Phát triển Game thật sự.

1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty
Thời gian : 3 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à các định
hướng phát triển, quy trình làm việc từ cao xuống thấp, cách thức tổ chức của cơng ty .
Ngồi ra, thực tập sinh còn được giới thiệu về cách thức làm việc trong công ty
như thời gian làm việc, các quy định cần phải tuân thủ, cách sử dụng Skype trong công
việc…
Kết quả : Hiểu thêm về công ty DTNSolution, q trình thành lập và phát triển. Có thêm
các kỹ năng về việc sử dụng Skype trong công việc, 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 : 4 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.

Nguyễn Văn Minh


7

2.2.

Trong thời gian này, supervisor đã hướng dẫn thực tập sinh tìm hiểu về các cơng
cụ sẽ giúp ích cho trong công việc sau này. Một số phần mềm trong số đó như
GitLab, SourceTree - cung cấp kho lưu trữ mã nguồn Git cho các dự án phần mềm,
bổ sung những tính năng về social để các developer tương tác với nhau, là công cụ
giúp quản lý source code tổ chức theo dạng dữ liệu phân tán.
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ập trình sử dụng các cơng cụ miễn phí, giúp dễ dàng kết hợp các công cụ
với nhau, quản lý source code hiệu quả.
Tìm hiểu ngơn ngữ C# và các Design Pattern sử dụng trong Unity
Thời gian : 7 ngày (1 tuần)
Nội dung : Được training về các kỹ thuật C# nâng cao, những kiến thức quan trọng
cho việc tối ưu trên Unity Engine.
- Lập trình hướng đối tượng
Các kiến thức cơ bản về lập trình hướng đối tượng như khái niêm, các đặc tính
như tính kế thừa, tính đóng gói, tính ảo hóa, tính đa hình. Ngồi ra, người mới làm
việc còn được hướng dẫn về cách thiết kế lớp cho các đối tượng game.
- Observer Pattern

Trong Unity, Observer Pattern được sử dụng phổ biến nhất là Event, bằng cách sử
dụng các sự kiện diễn ra trên 1 GameObject, chúng ta sẽ tổ chức, phát triển code 1
cách dễ dàng hơn.
- StateMachine Pattern
Sử dụng trên 1 Object có nhiều hành vi phức tạp.. Pattern này là một mẫu thiết kế
phần mềm hành vi của Object khi trạng thái bên trong của nó thay đổi, để đóng
gói các hành vi khác nhau trên cùng 1 đối tượng.
Thực hiện :
- Tham gia đầy đủ các buổi training của công ty.
- Làm 1 vài Game nhỏ và được kiểm tra về kiến thức đã học.
Kết quả :
-

2.3.

Nâng cao kỹ năng lập trình với ngơn ngữ C#.
Có được những kiến thức quan trọng cho việc lập trình game mobile sau này.
Ngồi ra còn được biết thêm một số quy tắc trong việc viết code sao cho đúng
chuẩn, dễ đọc, dễ hiểu.

Lập trình Game 3D với Unity
Nội dung: Các kiến thức cần thiết về Unity để có thể làm ra một game Mobile.

Nguyễn Văn Minh


8

-


Universal Render Pipeline(URP):
Đây là một chế độ render khác với các hiệu ứng rất đặc sắc, chân thực và hình ảnh
tốt hơn so với bản thơng thường. Trong đó, có hỗ trợ Shader Graph Editor, tạo các
hiệu ứng đặc biệt cho các đối tượng trong game. Trong đồ án này, Shader Graph
được sử dụng để tạo một nền đồ họa thân thiện với các thiết bị Mobile.

- Post processing:
Mặc dù Post processing khá hao tốn tài nguyên của bộ xử lý trung tâm và bộ xử lý
đồ họa trên các thiết bị Mobile, nhưng nó là một phần rất quan trọng của chế độ
render Universal Render Pipeline. Nếu Game chạy trên các thiết bị Mobile hỗ trợ
tốt khả năng đồ họa thì Post processing nên được thêm vào để gia tăng sức mạnh
đồ họa của Game lên 1 cách đáng kể.
-

Unity Lighting:
Là một thuật ngữ được sử dụng để mô tả một loạt các kỹ thuật và mơ hình tốn
học nhằm mô phỏng hành vi phức tạp của ánh sáng khi nó phản xạ và tương tác

Nguyễn Văn Minh


9

với thế giới. Việc mơ phỏng độ chiếu sáng tồn cầu một cách chính xác là một
thách thức và có thể tốn kém về mặt tính tốn. Do đó, các trò chơi sử dụng một
loạt các phương pháp để xử lý các phép tính này trước, thay vì trong q trình
chơi.

-


Occlusion Culling:
Là một quá trình ngăn Unity thực hiện hiển thị tính tốn cho Game Objects hồn
tồn bị ẩn khỏi tầm nhìn (bị che khuất) bởi các GameObjects khác. Mọi khung
hình, Camera thực hiện các thao tác chọn lọc để kiểm tra các Renderer trong

Nguyễn Văn Minh


10

Scene và loại trừ (loại bỏ) những thứ không cần vẽ.

Thực hiện :
-

Tham gia đầy đủ các buổi trainning.
Tìm kiếm tài liệu trên mạng để tìm hiểu thêm.

Kết quả :
-

2.4.

Hiểu được những khái niệm trong lập trình Game Mobile, và các cách để tối ưu
hóa 1 sản phẩm để đưa lên thị trường.

Các Plugins tích hợp với Unity
Nội dung: Gồm các công nghệ của Google, được đưa vào trong Unity như các
Plugins để tạo ra nhiều chức năng cần thiết cho Game Mobile.
-


Push Notification sử dụng Firebase Cloud Messaging:
Firebase là một nền tảng do Google phát triển để tạo các ứng dụng web và di
động. Ban đầu nó là một công ty độc lập được thành lập vào năm 2011. Vào năm
2014, Google đã mua lại nền tảng này và hiện nó là sản phẩm hàng đầu của họ để
phát triển ứng dụng

Nguyễn Văn Minh


11

Trang chủ:

-

Google AdMob:
AdMob là một trong những nền tảng quảng cáo trên điện thoại di động lớn nhất
thế giới và tuyên bố sẽ phân phát hơn 40 tỷ quảng cáo văn bản và biểu ngữ trên
điện thoại di động mỗi tháng trên các trang web di động và các ứng dụng điện
thoại.
Trang chủ:

Nguyễn Văn Minh


12

Thực hiện: Tham gia các buổi thảo luận của Team về sử dụng các Plugins vào Game
Kết quả: Hiểu được cách sử dụng và fix bugs khi đưa các Plugins vào.


3. Thực hiện project
Sau gần 3 tháng được làm việc ở công ty, em đã nắm được những kiến thức cần thiết về
C# và Unity, vận dụng tốt các Pattern để thực hiện và hiểu rõ cách hoàn thành 1 tựa game
Mobile trên thị trường.
Chi tiết đồ án sẽ được nói ở phần sau.

4. Lịch làm việc

Tuần

Cơng việc
-

1
-

Tìm hiểu về công
ty, cách tổ chức của
công ty.
Làm quen với các

Mức
độ
Người hướng dẫn
hoàn
thành
Nguyễn Thị Thúy
100%


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

Nguyễn Văn Minh


13

2

3

4

Sau đó

cơng cụ làm việc
trong cơng ty.
- Học cách trao đổi,
làm việc qua Skype.
- Tham gia thực hiện
1 tựa Game Ball
2048 từ những bước
đầu tiên
- Sau khi có Game
Play cơ bản, thì
làm quen với
Gitlab và
SourceTree để lưu
trữ SourceCode

- Hồn chỉnh tựa
Game Ball 2048
- Đưa các Plugins để
chạy Quảng cáo vào
trong Game
- Tham gia hồn
thành các tựa Game
khác của cơng ty

Nguyễn Thanh
Đoan

100%

Nguyễn Thanh
Đoan

100%

Nguyễn Thanh
Đoan

100%

Nguyễn Thanh
Đoan

100%

Nguyễn Văn Minh



14

Chương 3: Chi tiết về project
1. Giới thiệu về game
Game lấy ý tưởng từ các hoạt động vui chơi thực tế.. Trò chơi chất các khay đựng Sữa
lên thành các chướng ngại vật và bắt người chơi phải vượt qua.

Nguyễn Văn Minh


15

1.1. Luật chơi chính của Mode Control
Mơ tả
Người chơi sử dụng kéo thả để khéo léo đưa bàn chân của Nhân vật, giúp Nhân
vật vượt qua các khay đựng Sữa được chồng chất lên nhau. Nên đưa chân Nhân
vật tiếp đất nhẹ nhàng để các khay đựng Sữa không bị đổ.

Ngồi ra cũng có các Shop mua đồ, để người chơi lựa chọn Skin và Crate ưa thích:

Nguyễn Văn Minh


16

1.2. Luật chơi chính của Mode TapTap
Mơ tả: Người chơi tập trung vào thanh di chuyển qua trái phải, tập trung ấn vào
vùng xanh, vàng, cam để tiến lên. Ấn vào vùng vàng và cam sẽ làm cho các vùng

an tồn bị giảm lại. Khi ấn sai nhiều lần thì sẽ thua cuộc.

Nguyễn Văn Minh


17

2. Thực hiện
2 thành viên:
-

Nguyễn Thanh Đoan
Nguyễn Văn Minh

3. Kế hoạch

Nguyễn Văn Minh


18

Giai đoạn A: Xây dựng Mode Control
-

Sử dụng các Asset có sẵn của Unity để xây ra các Map
Sử dụng Physics của Unity cho Nhân vật di chuyển
Tạo các Crate cản đường
Cho Nhân vật di chuyển, nếu Crate bị lệch thì thua cuộc
Thiết kế ra các Levels
Xây Shop Nhân vật và Shop Crate

Đưa các Plugins và chạy Quảng cáo trong Game

Kết quả :
-

Tất cả tính năng của Game Control đã được thực hiện
Sẵn sàng cho việc xây Mode tiếp theo.

Giai đoạn B: Xây dụng Mode TapTap
-

Sử dụng hàm Cosin và Slider Canvas để xây nên Thanh di chuyển trái phải
Sử dụng các Class có sẵn của Mode Control
Sử dụng Raycast để thực hiện việc dự đoán chướng ngại vật
Thực hiện Ấn để nhận Kết quả trả về từ Thanh di chuyển, Nhân vật vượt chướng
ngại
Đưa các Plugins vào Mode này

Kết quả : Hồn thành tích hợp chế độ Game mới vào Project.

Nguyễn Văn Minh


19

TÀI LIỆU THAM KHẢO

Unity: />Asset Store: />Cộng đồng Blender: />Cộng đồng Unity: />Fire base:
Google AdMob:
Hỏi đáp Unity:

/> /> />Brackey channel: />...và nhiều nguồn tham khảo khác

Nguyễn Văn Minh


20

TỔNG KẾT

Sau vài tháng gắn bó với cơng ty em đã học hỏi các kiến thức về công nghệ làm Game,
ta có thể thấy khả năng mở rộng và tính tương thích cao của Unity và các cơng nghệ của
Google. Đồng thời việc tạo ra game mobile với các công cụ này rất dễ dàng và chất lượng của
nó cũng rất tốt. Nếu vẫn đang băn khoăn về việc dùng gì để làm game mobile, nhất là game 3D
thì có thể tìm hiểu về các cơng cụ này. Sau cùng em đã sử dụng nó để hiện thực 1 tựa Game để
đưa lên thị trường Game Mobile.
Cảm ơn các anh chị ở công ty đã cho em cơ hội, giúp đỡ em để phát triển bản thân, để
gắn bó hơn với ngành Công nghiệp Game. Cảm ơn quý thầy/cô đã hướng dẫn hồn thành mơn
học Thực tập Doanh Nghiệp này.

Nguyễn Văn Minh



×