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à đ
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÁO CÁO THỰC TẬP LẬP TRÌNH GAME TRÊN UNITY
Người phụ trách: Nguyễn Hoàn Hiển
Công ty thực tập: JPWorld
Thực tập sinh: Nguyễn Văn Đông
Trang 2LỜ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 yê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ệ chuyên cho phát triển game, hoàn toàn tách biệt với
vấn đề marketing
Trang 3Báo cáo thực tập doanh nghiệp Sinh viên: Nguyễn Văn Đông
3
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ệ, hoà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 Hoà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 hoà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à hoà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
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
Báo cáo thực tập doanh nghiệp Sinh viên: Nguyễn Văn Đông
5
MỤC LỤC
LỜI NÓI ĐẦU 2
LỜI CẢM ƠN 3
NHẬN XÉT CỦA KHOA 4
Chương 1: GIỚI THIỆU VỀ CÔNG TY THỰC TẬP 6
1 Giới thiệu về Công ty JPWorld: 6
2 Sản phẩm của công ty: 6
3 Lich thực tập tại công ty: 14
Chương 2: NỘI DUNG THỰC TẬP 15
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty: 15
2 Nghiên cứu kỹ thuật: 15
Tài liệu tham khảo 24
Trang 6Chươ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 hoá 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 quá 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 hoà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 hoà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
Trang 7Báo cáo thực tập doanh nghiệp Sinh viên: Nguyễn Văn Đông
7
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
Trang 8Hì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 hoà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
Hình 1.4 Sản phẩm Safari_2 sau khi mapping và trình chiếu.
Trang 9Báo cáo thực tập doanh nghiệp Sinh viên: Nguyễn Văn Đông
9
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 hoà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.
Trang 10Hì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 Hoàng Hiển phụ trách
với 3 sản phẩm khác nhau
Trang 11Báo cáo thực tập doanh nghiệp Sinh viên: Nguyễn Văn Đông
11
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
Trang 12Hình 1.11 Project XepHop sau khi trình chiếu
*BanDo:
Hình 1.11 Project BanDo sau khi trình chiếu
*Ngoà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ì.
Trang 13Báo cáo thực tập doanh nghiệp Sinh viên: Nguyễn Văn Đông
13 Hình 1.12 Một sản phẩm của Project MiddleWall
Trang 14Hì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
toà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
Trang 15Báo cáo thực tập doanh nghiệp Sinh viên: Nguyễn Văn Đông
15
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, quá trình thành lập và phát triển, phổ biến lịch làm việc,
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, giới thiệu các
team Operation, IT, Marketing, văn hoá 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à hoà 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 chuyên 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
Trang 16Nộ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
- 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,
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ởimá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 Ngoà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ácgame 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
Trang 17Báo cáo thực tập doanh nghiệp Sinh viên: Nguyễn Văn Đông
17
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ó để
hoà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 UnityEditor 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ố animationtrê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,
Trang 184 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 Hoà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 hoà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ả: Hoà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ốngtrong phòng chiếu:
- Thời gian: 10 ngày
- 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, …)
Trang 19Báo cáo thực tập doanh nghiệp Sinh viên: Nguyễn Văn Đông
19
- Kết quả: Hoà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.
Trang 20Hì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 Hoà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 hoà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 quá 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
+ Tiến hành code trên Unity Editor
Trang 21Báo cáo thực tập doanh nghiệp Sinh viên: Nguyễn Văn Đông
21
+ 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) đã hoàn thiện được 3 mùa gồm xuân, thu,
và đông
Trang 22Hì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: Toà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ó yêu cầu
+ Xem xét các bug xảy ra trong quá 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ỳ
Trang 23Báo cáo thực tập doanh nghiệp Sinh viên: Nguyễn Văn Đông
23
Hình 5.1 Hình ảnh một số công cụ được sử dụng trong quá trình vận hành game.
Trang 24Tài liệu tham khảo
[1] C# document: https://docs.microsoft.com/en-us/dotnet/csharp/
[2] Unity document: https://unity.com/learn
[3] Klak Spout repository: https://github.com/keijiro/KlakSpout
[4] Resolume document: https://resolume.com/training
TỔNG KẾT
Trang 25Báo cáo thực tập doanh nghiệp Sinh viên: Nguyễn Văn Đông
25
Trải qua 6 tháng thực tập tại JPWorld đã giúp em cải thiện bản thân và hiệu
suất làm việc, biết thêm nhiều công nghệ, công cụ mới, các kỹ năng xã hội mới Và
đặc biệt đã rèn dũa cho em trở nên có tâm hơn với các sản phẩm mà mình làm ra,
có trách nhiệm hơn với xã hội và đây là một hành trang thực sự có ích với em trong
sự nghiệp của một Kỹ sư Phần mềm sau này
Về phần project, tuy một số thời điểm, tiến trình công việc bị delay vì khó
khăn trong vấn đề cân bằng giữa việc đi học và thực tập nhưng các anh/chị tại
JPWorld và người phụ trách đã luôn hỗ trợ em rất nhiệt tình Chính nhờ sự hỗ trợ
đó mà em mới có thể hoàn thành được các task được giao đúng hạn và đạt được
chất lượng tốt
Xin chân thành cảm ơn sự giúp đỡ của toàn thể của các nhân viên của công
ty, cảm ơn anh Nguyễn Hoàng Hiển đã cung cấp kiến thức một cách cô đọng và
đầy đủ, 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
hoà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 mở và hiệu quả