9019_02 – Game Cross Flatform With Engine Cocos2d-X

luận văn tốt nghiệp

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM
TP HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN

NGÀNH
: Công Nghệ Thông Tin

CÔNG TY
: GAMELOFT VIETNAM

SINH VIÊN THỰC HIỆN : Trần Trung Hiếu

TP.HCM, Ngày 01 Tháng 04 Năm 2015
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM
TP HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN

ĐỀ TÀI: GAME CROSS FLATFORM
WITH ENGINE COCOS2D-X

Giảng Viên Hướng Dẫn
: Trần Thanh Phước

Người hướng dẫn tại công ty : Lê Minh Tài

Trần Duy Khánh

La Tâm

Sinh Viên Thực Hiện
: Trần Trung Hiếu

Lớp
: 02DHTH

Mã Số Sinh Viên
: 2001110117

TP.HCM, Ngày 01 Tháng 04 Năm 2015
TRAINING INTERNSHIP GAMELOFT

TRẦN TRUNG HIẾU
1

TRẦN TRUNG HIẾU

TRẦN TRUNG HIẾU
1

LỜI CẢM ƠN
Để hoàn thành khóa thực tập tại đầu tiên em xin gửi lời cảm ơn đến quý thầy cô
trong khoa Công Nghệ Thông Tin trường Đại Học Công Nghiệp Thực Phẩm TP HCM đã
tận tình dạy dỗ và truyền đạt nhưng kiến thức căn bản nhất trong suốt 4 năm đại học. Và
em gửi lời cảm ơn đến Thầy Trần Thanh Phước đã dìu cắt Em trong những năm học
qua.
Đặc biệt em xin cảm ơn các Anh/Chị trong team Training của công ty GameLoft
Việt Nam đã tận tình chỉ dạy và giúp đỡ em trong suốt quá trình thực tập. Và Em chân
thành cảm ơn Anh Trần Duy Khánh – người trực tiếp hướng dẫn em tại team Training.
Trong hai tháng thực tập, em đã học hỏi được rất nhiều kiến thức mới, công nghệ
mới và đã củng cố lại được nhiều kiến thức em được học tại trường, tuy nghiên không thể
không còn thiếu sót. Mong các Anh/Chị trong team training thông cảm.
Em xin chân thành cảm ơn!

TRAINING INTERNSHIP GAMELOFT

TRẦN TRUNG HIẾU
2

DANH MỤC BẢNG
Bảng 1: Một số khái niệm cơ bản của SVN ……………………………………………………………. 18
Bảng 2: Môi trường lập trình C++
…………………………………………………………………………. 24
Bảng 3: Kiểu dữ liệu cơ bản trong C++ …………………………………………………………………. 26
Bảng 4: Toán tử cơ bản trong C++
………………………………………………………………………… 27
Bảng 5: Ngôn ngữ lập trình hỗ trợ lập trình Cocos2d-x
……………………………………………. 35
Bảng 6: Công cụ hỗ trợ lập trình game với Engine Cocos2d-x …………………………………. 35
Bảng 7: Các file cần thiết để cấu hình cài đặt Cocos2d-x trên Windows và link download
…………………………………………………………………………………………………………………………. 36
Bảng 8: Các biến môi trường cần thiết trong quá trình cài đặt ………………………………….. 40
Bảng 9: Các Action cơ bản trong Cocos2d-x ………………………………………………………….. 46
Bảng 10: Công cụ hỗ trợ dùng trong làm game “Internship AH”
………………………………. 68
Bảng 11: Phân công công việc làm game Internship AH! ………………………………………… 71
Bảng 12: Chỉ số của file thông tin bản đồ game……………………………………………………… 86
Bảng 13: Chỉ số các loại quái(Enemi) trong game
…………………………………………………… 87
Bảng 14: Chỉ số các loại trụ (Tower) trong game ……………………………………………………. 89

TRAINING INTERNSHIP GAMELOFT

TRẦN TRUNG HIẾU
3

