1. Trang chủ
  2. » Giáo Dục - Đào Tạo

báo cáo thực tập vị trí thực tập unity developer intern

18 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 1,15 MB

Nội dung

Với trọng trách phát triển cũng như sửa lỗi cho các tínhnăng chính và quan trọng nhất của ứng dụng như cách luồng người dùng sử dụng haycách mà các chức năng hoạt động,… ta có thể nói rằ

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

Vị trí thực tập: Unity Developer Intern

Công ty thực tập : Công ty TNHH Optimizer Việt Nam Người phụ trách : Nguyễn Minh Trí

Thực tập sinh : Dín Hiền Dũng

Thành phố Hồ Chí Minh, ngày 01 tháng 01 năm 2024

Trang 2

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 luôn là nhân tố đóng vai trò quan trọng trong quá trình phát triển của xã hội

Ngành công nghiệp game online hay ngành công nghiệp sản xuất và phát hành game trực tuyến là lĩnh vực phát triển và phân phối trò chơi điện tử trên nền tảng trực tuyến Nó bao gồm thiết kế, phát triển và phân phối các trò chơi trên nhiều nền tảng như máy tính, console và di động Ngành này tạo ra doanh thu lớn và hàng triệu công việc trong lĩnh vực thiết kế, lập trình và nghệ thuật Trong đó, để tạo ra các tính năng phù hợp với ứng dụng hiện tại, vận hành đúng và chính xác cần một bộ phận chuyên biệt đảm nhiệm, là bộ phận phát triển ứng dụng bằng các Game Engine, cụ thể ở đây

là bộ phận Unity Developer Với trọng trách phát triển cũng như sửa lỗi cho các tính năng chính và quan trọng nhất của ứng dụng như cách luồng người dùng sử dụng hay cách mà các chức năng hoạt động,… ta có thể nói rằng vai trò của bộ phận Unity Developer là rất quan trọng

Để thử thách bản thân trong ngành công nghiệp phát triển game, đồng thời để tận

kỹ năng của bản thân trong lĩnh vực công nghệ phần mềm, và kinh nghiệm trong lĩnh

vực quản lý đội nhóm, em đã lựa chọn Phát triển Game làm đị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, kinh nghiệm đã có và có được trải nghiệm trong môi trường thực tế

trong doanh nghiệp, em đã quyết định ứng tuyển vào vị trí Unity Developer Intern (thực tập sinh phát triển ứng dụng với Unity Engine) của Công ty TNHH Optimizer

Việt Nam – một môi trường lý tưởng và chuyên nghiệp để thực hiện dự định của bản

thân

Trang 3

LỜI CẢM ƠN

Em xin trân trọng gửi lời cảm ơn đến Công ty TNHH Optimizer Việt Nam đã tạo

điều kiện cho em được thực tập tại công ty Trong thời gian thực tập vừa qua, nhờ sự chỉ dẫn nhiệt tình của anh Nguyễn Minh Trí, em đã tiếp thu được nhiều kiến thức và nhiều kỹ năng quan trọng để tham gia những dự án thực tế của công ty và áp dụng vào việc học tại trường

Chân thành cảm ơn các anh chị đồng nghiệp trong bộ phận Unity Developer đã dành thời gian, công sức để hướng dẫn và hỗ trợ 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ệ về Unity Engine và tư duy sản phẩm để em có thể thực hiện tốt những dự án của công ty trong thời gian vừa qua

Em cũng xin cảm ơn quý giảng viên 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

Thành phố Hồ Chí Minh, ngày 01 tháng 01 năm 2024

Dín Hiền Dũng

Trang 4

NHẬN XÉT CỦA KHOA

Trang 5

DANH MỤC HÌNH ẢNH

Hình 1.1 Logo công ty Optimizer Inc 7 Hình 2.1 Trang thông tin nhân viên trên Kaonavi 9

MỤC LỤC

1.1 Giới thiệu công ty Optimizer Inc 7

1.1.1 Công ty TNHH Optimizer Việt Nam 7

1.2 Sản phẩm công ty 8

