1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO THỰC TẬP LẬP TRÌNH GAME BẮN TRỨNG

28 8 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 28
Dung lượng 1,03 MB

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

Nội dung

Góp chung vào công cuộc xây dưng một nơi lý tưởng như vậy, bên cạnh các công ty lớn hàng đầu ngành Game của Việt Nam khi lấy phát hành game làm chủ đạo thì ở những studio nhỏ như studio

Trang 1

TP Hồ Chí Minh, tháng 6 năm 2022

Trang 2

Không nằm ngoài xu thế của thế giới, Việt Nam nói chung và các nhà phát triển game ở Việt Nam nói riêng luôn muốn được góp tiếng nói của mình trong cộng đồng game thế giới khi

họ luôn cố gắng đem đến những sản phẩm chất lượng ra thị trường Do vẫn còn non trẻ, Việt Nam cần thiết có một tiếng nói đi đầu để đem đến một cái viễn cảnh tươi sáng hơn cho những những bạn trẻ đang mong ước được thực hiện một tựa game trong mơ của mình nhưng bị cản trở vì hiện thực phũ phàng của ngành game Việt Nam

Góp chung vào công cuộc xây dưng một nơi lý tưởng như vậy, bên cạnh các công ty lớn hàng đầu ngành Game của Việt Nam khi lấy phát hành game làm chủ đạo thì ở những studio nhỏ như studio CGK (Công ty Cổ phầnScaleMart) nơi số nhân viên không vượt quá con số 20 nhưng sự nhiệt huyết vượt xa trăm người, nơi những con người đặt ước mơ lên trên tham vọng tiền bạc đã và đang đóng góp sức mình và mong một ngày tiếng gọi nhỏ nhoi của mình sẽ được

ai đó nghe thấy Cảm phục sự cố gắng của họ, bản thân em đã quyết định sẽ tham gia, thử một lần nhìn tận mắt cách những con người ấy quyết tâm từng ngày ra sao

Trang 3

Đặc biệt cảm ơn anh Nguyễn Công Lý đã hướng dẫn em tận tình mặc dù em còn thiếu rất

nhiều kinh nghiệm

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

Nguyễn Lương Kiên

TpHCM, ngày 16 tháng 6 năm 2022

Trang 4

4

NHẬN XÉT CỦA KHOA

Trang 5

5

Trang 6

6

MỤC LỤC

LỜI MỞ ĐẦU 2

LỜI CẢM ƠN 3

NHẬN XÉT CỦA KHOA 4

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

1.1 Công ty Cổ phần SmartScale 8

1.2 Sản phẩm của công ty 8

Chương 2 Nội dung thực tập 9

2.1 Tìm hiểu công ty 9

2.2 Nghiên cứu kỹ thuật 10

2.2.1 Công cụ trao đổi thông tin 10

2.2.2 Tìm hiểu về Cocos Creator và Javascript 10

2.3 Thực hiện bài kiểm tra kiến thức Cocos Creator và khả năng tư duy lập trình 11

2.4 Dự án game bắn trứng 12

Chương 3 Chi tiết dự án game bắn trứng 13

3.1 Thông tin chung: 13

3.2 Tóm tắt luật chơi cơ bản: 14

3.3 Công thức tính điểm 16

3.4 Trứng đặc biệt 17

3.5 Các hệ thống quản lý cốt lõi 18

3.5.1 Resource Manager: 18

3.5.2 Egg Manager: 19

3.5.3 Board Manager: 20

Trang 7

7

3.5.4 Game Manager: 20

3.6 Thuật toán xác định trứng rơi 21

3.7 Một số hình ảnh hiện tại của game 23

3.8 Kết quả 26

TÀI LIỆU THAM KHẢO 27

TỔNG KẾT 28

Trang 8

- Công ty chủ yếu thực hiện các sản phẩm và out-source cho ty mẹ

- Các sản phẩm gồm có Cánh cụt vui vẻ, Đảo tặc và một số các game casual và stimulation đang trong giai đoạn thực hiện và sắp được ra mắt trên thị trường

Trang 9

9

