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

Báo cáo thực tập Công nghệ thông tin: Lập trình game trên 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 (2.57 MB, 27 trang )

Người phụ trách: Nguyễn Hoàng Hiển                  


LỜI NĨI ĐẦU
Có thể nói lập trình game là một cơng việc địi hỏi tính sáng tạo và sự đam mê to  
lớn. Cũng như lập trình các ứng dụng, lập trình game cũng địi hỏi các u cầu về quản  
lý dự án, các cơng đoạn phát triển cơ bản như thiết kế, vận hành, kiểm thử, bảo trì, …  
Tuy nhiên ở mỗi bước đều hỏi hỏi sự đam mê và nhiệt huyết nhất định. 
Là một sinh viên Cơng nghệ  phần mềm với sự  tị mị các cơng nghệ  làm game,  
cũng như  mong muốn sử  dụng các kiến thức của mơn học Nhập mơn phát triển game 
trong thực tế. Em đã tìm kiếm và được giới thiệu về nhiều cơng ty có khuynh hướng phát 
triển game, nhưng một trong số các cơng ty làm em  ấn tượng với các sản phẩm của họ 
đó là Cơng ty JPWorld thuộc Cơng ty TNHH Thương mại Dịch vụ Jazzy Paradise. 
Tuy thuộc một Cơng ty thiên về truyền thơng nhưng các sản phẩm và cơng nghệ ở 
JPWorld là các cơng nghệ  chun cho phát triển game, hồn tồn tách biệt với vấn đề 
marketing.

Người phụ trách: Nguyễn Hồng Hiển                  


LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn đến Jazzy Paradize nói chung và Trung tâm JPWorld nói 
riêng đã tạo điều kiện cho em có cơ hội được thực tập tại cơng ty.
Kỳ thực tập tuy ngắn, nhưng em đã được học rất nhiều thứ từ sự chỉ dẫn nhiệt tình 
của mọi người trong dự án. Em khơng chỉ học được các kỹ thuật, cơng nghệ, hồn thiện 
các kỹ năng cứng cũng như các kỹ năng cần có của một nhân viên cơng ty, cách giao tiếp, 
làm việc nhóm. Và lời cảm ơn đặc biệt dành cho anh Nguyễn Hồng Hiển, người đã 
trực tiếp training kiến thức chi tiết trong dự án. Với cảm giác bỡ ngỡ khi ần đầu tiếp xúc 
với các thư viện, các SDK phát triển game mới tuy nhiên em vẫn được anh hướng dẫn 
rất tận tình; cảm ơn chị Kacey Nguyễn và chị Dương Bảo Nhi, đã follow up cho em 
hàng tuần để lắng nghe những khúc mắc, khó khăn và giải quyết cho em trong việc hồn 


thành các hạng mục; cảm ơn team JPWorld đã tạo cho em một mơi trường, điều kiện làm 
việc hiệu quả.
 Cũng xin cảm ơn các giảng viên trong khoa Cơng nghệ phần mềm và Cố vấn học 
tập lớp KTPM2017 đã nhiệt tình hỗ trợ, tạo điều kiện để em và các bạn sinh viên khác có 
thể tham gia thực tập và hồn thành báo cáo.
Xin chân thành cảm ơn. 

Tp.HCM, ngày 12/1/2021
Nguyễn Văn Đơng

Người phụ trách: Nguyễn Hồng Hiển                  


NHẬN XÉT CỦA KHOA

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

Người phụ trách: Nguyễn Hoàng Hiển                  


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

Người phụ trách: Nguyễn Hoàng Hiển                  


MỤC LỤC

Người phụ trách: Nguyễn Hoàng Hiển                  


Chương 1: GIỚI THIỆU VỀ CƠNG TY THỰC TẬP