DANH MỤC HÌNH ẢNH
Hình 1: Cơ chế lưu trữ của Tortoise SVN
………………………………………………………………. 17
Hình 2: Tạo Repository cho server
………………………………………………………………………… 19
Hình 3: Checkout không gian làm việc từ server về client ……………………………………….. 20
Hình 4: Cấu hình đường dẫn khi Checkout
…………………………………………………………….. 20
Hình 5: So sánh sự khác nhau bằng “Show Differences” …………………………………………. 22
Hình 6: Cấu trúc của một chương trình C++
…………………………………………………………… 25
Hình 7: Game TicTacToe …………………………………………………………………………………….. 30
Hình 8: Kiểm tra tính đúng đắn dữ liệu đầu vào game TicTacToe
…………………………….. 31
Hình 9: Thêm Project thư viện dạng lib …………………………………………………………………. 31
Hình 11: Thêm thư viện OpenGL(.lib) ở Input – Dependencies ………………………………… 33
Hình 10: Thêm thư viện OpenGL (.h, .lib) ở Directories
………………………………………….. 33
Hình 12: Thư mục cài đặt JDK
……………………………………………………………………………… 36
Hình 13: Thư mục cài đặt Python
………………………………………………………………………….. 37
Hình 14: Thêm file qtjava.zip để build Cocos2d-x ………………………………………………….. 37
Hình 15: Thư mục chuẩn bị đầy đủ cài đặt Cocos2d-x …………………………………………….. 38
Hình 16: Thêm biến môi trường cho Windows
……………………………………………………….. 38
Hình 17: Thẻ Environment Variables để thêm biến môi trường
………………………………… 39
Hình 18: Tạo project game cocos2d-x với lênh CMD ……………………………………………… 40
Hình 19: Thư mục project game coos2d-x sau khi tạo (template của cocos2d-x) ………… 41
Hình 20: Project Game Cocos2d-x “Hello World” ………………………………………………….. 41
Hình 21: Bố trí các Layer trong màng hình game ……………………………………………………. 42
Hình 22: Quản lý các màng hình trong game (Scene) ……………………………………………… 42
Hình 23: Tạo project với TexturePacker ………………………………………………………………… 52
Hình 24: Giao diện Tool TexturePacker để tạo Sprite Sheet …………………………………….. 52
Hình 25: Public resource Sprite Sheet để tạo Animation cho nhân vật ………………………. 53
Hình 26: Lưu Resource Sprite Sheet (.plish)
…………………………………………………………… 53
Hình 27: Hoàn thành Publish Sprite Sheet ……………………………………………………………… 54
Hình 28: Thêm sprite sheet vào resource của project game
……………………………………… 54
Hình 29: Thêm “Tiled “để tạo map ……………………………………………………………………….. 56
Hình 30: Khởi tạo mới 1 bản đồ bằng Tiled Map Editor ………………………………………….. 57
Hình 31: Chọn Tile để vẽ cho bản đồ
…………………………………………………………………….. 58
Hình 32: Thêm Tiled để vẽ bản đồ ………………………………………………………………………… 58
Hình 33: Thiết kế bản đồ cho game trên Tiled Map Editor ………………………………………. 59
Hình 34: Lưu bản đồ dưới định dạng .tmx ……………………………………………………………… 59
Hình 35: Thêm layer Backgound cho bản đồ
………………………………………………………….. 60
Hình 36: Đánh dấu vật cản trong bản đồ để kiểm tra va chạm ………………………………….. 61
TRAINING INTERNSHIP GAMELOFT

TRẦN TRUNG HIẾU
4

Hình 37: Đối tượng đánh dấu vị trí xuất hiện của nhân vật trong bản đồ ……………………. 61
Hình 38: Hoàn thành thiết kế bản đồ
……………………………………………………………………… 62
Hình 39: Giao diện game khi tải bản đồ lên màng hình
……………………………………………. 63
Hình 40: Giới thiệu game Internship AH!
………………………………………………………………. 68
Hình 41: Flow Chart của game Internship AH! ………………………………………………………. 73
Hình 42: Phân tích hướng đôi tượng trong game Internship AH!
………………………………. 74
Hình 43: Đối tượng Game Object …………………………………………………………………………. 75
Hình 44: Đối tượng quái trong game Internship AH! (Enemi) ………………………………….. 77
Hình 45: Đối tượng quái Bandit trong game Internship AH! ……………………………………. 77
Hình 46: Đổi tượng quái Goblin trong game Internship AH! ……………………………………. 77
Hình 47: Đối tượng quái Orc trong game Internship AH! ………………………………………… 78
Hình 48: Đối tượng trụ trong game Internship AH! (Tower) ……………………………………. 79
Hình 49: Đối tượng trụ Archer trong game Internship AH! ……………………………………… 80
Hình 50: Đối tượng trụ BomBand trong game Internship AH! …………………………………. 80
Hình 51: Đối tượng trụ XXX trong game Internship AH! ………………………………………… 81
Hình 52: Đối tượng quản lý tài nguyên trong game Internship AH! ………………………….. 81
Hình 53: Đối tượng quản lý các bản đồ trong game Internship AH! ………………………….. 82
Hình 54: Các lớp tùy chỉnh Sprite dùng trong game Internship AH! …………………………. 83
Hình 55:Đối tượng lưu trữ thông tin người chơi game Internship AH!
………………………. 83
Hình 56: Các màng hình trong game
……………………………………………………………………… 85
Hình 57: Các Enum đánh dấu các Sprite cho các đối tượng ……………………………………… 85
Hình 58: File map.txt
…………………………………………………………………………………………… 86
Hình 59: File “enemies.txt” ………………………………………………………………………………….. 88
Hình 60: File “towers.txt”
…………………………………………………………………………………….. 90
Hình 61: Tạo bản đồ cho game Internship AH! bằng Tiled Map Editor……………………… 91
Hình 62: Đánh dấu trên bản đồ vị trí xây trụ và đường đi của quái ……………………………. 92
Hình 63: Lưu đối tượng các đường của quái
…………………………………………………………… 93
Hình 64: Lưu đối tượng vị trí bắt đầu xuất hiện của quái trên bản đồ ………………………… 93
Hình 65: Lưu vị trí xây các trụ trên bản đồ …………………………………………………………….. 94