Chương 2 Nội dung thực tập

- Thực tập sinh được thực tập từ xa do sự cản trở của dịch Covid 19 hoành hành trong khoảng thời gian thực tập

- Các nội dung thực tập và kết quả được trao đổi giữa thực tập sinh và người phụ trách là anh Nguyễn Công Lý thông qua Telegrame hoặc Facebook Messenger

- Mỗi tuần sẽ có một ngày báo cáo lại quá trình tìm hiểu, học tập và thực hiện nội dung được trao đổi

- Thực tập sinh được hỏi người phụ trách những khuất mắt, khó khăn cần giải đáp trong quá trình học tập

- Trong quá trình thực tập tại nhà, thực tập sinh sẽ có những buổi gặp mặt trực tiếp cùng người hướng dẫn để trao đổi những khúc mắc trong quá trình thực tập

Hình thức: Đối thoại trực tiếp

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 và chủ công ty giới thiệu về công ty bao gồm các thành viên, chỗ làm việc, tiểu sử quá trình thành lập, phát triển và những sản phẩm công

ty đã tham gia sản xuất

Được nghe giới thiệu về mục đích hoạt động và các nội dung sẽ hướng tới trong tương lai và cách tổ chức của công ty

Kết quả: Hiểu rõ những khó khăn, trắc trở từ những ngày đầu thành lập từ một studio với

cái tên CGK nhưng đã được thành công do sự chăm chỉ và cần cù của đội ngũ phát triển Nhắm bắt được cách vận hành và cách thức trao đổi với người phụ trách hướng dẫn

Trang 10

10

2.2.1 Công cụ trao đổi thông tin

Nội dung : Tìm hiểu về Telegram: cách thức hoạt động, cài đặt và thực hiện một cuộc

gọi Telegram

Kết quả : Thực hiện thành công cuộc gọi nhóm giữa thực tập sinh, người phụ trách và

chủ công ty

2.2.2 Tìm hiểu về Cocos Creator và Javascript

Nội dung : Tìm hiểu các khái niệm cơ bản trong Cocos Creator và viết một báo cáo về

những gì tìm hiểu được và học kiến thức về Javascript

- Node: là đơn vị cơ bản nhất được quản lý trong Cocos Creator Các node tồn tại trong

một Scene sẽ được bố trí và biểu diễn theo dạng cây (quan hệ cha - con) Có thể theo dõi các node trên panel Node Tree Các Node cùng với các Component của chúng sẽ được render và thực thi theo thứ tự trên - xuống, cha – con

- Components: Component tạo nên ý nghĩa cho Node

▪ Render Component: Sprite, Light, Mask, MeshRenderer,… ➔ Thực hiện graphic render

▪ UI Component: Button, Label,… ➔ Hiện thị và thực hiện chức năng của một số loại UI

▪ Collider Component: BoxCollider, CircleCollider ➔ Xác định va chạm và phản hồi bằng các callback onCollisionEnter, onCollisionStay, onCollisionExit cho Script Component thuộc cùng một Node

▪ Physics Component: Collider, Joint, Rigidbody ➔ Bản chất là Physic Engine Box2D với 2D và cannon.js với 3D Mô phỏng, cài đặt các object chịu tác động của vật lý và phản hồi lại bằng các callback onBeginContact, onEndContact, onPreSolve, onPostSolve cho Script Component thuộc cùng một Node

Trang 11

11

▪ Và một số Component khác như: Animation, Camera, ParticleSystem,

AudioSource… ➔ với chức năng đúng với tên gọi của mình

▪ Custom Component (Script): Cocos Creator 2.4.7 hỗ trợ ngôn ngữ viết Script là Javascript và Typescript Về cơ bản, ta sẽ định nghĩa một Javascript Object với một số Properties định sẵn của Cocos Creator (có thể lược bỏ nếu không cần thiết)

và truyền vào phương thức cc.Class()

▪ Các Lifecycle Callbacks và thứ tự thực thi: onLoad ➔ onEnable ➔ start ➔ update ➔ lateUpdate ➔ onDisable ➔ onDestroy