Hình 1.1. Logo Cơng ty JPWorld
1.  Giới thiệu về Cơng ty JPWorld: 
JP World – Trung tâm Giáo dục Giải trí Cơng nghệ tương tác, là trung tâm giáo dục ­ 
giải trí kết hợp cơng nghệ tương tác đầu tiên và duy nhất tại Việt Nam được phỏng theo 
các mơ hình tại Singapore, Nhật Bản. JPWorld là một dự án của cơng ty TNHH Thương 
mại Dịch vụ Jazzy Paradize. Với các cơng nghệ mới lạ, JPWorld được xuất hiện trên 
nhiều trang báo online như Tuổi trẻ, Báo mới, VNExpress, …
Cơng ty có trụ sở đặt tại Lầu 6, Trung tâm thương mại Gigamall, 240 – 242, Phạm 
Văn Đồng, Phường Hiệp Bình Chánh, Quận Thủ Đức, Thành phố Hồ Chí Minh.
Văn hố làm việc ở cơng ty khá thoải mái về mặt trang phục và thời gian, các team có 
thể linh hoạt thời gian nếu đảm bảo được tiến độ cơng việc được giao. Các cuộc họp 
giao ban được tiến hành vào mỗi 3 giờ chiều thứ 6 hàng tuần, ở đây, nhân viên sẽ tiến 
hành báo cáo tiến độ cơng việc cũng như nhận các đề xuất, cơng việc cho tuần tới.
2.  Sản phẩm của cơng ty: 

Các project của cơng ty được sản xuất phục vụ cho q trình hoạt động tại cơng ty 
JPWorld, chứ khơng được sử dụng để kinh doanh như các game trực tuyến, hay làm 
outsource. Sau khi hồn thành, sản phẩm sẽ được chuyển giao cho bộ phận Operation và 
Marketing để trình chiếu và phục vụ khách tham quan.
Cơng ty có khoảng hơn 10 project, mỗi project gồm từ 1 – 6 sản phẩm (mỗi sản phẩm 
là một game được lập trình bằng Unity). Một số project nổi bật của cơng ty như:
*Panorama: Là một project gồm 6 sản phẩm được hồn thành vào năm 2018 và bảo 
trì cho đến nay, trình chiếu các game Unity trên 4 bức tường và một mặt sàn, có thể 
tương tác được thơng qua việc sử dụng các LiDAR để nhận diện toạ độ vật cản và 
Unity để xử lý các sự kiện.
Người phụ trách: Nguyễn Hồng Hiển                  


Hình 1.2. Sản phẩm Panorama – Galaxy sau khi Build

Hình 1.3. Sản phẩm Panorama – Galaxy sau khi mapping và trình chiếu.
Hình 1.3. Sản phẩm Panorama – Jelly sau khi Build

Người phụ trách: Nguyễn Hồng Hiển                  


Hình 1.3. Sản phẩm Panorama – Jelly sau khi maping và trình chiếu.
*JPSafari: Là một project gồm 3 sản phẩm, được hồn thành vào năm 2018 và bảo trì 
cho đến nay, trình chiếu trên 1 bức tường lớn, có thể tương tác được thơng qua việc sử 
dụng các LiDAR, đồng thời trong game này sử dụng một thiết bị để Scan và xử lý các 
ảnh vẽ, sau đó trình chiếu lên màn hình.

Người phụ trách: Nguyễn Hồng Hiển                  



Hình 1.4. Sản phẩm Safari_2 sau khi mapping và trình chiếu.

Hình 1.5. Hình ảnh trên giấy của Safari_2 trước khi được xử lý.
*Dreamland: Gồm 3 sản phẩm, cũng được hồn thành vào năm 2018, với cơng nghệ 
tương tự như JPSafari.
*Climball: Là một project gồm 4 sản phẩm, mơ phỏng 1 quyển sách, sử dụng một 
thiết bị là Kinect và lập trình bằng Kinect SDK để tương tác.

Hình 1.6 Một sản phẩm của Project Climball sau khi build.
Người phụ trách: Nguyễn Hồng Hiển                  


Hình 1.8 Một sản phẩm của Project Climball sau khi được mapping và trình chiếu.
*WalkPath: Sử dụng một hệ thống gồm 13 Kinect, 13 NUC (CPU cỡ nhỏ), 13 máy 
chiếu và một CPU lớn để chạy một game Unity trình chiếu trên một đoạn đường dài hơn 
40 mét. Project này được mentor của em, anh Nguyễn Hồng Hiển phụ trách với 3 sản 
phẩm khác nhau.

Người phụ trách: Nguyễn Hồng Hiển                  


Hình 1.10 Một sản phẩm của project WalkPath
*XepHop: Sử dụng hệ thống 2 Kinect nhằm nhận diện hình dạng của các khối hộp 
sau đó phản hồi bằng cách thay đổi hình ảnh trình chiếu bằng hình ảnh các con vật khác 
nhau.

Người phụ trách: Nguyễn Hồng Hiển                  


Hình 1.11 Project XepHop sau khi trình chiếu

