Với tốc độ phát triển vô cùng mạnh mẽ, ngành game đã và đang là nhân tố kích thích sự phát triển của công nghệ thông tin thế giới, cả về phần cứng và phần mềm.. Chân thành cảm ơn công ty
Trang 1TRƯỜ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
UNITY3D GAME DEVELOPER
Công ty thực tập: Công ty TNHH MTV Phát triển
phần mềm Âu Lạc Người phụ trách: Nguyễn Viết Cường
Thực tập sinh: Lê Trần Thanh Duy
TP Hồ Chí Minh, tháng 06 năm 2023
Trang 2LỜI MỞ ĐẦU
Ngày nay, ngành công nghiệp game là một bộ phận không thể thiếu của ngành công nghiệp phần mềm Với tốc độ phát triển vô cùng mạnh mẽ, ngành game đã và đang là nhân tố kích thích sự phát triển của công nghệ thông tin thế giới, cả về phần cứng và phần mềm
Cùng với xu thế phát triển của thế giới, Việt Nam cũng không phải ngoại lệ Ngành công nghiệp game non trẻ Việt Nam đã và đang phát triển mạnh mẽ, để hòa nhập với những công ty hàng đầu
về game trên thế giới Bên cạnh những công ty game trẻ tuổi trong nước, những công ty game lớn trên thế giới cũng gia nhập vào thị trường Việt Nam, góp phần rất lớn vào sự phát triển tích cực của ngành game Việt
Ngành game được sinh ra là do nhu cầu giải trí của giới trẻ bằng những thiết bị công nghệ mới nhất Và cũng chính giới trẻ sẽ là nguồn nhân lực quan trọng cho việc phát triển của ngành game sau này Vì lý do này, em quyết định chọn lập trình game làm định hướng cho việc học tập của mình
Sau ba năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng như muốn được tham gia làm game trong một môi trường chuyên nghiệp Vì vậy, em quyết định chọn Công
ty TNHH MTV Phát triển phần mềm Âu Lạc - một môi trường lý tưởng, hiện đại, chuyên nghiệp
- là nơi sẽ giúp em thực hiện được dự định này
Trang 3LỜI CẢM ƠN
Em xin trân trọng gửi lời cảm ơn công ty TNHH MTV Phát triển phần mềm Âu Lạc đã 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 Nguyễn Viết Cường, Phan Thanh Giang, 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 công ty TNHH MTV Phát triển phần mềm Âu Lạc và các anh chị trong team Unity đã bỏ ra nhiều thời gian, công sức để 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 28 tháng 06 năm 2023
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
MỤC LỤC
Contents
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: GIỚI THIỆU CÔNG TY THỰC TẬP 6
1.1 Giới thiệu về Công ty TNHH MTV Phát triển phần mềm Âu Lạc 6
1.2 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 Thực hiện dự án cá nhân Game Pacman 9
2.3 Thực hiện dự án cá nhân Super Mario Bros 10
2.4 Thực hiện dự án cá nhân TankFighers 12
CHƯƠNG 3: TỔNG KẾT 13
3.1 Điểm mạnh 13
3.2 Điểm yếu 13
3.3 Chuẩn đạt được 13
Trang 6CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP
1.1 Giới thiệu về Công ty TNHH MTV Phát triển phần mềm Âu Lạc
Hình 1.1 Công ty TNHH MTV Phát triển phần mềm Âu Lạc
1.1.1 Thông tin sơ lược về công ty
Công ty TNHH MTV Phát triển phần mềm Âu Lạc (hay còn gọi là ALTA Software) là một đơn vị hàng đầu trong lĩnh vực phát triển phần mềm với mục tiêu biến những ý tưởng và nhu cầu của khách hàng thành hiện thực bằng cách tư vấn và đề xuất các giải pháp tốt nhất về hiệu suất, thời gian và tiền bạc cho từng dự án cụ thể
Với đội ngũ nhân viên giàu kinh nghiệm và tài năng, Công ty không ngừng nỗ lực để đạt được những đỉnh cao trong ngành công nghiệp phát triển game nói riêng cũng như phát triển phần mềm nói chung Công ty tập trong vào các lĩnh vực: Interactive Software, Web/ Mobile App, Gaming, AI/Big Data Services, VR, IoT
Với vị trí thực tập của em là Unity3D Game Developer, em đã có cơ hội làm việc cùng với các chuyên gia hàng đầu trong ngành và tham gia vào quy trình phát triển trò chơi từ khâu thiết kế, lập trình cho đến kiểm thử và tối ưu hóa Tại công ty, sự đổi mới và sự sáng tạo được khuyến khích, và em đã hòa mình vào một môi trường làm việc tràn đầy năng lượng và ý tưởng mới
Trang 71.1.2 Lịch sử hình thành của công ty
Alta Software được thành lập vào năm 2017, là công ty thành viên của Công ty CP Văn hóa
hoạt động và phát triển Khẳng định uy tín dựa trên nền tảng chất lượng và sự chuyên nghiệp, chúng tôi đồng hành cùng những dự án của khách hàng và bảo vệ mục tiêu kinh doanh của doanh nghiệp
Từ khi thành lập, Alta Software đã không ngừng phát triển và mở rộng hoạt động kinh doanh của mình Sự đổi mới và sáng tạo luôn là mục tiêu hàng đầu của công ty Đội ngũ phát triển tại Alta Software luôn tìm kiếm những cách tiếp cận mới, công nghệ mới và ý tưởng độc đáo để tạo ra những trò chơi đẳng cấp và thu hút người chơi
Hiện nay, Alta Software tiếp tục mở rộng quy mô hoạt động của mình, mở rộng đội ngũ nhân viên và đầu tư vào công nghệ và nghiên cứu phát triển Công ty không ngừng đưa ra những dự
án mới, hứa hẹn mang đến những trò chơi độc đáo và đáng chơi cho người chơi trên toàn cầu 1.1.3 Quy mô của công ty
Công ty TNHH Alta Software đã phát triển và mở rộng quy mô hoạt động của mình theo thời gian Hiện tại, công ty có một quy mô vừa phải và đáng kể trong ngành công nghiệp game Quy mô của Alta Software được đánh giá dựa trên một số yếu tố sau:
1 Đội ngũ nhân viên: Alta Software có một đội ngũ nhân viên giàu kinh nghiệm và tài năng Đội ngũ này bao gồm các chuyên gia trong lĩnh vực phát triển game, bao gồm các lập trình viên, thiết kế viên, nghệ sĩ đồ họa, nhà sản xuất game và chuyên gia kiểm tra chất lượng Các thành viên trong đội ngũ đều có sự tận tâm và đam mê với việc tạo ra những trò chơi chất lượng cao
2 Dự án và sản phẩm: Alta Software đã phát triển và phát hành một loạt các dự án game đáng chú
ý trên nền tảng Unity Công ty tập trung vào việc tạo ra những trò chơi đa dạng trong các thể loại như giải đố, phiêu lưu, thể thao và hành động Sự đa dạng này cho phép công ty tiếp cận
và phục vụ nhiều đối tượng người chơi khác nhau
3 Quan hệ đối tác: Alta Software đã xây dựng mối quan hệ đối tác với các nhà phát triển game, nhà xuất bản và các đối tác khác trong ngành công nghiệp game Điều này cho phép công ty
mở rộng tầm ảnh hưởng và tiếp cận đến nhiều thị trường khác nhau
Trang 81.2 Lịch làm việc khi thực tập tại công ty
Em tham gia làm việc tại công ty bắt đầu từ ngày 10/04/2023 tới 17/06/2023, em làm việc với
tư cách là một thực tập sinh làm việc toàn thời gian (full-time), làm việc từ thứ 2 tới sáng thứ 7(tới 12h) Công việc hằng ngày bắt đầu từ lúc 9h00 đến 18h Thời gian nghỉ trưa từ 12h tới 13h30 Mỗi tuần làm việc em sẽ báo cáo tiến độ công việc trong ngày thứ 2 và thứ 5, đặt câu hỏi và nhận chia sẻ, giải đáp từ anh hướng dẫn, đặ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 độ một lần và sau khi kết thức dự án cá nhân, anh hướng dẫn sẽ nhận xét, đánh giá và chia sẽ thêm kinh nghiệm cũng như các cách phát triển thêm cho dự án
Trang 9CHƯƠ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ô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, 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 về IT, HR, … 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, …
Kết quả: hiểu thêm về công ty, cách vận hành, quá trình thành lập và phát triển của công ty 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
2.2 Thực hiện dự án cá nhân Game Pacman
Thời gian: 2 tuần
2.2.1 Công nghệ
Trong dự án cá nhân của em, em đã sử dụng công nghệ Unity để phát triển trò chơi Unity là một công cụ phát triển game mạnh mẽ, được sử dụng rộng rãi trong ngành công nghiệp game
Nó cung cấp một môi trường phát triển tích hợp và hỗ trợ nhiều tính năng, giúp tạo ra trò chơi chất lượng cao và tương tác
2.2.2 Mô tả dự án
Ban đầu, em bắt đầu dự án bằng việc xây dựng các logic cơ bản của game theo video
hướng dẫn của công ty Từ đó, em đã tiến hành cải tiến và mở rộng dự án này theo hướng
cá nhân
Đầu tiên em xây dựng map cho game từ các sprite được cung cấp, em tạo map theo mẫu sẵn của game gốc
Tiếp theo em tạo animation và các logic về di chuyển cho pacman (người chơi) Sau đó tạo script để điều khiển ghost tự động
Sau khi hoàn thành các logic cơ bản của em, em đã thêm vào một số tính năng như tính điểm, thêm vào nhạc nên, âm thanh khi người chơi chiến thắng và thua
Sau đó theo yêu cầu của anh hướng dẫn, em đã tìm hiểu và thêm vào tính năng như menu, dừng game và save lại trạng thái game vào file save
2.2.3 Kết quả
Qua quá trình phát triển và cải tiến dự án cá nhân, em đã có cơ hội tiếp cận với các công nghệ
và kỹ thuật mới trong việc phát triển trò chơi Em đã áp dụng thành công DataPersistence để tạo ra file save dưới dạng json Kết quả là trò chơi đã trở nên thú vị hơn và có nhiều tính năng hơn
Trang 10Các kỹ năng và kiến thức mà em đã thu được qua dự án này sẽ là nền tảng quan trọng cho sự phát triển và nghiên cứu trong lĩnh vực game của em trong tương lai
Link Github sản phẩm: https://github.com/DRyu1412/Pacman2D-BT1
Hình ảnh sản phẩm game Pacman
2.3 Thực hiện dự án cá nhân Super Mario Bros
Thời gian: 3 tuần
2.3.1 Mô tả dự án
Đầu tiên em vẽ map world 1-1 dựa theo các sprite được cung cấp
Tiếp theo em theo vào các physic cho game (trọng lực, ma sát,…) và tạo script điều khiển di chuyển cho Mario
Tiếp theo em tạo animation cho mario (có nhiều trạng thái như lớn, nhỏ, chạy, chết,…) và cho các enemy như Goomba, Koopa Sau đó em viết script điều khiển các logic cơ bản cho mario như đổi trạng thái, nhận sát thương, gây sát thương,…
Tiếp theo em thêm vào các item của game như Coin, Magic Mushroom, Starpower, … và thêm vào script tính điểm, tính mạng, và sức mạnh cho mario
Tiếp theo em thêm script điều khiển tự động cho Goomba và Koopa và script để điều khiển game như dừng, reset màn chơi
Sau đó em theo vào màn ẩn cho map 1-1
Cuối cùng em thêm vào menu, script để chuyển màn chơi và tạo file save cho game
Trang 112.3.2 Kết quả
Qua quá trình phát triển và cải tiến dự án cá nhân, em đã có cơ hội tiếp cận với các công nghệ
và kỹ thuật mới trong việc phát triển trò chơi, hiểu thêm cách tạo ra một trò chơi 2D và cách design game
Link Github sản phẩm: https://github.com/DRyu1412/SuperMarioBros-BT2
Trang 122.4 Thực hiện dự án cá nhân TankFighers
Thời gian: 5 tuần
2.4.1 Mô tả dự án
Đầu tiên em tạo ra world cùng các logic cơ bản cho game dựa theo các sprite được cung cấp và video hướng dẫn của Unity: Tank! Tutorial Sau đó em chuyển đổi game từ 2 người chơi trên một máy trở thành game online sử dụng NetCode For GameObject của Unity
Sau khi xây dựng xong các logic cơ bản của game, đầu tiên em chuyển đổi các Object của game như Tank, Shell, Explosion, … thành các Network object
Tiếp theo em sử dụng Netcode để tạo host và client Sau đó em bắt đầu đồng bộ animaiton của các Object cho host và client
Tiếp theo em theo script để tính toán sát thương, tính toán người chiến thắng và reset màn chơi Cuối cùng em theo vào script để lưu và đồng bộ dữ liệu cho host và client
2.4.2 Kết quả
Sau quá trình thực hiện dự án cá nhân, em đã có cơ hội tìm hiểu cũng như sử dụng NetCode
để tạo ra game online Em cũng hiểu hơn về các kiến thức liên quan đến game online, góp phần cũng cố kiến thức cho em trong tươ
Trang 13CHƯƠNG 3: TỔNG KẾT
Quãng thời gian thực tập tại công ty TNHH MTV Phát triển phần mềm Âu Lạc đã 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 người kỹ sư phần mềm Được làm việc tại đây, em đã học thêm được kỹ năng mềm sử dụng mail, quản lý thời gian, làm việc nhóm, giao tiếp với cấp trên, …
Chỉ trong thời gian hạn chế, em đã hoàn thành dự án cá nhân trong quá trình training với các tính năng, yêu cầu đặt ra ban đầu
3.1 Điểm mạnh
Trong quá trình làm việc em đã nhận ra mình có những điểm mạnh như sau: khả năng tự học,
tự tìm ra vấn đề và giải quyết vấn đề một cách logic, khả năng làm việc nhóm, giao tiếp với cấp trên và các anh chị lớn của các team khác trong công ty
3.2 Điểm yếu
Trong quá trình làm việc, em cũng nhận ra mình có một vài điểm yếu như sau: khả năng trình bày ý kiến không tốt, chưa biết cách thể hiện ý kiến một cách đầy đủ
3.3 Chuẩn đạt được
Tổng kết lại, em có thể tự đánh giá các mục tiêu của môn học như sau:
• Nắm bắt được xu hướng, nhu cầu xã hội và tính đặc thù của doanh nghiệp (G1): 8/10
• 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 (G2): 9/10
• 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 (G3): 8/10
• 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 đề (G4): 9/10
• Phát triển kỹ năng tư duy, kỹ năng làm việc nhóm và kỹ năng trình bày (G5): 7/10
• Đọc, hiểu các tài liệu và giao tiếp bằng tiếng Anh (G6): 9/10
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 trình bày
G6 Đọc, hiểu các tài liệu và giao tiếp bằng tiếng Anh