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

Báo cáo thực tập lập trình GAME ORDINAL NUMBER bằng UNITY

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 (616.19 KB, 18 trang )

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
ORDINAL NUMBER BẰNG UNITY

Cơng ty thực tập

: CGT

Người phụ trách

: Nguyễn Văn Sinh

Thực tập sinh

: Bùi Trần Uyên Quang

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

0


LỜ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. Đặc biệt là những công ty trẻ là nơi phát triển của những ý
tưởng mới mẻ và táo bạo.
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, em đã xin được thực tập
tại công ty CGT, một môi trường làm việc năng động, sáng tạo, là nơi sẽ giúp em thực hiện
được dự định này.

1


LỜI CẢM ƠN

Trân trọng gửi lời cảm ơn công ty CGT đã tạo điều kiện cho em có cơ hội được thực tậ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 nhóm trainer, nhóm
thực tập chúng em đã tiếp thu được những kiến thức quan trọng để có thể làm được một game
trên nền tảng Unity với những yêu cầu của một sản phẩm thực tế. Chân thành cảm ơn các anh
chị trong nhóm trainer đã bỏ ra nhiều thời gian,cơng sức để hướng dẫn chúng em hoàn thành
đợt thực tập này.
Đặc biệt cảm ơn anh Nguyễn Văn Sinh, đã training về kĩ thuật cũng như hướng dẫn, giúp
đỡ cho chúng em trong việc làm quen với cách thức làm việc trong thực tế của công ty cũng
như hỗ trợ trong về cách làm báo cáo, lên kế hoạch và những kỹ năng khác để nhóm có thể hồn
thành sản phẩm trong thời gian qua.
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ài báo cáo này.

Bùi Trần Uyên Quang
TP. Hồ Chí Minh, tháng 6 năm 2020

2


NHẬN XÉT CỦA KHOA

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

3



MỤC LỤC
LỜI MỞ ĐẦU............................................................................................................................................1
LỜI CẢM ƠN............................................................................................................................................2
MỤC LỤC..................................................................................................................................................4
Chương 1: Giới thiêu công ty thực tập....................................................................................................5
1.

Giới thiệu công ty CGT.................................................................................................................5

2.

Sản phẩm của cơng ty...................................................................................................................5

Chương 2: Nội dung thực tập..................................................................................................................6
1.

Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty..............................................................6

2.

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

Các cơng cụ làm việc..............................................................................................................6

2.2

Tìm hiểu thiết kế giao diện 2D trên Unity.............................................................................6

2.3


Xử lý hiệu ứng với DOTween................................................................................................7

3.

Thực hiện project..........................................................................................................................9

4.

Lịch làm việc..................................................................................................................................9

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

Giới thiệu về game.......................................................................................................................11
1.1.

Gameplay..............................................................................................................................11

1.2.

Hệ thống level up.................................................................................................................12

2.

Thực hiện.....................................................................................................................................14

3.

Kế hoạch.......................................................................................................................................14


TÀI LIỆU THAM KHẢO......................................................................................................................16
TỔNG KẾT.............................................................................................................................................17

4


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

1. Giới thiệu công ty CGT.
CGT là một công ty chuyên về đào tạo đồ họa game, anime. Tuy nhiên, trước sự
bùng nổ của thị trường mobile game và những nguồn lực sẵn có, CGT bắt đầu lấn
sang lĩnh vực phát triển game, chủ yếu trên nền tảng Android và iOS thông qua
engine là Unity.
Với việc là một cơng ty cịn khá mới mẻ trong thị trường game nói chung và thị
trường mobile game nói riêng, CGT hướng đến các dịng game puzzle, thiết kế
không quá phức tạp nhưng đảm bảo chất lượng để đủ sức cạnh tranh với các đối thủ
khác.

2. Sản phẩm của công ty.
Một số sản phẩm tiêu biểu được thực hiện bởi đội ngũ phát triển game của CGT
có thể kể đến như Block Puzzle Jewel, Solitaire Tripeaks, Wood Block, …

5


Chương 2: Nội dung thực tập.
Trong đợt thực tập, nhóm được giao cho đề tài thực hiện lại tựa game “Ordinal Number”
thông qua việc sử dụng engine Unity, đồ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 chuyên nghiệp, năng động, sáng tạo.

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
(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 các công cụ giao tiếp
và quản lý trong công việc, …
Kết quả : Hiểu thêm về cơng ty CGT. Có thêm các kỹ năng về việc sử dụng các công cụ
hỗ trợ giao tiếp và quản lý task 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.1Các cơng cụ làm việc.
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ư
SourceTree – sử dụng cho việc quản source code và project, Shoebox – tool hỗ trợ tạo
bitmap font, xử lý tạo sprite sheet và một số tác vụ khác cho các file liên quan đến
phần hình ảnh, Slack – công cụ hỗ trợ giao tiếp giữa các thành viên trong nhóm,
Trello – phần mềm giúp quản lý danh sách công việc đã, đang và sẽ thực hiện cũng
như các dự án có liên quan.
Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả : Các cơng cụ sử dụng trong quy trình của công ty tương đối giống với một
số công cụ sinh viên đã từng sử dụng trong quá trình học tập tại trường nên có thể
làm quen nhanh chóng.


2.2Tìm hiểu thiết kế giao diện 2D trên Unity.
Nội dung : Được training về các kỹ thuật trong thiết kế và xử lý giao diện 2D Unity.
- Xử lý trên canvas:
Phân biệt được các đối tượng dạng UI (text, sprite, …) nằm trong canvas, cách xử
lý các đối tượng UI này. Điều chỉnh để đảm bảo canvas đó có tính responsive,
khơng bị tình trạng vỡ hình ảnh khi chạy game trên nhiều thiết bị.
- Xử lý ngoài canvas:
6


Biết được điểm khác biệt ảnh hưởng đến component transform nói riêng và các
thành phần khác nói chung khi các đối tượng không nằm trên một canvas. Ảnh
hưởng lẫn nhau khi trong cùng một scene có cả các đối tượng nằm và không nằm
trên canvas. Hiểu rõ được khi nào nên và khơng nên để đối tượng trên canvas.
- Raycast:
Tìm hiểu về kỹ thuật raycast, cách cài đặt và các trường hợp cần sử dụng đến
raycast. Sử dụng phối hợp raycast cùng với canvas trong cùng một game để tạo ra
cả phần UI và phần xử lý có chất lượng tốt nhất. Dùng kỹ thuật raycast để bắt các
sự kiện đặc biệt device như tap ở hai vị trí khác nhau và xử lý các sự kiện đó.
- Camera:
Biết được cách xử lý camera để hoạt động tốt với raycast hay canvas khi được sử
dụng trong các project. Điều chỉnh camera để đảm bảo reponsive cho game.
Thực hiện :
- Tham gia đầy đủ các buổi training của công ty.
- Thực hiện các kiến thức được trên các project mẫu được giao tương ứng.
Kết quả :
-

Nâng cao kỹ năng lập trình với Unity.
Có được những kiến thức quan trọng cho việc lập trình game mobile sau này.

Nắm được cơ bản cách để thiết kế giao diện cho mobile game.

2.3Xử lý hiệu ứng với DOTween.
Nội dung: Biết được những kiến thức cơ bản để sử dụng thư viện DOTween cả trong
xử lý các thành phần của UI và cả xử lý logic trong game.
-

Khái niệm cơ bản về DOTween.
DOTween là một animation engine hỗ trợ việc thực hiện các thao tác liên quan
đến xử lý animation cho các đối tượng hình ảnh trong Unity thông qua việc sử
dụng code, hoặc chỉnh sửa thơng số trong component.
Ngồi ra, có thể coi DOTween như một thư viện bởi những hàm mà nó cung cấp
giúp cho việc thực hiện animation không cần phải thông qua animator và
animation như cách thông thường ở Unity, thay vào đó, các state và q trình thực
hiện có thể dựa vào các hàm được DOTween cung cấp.

-

Các phương thức tác động lên transform:
Nắm bắt được các phương thức tác động lên chỉ số của transform và
RectTransform cũng như ứng dụng vào thực tế trong việc thiết kế UI và phối hợp
với một số logic game. Trong đó, phân biệt được xử lý trên tọa độ local và tọa độ
world để kết hợp với xử lý logic bằng raycast.
7


-

Các phương thức tác động lên màu của component hình ảnh:
Hiểu rõ được cách thức hoạt động của các phương thức tác động lên màu của các

component liên quan đến hình ảnh nhằm ứng dụng trong việc tạo nhiều hiệu ứng
hình ảnh hơn trong game, đồng thời là kiến thức nền tảng để phối hợp với phần
sequence phía sau, tạo ra hiệu ứng hình ảnh tốt nhất, tận dụng tối đa khả năng của
DOTween.

-

DOVirtual:
Bao gồm những phương thức hỗ trợ việc tác động yếu tố thời gian đến một đoạn
xử lý như trì hỗn việc gọi một đoạn xử lý trong một khoảng thời gian hay cho
một giá trị đối với đoạn xử lý đó chạy từ mốc này đến mốc kia trong khoảng thời
gian cho trước.

-

Sequence:
Cho phép điều khiển một chuỗi các Tweeners hay các xử lý dùng DOTween trên
một hay nhiều đối tượng, xem chuỗi DOTween này như một mảng động. Mỗi
Tweener cũng có những phương thức tác động tới việc thực hiện animation của nó
như tạm dừng, tua ngược hay loop.
Ngồi ra, các Tweener cịn có thể điều khiển mức độ thay đổi các giá trị của
animation thông qua phần phương thức SetEase.

Thực hiện :
-

Tham gia đầy đủ các buổi trainning.
Thực hiện thiết kế các giao diện cho sản phẩm thông qua việc sử dụng thư viện
DOTween.
Áp dụng DOTween vào phần xử lý của các dự án thay thế cho việc sử dụng

animation truyền thống.

Kết quả :
-

Hiểu được những khái niệm cơ bản trong thiết kế giao diện với DOTween.
Tạo được giao diện cũng như tối ưu hóa phần xử lý cho một số dự án thơng qua
DOTween.

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ề sử dụng Unity và các công cụ liên quan. Trong tháng thứ hai, trainer đã hướng
8


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 hoàn
chỉnh.
Chi tiết đồ án sẽ được nói ở phần sau.

4. Lịch làm việc.

Tuần

1

2

3

4


5

Mức
độ
Cơng việc
Người hướng dẫn
hồn
thành
- Tìm hiểu về cơng ty, Anh Nguyễn Văn 100%
cách tổ chức của Sinh.
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 qua
email và các cơng
vụ khác.
- Tìm hiểu thiết kế Anh Nguyễn Văn 90%
giao diện 2D trên Sinh.
Unity.
- Thực hiện các kiến
thức đã học trên
một số project mẫu
được giao.
- Tìm
hiểu
về Anh Nguyễn Văn 90%
DOTween.

Sinh.
- Thực hành thiết kế
giao diện và viết xử
lý có ứng dụng
DOTween.
- Tìm hiểu về tích Anh Nguyễn Văn 85%
hợp package để Sinh.
chạy Admod, tích
hợp Facebook SDK
và Google Play
Game Services.
- Tích
hợp
các
package vào project
đã thực hiện, sử các
lỗi phát sinh.
Giai đoạn phát triển 1:
Anh Nguyễn Văn 100%
- Lên kế hoạch.
Sinh.

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

9


-


6

7

8

Viết các xử lý sườn.
Thống nhất với
artist
số
lượng
sprites cần thiết.
Giai đoạn phát triển 2:
- Hoàn thiện hệ thống
level up.
- Thực hiện hoàn
chỉnh giao diện.
Giai đoạn Alpha:
- Thay đổi cách nhận
input

mode
ordinal cho phù hợp
với tập users của
sản phẩm.
- Thêm hai mode
cộng và trừ.
- Cải thiện các hiệu
ứng particle.
Giai đoạn Beta và giai

đoạn kết thúc, báo cáo :
- Cải thiện UI, UX và
hiệu ứng của game.
- Fix bug logic và các
bug hiệu ứng gây
khó chịu cho users.
- Báo cáo cuối đợt
thực tập.

Anh Nguyễn Văn 100%
Sinh.

Anh Nguyễn Văn 100%
Sinh.

Anh Nguyễn Văn 95%
Sinh.

10


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

1. Giới thiệu về game
Ordinal Number là một game toán đơn giản hướng đến đối tượng users là trẻ em dưới
12 tuổi, vừa tạo ra một trị chơi giúp các em nhỏ có thể giải trí nhưng đồng thời có thể
luyện thêm về phản xạ tính tốn.

1.1.


Gameplay
Thiết kế ban đầu game sẽ gồm 4 chữ số khác nhau trên màn hình được sinh ra
ngẫu nhiên, người chơi cần chỉ ra chuỗi từ nhỏ đến lớn của 4 chữ số đó thơng qua
việc chạm lần lượt các chữ số.
Ngồi ra, game cịn hai chế độ chơi khác là cộng và trừ, xuất hiện một phép toán
tương ứng và yêu cầu người chơi chọn đáp án chính xác trong 4 đáp án được đưa
ra.
Gameplay theo dạng endless tính điểm. Tất cả mode chơi đều sẽ có một đồng hồ
đếm thời gian, nếu trả lời sai (quá số lần quy định đối với chế độ cộng và trừ) hay
khơng trả lời kịp thời gian thì màn chơi sẽ kết thúc đồng thời tiến hành ghi điểm
lại nếu vượt qua số điểm cao nhất hiện tại.

Hình ảnh gameplay ở chế độ ordinal.

11


Hình ảnh gameplay ở chế độ tốn cộng và trừ.

Giao diện menu chính của game.

1.2.

Hệ thống level up.
Do là một game theo dạng endless nên cần phải thiết kế một hệ thống level up
hợp lý, tạo cho người chơi cảm giác hào hứng nhưng phải đảm bảo game không
bị quá dễ hoặc q khó. Ngồi ra cần phải đảm bảo section của game trong
khoảng vừa đủ cho người chơi cũng như trong việc hiện quảng cáo thu về doanh
thu.
12



Trước yêu cầu đó, hệ thống level up được thiết kế dựa theo hai dạng. Đối với
người chơi mới sẽ lấy một số mốc điểm cố định để phân chia độ khó, đối với
người chơi đã quen thuộc sẽ tiến hành phân chia độ khó của game tăng tiến theo
số điểm cao nhất mà người chơi đã đạt được. Từ đó game sẽ ln thay đổi độ khó
theo khả năng của người chơi, tránh tình trạng game rơi vào trạng thái q khó,
khơng thể vượt qua.

Đoạn xử lý phân cấp level.
Sau khi đã phân cấp được level hiện tại, tiến hành tăng độ khó của game bằng
cách cho khoảng giá trị random của câu hỏi tăng dần, yêu cầu người chơi phải
tính tốn nhiều hơn.

13


Đoạn xử lý thay đổi text của phép toán theo level hiện tại.

2. Thực hiện
Thành viên thực hiện Ordinal Number:
-

Bùi Trần Uyên Quang.
Dương Gia Bảo.

Và sự giúp đỡ tận tình của anh Nguyễn Văn Sinh.

3. Kế hoạch
Giai đoạn phát triển 1:

-

Viết xử lý cho core gameplay mode ordinal theo thiết kế chạm – kéo.
Hiện thực các thành phần UI cơ bản.
Tạo một số hiệu ứng particle sơ bộ.

Kết quả :
-

UI cịn sơ sài.
Hệ thống level up hiện tại chưa hồn thiện.
14


Giai đoạn phát triển 2:
-

Phát triển hệ thống tính điểm.
Phát triển sơ bộ hệ thống level up cho mode.
Hoàn thành cơ bản UI.
Tiến hành test thử gameplay.

Kết quả :
-

Các tính năng đề ra đều được hoàn thiện, chuyển sang cho bộ phận testing
gameplay design.
UI cơ bản đã hoàn thành.
Hệ thống level up cần được cải thiện thêm.


Giai đoạn alpha:
-

Thay đổi lại input cho chế độ ordinal theo dạng touch từng số theo thiết kế mới.
Thêm mode cộng.
Thêm mode trừ.

-

Cải thiện hiệu ứng particle.

Kết quả : Các tính năng mới được hoàn thành.
Giai đoạn Beta:
-

Nâng cấp UI, UX dựa vào sprites do artist cung cấp.

-

Fix bug input ở mode ordinal và một số bug hiển thị ở các mode cộng, trừ.

-

Fix các bug liên quan đến flick khung hình ở UI khi hiện các dialog.

-

Tích hợp các package hiện show quảng cáo và Google Play Game services.

Kết quả : Hoàn thành được các yêu cầu đã đề ra.


15


TÀI LIỆU THAM KHẢO

DOTween
/>
For Particle
/>
For Raycast
/>
For PlayerPrefs
/>
16


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 puzzle
chạy được trên Anroid và iOS. 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 vẫn còn chưa quá bắt mắt. 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, dễ dàng tạo ra thêm các mode chơi khác để làm phong phú nội dung.
Chân thành cảm ơn sự giúp đỡ của anh Nguyễn Văn Sinh, sự nỗ lực của bạn Dương Gia
Bảo đã góp phần hồn thành game này.

17




×