*BanDo: 

Hình 1.11 Project BanDo sau khi trình chiếu
*Ngồi ra, JPWorld cịn có nhiều project khác hiện đang được phát triển, vận 
hành và bảo trì.

Người phụ trách: Nguyễn Hồng Hiển                  


Hình 1.12 Một sản phẩm của Project MiddleWall

Người phụ trách: Nguyễn Hồng Hiển                  


Hình 1.13 Một sản phẩm của Project CauTuot
3.  Lich thực tập tại cơng ty: 
­ Thời gian thực tập: Từ ngày 8/5/2020 tới 4/11/2020. Lịch làm việc mỗi tuần gồm 
thứ 2, thứ 4 và Chủ nhật. Trong đó các ngày trong tuần làm từ 9h30 tới 18h, ngày cuối 
tuần từ 9h tới 18h, riêng thứ 2 làm việc từ 13h tới 18h.
­ Thời gian nghỉ trưa: khoảng 1 tiếng, nếu là thứ 2 thì khơng nghỉ trưa.
­ Sau mỗi tuần, chiều thứ 2 từ 14h – 16h sẽ tổ chức một buổi họp giao ban gồm tồn 
bộ các Team tham gia, nhằm giải quyết các thắc mắc, tồn đọng, phổ biến các cơng việc 
trong tuần tiếp theo.
Người phụ trách: Nguyễn Hồng Hiển                  


Chương 2: NỘI DUNG THỰC TẬ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: 3 ngày (1 tuần).
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, phổ biến lịch làm việc, quy 
Người phụ trách: Nguyễn Hồng Hiển                  


trình làm việc từ cao xuống thấp, cách thức tổ chức của cơng ty, giới thiệu các team 
Operation, IT, Marketing, văn hố làm việc tại cơng ty, thời gian làm việc, quy tắc ứng 
xử.
+ Giới thiệu về cơng việc: Tìm hiểu về các cơng việc của nhân viên IT, tìm 
hiểu danh sách thiết bị, vị trí, cách sử dụng, cách cài đặt, sửa chữa các phần mềm đang 
dùng, các cơng cụ, phần mềm hỗ trợ, các framework riêng của cơng ty.
  Kết quả: Sau thời gian tìm hiểu em đã hiểu hơn về JPWorld, các cơng cụ, thiết bị, 
cần thiết, đồng thời cảm thấy bản thân đã nhiệt tình hơn với cơng việc của cơng ty và 
hồ hợp hơn với các anh chị trong team IT và các team khác.
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 (1 tuần).
Nội dung: Cài đặt những cơng cụ và mơi trường làm việc trên máy tính.
Người phụ  trách hướng dẫn thực tập sinh cài đặt các cơng cụ  lập trình như: 
Visual  Studio,   Unity,   GitLab,   …   các   phần   mềm   máy  tính   hỗ   trợ   như:   Resolume, 
AnyDesk, AutoIT , IVMS­Client, …, các app như  MiHome, HiKConnect, Yoosee … 
và trao đổi các thơng tin cơng việc qua Telegram, các phần mềm chun dụng được 
thiết kế với cơng ty.
Thực hiện: Cài đặt và sử dụng các cơng cụ nêu trên.
Kết quả:  Cài đặt thành cơng các IDE, sử  dụng cơ  bản đươc các cơng cụ, thực  
hành chỉnh sửa một số vị trí trình chiếu bị lỗi.
2.2 Tìm hiểu ngơn ngữ C#:
Thời gian: 3 ngày (1 tuần).

Nội dung: Được training về những kiến thức cơ bản của C# và lập trình Hướng 

đối tượng:
­ C# cơ bản: Được người phụ trách hướng dẫn các kiến thức cơ bản về C# 
như cú pháp của  biểu thức và các câu lệnh điều kiện như if ­ else, switch case, các câu 
lệnh lặp như for, while,... Các kiểu dữ liệu thuộc tham trị và tham chiếu.
Người phụ trách: Nguyễn Hồng Hiển                  