TRAINING INTERNSHIP GAMELOFT

TRẦN TRUNG HIẾU
5

MỤC LỤC
LỜI CẢM ƠN
………………………………………………………………………………………………………. 1
DANH MỤC BẢNG …………………………………………………………………………………………….. 2
DANH MỤC HÌNH ẢNH
……………………………………………………………………………………… 3
MỤC LỤC …………………………………………………………………………………………………………… 5
PHẦN 1: TỔNG QUAN………………………………………………………………………………………. 11
Chương 1: GIỚI THIỆU CHUNG ……………………………………………………………………… 11
Chương 2: GIỚI THIỆU CÔNG TY NƠI THỰC TẬP
…………………………………………. 13
Chương 3: NỘI DUNG CÔNG VIỆC VÀ KẾT QUẢ ĐẠT ĐƯỢC ………………………. 15
Chương 4: TRẢI NGHIỆM BẢN THÂN
……………………………………………………………. 16
Chương 5: ĐỊNH HƯỚNG NGHỀ NGHIỆP ………………………………………………………. 16
PHẦN 2: QUẢN LÝ PHIÊN BẢN VỚI SVN
………………………………………………………… 17
Chương 1: QUẢN LÝ PHIÊN BẢN…………………………………………………………………… 17
1.1. Thế nào là quản lý phiên bản? ………………………………………………………………….. 17
2.2. Tại sao phải sử dụng? ……………………………………………………………………………… 17
Chương 2: PHẦN MỀM “TORTOISE SVN” ……………………………………………………… 18
2.1. Tortoise SVN là gì? ………………………………………………………………………………… 18
2.2. Cách sử dụng “Tortoise SVN” …………………………………………………………………. 18
2.2.1. Một số khái niệm cơ bản của SVN
………………………………………………………. 18
2.2.2. Các tạo Server ………………………………………………………………………………….. 18
2.2.3. Đối với Client …………………………………………………………………………………… 19
2.2.4. Update …………………………………………………………………………………………….. 21
2.2.4. Commit ……………………………………………………………………………………………. 21
2.2.5. Switch revision …………………………………………………………………………………. 21
2.2.6. Revert ……………………………………………………………………………………………… 21
2.2.7. Merge
………………………………………………………………………………………………. 21
2.2.8. Conflict ……………………………………………………………………………………………. 21
2.2.9. Show differences ………………………………………………………………………………. 21
2.2.9. Clean up
…………………………………………………………………………………………… 22
TRAINING INTERNSHIP GAMELOFT

TRẦN TRUNG HIẾU
6

PHẦN 3: NGÔN NGỮ LẬP TRÌNH C++
……………………………………………………………… 23
Chương 1: NGÔN NGỮ LẬP TRÌNH ……………………………………………………………….. 23
1.1. Biên dịch là gì? ………………………………………………………………………………………. 23
1.2. Thế nào là ngôn ngữ lập trình
…………………………………………………………………… 23
Chương 2: BẮT ĐẦU VỚI C/C++ …………………………………………………………………….. 24
2.1. Môi trường lập trình
………………………………………………………………………………… 24
2.2. Hướng dẫn ngôn ngữ lập trình C++
…………………………………………………………… 24
2.2.1. Giới thiệu
…………………………………………………………………………………………. 24
2.2.2. Cơ bản của ngôn ngữ lập trình C++ …………………………………………………….. 25
i. Cấu trúc chương trình …………………………………………………………………………… 25
ii. Biến và kiểu dữ liệu …………………………………………………………………………….. 25
iii. Hằng số …………………………………………………………………………………………….. 26
iv. Toán tử ……………………………………………………………………………………………… 26
v. Cơ bản Nhập/Xuất dữ liệu trong C++
…………………………………………………….. 27
2.2.3. Cấu trúc chương trinh
………………………………………………………………………… 28
i. Cấu trúc điều khiển ………………………………………………………………………………. 28
ii. Vòng lặp
…………………………………………………………………………………………….. 28
iii. Lệnh ngắn …………………………………………………………………………………………. 28
iv. Lệnh nhãy………………………………………………………………………………………….. 28
v. Hàm
…………………………………………………………………………………………………… 29
vi. Ghi đè hàm (Overloaded) ……………………………………………………………………. 29
2.2.4. Kiểu dữ liệu phức tạm ……………………………………………………………………….. 29
i. Mảng ………………………………………………………………………………………………….. 29
ii. Chuỗi ký
…………………………………………………………………………………………….. 29
iii. Con trỏ ……………………………………………………………………………………………… 29
iv. Kiểu dữ liệu khác ……………………………………………………………………………….. 29
2.2.5. Hướng đối tượng ………………………………………………………………………………. 29
2.2.6. Tính năng của ngôn ngữ lập trình C++ ………………………………………………… 29
i. Ép kiểu (Implicit – Explicit) ………………………………………………………………….. 29
TRAINING INTERNSHIP GAMELOFT