- Event System: Liên lạc giữa các Node hoặc các Component bằng EventHandler component (cc.Component.eventHandler) hoặc emit/launch một event (Event

Launcher)

Kết quả :

- Thực hiện và tìm hiểu đầy đủ các nội dụng chính của Cocos Creator như trên và hoàn

thành được một bài báo cáo đã được người phụ trách hướng dẫn kiểm duyệt

- Thuần thục được ngôn ngữ lập trình Javascript khi viết Script cho Cocos Creator

- Nắm bắt được những nội dung cơ bản và tự áp dụng những demo nhỏ cho những nội

dung tìm hiểu được

2.3 Thực hiện bài kiểm tra kiến thức Cocos Creator và khả năng tư duy lập trình

Nội dung: Thực hiện bản demo game bắn trứng rồng cổ điển (Endless Mode) và đảm

bảo những mechanic chính của game gốc như: Bắn trứng màu ngẫu nhiên theo góc đã được xác định; Nổ trứng khi bắn trứng vào cụm trứng cùng màu có số lượng từ 3 trở lên; Trứng rớt khi xảy ra hiện tượng nổ Chính sách ghi điểm khi nổ được trứng, rớt trứng cũng như các Assets của trứng, particles và âm thanh thực tập sinh tự chuẩn bị và

sẽ không nằm trong đánh giá

Đường dẫn demo thực hiện:

https://github.com/AdrianNguyen-UIT/DragonEggPopClone

Nhận xét, đánh giá:

Trang 12

12

- Tổ chức các node trên editor vẫn còn lộn xộn khi không có cơ chế sinh trứng tự động

và sắp xếp các node không được tổ chức theo mong muốn của người đánh giá

- Gợi ý cách tổ chức các node sao cho dễ đọc và nhìn nhận

- Có các lỗi sau:

▪ Trứng được bắn ra khi giao tiếp với trứng trên bàn có hiện tượng đi xuyên

▪ Thuật toán xác định trứng rơi vẫn chưa biểu hiện theo đúng yêu cầu

Đường dẫn của game gốc:

https://play.google.com/store/apps/details?id=com.cua.egg.shoot&hl=en&gl=US

Hình ảnh của game gốc:

Trang 13

13

Chi tiết dự án thực hiện: Xem chương 3.

Chương 3 Chi tiết dự án game bắn trứng

3.1 Thông tin chung:

- Là tựa game làm lại tựa game Egg Shoot của Crab Studio (Chương 2 – mục 2.4) với mục đích sẽ sử dụng game bắn trứng (đã qua sửa đổi) thành một mini game trong một tựa game đang phát triển của công ty

- Các Assets của trò chơi do công ty cung cấp

- Người thực hiện: Thực tập sinh Nguyễn Lương Kiên

Trang 14

14 3.2 Tóm tắt luật chơi cơ bản:

- Khi tham gia màn chơi, người chơi điểu khiển trỏ chuột hoặc cảm ứng để điều

- Trứng để bắn sẽ có một mầu ngẫu nhiên tùy vào các màu trứng được phép có trên bàn

- Khi trứng được bắn đi: Va chạm vào hai bên tường sẽ bật ngược, thay đổi hướng x của vector di chuyển của trứng; Va chạm với trứng sẽ xác định điều kiện nổ là nếu cụm trứng sau khi va chạm xảy ra là cúm trứng cùng màu với số lượng từ 3 trở lên

sẽ xảy ra sự kiển nổ trứng)

Trang 15

15

- Sự kiện nổ trứng sẽ giúp người chơi ghi điểm theo công thức tính điểm của trò chơi

- Khi các trứng trên bàn gặp phải dây chắn ngang, người chơi sẽ có 6 giây để làm rớt

Nếu sau 6 giây mà vẫn có trứng nằm trên dây chắn ngang, game sẽ kết thúc màn chơi và ghi nhận số điểm hiện tại

Trang 16

16