­ Lập trình hướng đối tượng: Sử dụng class, abstract class, interface, hướng 
dẫn cơ bản về kế thừa, đa hình,...
Thực hiện:
­ Tham gia các buổi training của cơng ty và làm theo hướng dẫn của người 
phụ trách.
­ Làm các bài tập thực hành được giao bởi người phụ trách để hiểu rõ hơn 
về kiến thức được giảng.
Kết quả: Hiểu được các cú pháp cơ bản của C#.
2.3 Thực hành trình chiếu với Resolume:
Thời gian: 3 ngày (1 tuần).
Nội dung: Được Training các kiến thức về  Resolume 6 Arena và trình chỉnh sửa 
video After Effect.
­ Người phụ trách hướng dẫn làm quen và sử dụng Resolume:
 + Chỉnh sửa các kích thước, ghép các hỉnh  ảnh trình chiếu bởi máy  
chiếu, sử  dụng màn hình Advanced Output để  chỉnh sửa, thay đổi nội dung trình  
chiếu trên các máy chiếu. Ngồi ra anh cịn giời thiệu các khai niệm như  Layer,  
Collumn trong Resolume.
+ Hướng dẫn sử  dụng tab Source để  trình chiếu game Unity (các 
game này phải có thểm phần code của plugin Spout).
­ Hướng dẫn sử dụng After Effect CC 2018:
+ Giới thiệu các khái niệm Composition, Mask, Frame, Effect, các  
kênh màu, các loại Codec, các khải niệm độ phân giải, frame rate, …
+   Thực   hành   sử   dụng   các   Plugin,   export   video   thành   cách   Sprite  

(Sequence PNG) và sang định dạng mov.

Người phụ trách: Nguyễn Hoàng Hiển                  


Hình 2. Màn hình giao diện của Resolume
2.4 Thực hành lập trình Game với Unity:
Thời gian: 3 ngày (1 tuần).
Nội dung: giới thiệu cách sử dụng Unity Hub và Unity Editor, áp dụng các kiến 
thức C# vào Unity3D, các khái niệm cơ bản trong Unity các kiến thức cần có để hồn 
thiện Project.
­ Giới thiệu Unity (1 ngày): 
+ Trong cơng ty có khá nhiều project khác nhau với các phiên bản Unity 
Editor khác nhau, tuy nhiên với cơng việc cập nhật nội dung Panorama, anh Hiển đã 
hướng dẫn em cài Unity Editor 2018.2.20f1.
+ Giới thiệu về GameObject trên màn hình Scene, làm một số animation trên 
tab Animation, quan hệ child­parent trong của các gameObjects trong và tab Hierachy, 
training về một số components cơ bản để di chuyển như Transform, vật lý: 
Rigidbody(2D), Collider – BoxCollider(2D),…các components để vẽ vật thể: 
SpriteRenderer, MeshRenderer, 
­ Tạo Project và thực hành các kiến thức đã học (3 ngày – 1 tuần):
Người phụ trách: Nguyễn Hồng Hiển                  


+ Dựng các GameObject, tạo component bằng Script MonoBehaviour, học 
cách sử dụng các hàm đặc biệt: Awake, Start, OnEnable, Update, … 
+ Tự tạo ra một số loại chuyển động: elipse, chuyển động của lá rơi, …
+ Xố các vật thể bằng hàm Destroy.
+ Học về cách sử dụng Prefab, thay đổi prefab. Tạo các vật thể trong game 
bằng cách tạo nhiều phiên bản clone của Prefab thơng qua hàm Instantiate.

+ Tìm hiểu plugin Spout của Unity để xuất được game Unity ra phần mềm  
Resolume.
4.  Thực hiện Task chỉnh sửa sản phẩm Panorama – Galaxy: 
Thời gian: 30 ngày (1 tháng) – từ 17/7/2020 đến ngày 16/8/2020, được triển khai 
trong buổi họp giao ban tuần 17/7/2020.
Người thực hiện: Em với sự hỗ trợ từ anh Nguyễn Hồng Hiển.
Nội dung: Chỉnh sửa nội dung Panorama – Galaxy cho phù hợp:
­ Về sản phẩm Panorama – Galaxy: Đây là một sản phẩm đã được hồn 
thành từ năm 2018, tuy nhiên hiện tại cần được chuyển sang 1 khu vực mới, vì vậy cần 
phải có các thay đổi cần thiết trên Unity, Resolume cho phù hợp, đồng thời cũng cần 
thêm vào sản phẩm một số nội dung mới hơn. 
­ Cơng việc được chia làm 2 giai đoạn nhỏ hơn:
+ Chỉnh sửa sản phẩm để phù hợp với trình chiếu: 
­ Thời gian: 3 tuần:
­ Nội dung: Map lại các LiDAR bằng các Object 
LidarManager, nghiên cứu sử dụng plugin Spout, thay đổi kích thước cửa sổ các sản 
phẩm Build, thay đổi các thơng tin trình chiếu trên Resolume. Tìm hiểu và viết Script 
AutoIT để tiến hành chạy sản phẩm.
­ Kết quả: Hồn thành đúng tiến độ.
+ Chỉnh sửa nội dung sản phẩm để tận dụng các khơng gian trống 
trong phịng chiếu:
­ Thời gian: 10 ngày.

