Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của các anh chị trong công ty, em đã tiếp thu được các kiến thức quan trọng cũng như kinh nghiệm làm việc thực tế khiđược th
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
LẬP TRÌNH GAME BẰNG UNITY
Trang 2Ngà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ôngnghiệ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ôngnghiệp game Việt Nam vẫn đang phát triển cùng những công ty game Startup đang phát triểnkhông ngừng để mang game Việt đến toàn thới giới
Ngành game được sinh ra là do nhu cầu giải trí của mọi người đang ngày càng gia tăng
và đa dạng Do đó để thoả mãn thị hiếu của người chơi, các game hiện nay cần liên tục sáng tạo,đổi mới để có thể thoã mãn nhu cầu giải trí của con người Do đó, với mong muốn đem lại niềmvui cho mọi người, em đã quyết định chọn lập trình game làm môn thự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, em có dự định là sẽ thựctập trong hè Vì vậy, em quyết định chọn Wolffun - một môi trường lý tưởng, hiện đại, chuyênnghiệp - là nơi sẽ giúp em thực hiện được dự định này.
Trang 3LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty Wolffun đã tạo điều kiện cho em có cơ hội được thựctập tại công ty
Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của các anh chị trong công
ty, em đã tiếp thu được các kiến thức quan trọng cũng như kinh nghiệm làm việc thực tế khiđược tham gia vào các project của công ty Chân thành cảm ơn các anh trong đội developer đã
bỏ ra nhiều thời gian,công sức để hướng dẫn em hoàn thành đợt thực tập này
Đặc biệt cảm ơn anh Hoàng và anh Đức, đã tạo điều kiện cho em được tham gia vào các
project của công ty và hướng dẫn em nhiệt tình để có thể học hỏi thêm các kiến thức từ các dự
án thực tế của công ty Xin cảm ơn anh Ca đã nhiệt tình hướng dẫn em làm quen với các tínhnăng trong Unity
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ềukiện em làm bài báo cáo này
Hồ Công ThànhTpHCM, ngày 23 tháng 12 năm 2021
Trang 5NHẬN XÉT CỦA KHOA
Trang 6
MỤC LỤC
Mục lục
Chương 1: Giới thiêu công ty thực tập 9
1 Giới thiệu công ty Wolffun 9
2 Sản phẩm của công ty 9
Chương 2: Nội dung thực tập 11
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 11
2 Nghiên cứu kỹ thuật 11
2.1 Các công cụ làm việc 11
2.2 Tham gia lớp huấn luyện lập trình Unity 12
2.3 Thực hành tạo một game 3D dựa trên project mẫu của Unity 13
3 Tham gia project công ty 14
4 Lịch làm việc 14
Chương 3: Chi tiết về project 16
1 Giới thiệu về game 16
1.1 Các tính năng trong game 16
2 Các tính năng được tham gia thực hiện 17
2.1 Tính năng mở hộp hero trên trang marketplace 17
2.2 Tính năng nhận thưởng sau khi kết thúc battle 19
2.3 Tính năng chọn game mode ngoài màn hình Menu 20
2.4 Tính năng kết bạn và mời bạn tham gia party 21
3 Đánh giá kết quả 22
TÀI LIỆU THAM KHẢO 23
Trang 7TỔNG KẾT 24
Trang 8Chương 1: Giới thiêu công ty thực tập
1 Giới thiệu công ty Wolffun
Wolffun là một công ty làm game được thành lập vào năm 2014 với dòng gamechủ lực là dòng Online PvP cho điện thoại Công ty được thành lập với 4 nhân viênlàm game Casual Vào năm 2015, Công ty bắt đầu tập trung vào dòng game mid-core action và đã publish game Tank Raid Online – dòng game PvP – lần đầu tiênvào năm 2017 Game đã có hơn 5 triệu user trên toàn cầu và được Google vinh danh
là Google Editor’s Choice và nhiều giải thưởng khác Công ty hiện đang hướng tớimục tiêu đạt được 100 triệu user trên toàn cầu
2 Sản phẩm của công ty
Wolffun nổi bật với dòng game action online PvP dành cho các thiết bị di độngAndroid và Ios Wolffun tự hào là một trong các công ty hàng đầu Việt Nam vàĐông Nam Á về dòng game Moba cho thiết bị di động Cả 2 dòng game của Wolffun
là Tank Raid Legend và Heroes Strike đã vượt hơn 5 triệu người dùng trên toàn cầu
và được phản hồi rất tích cực từ người dung Game mới đây nhất của Wolffun là
Trang 9Thetan Arena, đã có hơn 9 triệu user trên toàn cầu và được đánh giá hơn 4.5 sao trêncác store.
Trang 10Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “Lập trình game bằng Unity” nhằm mục đích giúp sinh viên thựctập được đào tạo toàn diện về lập trình game bằng Unity, đồng thời rèn luyện những kỹ năngmềm như làm việc nhóm, thuyết trình, giao tiếp Tại công ty, sinh viên có cơ hội được học tập,khám phá và làm việc trong một môi trường phát triển game chuyên nghiệ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 : 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 và hướng dẫn sơ qua về quytrình làm việc, các quy định, các công việc và lộ trình thực tập sắp tới
Ngoài ra, thực tập sinh còn được hướng dẫn sơ qua về project mà thực tập sinh sẽđược tham gia vào để học tập, các nhân sự liên quan và văn hoá công ty
Kết quả : Hiểu thêm về công ty Wolffun, quá trình thành lập và phát triển 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áchnhiệm hơn
2. Nghiên cứu kỹ thuật
2.1 Các công cụ làm việc
Thời gian : 1 ngày
Nội dung : Tìm hiểu về các công cụ sẽ được sử dụng trong quá trình làm việc.
Trong thời gian này, mentor sẽ hướng dẫn set up project và hướng dẫn về engineUnity để thực tập sinh có thể làm quan với một project Unity như thế nào Đồng thời,mentor cũng hướng dẫn về git flow, các document, các kênh chat của công ty để thựctập sinh dễ dàng làm quen hơn với công việc
Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả : Sử dụng các công cụ được hướng dẫn và chạy được project trên Unity
2.2 Tham gia lớp huấn luyện lập trình Unity
Thời gian : 14 ngày (2 tuần)
Nội dung : Được training về các kỹ thuật được sử dụng trong Unity, C#, thực hiện
một project Unity như thế nào và cho thực hiện một project Unity như bài tâp
Trang 11- Lập trình hướng đối tượng
Nhắc lại các kiến thức lập trình hướng đối tượng, cách áp dụng lập trình hướngđối tượng vào Unity, các lỗi hay mắc phải khi thiết kế các lớp trong lập trìnhhướng đối tượng
- Các hàm cơ bản trong Unity:
Flow thực hiện trong Unity, một số các hàm đặc biệt trong Unity để cập nhậtGame Loop
- Các component cơ bản của Unity
Giới thiệu một số component cơ bản như Transform, Rigid Body, Collider, Text,
… nhằm giúp thực tập sinh nắm và hiểu rõ hơn về các component trong Unity,việc này sẽ giúp ích thực tập sinh làm việc nhanh hơn và cho ra sản phẩm tốt hơn
- Các model, resource và tối ưu trong project :
Cung cấp kiến thức chuyên sâu về cách quản lý resource, tối ưu resource trongmột game thực tế như thế nào Việc tối ưu resource sẽ làm tăng trải nghiệm củangười dung, cho họ cảm giác chơi game mượt mà không giật lag, đồng thời hỗ trợtối đa các thiết bị chơi game khác nhau
Thực hiện :
- Tham gia đầy đủ các buổi training của công ty
- Làm các bài thực hành, kiểm tra về kiến thức đã học
Kết quả :
- Nâng cao kỹ năng lập trình với ngôn ngữ C#
- Hiểu rõ và sâu hơn về các component cơ bản trong Unity
- Ngoài ra còn được biết thêm một số quy tắc trong việc viết code sao cho đúngchuẩn, dễ đọc, dễ hiểu
2.3 Thực hành tạo một game 3D dựa trên project mẫu của Unity
Trang 12chiếc xe tank di chuyển trong một bản đồ 3D Hiểu được thực tế các các vật thểtrong Unity được kiểm soát như thế nào, cách tối ưu tính toán vật lý trong Unity.
- Các kỹ năng và đạn cho tank:
Áp dụng OOP để viết các hoạt động cho các loại đạn, effect, skill, của xe tank Từđây thực tập sinh hiểu hơn về cách áp dụng OOP vào một project thực tế như thếnào cho đúng và tốt
- Config cho đạn và các skill
Cách áp dụng tạo file config cho các loại đạn và skill của một con tank Từ đógiảm thiểu việc sửa code khi cần chỉnh sửa các thông số hay thay đổi design chomột con tank
- Tối ưu
Áp dụng Object pooling vào project để hạn chế việc liên tục khởi tạo và giảmthiếu công việc của Garbage Collector, nhằm giúp game chạy mượt hơn
Thực hiện :
- Tham gia đầy đủ các buổi training
- Thực hiện đầy đủ các bài tập mà mentor đặt ra
- Đọc thêm doc và các tài liệu trên mạng để thực hiện project tốt hơn
Kết quả :
- Có một game bắn tank nhỏ để chơi
- Hiểu hơn về cách Unity hoạt động
3. Tham gia project công ty
Trang 13Sau gần một tháng được training và thực hành, thực tập sinh đã nắm được những kiếnthức về Unity, mentor hướng dẫn thực tập sinh tham gia vào project của công ty để tiếptục học hỏi và trao dồi kỹ năng.
Chi tiết project sẽ được nói ở phần sau
4 Lịch làm việc
Mức độ hoàn thành
Nhận xét của người hướng dẫn
1, 2
- Xây dựng một ứngdụng con cho việc
mở box ra hero trênmarketplace
Anh Đinh QuangĐức
Anh Nguyễn DuyCa
100%
2
- Chỉnh sửa màn hìnhBattle End để nhậnreward từ data mớicủa server
Anh Đinh QuangĐức
Anh Lê HuỳnhMinh Tinh
100%
3
- Thực hiện codephần đổi gamemode trong mànhình Menu
Anh Đinh QuangĐức
Anh Lê QuốcPhương
100%
4
- Thêm phần hiển thịranking level vàhero ranking ở mànhình Battle EndReward
Anh Lê Huỳnh
100%
Trang 15Chương 3: Chi tiết về project
1 Giới thiệu về game
Game Thetan Arena là một game Moba NFT với mục tiêu là Free to play, battle to earn.Game cho phép người chơi sử dụng các hero để thi đấu với nhau và tạo ra các đồngTHC, đồng thời, các con hero và các vật phẩm ingame đều có thể được đem đi trao đổitrên marketplace
1.1 Các tính năng trong game
Mô tả
Game gồm 2 mode chơi chính là đánh theo team và đánh theo battle royal Trongmode đánh theo team, sẽ chia thành 3 mode chơi phụ là Deathmatch, Tower vàSuper Star, 8 player sẽ chia thành 2 team và thực hiện các nhiệm vụ trong từngmode cụ thể để giành chiến thắng Đối với mode battle royal, cơ chế mode battleroyal là người chơi sẽ cố gắng sống sót đến cuối cùng trong khi bản đồ ngày càng
Trang 16Ảnh 1: Các mode chơi hiện tại
Ảnh 2: Một trận đấu trong game
2 Các tính năng được tham gia thực hiện
2.1 Tính năng mở hộp hero trên trang marketplace
Tính năng hiển thị hộp hero, sau khi user chọn vào mở hộp thì sẽ xuất hiện một hero random.
Trang 17Ảnh 3: một hộp hero giáng sinh
Ảnh 4: animation card hero
Trang 18Ảnh 5: Khi hero xuất hiện
Ảnh 6: Thông tin hero
2.2Tính năng nhận thưởng sau khi kết thúc battle
Tính năng giúp hiển thị kết quả trận đấu và hiển thị phần reward của người chơi nhận được dựa trên kết quả của trận đấu Màn hình kết thúc trận đấu sẽ bao gồm thông tin về điểm, số mạng giết và chết, các thành tích người chơi đạt được trong trận đấu Màn hình reward sẽ bao gồm các thông tin về mức điểm hạng, phần thưởng của user.
Trang 19Ảnh 7: Màn hình kết thúc trận đấu
Ảnh 8: Màn hình nhận thưởng
2.3 Tính năng chọn game mode ngoài màn hình Menu
Trang 20Ảnh: màn hình chọn game mode
2.4 Tính năng kết bạn và mời bạn tham gia party
Tính năng cho phép người chơi tìm kiếm và kết bạn với nhau, đồng thời cho phép người chơi mởi bạn mình tham gia vào party để chơi cùng nhau, giúp tang hứng thú cho trò chơi
Ảnh 9: Màn hình xem danh sách bạn bè
Trang 22TÀI LIỆU THAM KHẢO
Unity 3D
https://docs.unity3d.com/Manual/index.html
Trang 23TỔNG KẾT
Như vậy, chỉ trong vòng hơn 2 tháng thực tập, em đã được tham gia vào quá trình thựchiện một game với quy mô lớn Các tính năng em được giao cũng hoàn thiện và đúng tiến độđặt ra ban đầu, mặc dù vẫn còn một số lỗi Em hy vọng mình sẽ khắc phục được trong thời giansắp tới
Chân thành cảm ơn sự giúp đỡ của các anh trong team developer đã hỗ trợ em nhiệt tìnhtrong suốt quá trình thực tập tại công ty Em xin cảm ơn thầy Lê Thanh Trọng đã tạo điều kiện
để em có thể tham gia khoá thực tập này