TRẦN TRUNG HIẾU
7

ii. Type Casting ………………………………………………………………………………………. 29
ii. Preprocessor
……………………………………………………………………………………….. 29
Chương 3: BÀI TẬP THỰC HÀNH…………………………………………………………………… 30
3.1. Bài 1: Learn how to build/use a static Library (.Lib). Example game TicTacToe
……………………………………………………………………………………………………………………. 30
3.2. Bài 2: Physic Engine Framework ……………………………………………………………… 33
PHẦN 4: TÌM HIỂU LÀM GAME VỚI ENGINE COCOS2D-X …………………………….. 34
Chương 1: TÌM HIỂU ENGINE COCOS2D-X …………………………………………………… 34
1.1. Cocos2d-x là gì? …………………………………………………………………………………….. 34
1.2. Tính năng chính ……………………………………………………………………………………… 34
1.3. Build Requirements ………………………………………………………………………………… 34
1.4. Runtime Requirements ……………………………………………………………………………. 34
1.5. Ngôn ngữ lập trình
………………………………………………………………………………….. 35
1.6. Công cụ hỗ trợ ……………………………………………………………………………………….. 35
Chương 2: BẮT ĐẦU VỚI ENGINE COCOS2D-X ……………………………………………. 36
2.1. Download và chuẩn bị file cần thiết ………………………………………………………….. 36
2.2. Cài đặt …………………………………………………………………………………………………… 36
2.3. Cơ bản một số lên sử dụng trong “cmd’ của Windows ………………………………… 40
2.4. Game đầu tiên “Hello World” ………………………………………………………………….. 40
Chương 3: MODULES …………………………………………………………………………………….. 42
3.1. Các thành phần chính trong Cocos2d-x
……………………………………………………… 42
3.1.1. Director
……………………………………………………………………………………………. 42
3.1.2. Scene ………………………………………………………………………………………………. 43
3.1.2. Layer
……………………………………………………………………………………………….. 43
3.1.3. Scene Graph …………………………………………………………………………………….. 43
3.1.4. Action ……………………………………………………………………………………………… 43
3.1.5. Sprite ………………………………………………………………………………………………. 43
3.2. Giao diện trong Cocos2d-x (UI) ……………………………………………………………….. 43
3.2.1. Label ……………………………………………………………………………………………….. 43
3.1.2. Label Effects …………………………………………………………………………………….. 43
TRAINING INTERNSHIP GAMELOFT

TRẦN TRUNG HIẾU
8

3.1.3. Menu và MenuItem …………………………………………………………………………… 43
3.1.4. Button ……………………………………………………………………………………………… 44
3.1.5. CheckBox ………………………………………………………………………………………… 44
3.1.6. LoadingBar ………………………………………………………………………………………. 44
3.1.7. Slider ………………………………………………………………………………………………. 44
3.1.8. TextField …………………………………………………………………………………………. 44
3.3. Di chuyển giữa các màng hình (Transition Scene)
………………………………………. 44
3.3. Các loại lắng nghe sự kiện
……………………………………………………………………….. 44
3.4. Actions ………………………………………………………………………………………………….. 44
3.4.1. Basic Actions
……………………………………………………………………………………. 44
3.4.2. Sequences and how to run them ………………………………………………………….. 47
3.5. Animotion ……………………………………………………………………………………………… 47
3.6. Touch ……………………………………………………………………………………………………. 47
3.6.1. Single – touch events
…………………………………………………………………………. 47
3.6.2. Multi – touch events ………………………………………………………………………….. 48
3.7. Audio ……………………………………………………………………………………………………. 48
3.7.1. Effect ………………………………………………………………………………………………. 48
3.7.2. Music ………………………………………………………………………………………………. 49
Chương 4: TÍNH NĂNG NÂNG CAO……………………………………………………………….. 50
4.1. Physics Engine
……………………………………………………………………………………….. 50
4.1. TileMap
…………………………………………………………………………………………………. 50
Chương 5: CÔNG CỤ HỖ TRỢ ………………………………………………………………………… 51
5.1. TexturePacker ………………………………………………………………………………………… 51
5.1.1. SpriteSheet là gì?
………………………………………………………………………………. 51
5.1.2. Download and cài đặt phần mềm hỗ trợ
……………………………………………….. 51
5.1.3. Tạo Spritesheet cho Cocos2d-x sử dụng TexturePacker
…………………………. 52
5.1.3.1. Tạo Sprite Sheet với TexturePacker ………………………………………………. 52
5.1.3.2. Sử dụng Sprite Sheet cho Cocos2d-x……………………………………………… 54
5.2. Tile Map Editor
………………………………………………………………………………………. 56
TRAINING INTERNSHIP GAMELOFT