Người phụ trách: Nguyễn Hồng Hiển                  


­ Nội dung: Thay đổi background, thay đổi độ nghiêng và tốc 
độ của các hành tinh, thêm animation các hiệu ứng Flare, thêm các hình ảnh xung quanh 
mặt trời (thiên hà, tinh vân, …).
­ Kết quả: Hồn thành đúng tiến độ.


Hình 3.1 Sản phầm Panorama – Galaxy sau khi build

Hình 3.2 Hình ảnh Panorama – Galaxy (trước chỉnh sửa) sau khi mapping và trình  
chiếu.
Người phụ trách: Nguyễn Hồng Hiển                  


Hình 3.2 Hình ảnh Panorama – Galaxy (sau chỉnh sửa) sau khi mapping và trình  
chiếu.
5.  Thực hiện Task Refactor sản phẩm TG_NewYearWall: 
Thời gian: 4 tháng – từ 1/10/2020 đến ngày 30/1/2021, được triển khai trong buổi họp 
giao ban tuần 28/9/2020.
Người thực hiện: Em với sự hỗ trợ từ anh Nguyễn Hồng Hiển.
Nội dung: Thay đổi nội dung TG_NewYearWall:
­ Về sản phẩm TG_NewYearWall: Thực hiện để thay đổi nội dung cho một 
khu vực ở JPWorld, gồm 4 Scene trình chiếu các mùa khác nhau, với thời gian được giao 
ước tính thời gian hồn thành cho mỗi mùa là 1 tháng. Mỗi mùa gồm nhiều 
SpriteRenderer và Animation khác nhau, là kết quả cho mỗi q trình tương tác.
­ Cơng việc cụ thể:
+ Cài đặt Unity Editor 2019.3.0f3.
+ Sưu tầm các Resource theo phong cách Watercolor theo các mùa, 
sau đó chỉnh sửa, vẽ thêm các chi tiết để tạo thành các bức tranh đầu cuối.
+ Thiết kế thêm các icon để tương tác.
Người phụ trách: Nguyễn Hồng Hiển                  


+ Tiến hành code trên Unity Editor.
+ Tiến hành mapping và trình chiếu trên khu vực chỉ định.
Kết quả: Hiện tại (ngày 12/1/2021) đã hồn thiện được 3 mùa gồm xn, thu, và 

đơng.

Người phụ trách: Nguyễn Hồng Hiển                  


Hình 4.1 Một số hình ảnh TG_WallNewYear sau khi build.
6.  Vận hành, bảo trì, cập nhật các phần mềm, thiết bị: 
Thời gian: Tồn bộ thời gian làm việc tại JPWorld, thực tế đây là một cơng viêc 
song song với các task kể trên.
Nội dung: 
+ Mapping lại các vị trí máy chiếu bị lệch hay các máy chiếu mới thay.
+ Kiểm tra, chỉnh sửa các game vận hành bị lỗi trình chiếu hoặc lỗi phần 
cứng.
+ Thay đổi nội dung các khu vực cần thiết khi có u cầu.
+ Xem xét các bug xảy ra trong q trình vận hành các game, nếu có thể thì 
chỉnh sửa hoặc báo với người phụ trách.
+ Remote, quản lý các máy tính, NUC từ xa để đảm bảo các ứng dụng 
được chạy trên các máy tính đó đảm bảo hoạt động tốt.
+ Hỗ trợ lắp đặt và chỉnh sửa các Camera, thực hiện vận hành hệ thống 
Camera qua các cơng cụ như Yoosee, IVMS­Client, HiKVision, …
+ Cập nhật thời gian sử dụng của đèn máy chiếu theo định kỳ.
Người phụ trách: Nguyễn Hồng Hiển                  


Hình 5.1 Hình ảnh một số cơng cụ được sử dụng trong q trình vận hành game.

Người phụ trách: Nguyễn Hồng Hiển                  



×