1.3 Lịch làm việc khi thực tập tại công ty 8

CHƯƠNG 2 NỘI DUNG THỰC TẬP 9 2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 9

2.2 Nghiên cứu kỹ thuật 9

2.2.1 Tuần 1 9

2.2.2 Tuần 2, 3 10

2.2.3 Tuần 4 11

2.2.4 Tuần 5 12

2.3 Tham gia dự án thực tế 13

2.3.1 Tổng quan 13

2.3.2 Quá trình thực hiện 14

Trang 6

2.3.3 Thuận lợi 15 2.3.4 Khó khăn 15

2.1 Điểm mạnh 16 2.2 Điểm yếu 16 2.3 Chuẩn đạt được 16

Trang 7

CHƯƠNG 1 GIỚI THIỆU CÔNG TY THỰC TẬP

1.1 Giới thiệu công ty Optimizer Inc

Hình 1.1 Logo công ty Optimizer Inc

Optimizer Inc là một công ty chuyên cung cấp các dịch vụ về công nghệ và marketing được thành lập vào năm 2005 tại Nhật Bản với trụ sở chính được đặt tại Osaka với quy mô trên 100 nhân lực

Công ty chủ yếu cung cấp các dịch vụ như các dịch vụ quảng cáo, tiếp thị, quản lý năng lượng, kinh doanh kỹ thuật số, mỗi dịch vụ chủ yếu được quản lý bởi các nhóm công ty khác bao gồm Asset Optimizer Inc, Energy Optimizer Co., Ltd, Power Optimizer Inc

Công ty chú trọng vào việc đào tạo nhân tài và có tầm nhìn về việc trở thành một công ty đổi mới hàng đầu tại Nhật Bản với sứ mệnh “Để tối ưu hóa hoạt động kinh tế bằng công nghệ, và cung cấp trải nghiệm sáng tạo”

1.1.1 Công ty TNHH Optimizer Việt Nam

Công ty TNHH Optimizer Việt Nam là một nhánh của công ty Optimizer Inc được thành lập vào năm 2022 tại Thành phố Hồ Chí Minh, đây là chi nhánh được thành lập chuyên phụ trách phát triển hệ thống, thiết kế Web, thiết kế đồ họa 3D, với nguồn nhân lực chính là người Việt kết hợp với đội ngũ quản lý từ phía Nhật Bản sẽ luôn đảm bảo việc nắm bắt được nhu cầu của khách hàng và tối ưu trong quá trình thiết kế, phát triển, sản xuất

1.2 Sản phẩm công ty

Trang 8

1.3 Lịch làm việc khi thực tập tại công ty

Em bắt đầu làm việc tại công ty bắt đầu từ 18/09/2023, các ngày làm việc trong bao gồm thứ hai, thứ tư, thứ năm và thứ sáu Một ngày làm việc bắt đầu từ 08:00 và kết thúc vào lúc 17:30 Thời gian nghỉ trưa khoảng 60 phút (từ 12:00 đến 13:00) Công việc của em hằng ngày là thực hiện các task chủ yếu về phát triển các chức năng trong dự án hiện tại hoặc nghiên cứu các plugin mới chủ yếu với Unity Engine Sau mỗi ngày làm việc, em sẽ tổng kết lại công việc đã thực hiện trong ngày và đặt mục tiêu cho ngày làm việc tiếp theo Mỗi 2 tuần sẽ họp tiến độ vào chiều thứ 6, mọi người

sẽ cùng họp và bàn bạc về các vấn đề đã giải quyết, tồn đọng, giải pháp và mục tiêu cho tuần tiếp theo

Trang 9

CHƯƠNG 2 NỘI DUNG THỰC TẬP

2.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ơ cấu, cách tổ chức của công ty Optimizer Inc , đượ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, 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, các phòng ban nội bộ, hệ thống quản trị nhân sự,… Ngoài ra, thực tập sinh còn được giới thiệu về văn hóa làm việc trong công ty như thời gian đi làm, các quy định, cách sử dụng email trong công việc,… Và trên hết, thực tập sinh sẽ được giới thiệu về các công nghệ chủ yếu được sử dụng trong dự án

