BÁO CÁO THỰC TẬP LẬP TRÌNH GAME ĐA NỀN TẢNG CHAOS AGE Công ty thực tập : VNG Corporationt Người phụ trách : Vũ Hồng Phú Thực tập sinh : Nguyễn Du Lịch Mã số sinh viên : 17520096 TP... N
Trang 1BÁO CÁO THỰC TẬP
LẬP TRÌNH GAME ĐA NỀN TẢNG CHAOS AGE
Công ty thực tập : VNG Corporationt Người phụ trách : Vũ Hồng Phú Thực tập sinh : Nguyễn Du Lịch
Mã số sinh viên : 17520096
TP Hồ Chí Minh, ngày 23 tháng 9 năm 2020
Trang 2Người phụ trách: Vũ Hồng Phú 2 Sinh Viên: Nguyễn Du Lịch
LỜI MỞ ĐẦU
Ngày nay, với nhu cầu giải trí online ngày một phát triển, ngành công nghiệp game theo đó cũng đã trở thành một bộ phận không thể thiếu và ngày càng khẳng định vị thế của mình với sự phát triển công nghệ thông tin của toàn thế giới, cả về phần cứng và phần mềm
Đi cùng với xu thế phát triển này, ngành công nghiệp game của Việt Nam cũng không ngừng đổi mình chuyển biến và phát triển để hòa nhập với năm châu bốn bể Ngoài những công
ty lớn có tiếng tăm trên thế giới (như Gameloft) gia nhập vào thị trường Việt Nam, đã có nhiều công ty khởi nghiệp nhỏ nổi lên, góp phần không nhỏ cho sự phát triển của ngành game nói riêng và công nghệ thông tin của Việt Nam nói chung, đóng góp sức mình cho công cuộc phát triển kinh tế của xã hội của nước nhà
Đặc biệt trong bối cảnh dịch bệnh cách ly như năm nay, nhu cầu giải trí của giới trẻ lại càng cao hơn bao giờ hết, để rồi chính lực lượng trẻ này sẽ đặt những dòng code tiếp theo tiếp bước cho sự phát triển các tựa game mới, ứng dụng các công nghệ mới, qua đó đem lại trải nghiệm tốt nhất, thú vị nhất, vui vẻ nhất cho mọi người Chính vì lẽ đó em đã quyết định chọn cho mình con đường lập trình game để làm định hướng cho việc học tập cũng như lao động trong tương lai của mình
Sau ba năm học tập trên trường, một phần 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 có dự định
là sẽ thực tập trong hè Vì vậy, em quyết định chọn VNG - một kỳ lân của Việt Nam không chỉ trong ngành game mà còn lấn sân sang nhiều ngành khác làm môi trường lý tưởng, hiện đại, chuyên nghiệp - là nơi sẽ giúp em thực hiện dự định này
Trang 3Người phụ trách: Vũ Hồng Phú 3 Sinh Viên: Nguyễn Du Lịch
LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty VNG đã tạo điều kiện cho em có cơ hội được thực tập tại công ty thông qua chương trình VNG FRESHER đầy ý nghĩa
Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của các anh Mentor, em cùng các bạn khác tạo thành nhóm thực tập đã tiếp thu được những kiến thức quan trọng để có thể làm được một game Chân thành cảm ơn các anh chị Mentor đã bỏ ra nhiều thời gian, công sức, sát cánh cùng chúng em để hướng dẫn, chỉ bảo, qua đó hoàn thành đợt thực tập này
Đặc biệt phải cảm ơn anh Huỳnh Vĩnh Trí đã training phần Java code sever, anh Vũ Hồng Phú đã sát cánh bên cạch chúng em trải qua những khó khăn trong việc làm quen môi trường mới, các kỹ thuật để hiện thực project, team HR đã training các kỹ năng mềm và rất nhiều các nhân viên khác đã cởi mở, thân thiện, nhiệt tình trong các vướng mắc của em để có thể làm ra một sản phẩm trong thời gian qua
Cuối cùng em 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
TP Hồ Chính Minh, ngày 23 tháng 9 năm 2020
Sinh viên thực hiện
Nguyễn Du Lịch
Trang 4Người phụ trách: Vũ Hồng Phú 4 Sinh Viên: Nguyễn Du Lịch
NHẬN XÉT CỦA KHOA
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 5Người phụ trách: Vũ Hồng Phú 5 Sinh Viên: Nguyễn Du Lịch
MỤC LỤC
Phần 1: Giới thiệu công ty thực tập 6
1 Giới thiệu công ty VNG 6
2 Sản phẩm của công ty 6
2.1 Trò chơi trực tuyến 6
2.2 Nền tảng kết nối 7
2.3 Tài chính và thanh toán 7
2.4 Dịch Vụ Đám Mây 7
Chương 2: Nội dung thực tập 8
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 8
2 Nghiên cứu kỹ thuật 8
2.1 Các công cụ làm việc 8
2.2 Tìm hiểu framework game 9
2.3 Tìm hiểu về framework sever 9
3 Lịch trình thực tập 10
Chương 3: Chi tiết về project 12
1 Giới thiệu về game 12
1.1 Cốt truyện 12
1.2 Luật chơi chính 12
2 Thực hiện 12
3 Quá trình thực tập 13
3.1 Build 1: 13
3.2 Build 2 14
3.3 Fix bug round cuối, nộp kết quả 14
TÀI LIỆU THAM KHẢO 16
TỔNG KẾT 17
Trang 6Người phụ trách: Vũ Hồng Phú 6 Sinh Viên: Nguyễn Du Lịch
Phần 1: Giới thiệu công ty thực tập
1 Giới thiệu công ty VNG
VNG được thành lập vào năm 2004 với tên thương hiệu là VinaGame, sau đó đổi thành VNG Corporation để phù hợp hơn với việc mở rộng và toàn cầu hóa doanh nghiệp Đó cũng là
lý do công ty để tên gọi đơn giản là VNG, vừa thân quen, lại vừa phù hợp với các xứ mệnh mới Trải qua bao thăng trầm, VNG đã khẳng định mình thành công trên bản đồ phát triển công nghệ thông tin trên toàn thế giới, liên tục được công bố là unicorn (kỳ lân) công nghệ của khu vực Đông Nam Á với số lượng người dùng ngày càng tăng, không chỉ trong nước mà còn quốc
tế
Hiện nay công ty đã mở 5 trụ sở trên cả Việt Nam và 2 trụ sở ở nước ngoài, ngoài ra là các văn phòng trên khắp năm châu để tìm kiếm thị trường như Ấn Độ, Brazil, … với số lượng nhân viên ngày càng tăng mạnh
Trải qua nhiều thời kỳ khác nhau, công ty đã có nhiều sản phẩm để định hình chính bản thân mình trên bản đồ công nghệ thông tin của thế giới với 4 sản phẩm chính: Trò chơi trực tuyến, Nền tảng kết nối, Tài chính và thanh toán, Dịch vụ đám mây
2 Sản phẩm của công ty
- VNG thiết kế game đa nền tảng bao gồm Android, IOS, Web cũng như PC với hai mảng lớn đó là phát triển và phát hành game, cả Việt Nam và trên trường quốc tế, cả game tự sản xuất lẫn game phát hành từ các game nổi tiếng quốc tế
Trang 7Người phụ trách: Vũ Hồng Phú 7 Sinh Viên: Nguyễn Du Lịch
- Bao gồm các nền tảng kết nối đa dạng, đa dịch vụ, phục vụ toàn diện nhu cầu kết nối, giải trí, tìm kiếm của cá nhân và tổ chức
- Nền tảng OTT Zalo, hệ sinh thái mạng xã hội giải trí Zing (Zing TV, Zing MP3…)
- Các nền tảng vCS, 123Go, 123Phim, công cụ tìm kiếm Laban.vn, v.v
- Là các nền tảng và dịch vụ trung gian thanh toán, tài chính cá nhân theo xu hướng mới, với sản phẩm như Cổng trung gian thanh toán 123 Pay, Ví điện tử ZaloPay
- Cung cấp các dịch vụ đám mây toàn diện cho tổ chức, doanh nghiệp, địa phương
- Các hệ thống, giải pháp công nghệ thông minh dựa trên kết nối Internet và công nghệ đám mây
- Sản phẩm: 123CS, Cloud server, IoT HUB, vCloudStack, vObjectStorage, Tape Backup, vCloudcam, Vending Machine,…
Trang 8Người phụ trách: Vũ Hồng Phú 8 Sinh Viên: Nguyễn Du Lịch
Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “Lập trình game đa nền tảng Chaos Age” nhằm mục đích giúp cho sinh viên ngay lập tức tiếp cận với một sản phẩm đã được hoạt động thực sự sẽ hoạt động như thế nào, giúp phát triển tư duy phát triển game chuyên nghiệp, rèn luyện kỹ năng mềm như làm việc nhóm, truyết trình, kỹ năng giao tiế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: 3 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, các lợi ích khi
là một nhân viên của công ty
Kết quả: Hiểu thêm về công ty VNG, 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 các công cụ trong công việc, làm việc có kế hoạch, có kỷ luật, có trách nhiệm hơn, phát triển kỹ năng mềm
2 Nghiên cứu kỹ thuật
Thời gian: 5 ngày (1 tuần)
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, mentor đã 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ố trong đó là:
- TortoiseGit: ứng dụng kiểm soát sửa đổi git
- IntelliJ IDEA: IDE chính để code client và sever
- Cocos Studio: ứng dụng xây dựng môi trường đồ họa game cho cocos framework
Thực hiện: Thực hành sử dụng các phần mềm đã nêu trên
Kết quả: Sử dụng thành thạo các công cụ này, kết hợp sử dụng làm bài tập game Flappy Bird
như một các làm quen
Trang 9Người phụ trách: Vũ Hồng Phú 9 Sinh Viên: Nguyễn Du Lịch
Thời gian: 2 ngày
Nội dung: Tìm hiểu về cách một chương trình game hoạt động, các hàm và thuật toán cơ
bản, có sẵn, đã được setup từ trước của để tiện cho việc phát triển game, theo dõi lỗi, tối ưu hiệu xuất sau này
- Lập trình hướng đối tượng trên JS: vì sử dụng JS ES5 nên chưa hỗ trợ hướng đối tượng, vì thế phải tìm hiểu cách sử dụng framework để giả hướng đối tượng như thế nào
- Cách quản lý bộ nhớ: vì Garbage Collection của JS và con trỏ của cocos có cách quản
lý bộ nhớ khác nhau nên phải tìm hiểu để tránh gây memory leak hay xóa đối tượng vẫn còn cần dùng
- Cách sử dụng JS binding để lập trình đa nền tảng
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ữ JS
- Có được những kiến thức quan trọng cho việc lập trình game đa nền tảng 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
Thời gian: 2 ngày
Nội dung: Tìm hiểu về cách sever hoạt động
- Giao tiếp qua mạng: học cách client và sever giao tiếp với nhau qua các phương thức khác nhau, qua đó biết phân biệt và sử dụng phương thức nào sao cho hiệu quả, tối ưu hóa dữ liệu cần dùng
- Lập trình song song: Vì có rất nhiều client nhưng chỉ có một (hoặc một vài) máy chủ nên việc lập trình song song là bắt buộc, tìm hiểu về các vấn đề của lập trình song song cũng như cách giải quyết và tối ưu hiệu năng
Trang 10Người phụ trách: Vũ Hồng Phú 10 Sinh Viên: Nguyễn Du Lịch
- Sử dụng BitZero framework: là một framework nội bộ của công ty dùng để code sever, tìm hiểu cách sử dụng để đăng ký các handler khi có sự kiện từ client gửi lên
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 Java
- Hiểu rõ những gì sẽ gặp phải và cách xử lý khi lập trình song song
3 Lịch trình thực tập
hướng dẫn
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
- Học kỹ năng mềm
Team HR 100%
2 + 3
- Tìm hiểu về framework
- Làm mini game
- Làm các diagram cho game
- Code các hàm cơ bản
Anh Vũ Hồng Phú
100%
4 + 5
Start build 1:
- Xây dựng map và load map
- Login và Lobby
- Shop and update
Anh Vũ Hồng Phú
100%
6 + 7
- Các thao tác trên map
- Nâng cấp nhà
- Luyện lính
- Đồng bộ client và sever
Anh Vũ Hồng Phú
100%
Trang 11Người phụ trách: Vũ Hồng Phú 11 Sinh Viên: Nguyễn Du Lịch
8 + 9
- Fix bug
- Hoàn thiện về đồ họa
- Tối ưu code
- Gửi QC
Anh Vũ Hồng Phú
100%
10 + 11
Start build 2
- Fix bug build 1
- Phó bản UI
- Các công trình phòng thủ và lính
Anh Vũ Hồng Phú
100%
12 + 13
- Logic chiến đấu
- Đồng bộ client và sever
- Fix bug phát sinh
- Gửi QC
Anh Vũ Hồng Phú
100%
14 + 15
- Fix bug build 2
- Gửi QC check lần cuối
Anh Vũ Hồng Phú
100%
16 - Báo cáo kết quả
Trang 12Người phụ trách: Vũ Hồng Phú 12 Sinh Viên: Nguyễn Du Lịch
Chương 3: Chi tiết về project
1 Giới thiệu về game
Game lấy ý tưởng từ trò chơi Clash of Clans nổi tiếng với mong muốn tạo ra một game chiến lược thả quân thời gian thực do chính Việt Nam phát triển và phát hành Với game play quen thuộc, dễ điều khiển, dễ làm quen, Chaos Age đã tạo nên một sức hot không nhỏ từ khi phát hành đến nay
Thời Loạn lấy bối cảnh thời trung cổ, mỗi người chơi sẽ tham gia trò chơi online ngay trên điện thoại của mình và trở thành một phần của cuộc chiến với người chơi trên khắp thế giới Thời Loạn buộc bạn phải trở thành vị thủ lĩnh tài ba, lãnh đao đội quân của riêng mình, xây dựng thành trì ngày càng lớn mạnh và chinh phạt tất cả bộ tộc yếu kém
Thông qua việc huấn luyện quân lính, xây dựng binh lực, công trình phòng thủ và gia nhập các bang hội lớn để gia tăng sức mạnh, người chơi sẽ được thỏa sức thể hiện tài dụng binh và cầm quân ngay trong game dàn trận được bàn tán nhiều nhất thời gian qua
Không chỉ đấu trí giữa các thủ lĩnh với nhau, tham gia trò chơi online, người chơi còn luôn kết nối với các an hem trong bang hội, tham dự các kỳ Đệ Nhất Bang Hội và mang về cho toàn bang chiến thắng lẫy lừng cùng những phần thưởng rất đáng mong đợi
Trò chơi xoay quanh vòng tuần hoàn chính: Xây nhà lấy tài nguyên, Luyện lính, đi cướp tài nguyên, nâng cấp nhà tài nguyên hay phòng thủ
2 Thực hiện
Nhóm gồm 4 thành viên của team GSN_1:
- Nguyễn Minh Tiến
- Phạm Trọng Nhân
- Lê Trí Thông
- Nguyễn Du Lịch
Sự giúp đỡ tận tình của hai anh memtor:
- Vũ Hồng Phú
Trang 13Người phụ trách: Vũ Hồng Phú 13 Sinh Viên: Nguyễn Du Lịch
- Huỳnh Vĩnh Trí
Và nhiều sự giúp đỡ khác từ các nhân viên và các Team của công ty
3 Quá trình thực tập
Công việc: chia làm 4 module ứng với 4 tuần:
- Module 1:
• Đọc Design Document và thiết kế các diagram
• Thống nhất format dữ liệu
• Các data cần thiết
- Module 2:
• Xây dựng map và load map với dữ liệu giả
• Tải data từ sever, hiển thị ra thông tin trên loppy
• Dựng shop
- Module 3:
• Các thao tác control map (drag move, zoom, …)
• Hoàn thiện loppy
• Mua được vật phẩm từ shop
- Module 4:
• Nâng cấp công trình
• Luyện quân
• Tinh chỉnh các lỗi
• Gửi QC lần 1
Kết quả :
- Độ hoàn thiện các tính năng đạt khoảng 90%
- Chưa có UX cho UI
Trang 14Người phụ trách: Vũ Hồng Phú 14 Sinh Viên: Nguyễn Du Lịch
Công việc: chia làm 4 module ứng với 4 tuần
- Module 1:
• Fix bug build 1
• Làm UI phó bản
- Module 2:
• Công trình phòng thủ
• Lính tấn công
- Module 3:
• Logic chiến đấu
• Animation
• Đồng bộ client sever
- Module 4:
• Fix bug phát sinh
• Hoàn thiện animation
• Hoàn thiện UX UI
• Nộp QC lần 2
Kết quả : Đã hoàn thành toàn bộ những tính năng trên
Công việc:
- Fix bug của build 2, chuẩn bị slide báo báo
- Tổng kết, trao chứng chỉ
Kết quả: Hoàn thành thành công kỳ fresher với kết quả tốt, được công ty tin tưởng tiếp tục lao động tạo công ty với project thực tế
Trang 15Người phụ trách: Vũ Hồng Phú 15 Sinh Viên: Nguyễn Du Lịch
Trang 16Người phụ trách: Vũ Hồng Phú 16 Sinh Viên: Nguyễn Du Lịch
TÀI LIỆU THAM KHẢO
Cocos2dx-JS test case
https://cocos2d-x.org/js-tests/
Cocos2dx-JS api reference
https://docs.cocos2d-x.org/api-ref/js/V3.8/
Cocos creator
https://docs.cocos.com/creator/manual/en/
https://docs.cocos.com/creator/api/en/
Trò chơi thực tế:
https://beta.play.zing.vn/games/thoi-loan.html
Cùng một số tài liệu nội bộ công ty nằm trong phạm vi bảo mật chiếu theo hợp đồng lao động nên không được phép tiết lộ