Tải bản đầy đủ (.doc) (20 trang)

Báo cáo thực tập lập trình GAME 2d trên nền tảng ANDROID với UNITY3D

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (596.32 KB, 20 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

LẬP TRÌNH GAME 2D TRÊN
NỀN TẢNG ANDROID VỚI UNITY3D

Công ty thực tập

: Anttizen

Người phụ trách

: Lê Thành Đạt

Thực tập sinh

: Trần Xuân Bắc

TP. Hồ Chí Minh, tháng 07 năm 2020

Người phụ trách: Lê Thành Đạt
Trần Xuân Bắc


2

LỜI CẢM ƠN



Đầu tiên, em xin gửi lời cảm ơn đến công ty Anttizen và đặc biệt là anh Lê Thành Đạt,
giám đốc công ty, đã cho em cơ hội được thực tập tại công ty.
Thời gian được thực tập tại Anttizen thật ngắn ngủi, chỉ có 2 tháng, nhưng đã giúp em
học hỏi được rất nhiều điều bổ ích, đồng thời rèn luyện kỹ năng lập trình C#, thiết kế hướng đối
tượng và làm việc nhóm.
Thực tập khơng chỉ để “code”, Anttizen đã cho chúng em cơ hội được gặp gỡ với những
bậc tiền bối, tiếp xúc với các bậc đàn anh, đàn chị đi trước và được nghe chia sẻ kinh nghiệp từ
họ. Ngồi ra chúng em cịn được tham dự các buổi trainning mỗi tuần 1 lần, cùng với các hoạt
động ngoại khố vơ cùng hấp dẫn giúp em nhận ra rằng “đi làm không phải chỉ cắm đầu vào
chiếc máy tính”.
Em xin gửi lời cảm ơn đến chị Đồn Thị Thu Thương, trưởng phịng Nhân sự, đã giúp đỡ
nhóm thực tập sinh rất nhiệt tình và vui vẻ, tổ chức các hoạt động, luôn tạo không khí vui tươi
cả khi thảo luận trong cơng ty và khi ở các hoạt động ngoại khoá.
Em xin gửi lời cám ơn đến các anh trong ban training:
- Anh Nguyễn Thanh Cao
- Anh Đinh Hoàng Khang
đã training, hỗ trợ kỹ thuật về C# và Unity3D rất nhiều, giúp em cải thiện rất nhiều về kỹ năng
lập trình, kỹ năng sử dụng Framework, các kỹ năng tổ chức nhóm, trình bày, báo cáo,… giúp
chúng em có thể hồn thành đợt thực tập của mình.
Cuối cùng, em xin cảm ơn các thầy/cơ trong khoa Công nghệ Phần Mềm đã tạo điều kiện
để em thực hiện bài báo cáo này.

Trần Xuân Bắc
Tp.HCM, tháng 7 năm 2020

Người phụ trách: Lê Thành Đạt
Trần Xuân Bắc



3

LỜI MỞ ĐẦU
Phát triển game đang trở thành một ngành công nghiệp quan trọng chiếm tỉ lệ không nhỏ
trong công nghiệp phát triển phần mềm. Ngày càng có nhiều cơng ty đầu tư vào ngành công
nghiệp này, không chỉ ở mảng PC mà còn ở thị phần game trên nền tảng di động để đáp ứng nhu
cầu giải trí cho người dùng trên toàn thế giới.

Một số tựa game được rất nhiều người biết đến
Tuy không phải là quốc gia đứng đầu trong ngành công nghiệp game, nhưng Việt Nam
cũng góp phần khơng nhỏ vào việc phát triển game cung ứng cho thị trường trong và ngồi
nước.
Chính vì thị trường đang rất cần nguồn nhân lực trẻ phát triển game nên em mong muốn
định hướng bản thân theo con đường làm game chuyên nghiệp trong tương lai. Do đó, em đã
đăng kí thực tập hè tại cơng ty Anttizen với mong muốn tích lũy được thêm nhiều kinh nghiệm
cho bản thân cũng như được học tập và làm việc trong một môi trường chuyên nghiệp và hiện
đại.

Người phụ trách: Lê Thành Đạt
Trần Xuân Bắc


4

NHẬN XÉT CỦA KHOA
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................

.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................

Người phụ trách: Lê Thành Đạt
Trần Xuân Bắc


5

MỤC LỤC

Mục lục
Chương 1: Giới thiệu công ty thực tập..................................................................................................6
1. Giới thiệu công ty Anttizen..................................................................................................................6
2. Sản phẩm của công ty.........................................................................................................................6
Chương 2: Nội dung thực tập.................................................................................................................7
1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty......................................................................7
2. Nghiên cứu kỹ thuật............................................................................................................................7
2.1 Các cơng cụ làm việc....................................................................................................................7

2.2 Tìm hiểu ngơn ngữ C# nâng cao..................................................................................................7
2.3 Lập trình game 2D với UNITY3D..................................................................................................8
2.4 Các phần mềm hỗ trợ....................................................................................................................9
2.5 Build game chạy trên nền tảng android........................................................................................9
3. Thực hiện project...............................................................................................................................10
4. Lịch làm việc......................................................................................................................................11
Chương 3: Chi tiết về project................................................................................................................13
1. Giới thiệu về game............................................................................................................................13
2.1 Bối cảnh.......................................................................................................................................13
2.1 Cách chơi.....................................................................................................................................13
2. Thực hiện...........................................................................................................................................17
3. Kế hoạch............................................................................................................................................18
Tài liệu tham khảo...................................................................................................................................19
Tổng kết...................................................................................................................................................20

Người phụ trách: Lê Thành Đạt
Trần Xuân Bắc


6

Chương 1: Giới thiêu công ty thực tập

1. Giới thiệu công ty Anttizen
Anttizen là một công ty khởi nghiệp, hoạt động trong lĩnh vực công nghệ thông
tin. Thời gian đầu thành lập công ty tập trung phát triển phần mềm trên Windows và
webapp. Cuối năm 2019 Anttizen mở rông thêm lĩnh vực trí tuệ nhân tạo và game.

2. Sản phẩm của công ty
Công ty hiện tại đang tập trung hướng đến game thể loại esports và casino và hiện

đang phát hành trên Google Play

Một số game của công ty đã được phát hành

Người phụ trách: Lê Thành Đạt
Trần Xuân Bắc


7

Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “Lập trình game2D trên nền tảng android với Unity3D” nhằm
mục đích giúp sinh viên thực tập được đào tạo tồn diện về lập trình game 2D trên Android,
đồng thời rèn luyện những kỹ năng mề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 chun 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, q trình thành lập và phát triên
(như đã nhắc đến ở trê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 .
Ngồi ra, thực tập sinh cịn được giới thiệu về cách thức làm việc trong công ty
như thời gian đi làm, các quy định cần phải tuân thủ, cách sử dụng email trong công
việc…
Kết quả : Hiểu thêm về cơng ty Anttizen, q 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ách
nhiệm hơn.


2. Nghiên cứu kỹ thuật
2.1.

2.2.

Các cơng cụ làm việc
Thời gian : 4 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, supervisor đã hướng dẫn thực tập sinh tìm hiểu về các cơng
cụ sẽ giúp ích cho trong công việc sau này. Một số phần mềm trong số đó như
Soure Tree – sử dụng để commit source trong nhóm, Jira – ghi task, phân chia cơng
việc nhóm, Visual Studio Code 2019, Unity3D
Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả : Lập trình sử dụng các cơng cụ miễn phí, giúp dễ dàng kết hợp các công cụ
với nhau, so với việc dung các IDE.
Tìm hiểu ngơn ngữ C# nâng cao
Thời gian : 5 ngày (1 tuần)
Nội dung : Được training về các kỹ thuật C# nâng cao, những kiến thức quan trọng
cho việc tối ưu trên Android.
- Lập trình hướng đối tượng
Các kiến thức cơ bản về lập trình hướng đối tượng như khái niêm, các đặc tính
như tính kế thừa, tính đóng gói, tính ảo hóa, tính đa hình. Ngồi ra, thực tập sinh
cịn được hướng dẫn về cách thiết kế lớp cho các đối tượng game.

Người phụ trách: Lê Thành Đạt
Trần Xuân Bắc


8


-

Biến Instance(Monosingeton):
Biến Instance là môt phần rất quan trọng trong lập trình game, vì cần phải sử dụng
để gọi giữa các object.
- Quản lý bộ nhớ
Thực tập sinh sẽ được hướng dẫn về cách cấp phát, quản lý bộ nhớ sao cho tối ưu,
tránh rò rỉ bộ nhớ, một trong những phần rất quan trọng trong lập trình game trên
điện thoại, vì bộ nhớ trên điện thoại khơng thể lớn như trên máy tính được.
Save và Load dữ liệu đã lưu trên bộ nhớ
- Linq
Hiểu và sử dụng một số hàm sắp xếp
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ả :
-

2.3.

Nâng cao kỹ năng lập trình với ngơn ngữ C#.
Có được những kiến thức quan trọng cho việc lập trình game mobile sau này.
Ngồi ra cịn được biết thêm một số quy tắc trong việc viết code sao cho đúng
chuẩn, dễ đọc, dễ hiểu.

Lập trình game 2D với UNITY3D
Nội dung: Các kiến thức cơ bản về UNITY3D để có thể làm ra một game đơn giản.
-

Các thành phần trong project.

Hiểu về scene game, scripts game, asset game và resource, cách tổ chức và đặt tên
các thành phần trong project

-

Monobehavier(component transform và rect transform):
Hiểu cách hoạt động của các object và các component về position, vị trí position
theo scene hay theo tọa độ word

-

Shader
Là các phép biến đổi vertex, color để cho ra những hiệu ứng đặc biệt.

-

DoTween
Di chuyển thay đổi tọa độ position, hình ảnh, scale, nhằm tạo effect UI game

Người phụ trách: Lê Thành Đạt
Trần Xuân Bắc


9

-

File config (ScriptObject)
Là một file model tĩnh. Nó chứa thơng tin, chỉ số của game


-

PlayerPref :
Giúp lưu dữ liệu vào bộ nhớ máy

Thực hiện :
-

Tham gia đầy đủ các buổi trainning.
Làm các bài tập thực hành làm một số game đơn giản: Flappy Bird, 2 Car
Tìm kiếm tài liệu trên mạng để tìm hiểu thêm.

Kết quả :

2.4.

-

Có thể tạo ra một trò chơi đơn giản với UNITY3D

-

Biết thêm được nhiều kiến thức về việc làm giao diện, xử lý game giúp cho việc
phát triển lập trình game sau này

Các phần mềm hỗ trợ
-

Source Tree (GitLab):
Lưu source và commit source giữa các thành viên trong team


-

Slack:
Chat, liên lạc trong team

-

Jira:
Lưu task và quản lý tiến độ project

-

Blue stack, nox:
Một số chương trình giả lập test game

2.5.

Build game chạy trên nền tảng android
Nội dung : Hướng dẫn build game cho nền tảng android
-

Định nghĩa về Android:

Người phụ trách: Lê Thành Đạt
Trần Xuân Bắc


10


Android là một tập hợp phần mềm (software stack) dành cho các thiết bị di động,
bao gồm hệ điều hành, phần mềm trung gian (middleware)và các ứng dụng chủ
chốt (key applications). Google Inc. đã mua lại phát triển ban đầu của phần mềm
từ Android Inc., năm 2005. Hệ điều hành di động của Android dựa trên nền tẳng
Linux
-

Thêm một số thư cần thiết: android SDK, android JDK, NDK

-

Tìm hiểu kích thước các màn hình và cài đặt tùy biến game cho các kích thước
màn hình khác nhau

-

Build và cài đặt build một trò chơi trên nền tảng android

Thực hiện :
-

Tham gia đầy đủ các buổi training.
Tạo ra trò chơi cơ bản và có thể cài đặt và chạy trên điện thoại android

Kết quả:
-

Đã có thể tạo ra trị chơi cơ bản và cài đặt trên nền tảng andoid.

3. Thực hiện project

Sau một tháng được training và thực hành, thực tập sinh đã nắm được những kiến thực
cơ bản về C#, UNITY3D, Android. Trong tháng thứ hai, trainer đã hướng dẫn thực tập
sinh áp dụng những kiến thức đã học để thực hiện một project game 2D trên Android.
Chi tiết đồ án sẽ được nói ở phần sau.

Người phụ trách: Lê Thành Đạt
Trần Xuân Bắc


11

4. Lịch làm việc

Tuần

Cơng việc

Người hướng dẫn

Tìm hiểu về cơng ty,
cách tổ chức của
công ty.
- Làm quen với các
công cụ làm việc
trong cơng ty.
- Học cách trao đổi,
làm việc nhóm.
- Tìm hiểu ngơn ngữ
lập trình C# nâng
cao

- Thực hành C#
- Làm bài test C#
- Tìm
hiểu
về
UNITY3D
- Thực hành tạo một
trị chơi cơ bản
- Tìm
hiểu
về
Android
- Thực hành build
game trên nền tảng
android
Giai đoạn Alpha(1):
- Lên ý tưởng trị chơi
- Tìm kiếm thể loại và
xu hướng game
Giai đoạn Alpha(2):
- Viết các lớp quản lý
Object, các lớp
- Xây dựng hệ thống
chuồng trại và quản
lý chuồng trại
Giai đoạn Alpha(3):
- Code hiển thị hệ
thống chuồng trại
- Lưu dữ liệu vào bộ


Anh Lê Thành Đạt

-

1

2

3

4

5

6

7

Mức
độ
hoàn
thành

Nhận xét của người
hướng dẫn

Anh Đinh Hoàng
Khang

Anh

Nguyễn
Thanh Cao
Anh Đinh Hoàng
Khan
Anh
Nguyễn
Thanh Cao

Anh
Nguyễn
Thanh Cao
Anh Đinh Hoàng
Khang

Anh Đinh Hoàng
Khang

Người phụ trách: Lê Thành Đạt
Trần Xuân Bắc


12

nhớ
Tính tốn và load
dữ liệu trong khi
người chơi khơng
mở trị chơi
Giai đoạn Beta và giai Anh
Nguyễn

đoạn kết thúc, báo cáo : Thanh Cao
- Fix bug
- Cân bằng hệ thống
chỉ số và tiền trong
game
- Báo cáo cuối đợt
thực tập.
-

8

Người phụ trách: Lê Thành Đạt
Trần Xuân Bắc


13

Chương 3: Chi tiết về project

1. Giới thiệu về game
Game lấy ý tưởng từ thể loại Idle Farm đang thịnh hành trên Google Play, từ đó xây
dựng một nơng trại đơn giản và khá thực tế, kết hợp giữa việc trị chơi tự hoạt động với
việc thao tác, tính tốn của người chơi.
1.1.

Bối cảnh
Người chơi sẽ trở thành một người chủ của trang trại vật nuôi, người chơi phải cố
gắng phát triển trang trại của minh nhất và luôn duy trì số tiền để đảm bảo trang
trại vẫn ln được hoạt động


1.2.

Cách chơi
Mơ tả
Người chơi sẽ bắt đầu trị chơi với trang trại nuôi gà với số lượng gà ban đầu,
người chơi sẽ chăm sóc chúng và chúng sẽ đẻ ra trứng, người chơi thu hoạch
trứng, trứng có thể để bán hoặc trao đổi ở chợ để thành các vật phẩm hay loại
thức ăn khác

Người phụ trách: Lê Thành Đạt
Trần Xuân Bắc


14

Kinh nghiệm
Cứ mỗi hoạt động, người chơi sẽ được nhận một số kinh nghiệm và khi đủ kinh
nghiệm các ô nuôi các loại vật nuôi tiếp theo sẽ được mở và người chơi được
phép dùng vàng để mở các ô vật ni đó

Chuồng ni
Mỗi ơ chuồng ni sẽ có thể nâng cấp và số lần nâng cấp tối đa tới level 6, và
mỗi lần nâng cấp sẽ cần một khoản vàng, sau khi nâng cấp số lượng ở khay thức
ăn sẽ được tăng, trữ lượng trứng được tang, và đồng thời số lượng vật nuôi cũng
sẽ được tang theo

Người phụ trách: Lê Thành Đạt
Trần Xuân Bắc



15

Vật ni
Có 6 chuồng ni và mỗi chuồng ni tương ứng với một loại vật nuôi, sắp xếp
từ: gà, vịt, heo, dê, cừu, ong
Tương ứng với mỗi vật nuôi sẽ có loại thức ăn khác nhau
Vật ni sẽ có nhiều trạng thái khác nhau: Ăn, đẻ, di chuyển, đứng yên, đói,
bệnh, buồn

Ở những trạng thái đợi người chơi tương tác (đói, bệnh, buồn) vật ni sẽ đứng
n đợi cho đên khi người chơi có hành động tương tác phù hợp với trạng thái đó
(ví dụ: cho ăn, cho uống thuốc)
Hệ thống item và vật phẩm
Có 2 loại item: item thuốc dùng khi vật nuôi bị bệnh, và item trái tim dùng khi
vật ni buồn
Có trứng(vật phẩm thu hoach được) của từng loại vật nuôi và thức ăn của từng
loại vật nuôi

Chợ
Người phụ trách: Lê Thành Đạt
Trần Xuân Bắc


16

Hệ thống giá chợ sẽ được thay đổi sau 30 phút, nhằm mục đích giúp người chơi
thường xun vào trị chơi để bán hay mua vật phẩm sao cho có lợi nhất

Hệ thống mua, bán: mua và bán vật phẩm sẽ phù thuộc vào bảng giá hiện tại của
chợ


Hệ thống trao đổi vật phẩm: thay vì bán vật phẩm, người chơi có thể sử dụng
trứng, các nơng sản để trao đổi item hay thức ăn cho vật nuôi

Người phụ trách: Lê Thành Đạt
Trần Xuân Bắc


17

2. Thực hiện
2 thành viên của team:
-

Hà Đăng Hoàng
Trần Xuân Bắc

Và sự giúp đỡ tận tình của team trainer Anttizen.

3. Kế hoạch
Giai đoạn Alpha:
-

UI Scene: Loading, GamePlay
Hiển thị danh sách nông trại
Viết hệ thống nhân vật và chuồng trại
Viết hệ thống data và config
Lưu dữ liệu data
Tính tốn dữ liệu khi người chơi mở game
Tạo hệ thống tiền và kinh nghiệm trong game

Đã chơi được, chưa cân bằng game
Thiếu một số dialog phụ

Kết quả :
-

Hầu hết các tính năng trên đã được thực hiện
Hệ thống được liên kết với file config nhằm có thể dễ dàng thay đổi thơng số
game hay hình ảnh

Giai đoạn Beta:
-

Hồn thành các scene: Loading và GamePlay
Cân bằng game (70%)
Tạo hệ thống chợ buôn bán

Người phụ trách: Lê Thành Đạt
Trần Xuân Bắc


18

-

Tạo hệ thống tiền

Kết quả :
-


Đã hoàn thành toàn bộ những tính năng trên.

-

Game chưa được tối ưu cân bằng

Người phụ trách: Lê Thành Đạt
Trần Xuân Bắc


19

TÀI LIỆU THAM KHẢO
-

DoTween:
/>Shader Effect:
/>PlayerPref:
/>Learn UNITY3D:
/>Lập trình UNITY3D:
/>
Người phụ trách: Lê Thành Đạt
Trần Xuân Bắc


20

TỔNG KẾT

Như vậy, chỉ trong vòng một tháng ngắn ngủi, nhóm đã kịp hồn thành một game 2D

trên nền tảng android. Game đã có khá đầy đủ các tính năng đã đề ra ban đầu. Do thời gian có
hạn nên tính năng game cịn đơn giản, hình ảnh chưa được đẹp như mong đợi. Nhưng do game
phát triển theo framework có tính kế thừa nên sau này khi có thời gian sẽ có thể phát triển lên
mức cao hơn.
Chân thành cảm ơn sự giúp đỡ của các anh chị nhóm trainer Anttizen, sự nỗ lực của
nhóm để có thể hồn thành game này. Cảm ơn thầy Đỗ Duy Thanh đã giúp em hoàn thành bài
báo cáo này.

Người phụ trách: Lê Thành Đạt
Trần Xuân Bắc



×