Hình 2.1 Trang thông tin nhân viên trên Kaonavi

● Kết quả: Hiểu thêm về công ty TNHH Optimizer Việt Nam và công ty mẹ là

Optimizer Inc, bao gồm quá trình thành lập, phát triển và cơ cấu tổ chức Có thêm các kỹ năng về việc sử dụng email trong công việc, làm việc có kế hoạch,

có kỷ luật, có trách nhiệm hơn và hiểu hơn về quy tắc ứng xử để phù hợp với văn hóa công ty

Trang 10

2.2 Nghiên cứu kỹ thuật

2.2.1 Tuần 1

● Nội dung: Tìm hiểu cấu trúc dự án và luồng thực thi cơ bản của dự án.

Trong thời gian này, em được mentor giới thiệu về dự án chính của công ty Bao gồm:

o Các thư viện và plugin chính được sử dụng trong dự án: bao gồm các thư viện open source cũng như các thư viện trả phí của Unity Package, hiểu được cách các plugin đó được sử dụng như thế nào, sử dụng ở những chức năng nào và mức độ quan trọng của các thư viện đó trong

dự án

o Luồng sử dụng chính của dự án, với tư cách người dùng: tìm hiểu luồng người dùng, được hướng dẫn về các màn hình tương tác chủ yếu của dự

án, các đồ thị về mối quan hệ và sự tương tác của các màn hình với nhau

o Luồng thực thi chính của dự án, với tư cách lập trình viên: tìm hiểu được cấu trúc thư mục của dự án, các luồng thực thi chính của script, các tương tác của các component chính, các class chính của dự án, các pattern chủ yếu được sử dụng

● Kết quả: Có một cái nhìn tổng quan về dự án, hiểu được mục tiêu của dự án,

giúp trang bị sẵn sàng kiến thức cũng như tinh thần trước khi bước chân vào dự

án thực tế

2.2.2 Tuần 2, 3

● Nội dung: Nghiên cứu thư viện Normcore để thực hiện vào dự án

Normcore là một thư viện cung cấp hỗ trợ cho các giải pháp mạng và nền tảng trực tuyến cho một trường 3D, nó dễ sử dụng và có quy mô cho hàng triệu người dùng

Trang 11

Hình 2.2 Thư viện Normcore

Trong thời gian này, em được hướng dẫn về thư viện Normcore cũng như được giao task xây dựng app demo nhỏ về thư viện này bao gồm các công việc:

o Cài đặt thư viện vào dự án

o Đọc tài liệu chi tiết về các hàm, các class và các component chính của thư viện

o Tạo project demo thực hiện theo yêu cầu của task

o Viết tài liệu hướng dẫn sơ bộ về thư viện

● Kết quả: Hiểu được những kiến thức cơ bản về các component và áp dụng

được chúng vào dự án, thực hiện được một project demo mẫu để thể hiện chức năng căn bản của thư viện Normcore

2.2.3 Tuần 4

● Nội dung: Nghiên cứu thư viện Agora Video SDK để thực hiện vào dự án

Agora Video SDK là một nền tảng cung cấp các giải pháp liên quan đến video

và âm thanh trực tuyến Agora SDK giúp các nhà phát triển tích hợp chức năng gọi video, cuộc họp trực tuyến, và trải nghiệm tương tác trong ứng dụng của họ

Agora cung cấp một loạt các API và SDK cho nhiều nền tảng, cho phép phát triển ứng dụng trò chơi, giáo dục trực tuyến, y tế từ xa, cuộc họp trực tuyến, và

Trang 12

nhiều ứng dụng khác Agora Video SDK hỗ trợ nhiều tính năng như mã hóa video, giải mã, quản lý kết nối, giữa các nền tảng khác nhau

Hình 2.3 Thư viện Agora

Trong thời gian này, em được hướng dẫn về thư viện Agora Video SDK cũng như được giao task tìm hiểu chức năng Live Broadcast Streaming với các công việc:

o Cài đặt thư viện vào dự án