TRẦN TRUNG HIẾU
9

5.2.1. Tiled Map Editor là gì? ……………………………………………………………………… 56
5.2.2. Download and cài đặt ………………………………………………………………………… 56
5.2.3. Tạo bản đồ cho game với Tiled Map Editor …………………………………………. 56
5.2.3.1. Tạo bản đồ với MapTiled with Tiled ……………………………………………… 56
5.2.3.2. Tải map lên game Cocos2d-x ……………………………………………………….. 60
PHẦN 5:LÀM GAME “INTERNSHIP AH!” VỚI COCOS2D-X
…………………………….. 68
Chương 1: GIỚI THIỆU “Game Internship AH!”
………………………………………………… 68
1.1. Giới thiệu game Internship AH! ……………………………………………………………….. 68
1.2. Công cụ hỗ trợ ……………………………………………………………………………………….. 68
1.3. Thông tin nhóm thực hiện
………………………………………………………………………… 69
1.4. Task
………………………………………………………………………………………………………. 69
Chương 2: BẮT ĐẦU THỰC HIỆN ………………………………………………………………….. 72
2.1. Lên ý tưởng và xây dựng GamePlay …………………………………………………………. 72
2.2. Flow Chart …………………………………………………………………………………………….. 73
2.3. Phân tích hướng đối tượng
……………………………………………………………………….. 73
2.4. Chuẩn bị tài nguyên cho game
………………………………………………………………….. 86
2.3.1. Resource Tile Map ……………………………………………………………………………. 90
2.3.2. Resourc Image
………………………………………………………………………………….. 91
2.3.3. Resourc Sprite Sheet …………………………………………………………………………. 91
2.3.4. Resourc Audio
………………………………………………………………………………….. 91
2.5. Thiết kế bản đồ cho game ………………………………………………………………………… 91
2.6. Thiết kế Sprite Sheet
……………………………………………………………………………….. 94
2.6.1. Sprite Sheet cho quái (Enemi)
…………………………………………………………….. 94
2.6.2. Sprite Sheet cho trụ (Tower) ………………………………………………………………. 94
2.7. Viết Code ……………………………………………………………………………………………… 94
2.1.1.
Tạo các màng hình game theo Flow Chart. ……………………………………….. 94
2.1.2.
Xây dựng trụ. ………………………………………………………………………………… 97
2.1.3.
Thêm vật lý vào cho game.
……………………………………………………………. 100
2.1.4.
Kiểm tra va chạm giữa quái và trụ.
…………………………………………………. 101
TRAINING INTERNSHIP GAMELOFT

TRẦN TRUNG HIẾU
10

2.1.5.
Xây dựng hệ thống nâng trụ. …………………………………………………………. 102
2.1.6.
Xây dựng tính điểm cho người chơi và chuyển bản đồ khi thắng game. 102
TÀI LIỆU THAM KHẢO ………………………………………………………………………………….. 105
Tài liệu training của GameLoft ………………………………………………………………………… 105
Ebook Tham khảo ………………………………………………………………………………………….. 105
Websites tham khảo ……………………………………………………………………………………….. 105
KẾT LUẬN ……………………………………………………………………………………………………… 106

TRAINING INTERNSHIP GAMELOFT

TRẦN TRUNG HIẾU
11

PHẦN 1: TỔNG QUAN
Chương 1: GIỚI THIỆU CHUNG
Họ tên
: TRẦN TRUNG HIẾU
Email
: trunghieu4121993@gmail.com
Số điện thoại : 0902.401.367
Lớp
: 02DHTH
Khoa
: CNTT
MSSV
: 2001110117
Công ty thực tập
: GameLoft Việt Nam
Địa chỉ

