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

Báo cáo thực tập unity developer

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 (2.3 MB, 41 trang )

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
Unity developer

Công ty thực tập:
Người phụ trách:
Thực tập sinh:

Puzzle Studio
Nguyễn Vũ Trường
Giang
Đỗ Đức Tâm

TP. Hồ Chí Minh, ngày 28 tháng 05 năm 2023


LỜI MỞ ĐẦU

Trong cuộc cách mạng công nghiệp 4.0, công nghệ thơng tin nói chung và ngành Cơng nghệ phần
mềm nói riêng ln là nhân tố đóng vai trị quan trọng trong q trình phát triển của xã hội.
Trị chơi điện tử, cụ thể hơn là các trò chơi trên thiết bị động được quan tâm khá nhiều, bởi hiện
nay gần như ai cũng có điện thoại di động. Nhu cầu giải trí nhanh của mọi người cũng được đề cao
lên.
Do đó, một trị chơi muốn được nhiều người sử dụng phải đáp ứng được yếu tố giải trí cả về hình
ảnh và rèn luyện trí óc. Làm thế nào để sản phẩm tạo ra đạt chất lượng cao ở hai yếu tố trên ln
làm bất kì một đội ngũ phát triển trò chơi nào cũng cần phải suy nghĩ đau đầu. Để thử thách bản
thân trong ngành công nghiệp game, em đã lựa chọn unity developer là định hướng cho việc học
cũng như nghề nghiệp trong tương lai.
Sau những năm tháng trong môi trường đại học, với mong muốn áp dụng những kiến thức đã học


và có được trải nghiệm trong môi trường thực tế, em đã quyết định tham gia vào Puzzle Studio
một môi trường lý tưởng và chuyên nghiệp để thực hiện dự định.


LỜI CẢM ƠN

[Tham khảo]
Em xin trân trọng gửi lời cảm ơn Puzzle Studio đã tạo điều kiện cho em cơ hội được thự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 anh Nhựt 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 Giang và các anh chị trong team đã 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 khi là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ăng lậ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 23 tháng 05 năm 2023

[Đỗ Đức Tâm]


NHẬN XÉT CỦA KHOA

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

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

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


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.

TỔNG QUAN VỀ CÔNG TY TNHH PUZZLE STUDIO .............7

1.1.

Lịch sử hình thành và phát triển ........................................................................7

1.2.

Cơ cấu tổ chức và quản lý ................................................................................10

1.3.

Lịch trình thực tập ............................................................................................ 11

CHƯƠNG 2.

NỘI DUNG THỰC TẬP ..................................................................14

2.1.


Tổng quan về Các sản phẩm liên quan tới công ty ..........................................14

2.2.