o Tìm hiểu thư viện thông qua project demo của thư viện

o Đọc hiểu tài liệu về chức năng các chức năng Stream Media và Screen Share cũng như tìm hiểu các component liên quan

o Thực hiện chức năng với project Normcore để tạo ra môi trường 3D với chức năng màn hình đã nghiên cứu ở tuần 2,3

● Kết quả: Hiểu được những kiến thức cơ bản về các component và áp dụng

được chúng vào dự án, áp dụng được API và SDK vào Unity Engine để có thể

áp dụng vào dự án thực tế sau này

2.2.4 Tuần 5

● Nội dung: Nghiên cứu thư viện Trilib để thực hiện vào dự án

Trang 13

Hình 2.4 Thư viện TriLib

Trong thời gian này, em được hướng dẫn tìm hiểu về thư viện TriLib để thực hiện việc tải dữ liệu 3D thời gian thực từ các API vào dự án 3D bao gồm các công việc:

o Cài đặt thư viện vào dự án

o Đọc tài liệu chi tiết về các hàm, các class và các component chính của thư viện

o Tìm hiểu các việc lấy dữ liệu từ API chính của dự án

o Thực hiện theo quy trình tải dữ liệu model từ API vào không gian 3D

● Kết quả: Hiểu được những kiến thức cơ bản về các component và áp dụng

được chúng vào dự án, có kiến thức về API Graphql cơ bản và cách lấy dữ liệu

từ đó, thực hiện tải dữ liệu từ API vào ứng dụng thông qua thư viện

2.3 Tham gia dự án thực tế

2.3.1 Tổng quan

Sau 4 tuần làm quen với môi trường làm việc tại Optimizer Việt Nam cũng như thực hiện việc training và nghiên cứu các thư viện cần thiết, em được phân cho thực hiện lập trình một số chức năng trong dự án 3D của công ty Đây là một trong

2 dự án chính của công ty, dự án này tập trung vào việc thực hiện mô phỏng lại một không gian 3D với mục tiêu tạo ra môi trường giống với thực tế nhất có thể để người dùng có thể thao tác với các vật thể, tổ chức cuộc họp, thảo luận trong

Trang 14

không gian 3D mà không cần phải tiếp xúc ngoài đời, công việc chính của em gồm có:

o Thực hiện việc thiết lập môi trường 3D mẫu cho dự án

o Thực hiện việc tải dữ liệu vật thể từ API với GraphQL và dùng thư viện TriLib để đặt các vật thể đó vào không gian 3D

o Cài đặt việc nhận truyền dữ liệu nhân vật từ các máy khách với nhau để nhiều client có thể tương tác thời gian thực với nhau trong không gian 3D

o Lập trình chức năng vật thể để người chơi có thể thao tác trực tiếp với vật thể đó trong môi trường 3D tương ứng với thực tế

Trong quá trình thực hiện chức năng, em được sự hướng dẫn của anh Nguyễn Minh Trí (Tech Lead), đồng thời được học thêm về các công cụ hữu ích khác

2.3.2 Quá trình thực hiện

● Thực hiện việc thiết lập môi trường 3D mẫu:

Đây là giai đoạn thực hiện việc xây dựng môi trường 3D cơ bản tiền đề từ dự

án 2D của công ty, xây dựng Scene mẫu với nhân vật góc nhìn thứ 3 có thể điều khiển để tương tác trong Scene

● Thực hiện việc tải dữ liệu dùng thư viện TriLib vào không gian 3D

Sau khi trong giai đoạn thiết lập môi trường 3D cơ bản, em được hướng dẫn kiến thức về GraphQL và cách lấy dữ liệu từ API của công ty, đồng thời với dữ liệu lấy được, em dùng thư viện TriLib để thực thi tải các dữ liệu model trên internet để xuất vào trong dự án và khởi tạo các model đó vào không gian 3D, mục tiêu là tải được dữ liệu JSON một căn phòng mẫu xử lý dữ liệu đó để có thể xây dựng một căn phòng trong không gian 3D thực sự

● Thực hiện việc tương tác multiplayer với Normcore

