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
báo cáo thực tập vị trí thực tập unity developer intern

Đ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

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 TINKHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO THỰC TẬPVị trí thực tập: Unity Developer Intern

Công ty thực tập : Công ty TNHH Optimizer Việt NamNgườ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ànhcô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ìnhphá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ànhgame 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ựctuyế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ảngnhư 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ôngviệ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ăngphù 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ênbiệt đảm nhiệm, là bộ phận phát triển ứng dụng bằng các Game Engine, cụ thể ở đâylà 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í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ằng vai trò của bộ phận UnityDeveloper 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ậnkỹ 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ữngkiế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àoviệ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ôitrườ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ừaqua.

Em cũng xin cảm ơn quý giảng viên trong khoa Công nghệ Phần mềm đã nhiệttì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 5

DANH MỤC HÌNH ẢNH

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

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ẬP92.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

Trang 6

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

2.1 Điểm mạnh 162.2 Điểm yếu 162.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ạiOsaka 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ómcông ty khác bao gồm Asset Optimizer Inc, Energy Optimizer Co., Ltd, PowerOptimizer 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ộtcô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 đượcthà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ậpchuyên phụ trách phát triển hệ thống, thiết kế Web, thiết kế đồ họa 3D, với nguồnnhâ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 trongbao 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ăngtrong dự án hiện tại hoặc nghiên cứu các plugin mới chủ yếu với Unity Engine Saumỗ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ụctiê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ườisẽ 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êucho 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òngban nội bộ, hệ thống quản trị nhân sự,… Ngoài ra, thực tập sinh còn được giớithiệ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ớithiệ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ớivăn hóa công ty.

Trang 10

2.2.Nghiên cứu kỹ thuật2.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ácthư 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 đó trongdự á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ồngngườ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ớinhau.

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 đượccấu trúc thư mục của dự án, các luồng thực thi chính của script, cáctương tác của các component chính, các class chính của dự án, cácpattern 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ựctuyế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ư đượcgiao 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ủathư 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ứcnă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 videovà â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ọivideo, 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áttriể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ũngnhư được giao task tìm hiểu chức năng Live Broadcast Streaming với các côngviệ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à ScreenShare 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ớichứ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ựchiệ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ôngviệ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ủathư 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ệutừ đó, 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 chothự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 trong2 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ạimộ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ồmcó:

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ệnTriLib để đặ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 gian3D.

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ớivậ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ễnMinh 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ềukhiể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ẫnkiế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êninternet để xuất vào trong dự án và khởi tạo các model đó vào không gian 3D, mụctiê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âydự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ănphò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ậtthể 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ụngvà có thể lựa chọn trình chiếu lên không gian 3D cho các client khác trong khônggian 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ệnAgora 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êntrong quá trình đó vẫn vấp phải các khó khăn.

● 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 emcả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ộtngườ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àmviệc tại đây, em đã học thêm được kỹ năng mềm như phân tích nghiệp vụ, giaotiế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.

Trang 18

TÀI LIỆU THAM KHẢO

1 Optimizer with innovative experience (n.d.-a) Retrieved from

2 Normcore: Normcore seamless multiplayer for unity (n.d.-a) https://normcore.io/

3 Agora.io real-time voice and video engagement Agora (2023, November 16)

https://www.agora.io/en/

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