: Tầng 7, tòa nhà E-Town 2, 364 Cộng Hòa, TP HCM
Vị trí tại nơi thực tập
: Thực tập sinh.
Chương trình thực tập bao gồm những nội dung chính sau:
 Đào tạo về các kỹ thuật phát triển game trên di động.
 Tìm hiểu quy trình phát triển game chuyên nghiệp trên điện thoại di động.
 Thực hành phát triển game trên điện thoại di động.
 Rèn luyện các kỹ năng làm việc nhóm, thực hiện dự án, kỹ năng giao tiếp,
trình bày, báo cáo.
Quá trình thực tập tại GameLoft, Em trải qua quy trình sau:
– Em bắt đầu bằng cách nộp hồ sơ vào GameLoft với vị trí thực tập sinh
(Internship). Khi được các Chị bên team nhân sự gọi lên làm bài test.
– Làm bài test (C++/Java) và đợi kết quả. Khi kết quả đạt sẽ được nhận lịch lên
GameLoft để phỏng vấn.
– Phỏng vấn với 1 Anh/Chị thuộc team training. Và đợi kết quả. Khi kết quả đạt
sẽ nhận được lịch lên Thực tập.
TRAINING INTERNSHIP GAMELOFT

TRẦN TRUNG HIẾU
12

– Trong quá trình thực tập Em được truyền đạt 3 phần chính: SVN, C++,
Cocos2d-x. Và kết thúc bằng 1 project Game làm theo nhóm.
– Cuối cùng là buổi thuyết trình báo cáo những gì đã học được trong suốt quá
trình thực tập tại GameLoft.

TRAINING INTERNSHIP GAMELOFT

TRẦN TRUNG HIẾU
13

Chương 2: GIỚI THIỆU CÔNG TY NƠI THỰC TẬP

GameLoft là công ty làm về lĩnh vực công nghệ thông tin, được thành lập năm
1993 với trụ sở chính đặt ở Pháp. GameLoft hiện có 28 studio đặt trên kháp các quốc gia,
trong đó Việt Nam có 4 studio 2 cái ở HCM, 1 ở Hà Nội, 1 ở Đà Nẵng. Trong đó studio ở
toàn nhà E.town 2 là lớn nhất với khoản 500 nhân viên và chiếm trọn 1 tầng của tòa nhà.

GameLoft có khoản 5.000 nhân viên trong đó nhân viên ở Việt Nam chiếm tới
1.400 người. Phần lớn các nhân viên đều rất trẻ và nhân viên được làm việc trong môi
trường chuyên nghiệp và rất thỏa mái.

Studio của GameLoft nằm trọn trên tầng 7 của tòa nhà Etow 2, có khoản 500 nhân
viên trong đó có nhiều bạn là người nước ngoài. Không gian tại studio rất gọn gàn, ngăn
nắp, sạch sẽ và đặt biệt mặc dù có hàng trăm người làm việc. Tại Studio nhân viên được
phân bổ theo dạng từng nhóm, mỗi nhóm có só lượng khác nhau, làm một chuyên môn
khác nhau như: Game 2d, Game 3d, Test Game, Viết Tool, bộ phân IT, Artist, …

Văn hóa làm việc ở GameLoft rất thỏa mái, có thể mặc bất cứ trang phục nào bạn
thích. Thời gian làm việc từ 8-8h30 sáng đến 12h nghĩ trưa và 1h30 làm tiếp tới 5h30.
Tuy nhiên mỗi nhóm có thể linh hoạt thời gian, miễn đảm báo tiến độ công việc.

Tại GameLoft nhân viên có cơ hội làm việc các dự án trong môi trường toàn cầu
với các đội ngủ khác nhau trên thế giới tại Mỹ, Nam Mỹ, Châu Âu, New York, …
TRAINING INTERNSHIP GAMELOFT

TRẦN TRUNG HIẾU
14

Đặc biệt ở GameLoft Việt Nam sẽ có cơ hội làm việc với nhiều công nghệ khác
nhau (iOS, Android, WinPhone 8, … ) và các thiết bị chạy nền tản Java đến những nền
tản phức tạm như tablet (Samsum galaxy Tab, Ipad, Blackbrry Playbook, …)

TRAINING INTERNSHIP GAMELOFT

TRẦN TRUNG HIẾU
15

Chương 3: NỘI DUNG CÔNG VIỆC VÀ KẾT QUẢ ĐẠT ĐƯỢC
CÔNG VIỆC
ĐÁNH GIÁ
Training Tortoise SVN
95%
Training C++ Language
80%
Training Engine Cocos2d-x
90%
Game Internship AH!
90%
Kiến thức học được:
Học hỏi được nhiều kỷ năng làm việc như:
 Cách làm việc cá nhân.
 Cách làm việc nhóm.
 Cách lên kế hoạch, viết báo cáo công việc.
 Cách quản lý thời gian.