Trang 15

thể của từng client với nhau và có sự tương tác cơ bản như trò chuyện trực tuyến,

● Lập trình chức năng vật thể 3D (cụ thể là máy chiếu)

Đây là giai đoạn lập trình chức năng cho các vật thể xuất hiện trong một căn phòng, cụ thể công việc em được giao là vật thể máy chiếu, máy chiếu là một vật thể có chức năng thu thập dữ liệu màn hình và cửa sổ của máy tính chạy ứng dụng

và có thể lựa chọn trình chiếu lên không gian 3D cho các client khác trong không gian 3D có thể xem trực tiếp, chức năng của máy chiếu chủ yếu sử dụng thư viện Agora Video SDK để thực hiện

2.3.3 Thuận lợi

Với sự hướng dẫn nhiệt tình từ các đàn anh trong công ty cũng như tài liệu khá chi tiết và đầy đủ thì em cũng tự tin hoàn thành các task đã được giao tuy nhiên trong quá trình đó vẫn vấp phải các khó khăn

2.3.4 Khó khăn

Một số khó khăn em đã gặp phải khi thực hiện dự án thực tế:

● Đôi khi chưa hiểu rõ được yêu cầu của công việc

● Tổ chức phần cứng của thiết bị công ty còn khá hạn chế nên đôi khi xảy ra hiện tượng làm chậm trễ quá trình thực hiện công việc

● Bị ngắt quãng giữa các ngày làm việc khi có lịch học trên trường

● Kỹ thuật lập trình còn thiếu sót dẫn tới rất tốt thời gian cho một vấn đề cơ bản

Trang 16

CHƯƠNG 3 TỔNG KẾT

Quãng thời gian thực tập tại công ty TNHH Optimizer Việt Nam đã giúp em cải thiện bản thân rất nhiều trong quy trình làm việc thực tế, tác phong của một người phát triển phần mềm nói chung và nhà lập trình Unity nói riêng Được làm việc tại đây, em đã học thêm được kỹ năng mềm như phân tích nghiệp vụ, giao tiếp với phòng ban khác,…

Ngoài ra, về mặt chuyên môn, em còn học hỏi được:

● Cải thiện kỹ năng sử dụng Unity Game Engine

● Quy trình làm việc thực tế

● Quy trình xây dựng phần mềm trực tuyến điển hình

● Cách xây dựng giao diện sao cho thân thiện với người dùng và dễ sử dụng

● Trang bị cho mình các kiến thức sử dụng các plugin và thư viện mới

Khi tham gia vào dự án thực tế, em đã hoàn thành tốt các nhiệm đúng hạn và đạt chất lượng như yêu cầu đề ra

● Thu được các phẩm chất cần thiết phù hợp với công việc

● Hoàn thành đầy đủ công tác được giao phó

● Khả năng tiếp thu và lắng nghe tốt

● Cải thiện khả năng giao tiếp

● Kỹ năng làm việc nhóm và kỹ năng làm việc độc lập có tiến bộ

Trang 17

1.2 Điểm yếu

● Kiến thức chuyên môn cần cải thiện

● Quản lý quỹ thời gian chưa tốt

● Lên công ty chưa thường xuyên

● Kết quả công việc đạt yêu cầu chỉ ở mức chấp nhận

1.3 Chuẩn đạt được

G1 Nắm bắt được xu hướng, nhu cầu xã hội và tính đặc thù của doanh

nghiệp

G2 Hiểu và giải thích được các khái niệm cơ bản, thuật ngữ và sơ đồ hệ

thống trong dự án

G3 Nắm được quy trình, phương pháp và công nghệ phát triển sản phẩm

phần mềm tại doanh nghiệp

G4 Có khả năng tìm hiểu vấn đề, mô hình hóa vấn đề và tham gia giải quyết

vấn đề

G5 Phát triển kỹ năng tư duy, kỹ năng làm việc nhóm và kỹ năng thuyết

trình

G6 Đọc, hiểu các tài liệu và giao tiếp bằng tiếng Anh

Ngày đăng: 15/05/2024, 09:12

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w