tiếp theo (vàng) sẽ xuất hiện trên bàn nêu như người chơi không làm nổ quả trứng này Để làm nổ quả trứng bay người chơi chỉ cần bắn trứng hiện tại vào trứng bay thì sẽ nhận được 250 điểm Tuy nhiên quả trứng (vàng) tiếp theo sẽ bay nhanh hơn

và khó bắn trúng hơn

3.3 Công thức tính điểm

[Số trứng Nổ]: Số trứng trong cụm trứng cùng màu khi nổ

[Điểm]: Điểm số cơ bản gắn cho mỗi quả trứng (mặc định là 10)

[Tích các số nhân]: Trong trường hợp người chơi làm nổ những quả trứng đặc biệt giúp

nhân số điểm đạt được với số biểu thị (X2, X3, X4) và được nhân dồn Ví dụ người chơi ăn được 1 quả trứng X2 và 1 quả trứng X3 thì điểm số sẽ được nhân 6

Trang 17

17

3.4 Trứng đặc biệt

- Trên bàn trứng sẽ có duy nhất một quả trứng tại một thời điểm trở thành trứng đặc

biệt với dấu hiệu nhận biết là trứng sẽ có animation nở ra vào ,

- Khi làm nổ quả trứng này sẽ kích hoạt hiệu ứng ngẫu nhiên đặc biệt cho quả trứng

hàng chờ tiếp theo

- Các hiệu ứng đặc biệt:

▪ Trứng bonus điểm (nhân với giá trị điểm mặc định của mỗi quả trứng):

Trang 18

18 3.5 Các hệ thống quản lý cốt lõi

Trang 19

19

Trang 20

20

Trang 21

21 Ngoài ra còn các Scene Manager (Quản lý chuyển cảnh), Audio Manager (Quản lý

Âm thanh chung), Score Manager (Quản lý điểm số)…

3.6 Thuật toán xác định trứng rơi

- Xác định những quả trứng nằm bên cạnh những quả trứng nổ (Trứng Rìa)

- Xác định những quả trứng nằm trên cùng của bàn

- Lần lượt kiểm qua từng những quả Trứng Rìa, nếu:

▪ quả trứng nào tìm được đường đến một trứng trên cùng ➔ Trứng Không Rớt

▪ quả trứng nào không tìm được đường đến một trứng trên cùng ➔ Trứng Rớt

- Tìm những quả trứng có liên quan đến Trứng Rớt ➔ Những quả Trứng Rớt

Trang 22

22

- Ta áp dụng thuật toán A* Pathfinding để tìm đường và Heap để duyệt các phần tử

Trang 23

23 3.7 Một số hình ảnh hiện tại của game

Trang 24

24

Trang 25

25

Trang 26

26

3.8 Kết quả

Đã hoàn thành 80% game gốc

Các phần còn thiếu:

- UI hiển thị những người chơi số điểm cao

- Game Over Scene

- Chèn quảng cáo

Tính năng dự tính sẽ thêm vào trò chơi: Đăng nhập bằng tài khoản Google Play để lưu trữ dữ liệu trên Server Google (hiện tại, dữ liệu về setting người dùng và điểm đều được lưu trữ tại bộ nhớ thiết bị) cũng như thiết lập những thành tựu giúp người chơi có thêm mục đích khi chơi

Trang 27

[2] Lauge, S [Sebastian Lauge] (2014, December 17) A* Pathfinding (E01:

algorithm explanation) [Video] YouTube

Trang 28

28

TỔNG KẾT

Trong vòng hai tháng, thực tập sinh đã hoàn thành phần lớn các tính năng của game gốc Trong thời gian làm tựa game này, bản thân thực tập sinh đã học hỏi được rất nhiều cách về cách tổ chức thiết kế các hệ thống và tối ưu chúng một cách tốt nhất để đem lại trải nghiệm lập trình, phát triển và trải nghiệm game trở nên thú vị hơn

Chân thành cảm ơn sự giúp đỡ của anh hướng dẫn Nguyễn Công Lý vì đã tận tình giúp

đỡ, hỏi han trong suốt quá trình thực tập và thực hiện dự án này

Ngày đăng: 17/08/2022, 21:05

TỪ KHÓA LIÊN QUAN

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

w