Quy trình làm game:
1. Lên ý tưởng cho game
2. Hoàn thiện game play
3. Chuẩn bị Resource hình ảnh, Sprite Sheet để làm Animation . . .
4. Thiết kê OOP cho game.
5. Coding
Kỹ thuật sử dụng trong làm game:
1. Thiết kế hình ảnh để làm tài nguyên cho game (Designer): Thiết kế giao diện
màng hình trong game, các button, sprite trên màng hình.
2. Quản lý tài nguyên trong game.
3. Cách tạo Sprite Sheet để làm Animation cho các nhân vật trong game.
4. Sử dụng Tiled Map Editor để vẽ bản đồ trong game và đánh dấu điểm cần
thiết trong game.
TRAINING INTERNSHIP GAMELOFT

TRẦN TRUNG HIẾU
16

– Tổ chức lưu trữ các thông số của các đối tượng trong game xuống dạng file để
dễ dàng nâng cấp, sửa đổi để điều chỉnh lại game. (Enemi, Tower, Map, …)

Chương 4: TRẢI NGHIỆM BẢN THÂN

Có cơ hội tiếp xúc với môi trường thực tế tại một công ty làm game lớn hàng đầu
Việt Nam, được tham gia vào khóa training của GameLoft. Gameloft một trong những số
ít công ty có team training để đào tạo cho nhân viên. Được làm quen với làm việc với
phong cách chuyên nghiệp.

Kết thúc khóa thực tập tại GameLoft, Em được rèn luyện, củng cố kiến thức ngôn
ngữ lập trình C++, đặc biệt được biết thêm nhiều mảng kiến thức của ngôn ngữ C++
(Casting, PreProcessor, …). Được tiếp cận với nhiều công nghệ mới đặc biệt những công
nghệ làm game. Có cơ hội tiếp xúc với nhiều Anh/Chị có nhiều năm kinh nghiệm trong
lĩnh làm game, đào tạo lập trình viên.

Chương 5: ĐỊNH HƯỚNG NGHỀ NGHIỆP

Hiểu được quy trình làm Game, cách kiếm lợi nhuận, kinh doanh từ game. Từ đó
có thể hiểu được phần nào ngành “Công nghiệp làm game”. Vận dụng các tính năng ưu
việt của các tính năng hỗ trợ trong các Engine khi làm game, đặc biệt làm làm game 2D
với Cocos2d-x.
Định hướng được một team làm game không thể thiếu các nhân tố sau:
 Thiết kế, lên ý tưởng và xây dựng cách hoạt động của game (Game designer).
 Thiết kế và vẽ đồ họa cho game (Artist).
 Coder.
 Bộ phận maketing để quản bá game.
Trở thành một lập trình viên phát triên game đa nền tảng.
TRAINING INTERNSHIP GAMELOFT
QUẢN LÝ PHIÊN BẢN VỚI SVN

TRẦN TRUNG HIẾU
17

PHẦN 2: QUẢN LÝ PHIÊN BẢN VỚI SVN
Chương 1: QUẢN LÝ PHIÊN BẢN
1.1. Thế nào là quản lý phiên bản?
“Quản lý phiên bản” là khái niệm quản lý nhiều phiên bản của 1 dự án (Ứng
dụng). Giúp giữ được nhiều phiên bảng của 1 tập hợp thông tin. Dễ dàng lấy lại
được những phiên bản trước đó (“Rool back”).
Giảm sự chồng chéo trong công việc và cập nhập liên tục tình hình trong
nhóm. Cơ chế
2.2. Tại sao phải sử dụng?

Quản lý việc chia sẽ file, tài liệu: ngăn chặn việc xoá, sữa file , . . .

Giữ lại các phiên bản của file, tài liệu trước đó.

Hình 1: Cơ chế lưu trữ của Tortoise SVN
TRAINING INTERNSHIP GAMELOFT
QUẢN LÝ PHIÊN BẢN VỚI SVN

TRẦN TRUNG HIẾU
18

Chương 2: PHẦN MỀM “TORTOISE SVN”
2.1. Tortoise SVN là gì?

Tortoise SVN công cụ giúp quản quản lý phiên bản dạng “Revision Control”.
2.2. Cách sử dụng “Tortoise SVN”
2.2.1. Một số khái niệm cơ bản của SVN
Khái niệm
Chức năng
Repository
Vùng lưu trữ dữ liệu trên server.
Working Copy
Vùng làm việc của Client tại máy.
HEAD
Phiên bản mới nhất trên
Revision
Phiên bản cũ
Bảng 1: Một số khái niệm cơ bản của SVN
2.2.2. Các tạo Server
 Chọn thư mục để làm server lưu trữ.
 Create repository here.