Tổng quan về C Sharp( C#) và Unity .............................................................. 17

2.2.1.

Tổng quan về C Sharp( C#) ......................................................................17

2.2.2.

Tổng quan về Unity ...................................................................................20

2.3.
tập

Tổng quan về các sản phẩm và chức năng đã thực hiện trong quá trình thực
26

2.3.1.

PROJECT OJT .......................................................................................... 26

2.3.2.

WHERE IS MY FOOD (Demo Project) ...................................................27

2.3.2.1.


Tổng quan về dự án ............................................................................27

2.3.2.2.

Các công nghệ được sử dụng trong dự án ..........................................27

2.3.2.3.

Những điều rút ra từ dự án .................................................................28

2.3.3. BÀI TỐN XỬ LÍ VẤN ĐỀ ZOOM IN ZOOM OUT 2 HÌNH ẢNH
TRONG UNITY UI. ............................................................................................... 28
2.3.3.1.

Tổng quan về dự án ............................................................................28

2.3.3.2.

Các công nghệ được sử dụng trong dự án ..........................................28

2.3.3.3.

Sơ đồ các file code trong dự án .......................................................... 29

2.3.3.4.

Những điều rút ra từ dự án .................................................................32

2.3.4.


DIAMON TREASURE PUZZLE ............................................................. 32

2.3.4.1.

Tổng quan về dự án ............................................................................32

2.3.4.2.

Các công nghệ được sử dụng trong dự án ..........................................33

2.3.4.3.

Những điều rút ra từ dự án .................................................................33

2.3.5.

TANGRAM BLOCK PUZZLE ................................................................ 34

2.3.5.1.

Tổng quan về dự án ............................................................................34


2.3.5.2.

Các công nghệ được sử dụng trong dự án ..........................................34

2.3.5.3.


Những điều rút ra từ dự án .................................................................35

2.3.6.

DIVE DEEPER .........................................................................................35

2.3.6.1.

Tổng quan về dự án ............................................................................35

2.3.6.2.

Các công nghệ được sử dụng trong dự án ..........................................35

2.3.6.3.

Những điều rút ra từ dự án .................................................................37

2.3.7.

WHERE IS MY FOOD .............................................................................37

2.3.7.1.

Tổng quan về dự án ............................................................................37

2.3.7.2.

Các công nghệ được sử dụng trong dự án ..........................................37


2.3.7.3.

Những điều rút ra từ dự án .................................................................38

CHƯƠNG 3.

KẾT LUẬN .......................................................................................40

3.1.

Điểm mạnh .......................................................................................................40

3.1.1.

Nền tảng tốt ............................................................................................... 40

3.1.2.

Môi trường tốt ........................................................................................... 40

3.2.

Điểm yếu ..........................................................................................................40

3.2.1.
3.3.

Hạn chế về giao tiếp ..................................................................................40

Điểm đạt được ..................................................................................................40


3.3.1.

Cách làm việc nhóm rất quan trọng .......................................................... 40

3.3.2.

Kiến thức được bổ xung và cải thiện khá nhiều ........................................40


CHƯƠNG 1.

TỔNG QUAN VỀ CÔNG TY TNHH PUZZLE STUDIO

1.1. LỊCH SỬ HÌNH THÀNH VÀ PHÁT TRIỂN

Hình 1.1. Logo Cơng ty TNHH Puzzle Studio
-

Tên công ty: Công ty TNHH Puzzle Studio

-

Năm thành lập: 2018

-

Văn phòng đại diện: Republic Plaza Building, Số 18E Cơng Hịa, Phường 4,
Quận Tân Bình, TP. Hồ Chí Minh


Công ty TNHH Công ty TNHH Puzzle Studio là một cơng ty được thành lập vào năm
2018 có trụ sở chính tại Singapore, chun lập trình phần mềm bằng ngơn ngữ lập trình
C# với Engine Unity 3D và các mảng khác có liên quan đến thiết kế phần mềm. Cơng
ty có thể sản xuất và phát hành các sản phẩm cho riêng mình dựa trên thị hiếu của thị
trường hoặc cung cấp các giải pháp lập trình cho các đối tác bên thứ ba.


Hình 1.1.2. Sứ mệnh và tầm nhìn của cơng ty


Hình 1.1.3. Giá trị cốt lõi của cơng ty


Hình 1.1.4. Lộ trình phát triển nhân sự tại cơng ty

1.2. CƠ CẤU TỔ CHỨC VÀ QUẢN LÝ


Hình 1.2. Sơ đồ cấu trúc tổ chức và quản lý của cơng ty

1.3. LỊCH TRÌNH THỰC TẬP
Thời gian làm việc bình thường đối với nhân sự trong Cơng ty là 7.5 giờ/ngày, từ thứ
hai đến sáng thứ sáu hàng tuần.
-

Sáng: 09 giờ 00 đến 12 giờ 30.

-

Nghỉ trưa: từ 12 giờ 30 đến 13 giờ 30.


-

Chiều: 13 giờ 30 đến 17 giờ 30.

Ngoài ra, vào thứ 6 hàng tuần công ty thường tổ chức các buổi seminar để trao đổi về
kiến thức, trau dồi thêm kĩ năng trong công việc.

Hình 1.4. Một buổi seminar được tổ chức cuối tuần ở công ty


Thời gian

Nội dung thực tập

Tuần 1
(13/03/202317/03/2023)

1. Lên công ty gặp anh Nhựt để nhận đề tài OJT ôn lại các kiến
thức về Unity 3D.
2. Cài đặt môi trường cần thiết cho việc lập trình.
3. Hồn thành đề tài OJT trong 3 ngày và áp dụng các kiến thức
đó để làm một dự án demo.

Tuần 2
(20/03/202324/03/2023)

1. Hoàn thành các chức năng cơ bản trong dự án demo.
2. Tìm hiểu về các kiến thức khác hỗ trợ trong quá trình thực
hiện.

3. Tham gia buổi Seminar được công ty tổ chức vào thứ 6 để học
thêm các kiến thức mới.

Tuần 3
(27/03/202331/03/2023)

1. Thực hiện test, build và fix các lỗi trong ứng dụng demo
2. Nhận một dự án từ Mentor, đọc và hiểu dự án để có thể cập
nhật tính năng trong tương lai.
3. Thực hiện chức năng được giao để trình bày trong buổi
Seminar cuối tuần tại công ty.

Tuần 4
(03/04/202307/04/2023)

1. Thực hiện dự án ứng dụng “ Diamon Treasure Puzzle”.
2. Thêm các chức năng được giao cho và fix các lỗi hiện hữu
trong ứng dụng.
3. Build và test ứng dụng để bên publisher của công ty phát
hành.

Tuần 5
(10/04/202314/04/2023)

1. Thực hiện dự án ứng dụng “Tangram Block Puzzle”.
2. Thay đổi giao diện của ứng dụng.
3. Build và test ứng dụng để bên publisher của cơng ty phát
hành.

Tuần 6

(17/04/202321/04/2023)

1.
2.
3.
4.

Nhận một dự án hồn tồn mới “Dive Deeper”.
Chốt timeline hoàn thành dự án.
Làm quen với việc làm việc nhóm.
Làm quen với workflow chun nghiệp của cơng ty.


Tuần 7
(24/04/202328/04/2023)

1. Tiếp tục thực hiện dự án “Dive Deeper”.
2. Hoàn thành dự án, build và test ứng dụng để bên publisher của
công ty phát hành.

Tuần 8
(04/05/202305/05/2023)

1. Nhận dự án mới “ Where Is My Food”.
2. Check source của dự án để có thể thêm chức năng mới vào
ứng dụng.
3. Chốt timeline hoàn thành dự án.

Tuần 9
(08/05/202312/05/2023)


1. Thực hiện cập nhật các tính năng cho dự án “ Where Is My
Food”.
2. Build và gửi cho team tester để test các chức năng được thêm
vào ứng dụng.
3. Thực hiện fix các lỗi được tìm ra.
4. Gửi cho publisher của cơng ty để phát hành.

Tuần 10
(15/05/202319/05/2023)

1. Nhận một dự án hoàn toàn mới, vì chưa được hồn thành cũng
như phát hành nên em xin được giấu tên.
2. Chốt timeline và nhận các chức năng để thực hiện trong ứng
dụng.
3. Vẽ UML và cấu trúc code trước cho chức năng được nhận

Tuần 11
(22/05/202326/05/2023)

1. Thực hiện các chức năng đã được nhận dựa trên sơ đồ UML
đã được thiết kế trước
2. Trao đổi với team art về các assets sẽ được thêm vào và thực
hiện gắn vào dự án.
3. Fix các lỗi của chức năng đang làm.
Bảng 1. Lịch trình thực tập


CHƯƠNG 2. NỘI DUNG THỰC TẬP
2.1. TỔNG QUAN VỀ CÁC SẢN PHẨM LIÊN QUAN TỚI CƠNG TY

-

-

Cơng ty đã có khá nhiều sản phẩm và có đối tác phát hành các sản phẩm của
mình như Google Play Store, Apple Store,… Nhưng ở đây em xin được chia
sẻ liên kết đến danh sách các ứng dụng được phát hành bởi công ty một cách
khá đầy đủ, đó là:
/>Một số hình ảnh về các sản phẩm của cơng ty:

Hình 2.1.1. Các dự án đã phát hành của công ty (1)


Hình 2.1.2. Các dự án đã phát hành của cơng ty (2)


Hình 2.1.3. Các dự án đã phát hành của cơng ty (3)


Hình 2.1.4. Các dự án đã phát hành của cơng ty (4)
-

Cơng ty vẫn cịn 1 số sản phẩm khác được phát hành ở các kênh của đối tác
khác. Ngoài ra công ty cũng đã thực hiện nhiều các dự án cho các bên thứ ba.
Trong đó có nhiều sản phẩm có trên 100K người dùng trên tồn thế giới, thậm
chí là 4M người. Đó là những thành cơng mà công ty đã phải dành nhiều thời
gian và công sức để đạt được.

2.2. TỔNG QUAN VỀ C SHARP( C#) VÀ UNITY
2.2.1. Tổng quan về C Sharp( C#)

-

C sharp (được viết tắt C#): Là một ngơn ngữ lập trình hướng đối tượng đa năng,
mạnh mẽ được phát triển bởi Microsoft, C# là phần khởi đầu cho kế hoạch
.NET của họ. Tên của ngôn ngữ bao gồm ký tự thăng theo Microsoft nhưng


theo ECMA là C#, chỉ bao gồm dấu số thường. Microsoft phát triển C# dựa
trên C++ và Java. C# được miêu tả là ngơn ngữ có được sự cân bằng giữa C++,
Visual Basic, Delphi và Java. C# được thiết kế chủ yếu bởi Anders Hejlsberg
kiến trúc sư phần mềm nổi tiếng với các sản phẩm Turbo Pascal, Delphi, J++,
WFC. Nhờ sự kết hợp chặt chẽ cùng với .NET Framework C# có thể hỗ trợ cho
việc tạo ra các ứng dụng trở nên nhanh chóng và dễ dàng hơn.

Hình 3.2.1. Logo thường thấy của C#
-

Một số đặc tính cơ bản của C#:

o Tính đơn giản: C# là một trong những loại ngôn ngữ được xây dựng dựa trên
nền tảng của C++ và Java. Nhờ vậy, mà chúng hầu như đều có cấu trúc chương
trình khá giống nhau. Mặc dù #C là ngơn ngữ “sinh sau đẻ muộn” nhưng nhờ
có nhiều cải tiến mới nên rất phù hợp với mọi đối tượng lập trình viên. Một số
cải tiến của nó đó chính là cấu trúc được rút gọn sao cho dễ nhớ và đơn giản
hơn


o Là một ngôn ngữ bậc cao, C# rất dễ dàng để sử dụng và có tính hiện đại rất
cao.
o Là một ngơn ngữ lập trình hướng đối tượng ( OOP), C# có đầy đủ các đặc tính

của loại ngơn ngữ này như: trừu tượng, đa hình, kế thừa và đóng gói.
-

Ưu điềm của C#:

o Quy mơ của chương trình: C# thường được sử dụng để viết trên các hệ thống
vi điều khiển có kích cỡ 8bit. Ngồi ra, nó còn được sử dụng trong các hệ thống
trên 64bit hoặc hệ thống siêu máy tính.
o C# là ngơn ngữ có hiệu suất cao, có có thể chạy mượt trên mọi hệ thống giới
hạn về dung lượng. Bởi vì ngay từ những ngày đầu thì #C đã được thiết kế cho
mục đích thay thế cho ASM trong những hệ thống có bộ nhớ hạn chế.
o C# có khả năng thực hiện các thuật toán giúp hỗ trợ rất nhiều kiểu dữ liệu khác
nhau cũng như việc chuyển đổi sẽ trở nên dễ dàng hơn. Ngơn ngữ lập trình #C
cịn có khả năng cung cấp thư viện chuẩn với hàm có chức năng và cơng cụ
tốn học.
o C# là ngơn ngữ sở hữu cú pháp rất sát với những suy nghĩ logic, nhờ vậy mà
việc viết code sẽ được đơn giản hóa và nhanh chóng hơn.
o C# là loại ngơn ngữ lập trình rất an tồn và nó khơng cho phép việc chuyển đổi
kiểu dữ liệu để có thể giảm tránh được những vấn đề sai lệch xảy ra.
-

Để bắt đầu công việc lập trình C# ta cần phải tải về những IDE chuyên dụng
mà thường thấy như: Visual Studio, Rider, Visual Studio Code với một vài
extension thiết lập để có thể lập trình C#,… Ta có thể dễ dàng tải các IDE trên
bằng cách tìm kiếm tên của IDE mong muốn, download nó từ trang chủ và cài
đặt. (Rider là một phần mềm trả phí) . Ở đây cơ sở thực tập của em đang sử
dụng IDE là Visual Studio nên em xin được nói sơ qua về ứng dụng này.

o Visual Studio là một IDE chuyên dụng cho việc lập trình nhất là với những
người theo hướng C# hay là VB+. Được phát triển bới Microsoft, Visual Studio

có mặt trên đa nền tảng, hỗ trợ hầu hết các tác vụ mà một IDE hiện đại có thể
làm như:
▪ Hỗ trợ việc code đa ngôn ngữ
▪ Hỗ trở các bộ công cụ quản lí phiên bản


▪ Có các cơng cụ hỗ trợ việc lập trình dễ dàng hơn
▪ Ngồi ra Visual Studio cịn có kho tiện ích mở rộng rất phong
phú hỗ trợ hầu hết mọi nhu cầu của người dùng

Hình 3.2.2. Giao diện cơ bản của IDE Visual Studio
2.2.2. Tổng quan về Unity
-

-

Unity là một “cross- platform engine” tạm hiểu là công cụ phát triển các ứng
dụng đa nền tảng được phát triển bởi Unity Technologies. Engine đang là bộ
công cụ engine phổ biến nhất và được sử dụng rộng rãi để phát trển các ứng
dụng trên PC, consoles, thiết bị di động và cả trên trên websites.

Hình 3.2.3. Logo của Unity 2021 tới nay
Unity hỗ trợ đầy đủ các tính năng mà một engine hiện đại phải có, giúp người
dùng dễ dàng trong việc phát triển các ứng dụng đa nền tảng như hỗ trợ build


-

-


ứng dụng đa nền tảng, hỗ trợ shader, hỗ trợ viết code đơn giản hơn nhờ các
chức năng được viết trước bởi các kĩ sư Unity,…
Để bắt đầu việc lập trình với engine Unity, trước tiên ta phải tải Unity Hub
một cách hồn tồn miễn phí với người dùng cá nhân bằng đường dẫn sau
đây: .
Unity Hub là ứng dụng dùng để quản lí các dự án được có thể sử dụng được
trên Unity Editor. Ta có thể tạo một dự án mới, mở một dự án có sẵn, tải và
quản lí các phiên bản Unity Editor khác nhau, học Unity,…

Hình 3.2.4. Giao diện cơ bản của Unity Hub
- Để tạo một dự án mới trên Unity Hub ta có thể thực hiện các bước sau:
o Nhấn nút New Project ở góc phải phía trên màn hình( nút đỏ ở hình bên
dưới).


Hình 3.2.5. Tạo một dự án mới trong Unity Hub (1)
o

Nhập tên dự án, vị trí lưu dự án, chọn các mẫu có sẵn của Unity với các
cơng nghệ khác nhau sau đó nhấn nút Create Project.

Hình 3.2.6. Tạo một dự án mới trong Unity Hub (2)
o Unity sẽ tự tạo một dự án mới và mở nó trong Unity Editor, ta sẽ hoàn toàn làm
việc với dự án trong ứng dụng Unity Editor này.


o
o
o
o


Hình 3.2.7. Giao diện cơ bản của Unity Editor
Sau một khoảng thời gian tìm hiểu và nghiên cứu về Unity thì em đã có cơ
hội được lập trình các ứng dụng điều khiển bằng phần mềm Unity như:
Lập trình ứng dụng điều khiển hệ thống phân loại và đếm sản phẩm lập trình
bằng Arduino trong mơn “ Kĩ thuật đo” ở năm 2.
Lập tình ứng dụng điều khiển robot 4 dof trong môn “ Robot công nghiệp” ở
năm 3.
Một phần mềm mơ phỏng Robot 5 dof.
Lập trình hệ thống điều khiển SCADA cho 3 nền tảng mobile, web, desktop
cho hệ thống theo dõi, giám sát độ rung của động cơ 3 pha trong môn “
SCADA nâng cao” ở năm 4.


Hình 3.2.8. Giao diện của ứng dụng điều khiển robot 4 dof với 3 chế độ


Hình 3.2.9. Giao diện của ứng dụng mơ phỏng robot 5 dof bằng Unity


×