Em đã tìm kiếm một đơn vị phát triển game để cóthể áp dụng các kiến thức trên vào thực tế, và làm quen với công việc phát triển game trongmôi trường chuyên nghiệp.. Giới thiệu Công Ty Cổ
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ẬPLẬP TRÌNH GAME ONLINE TRÊN
ANDROID BẰNG COCOS2DX-JS VÀ JAVA
Công ty thực tập : Công Ty Cổ Phần VNG Người phụ trách : Đặng Thanh Tùng Thực tập sinh : Võ Thành Trung
TP Hồ Chí Minh, tháng 8 năm 2021
Trang 2LỜI MỞ ĐẦU
Hiện nay, mỗi tháng có hàng triệu ứng dụng mới được ra mắt trên các các cửa hàng ứngdụng Trong số đó, bên cạnh các ứng dụng phục vụ công việc hàng ngày (công việc, tàichính, …), có một số lượng lớn trong đó là các ứng dụng trò chơi (game) Game được tạo ra
để phục vụ nhu cầu giải trí của con người 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 Song hành cùng với nhịp độ pháttriển mạnh mẽ của các xu hướng mới, công nghệ mới, kèm theo nhu cầu giải trí online củangười dùng ngày càng lớn do các ảnh hưởng từ dịch Covid-19, ngành công nghiệp gameđang trên đà phát triển ngày càng mạnh mẽ hơn
Cùng với xu thế phát triển của thế giới, và đáp lại sự thay đổi nhu cầu giải trí của ngườidùng Nhiều công ty tại Việt Nam đã bước vào ngành công nghiệp game, nỗ lực từng ngày
để hòa nhập cùng với các công ty game hàng đầu thế giới VNG, cùng với Zing Play GameStudios, là một trong những cái tên đã góp phần rất lớn trong công cuộc phát triển của ngànhgame Việt
Các sản phẩm game từ trước đến nay đã và đang được cộng đồng người dùng yêu mến
vì mục đích giúp giải trí, giải tỏa căng thẳng, mang lại cảm xúc tích cực Bên cạnh đó cácgame cũng chính là những ứng dụng đầu tiên của các công nghệ mới (AI, VR, AR, NFT, …)
Do đó, xuất phát từ mong muốn tạo ra các sản phẩm đem lại niềm vui cho người dùng, vàniềm khao khát thách thức với các công nghệ mới, em quyết định chọn lập trình game làmđịnh hướng cho việc học tập và nghề nghiệp của bản thân
Sau ba năm học tập tại môi trường đại học, em đã lĩnh hội được nhiều kiến thức về kỹthuật và quy trình phát triển phần mềm Em đã tìm kiếm một đơn vị phát triển game để cóthể áp dụng các kiến thức trên vào thực tế, và làm quen với công việc phát triển game trongmôi trường chuyên nghiệp Qua chương trình VNG Tech Fresher 2020, em đã có được cơhội làm việc tại VNG và Zing Play Game Studios - là nơi đã giúp em hoàn thành đượ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 Cổ Phần VNG và Zing Play Game Studios đã tạođiều kiện cho em có cơ hội được thực tập tại công ty
Trong vòng 3 tháng thực tập, nhóm thực tập chúng em đã học được rất nhiều kiến thức
về phát triển game, từ đó có thể cài đặt được một project mobile online game với đầy đủ cáctính năng Tất cả những thành quả trên, để đạt được không thể thiếu các buổi training bài bản
từ các anh manager và senior trong công ty, niềm quan tâm và chỉ dẫn tận tình từ các anhmentor, tinh thần đoàn kết, nỗ lực từ các bạn trong nhóm, và sự hỗ trợ từ các anh/chị từ các
vị trí khác Chân thành cảm ơn các anh, các chị, các bạn đã giúp sức cùng em hoàn thành đợtthực tập này
Đặc biệt cảm ơn anh Đặng Thanh Tùng đã quản lý chương trình, sắp xếp các buổitraining kiến thức, hỗ trợ các bạn Fresher Cảm ơn anh Đặng Anh Tuấn, anh Phạm Anh Quốc
đã hướng dẫn, giúp đỡ nhóm em trong việc xây dựng Game Client, xây dựng logic, nâng caotrải nghiệm người chơi Cảm ơn anh Võ Toàn Thuận đã chỉ dẫn chúng em trong việc xâydựng server, các API và xử lý các vấn đề về đồng bộ trong game online
Em cũng xin chân thành cảm ơn thầy cô trong khoa Công nghệ phần mềm đã hỗ trợ,tạo điều kiện em hoàn thành bài báo cáo này
Võ Thành TrungThành phố Hồ Chí Minh, ngày 30 tháng 8 năm 2021
Trang 4NHẬN XÉT CỦA KHOA
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 5Giới thiệu Công Ty Cổ Phần VNG 6Giới thiệu Zing Play Game Studios 7
Tìm hiểu về chuyên môn và các kỹ năng trong công việc phát triển game 9
Các công cụ làm việc 9Chuỗi seminar tìm hiểu về công việc phát triển game 10Chuỗi seminar kỹ năng mềm 12Trải nghiệm, phân tích thiết kế, vẽ các sơ đồ liên quan cho game Thời Loạn Mobile 13Thiết kế sơ đồ, phát triển project game: Game Mobile Online phong cách thủ thành
Giới thiệu về game 18Mục tiêu của game: 18
Trang 6Chương 1: Giới thiệu công ty thực tập
1 Giới thiệu Công Ty Cổ Phần VNG
Thành lập từ năm 2004 đến nay, VNG đã trải qua 14 năm phát triển và mở rộng để trởthành một trong những công ty Internet & Công nghệ hàng đầu Việt Nam và Đông Nam Á,với hơn 3200 thành viên
Hệ sinh thái ứng dụng và dịch vụ của VNG bao gồm 4 nhóm chính, tập trung hướngđến những trải nghiệm phong phú và giải pháp tối ưu, phục vụ cho người dùng cá nhân và tổchức:
Kỳ, Rules of Survival, Crossfire Legend…
Trang 72 Giới thiệu Zing Play Game Studios
ZingPlay Game Studios - là studio trong VNG phát triển game lớn nhất và lâu đời nhất
có trụ sở tại Hà Nội
Tháng 7/2007 trung tâm ra đời với tên gọi là GSN - Game Studio North Hiện nay, từđội ngũ GSN 20 người đã trở thành tập thể ZPS gần 500 nhân sự có mặt tại Hà Nội - ĐàNẵng - Hồ Chí Minh và 6 quốc gia khác trên thế giới
Các sản phẩm thu hút hàng chục triệu khách hàng, ZPS là đơn vị đầu tiên ở Việt Namphát triển thành công ứng dụng giải trí trực tuyến bằng thực lực của chính những người Việttrẻ năng động và nhiều hoài bão
Các sản phẩm game đánh dấu bước phát triển của ZPS:
- Sinh Tử Môn thuộc thể loại Tower Defense (2007- 2008)
- ZingPlay: cổng game giải trí số 1 Việt Nam ( thống trị thị trường casual gameportal trong nước) , có trên 34 loại game hot, game vui (2008- 2010)
- ZingFarm: game nuôi trồng trực tuyến (2010-2011)
- myFish + ohfish: game đối kháng, chăn nuôi kết hợp chiến đấu
- myPlay: cổng game giải trí chơi trên nền web với rất nhiều thể loại game bài,bida, cá ngựa (8/2011 đến nay)
- Cấm Giới: game chiến thuật kết hợp nhập vai, là game người Việt thiết kế, cótiềm năng tiên phong cho game Việt, ra mắt vào cuối tháng 12/2012
- Thời Loạn: webgame chiến thuật thả quân ra mắt tháng 11/2013
- Farmery: Game nông trại trên mobile ra mắt 5/2013
Trang 8- ZinZin: Game mini mobile ra mắt cuối 2013
- FarmeryZ: Webgame nông trại ra mắt tháng 5/2014
- Thời Loạn Mobile: ra mắt 7/2014
- Cửu Tộc: MMO ra mắt 9/1/2015
- Siêu phẩm Cờ Tỷ Phú ra mắt 1/2016
Trang 9Chương 2: Nội dung thực tập
Chương trình thực tập với sản phẩm tốt nghiệp là tựa game “Game Mobile Onlinephong cách thủ thành (Tower Defense)” nhằm giúp sinh viên được đào tạo công việc chuyênmôn về phát triển Client - Server game trực tuyến 2D trên Android, sử dụng Cocos2dx-JS vàJava Bên cạnh đó, sinh viên có cơ hội được học tập về phong cách lập trình game chuyênnghiệp, tìm hiểu toàn cảnh về các vai trò trong đội ngũ phát triển game, đồng thời được rènluyện các kỹ năng mềm thiết yếu như làm việc nhóm, thuyết trình, đàm phán và giải quyếtvấn đề
1 Tìm hiểu công ty và các kỹ năng làm việc
Thời gian : 1 ngày
Nội dung : Giới thiệu về công ty, nơi làm việc, quy định tại công sở.
Được nghe người phụ trách giới thiệu về VNG và Zing Play Game Studios, quátrình thành lập và phát triển, các sản phẩm làm nên tên tuổi Được gặp gỡ các anh, chịquản lý cấp cao trong công ty Giới thiệu và làm quen với các anh mentor, các bạnfresher chung nhóm
Sau đó thực tập sinh được giới thiệu về văn hóa làm việc của công ty, bao gồmgiờ giấc làm việc, quy định sử dụng thiết bị chung, quy trình truy cập vào dữ liệu côngty
Cuối cùng thực tập sinh được bố trí vị trí làm việc, hướng dẫn cài đặt thiết bịchuẩn bị cho công việc
Kết quả : Hiểu thêm về công ty, đặc biệt là về quy trình và phong cách làm việc Làm
quen được với các anh mentor, các bạn fresher Nắm rõ lịch trình 1 ngày làm việc ởcông ty Có tinh thần kỷ luật và trách nhiệm
2 Tìm hiểu về chuyên môn và các kỹ năng trong công việc phát triển game.
2.1 Các công cụ làm việc
Thời gian : 4 ngày
Trang 10Nội dung : Tìm hiểu về các ngôn ngữ, frameworks, tools sẽ được sử dụng trong
Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên để tạo ra 1 minigame
đơn giản
Kết quả : Nắm được các sử dụng các ngôn ngữ, công cụ phục vụ cho việc phát
triển game
2.2 Chuỗi seminar tìm hiểu về công việc phát triển game.
Thời gian : 3 tuần
Nội dung : Training xung quanh công việc chuyên môn trong phát triển game Tìm
hiểu thêm về các mảng công việc khác trong đội ngũ game
Đây là chuỗi training mang lại rất nhiều kiến thức Những trainer trong cácseminar là các Leader các bộ phận, hay Senior Developer có nhiều năm làm việctại công ty Các kiến thức lĩnh hội được trong seminar bao gồm:
- Kiến thức chuyên môn: tìm hiểu về Client, Server, Design Pattern,Clean Code:
+ Client: sử dụng Cocos2dx-JS, các khái niệm về Director, Scene,Layer, Node, Sprite; tạo hiệu ứng hình ảnh, thu nhận tương tác ngườidùng (qua chuột, bàn phím, chạm); tối ưu sử dụng các object tronggame; tối ưu hình ảnh hiển thị trên các kích cỡ màn hình Sử dụng cáccông cụ để tạo Sprite Sheet, tạo Spine Animation, thiết kế GUI
+ Server: các khái niệm, mô hình bố trí server, các giao thức TCP,UDP; các phương thức tạo gói tin gửi/nhận (JSON, Binary, Protobuf,
…); cách bố trí lưu trữ cơ sở dữ liệu; các phương pháp tối ưu tương tácgiữa Client và Server; làm quen với server engine của công ty
Trang 11+ Design Pattern: tìm hiểu về các design pattern thường xuyênđược sử dụng trong game thông qua thực hành thiết kế các sơ đồ usecase, sơ đồ tuần tự và sơ đồ lớp.
+ Clean Code: tìm hiểu về các convention được quy định trongcác project; cách đặt tên biến phải xúc tích và giải nghĩa đầy đủ về vaitrò của biến đó; cách phân chia hàm phải gói gọn trong vai trò duy nhấtcủa hàm; cách comment phải cung cấp đầy đủ cho người đọc về hoàncảnh sử dụng hàm, sử dụng hằng, biến, công thức
- Hiểu biết về các mảng khác: tìm hiểu về các bộ phận GameDesigner, QC, Art, Multimedia, Marketing:
+ Game Designer: tìm hiểu nhiệm vụ của Game Designer, quytrình lên ý tưởng và hoàn thiện, các tài liệu được Game Designer cungcấp để biến ý tưởng thành sản phẩm thực tế
+ QC: tìm hiểu về các lỗi trong game, phân loại lỗi theo cấp độnghiêm trọng; quy trình xử lý lỗi; cách email gửi build kiểm tra lỗi; sửdụng hệ thống quản lý lỗi JIRA
+ Art: tìm hiểu về art 3D, 2D, các loại animation sử dụng tronggame
+ Multimedia: tìm hiểu về các visual effect (VFX) sử dụng tronggame; các sound effect (SFX); background music (BGM)
+ Marketing: tìm hiểu về thị trường game, các yếu tố cần để gameđược nhiều người biết đến
Thực hiện :
- Tham gia đầy đủ các buổi seminar của công ty
- Thực hiện các bài tập thực hành, tham gia các trò chơi nhỏ trong quá trìnhtham gia seminar
- Tích cực phát biểu, thể hiện ý kiến trong suốt quá trình tham gia
Kết quả :
Trang 12- Nâng cao kỹ năng chuyên môn về client, server, sử dụng công cụ liênquan.
- Nắm thêm một số quy tắc trong việc viết code sao cho đúng chuẩn, dễ đọc,
dễ hiểu
- Ngoài ra còn biết được nhiệm vụ đặc thù của các vai trò liên quan, mởrộng hiểu biết về công việc game, thuận lợi cho việc trao đổi giữa các thành viênkhác vai trò
2.3 Chuỗi seminar kỹ năng mềm
Nội dung: Các kiến thức kỹ năng mềm: giao tiếp, đàm phán và thuyết phục
- Khái niệm về giao tiếp, các tình trạng trong giao tiếp, cách giao tiếp hiệuquả Cách đặt câu hỏi , lắng nghe và phản hồi
- Cách cân bằng cảm xúc, hóa giải vị thế tâm lý bất bình đẳng (ngạo mạn /
- Tham gia đầy đủ các buổi seminar
- Tích cực đóng góp ý kiến, tham gia các trò chơi nhỏ trong các buổi seminar
và giành được hạng nhất chung cuộc
Kết quả :
- Tham gia đầy đủ các buổi seminar
- Tích cực đóng góp ý kiến, tham gia các trò chơi nhỏ trong các buổi seminar
và giành được hạng nhất chung cuộc
- Lĩnh hội được nhiều kiến thức về giao tiếp, thuyết trình, đàm phán vàthương lượng
Trang 132.4 Trải nghiệm, phân tích thiết kế, vẽ các sơ đồ liên quan cho game Thời Loạn Mobile
Nội dung: Trải nghiệm game Thời Loạn Mobile, từ đó tìm hiểu, làm slide giới
thiệu các chức năng của game, vẽ ra các sơ đồ use case, sơ đồ tuần tự để thể hiệnhành vi của game
Thực hiện :
- Tìm hiểu game Thời Loạn Mobile
- Làm bài tập thiết kế slide giới thiệu các chức năng, đơn vị có trong game
- Vẽ các sơ đồ use case, sơ đồ tuần tự thể hiện hành vi của game
Kết quả :
- Nắm rõ các chức năng, đơn vị có trong game Thời Loạn Mobile
- Ứng dụng thực tế các sơ đồ vào trong thể hiện hành vi của game
2.5 Thiết kế sơ đồ, phát triển project game: Game Mobile Online phong cách thủ thành (Tower Defense)
Nội dung : Ứng dụng các kiến thức đã học vào việc thiết kế và phát triển game
Game Mobile Online phong cách thủ thành (Tower Defense), đáp ứng được cácyêu cầu tính năng cần có của một game mobile, được chia thành các giai đoạn:
- Thiết kế các sơ đồ use case, sơ đồ tuần tự:
Tìm hiểu chi tiết, nằm chắc nội dung mô tả game và tính năng trong designdocument để vẽ các sơ đồ use case, sơ đồ tuần tự mô tả hành vi người dùng tronggame Từ đó tổng hợp và thiết kế sơ đồ lớp hoàn thiện cấu trúc tổ chức các classcủa game
- Dựa theo sơ đồ đã có, tiến hành cài đặt và phát triển game:
Theo các sơ đồ đã vẽ, sử dụng kiến thức đã được training về xây dựng Client Server (Cụ thể mô tả trong phần công việc ở dưới)
-Thực hiện :
- Tham gia đầy đủ các buổi, chủ động phối hợp với các thành viên kháctrong nhóm
Trang 14- Chủ động liên hệ hỗ trợ từ các anh mentor khi có vướng mắc về code hoặcdocument.
- Tìm hiểu về công ty và văn hóa
làm việc Cài đặt thiết bị
- Tìm hiểu về các ngôn ngữ,
framework và công cụ sử dụng
trong quá trình làm việc
- Tham gia các buổi seminar training
kỹ năng chuyên môn
- Hoàn thành assignment #1: xây
dựng 1 minigame áp dụng ngôn
ngữ, framework và công cụ được
cấp
Anh Đặng Thanh TùngAnh Võ Toàn ThuậnAnh Đặng Anh TuấnAnh Phạm Anh QuốcAnh Nguyễn Trung Hưng
100%
2
- Tham gia các buổi seminar training
kỹ năng chuyên môn
- Hoàn thành assignment #2: chơi và
tìm hiểu game Thời Loạn Mobile
Anh Đặng Thanh TùngAnh Võ Toàn ThuậnAnh Đặng Anh TuấnAnh Phạm Anh QuốcAnh Nguyễn Anh Tuấn
100%
Trang 15- Hoàn thành assignment #3: demo 1
tính năng trong game thủ thành
Anh Phạm Gia TháiAnh Đào Tuấn Linh
3
- Tham gia các buổi seminar training
kỹ năng chuyên môn
- Tìm hiểu design document, lập kế
hoạch thực hiện build
Anh Đặng Thanh TùngAnh Võ Toàn ThuậnAnh Đặng Anh TuấnAnh Phạm Anh Quốc
100%
4
- Tìm hiểu design document
- Tham gia các buổi seminar training
kỹ năng chuyên môn
- Giao diện màn chơi
Anh Đặng Thanh TùngAnh Võ Toàn ThuậnAnh Đặng Anh TuấnAnh Phạm Anh QuốcAnh Nguyễn Dương PhongChị Nguyễn Thị NhànAnh Vũ Tiến KhangAnh Phạm Quốc Dương
100%
5
- Tìm hiểu design document
- Flow, các giai đoạn trong trận đấu
- Truy cập vị trí các ô trong game
- Class đọc config màn chơi game
Anh Đặng Thanh TùngAnh Võ Toàn ThuậnAnh Đặng Anh TuấnAnh Phạm Anh Quốc
100%
6
- Flow bắt đầu trận đấu - kết thúc
trận đấu
- Cơ chế thêm, xóa, cập nhật các
object trong game
Anh Đặng Thanh TùngAnh Võ Toàn ThuậnAnh Đặng Anh TuấnAnh Phạm Anh QuốcChị Phan Huy Thiên ThưAnh Lê Duy
100%
7
- Quái vật mẫu (sample) trong
game
- Thuật toán tìm đường cho quái vật
Sinh số lượng quái vật theo config
game trên client
Anh Đặng Thanh TùngAnh Võ Toàn ThuậnAnh Đặng Anh TuấnAnh Phạm Anh QuốcChị Lâm Hồng Loan
100%
Trang 16- Tham gia chuỗi training kỹ năng
mềm
8
- Tháp pháo mẫu (sample) trong
game Các cách người chơi xây
dựng tháp pháo
- Xử lý các lỗi được report ở build
#1
Anh Đặng Thanh TùngAnh Võ Toàn ThuậnAnh Đặng Anh TuấnAnh Phạm Anh Quốc
- Model lưu trữ thông tin người chơi
ở server Model quản lý, thực hiện
trận đấu
- Sinh số lượng quái vật theo config
game ở server
Anh Đặng Thanh TùngAnh Võ Toàn ThuậnAnh Đặng Anh TuấnAnh Phạm Anh Quốc
100%
10
- Thiết kế và xây dựng model người
chơi BOT Các hành vi cơ bản của
BOT (xây tháp, thả quái vật)
- Tạo BOT đối đầu với người chơi
với các phong cách chiến đấu khác
nhau
- Xử lý các lỗi được report ở build
#2
Anh Đặng Thanh TùngAnh Võ Toàn ThuậnAnh Đặng Anh TuấnAnh Phạm Anh Quốc
100%
11
- Hiệu ứng hình ảnh các phép thuật
sử dụng trong game Các cách
người chơi sử dụng phép thuật
- Ảnh hưởng chỉ số của phép thuật
lên tháp pháo và quái vật (tăng
Anh Đặng Thanh TùngAnh Võ Toàn ThuậnAnh Đặng Anh TuấnAnh Phạm Anh Quốc
100%