Chọn 1 thư mục để chứa dữ liệu cho server
TRAINING INTERNSHIP GAMELOFT
QUẢN LÝ PHIÊN BẢN VỚI SVN

TRẦN TRUNG HIẾU
19

Hình 2: Tạo Repository cho server
2.2.3. Đối với Client
Để sử dụng file, tài liệu từ server (Check Out)
 Chọn thư mục lưu trữ.
 SVN Check out.
Chọn 1 thư mục để lưu dữ liệu check out từ server xuống:
TRAINING INTERNSHIP GAMELOFT
QUẢN LÝ PHIÊN BẢN VỚI SVN

TRẦN TRUNG HIẾU
20

Hình 3: Checkout không gian làm việc từ server về client
Cấu hình lại nơi lưu:

Hình 4: Cấu hình đường dẫn khi Checkout

TRAINING INTERNSHIP GAMELOFT
QUẢN LÝ PHIÊN BẢN VỚI SVN

TRẦN TRUNG HIẾU
21

2.2.4. Update

Lấy dữ liệu mới nhất từ Repository của server về không gian làm việc của
máy Client. Thao tác:
Tortoise SVN → Update
2.2.4. Commit

Cập nhật dữ liệu từ không gian làm việc hiện tại lên Repository của server.
Thao tác:
Tortoise SVN → Commit
2.2.5. Switch revision

Chọn một phiên bản cũ hơn HEAD để lưu về không gian làm việc hiện tại (
Working copy). Thao tác:
Tortoise SVN → Switch…
2.2.6. Revert

Quay lui về một phiên bảng cũ hơn để làm việc cho Repository của server.
(Từc chọn 1 phiên bản cũ nào đó làm phiên phản mới nhất cho Repository trên
server). Thao tác:
Tortoise SVN → Show Log
→ Chọn 1 phiên bản trong danh sách Log
→ Revert to this revision
2.2.7. Merge

Gôm dữ liệu các phiên bản lại thành phiên bản mới nhất cho Repository của
Server. Thao tác:
Tortoise SVN → Merge
2.2.8. Conflict

Xung đột dữ liệu giữa Working copy và Repository trên server ( Do dữ liệu của người
commit chưa phải là phiên bản mới nhất.
2.2.9. Show differences

Xem sự khác nhau giữa phiên bản hiện tại và phiên bản trước đó trên server. Thao tác:

TRAINING INTERNSHIP GAMELOFT
QUẢN LÝ PHIÊN BẢN VỚI SVN

TRẦN TRUNG HIẾU
22

Chọn file → Tortoise SVN → Show differences
Click chuột phải vào file đã chỉnh sửa: Tortoise SVN → Diff

2.2.9. Clean up
Xoá các file bị xung đột với server, Lấy bản mới nhất của Reposion của server về Working
copy. Thao tác:
Tortoise SVN → Clean up…
Hình 5: So sánh sự khác nhau bằng “Show Differences”
TRAINING INTERNSHIP GAMELOFT
ENGINE COCOS2D-X

TRẦN TRUNG HIẾU
23

PHẦN 3: NGÔN NGỮ LẬP TRÌNH C++
Chương 1: NGÔN NGỮ LẬP TRÌNH
1.1. Biên dịch là gì?

Máy tính chỉ hiểu một ngôn ngữ gôm thông tin bao gôm nhưng con sô 0 và
1. Ngôn ngữ này được gọi là “Ngôn ngữ máy” chỉ gồm các bit 0 1 ( Với tương ứng
0 là tín hiệu điện đóng và 1 là tín hiệu điện mở). Với “ngôn ngữ máy” chỉ bao gôm
0 và 1 thì quá trình làm việc với máy tính sẽ rất khó khăn và gây rất nhiều bất tiện.

Để khắc phục việc phải làm việc với “Ngôn ngữ máy” con người đã đưa ta
tập hợp các cú pháp lệnh để thể hiện ngôn ngữ máy một cách dễ dàng hơn và thân
thiện với người sử dụng hơn.

Để máy tính có thể hiệu được những tập hợp các cú pháp lệnh này, thì cần có
quá trình chuyển thì các cú pháp lệnh này sang “Ngôn ngữ máy” để máy tính có thể
hiểu được.
1.2. Thế nào là ngôn ngữ lập trình

Ngôn ngữ lập trình là tập hợp các cú pháp lệnh giúp lập trình viên giao tiếp
với tính một cách thuận tiện nhất nhờ các cú pháp của ngôn ngữ đó mà không cần
phải dùng trực tiếp ngôn ngữ máy để làm việc với máy tính.

Khi lập trình viên sử dụng ngôn ngữ lập trình, để máy tính có thể hiểu được
đều cần quá trình biên dịch để chuyển sang “Ngôn ngữ máy”.

Đánh giá post

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *