1. Trang chủ
  2. » Cao đẳng - Đại học

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

20 34 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 11,3 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 toàn diện về lập trình game 2D

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

Thực tập sinh : Trần Xuân Bắc

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

Trang 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ọ Ngoà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 khoá 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ị Đoà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ể hoà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

Trang 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à ngoà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

Trang 4

NHẬN XÉT CỦA KHOA

Trang 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

Trang 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

Trang 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 toà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 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, 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

Ngoà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, 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ách nhiệm hơn

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

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

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

Trang 8

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 Ngoà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

- 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ả :

- 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

- Ngoà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

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

Trang 9

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

- 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ả :

- 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

- 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

Trang 10

Nội dung : Hướng dẫn build game cho nền tảng android

- Định nghĩa về Android:

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

Trang 11

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

- 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

Anh Lê Thành Đạt

2

- 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#

Anh Đinh Hoàng Khang

3

- Tìm hiểu về UNITY3D

- Thực hành tạo một trò chơi cơ bản

Thanh Cao Anh Đinh Hoàng Khan

4

- Tìm hiểu về Android

- Thực hành build game trên nền tảng android

Thanh Cao

5

Giai đoạn Alpha(1):

- Lên ý tưởng trò chơi

- Tìm kiếm thể loại và

xu hướng game

Thanh Cao

6

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

Anh Đinh Hoàng Khang

Trang 12

Giai đoạn Alpha(3):

- Code hiển thị hệ thống chuồng trại

- Lưu dữ liệu vào bộ nhớ

- Tính toán và load

dữ liệu trong khi người chơi không

mở trò chơi

Anh Đinh Hoàng Khang

8

Giai đoạn Beta và giai đoạn kết thúc, báo cáo :

- 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

Thanh Cao

Trang 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 toán của người chơi

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 luôn được hoạt động

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

Trang 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 nuôi đó

Chuồng nuôi

Mỗi ô chuồng nuôi 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

Trang 15

Vật nuôi

Có 6 chuồng nuôi và mỗi chuồng nuôi 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 nuôi 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 nuôi sẽ đứng yê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 nuôi 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ợ

Trang 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 xuyên 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

Trang 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 toá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:

- Hoàn thành các scene: Loading và GamePlay

Trang 18

- Cân bằng game (70%)

- Tạo hệ thống chợ buôn bán

- 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

Trang 19

TÀI LIỆU THAM KHẢO

- DoTween:

http://dotween.demigiant.com/getstarted.php

- Shader Effect:

https://github.com/mob-sakai/UIEffect

- PlayerPref:

https://docs.unity3d.com/ScriptReference/PlayerPrefs.html

- Learn UNITY3D:

https://learn.unity.com/

- Lập trình UNITY3D:

https://codelearn.io/sharing/lap-trinh-game-voi-unity-nhu-the-nao-phan-1

Trang 20

TỔNG KẾT

Như vậy, chỉ trong vòng một tháng ngắn ngủi, nhóm đã kịp hoà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ể hoà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ày đăng: 05/09/2021, 21:00

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w