Cùng với sự phát triển như vũ bão của công nghệ số là sự phát triển vượt trội của một loạt các loại thiết bị mobile.. Cùng với sự bùng nổ của smartphone hiện nay, và sự phát triển của cá
Trang 1I Tổng quan về mobile và game 0
1 Tổng quan 0
2 Lập trình game mobile 2
a) Các bước để xuất bản game: 2
b) Kiếm tiền như thế nào 4
II Thể loại game trên mobile 8
1 Game hành động (action game) 8
2 Game nhập vai ( Role – Playing Game) 8
3 Game phiêu lưu (adventure game): 8
4 Game chiến thuật (strategy game): 8
5 Game kinh dị: 9
6 Game mô phỏng (simulation game) 9
7 Game thể thao (sport game) 9
8 Game giải đố (puzzle game) 9
III Engine game 9
1 Các loại Engine 10
2 AndEngine: 11
IV Trong tầm ngắm: 13
Trang 2Lập trình Game Mobile
I Tổng quan về mobile và game.
1 Tổng quan.
Cùng với sự phát triển như vũ bão của công nghệ số là sự phát triển vượt trội của một loạt các loại thiết bị mobile Với chức năng liên lạc gần như là thiết yếu đối với cuộc sống của con người thì mobile đã được phổ biến dần trong xã hội Không chỉ làm được có vậy, hiện nay thiết bị mobile còn có thêm rất nhiều chức năng để hỗ trợ người dùng trong cuộc sống Nó có thể là công cụ làm việc như một chiếc máy vi tính mini, có thể là công cụ giải trí, …
Theo bản báo cáo mang tên “the mobile economy 2013” của hiệp hội di động toàn cầu GSMA (global systems for mobile communications association) hiện đang
có khoảng 3,5 tỷ người dùng thiết bị di động trên toàn cầu và sẽ tăng lên khoảng 4
tỷ người vào năm 2018
Sự phát triển công nghệ đã làm cho những chiếc mobile có thêm nhiều chức năng hơn Ngày nay khi sự phát triển giải trí cho con người đang phát triển thì việc giải trí trên chiếc mobile nhỏ gọn của chúng ta lại càng có cơ hội phát triển hơn nữa Trong đó chơi game là một trong những hoạt động giải trí chiếm nhiều thời gian hoạt dộng nhất Vì vậy cơ hội để chúng ta thành công trên công việc lập trình Game mobile là rất lớn
Cùng với sự bùng nổ của smartphone hiện nay, và sự phát triển của các hệ điều hành dành cho điện thoại, tiểu biểu là Android và IOS đã tạo nên một thị trường màu mỡ cho xu hướng Game Mobile phát triển mạnh mẽ Trong năm 2014 và sắp tới, xu hướng người dùng chơi game chuyển dịch từ máy tính sang mobile sẽ ngày càng tăng mạnh và hết sức mạnh mẽ nhờ lợi thế tiện lợi và giải trí nhanh
Trang 3Vậy thì Game Mobile sẽ phát triển theo xu hướng nào? Đó là những game cũng gọn nhẹ, dễ chơi, dễ dùng và nhanh gọn, thuận tiện như chính đặc trưng của chiếc Mobile vậy Bạn có thể giải trí ở mọi lúc, mọi nơi, phù hợp với nhu cầu thư giãn nhẹ nhàng, tranh thủ Đó chính là lý do rất đơn giản để khiến cho những tựa găm như Flappy Bird hay 2048 hay Freaking Math đã làm mưa làm gió trên thị trường vừa qua
2 Lập trình game mobile.
a) Các bước để xuất bản game:
- Bước 1: Lên ý tưởng cho game
Trong giai đoạn này nhóm phát triển sản phẩm thường họp với nhau
để trao đổi, phát triển ý tưởng Qua đó các ý tưởng cho lập trình, nội dung game, thể loại game (hành động, giải đố, phiêu lưu, platform, thể thao, nhập vai …), phong cách đồ họa và âm nhạc được dần hình thành Giai đoạn này khá quan trọng và rất có ý nghĩa nhằm tránh tình trạng sản phẩm cuối cùng khi ra mắt khác xa so với ý tưởng ban đầu và không có được sự đặc trưng
- Bước 2: Đặc tả cho lập trình
Đây là một giai đoạn tối quan trọng trong quá trình thiết kế game Bạn càng bỏ nhiều thời gian cho giai đoạn này thì khi lập trình, gỡ lỗi, test hay port (chuyển game từ hệ máy, loại máy này sang hệ máy, loại máy khác) càng dễ kiểm soát và phát hiện lỗi cũng như điều chỉnh lỗi kịp thời
Trang 4Giai đoạn này, nhóm lập trình sẽ cùng nhau chơi thử chương trình game bằng cách ghi ra giấy bút các ưu và khuyết cũng như mẫu thiết kế phù hợp
- Bước 3: Viết code, thiết kế đồ họa và hiệu ứng âm thanh
Giai đoạn thực sự bắt tay vào thiết kế game Các lập trình viên viết code sẽ dùng các chương trình như Esclipe, Netbean để phát triển game Các đồ họa viên dựa trên ý tưởng để phác thảo hình ảnh Do độ phân giải của màn hình điện thoại di động khá nhỏ nên mọi vật thể đồ họa trong game đều được thực hiện bằng đồ họa điểm ảnh (pixel art) Đây cũng là giai đoạn thiết kế âm thanh cho game
- Bước 4: test và sửa lỗi
Sau khi đã hoàn thành cơ bản, giai đoạn cuối cùng sẽ là chơi thử Nhiều người cho rằng việc chơi thử game rất thú vị Nhưng thực chất hầu hết người tham gia test game đều cho biết đây là một giai đoạn khó nhọc Các nhân viên test game sẽ chơi trên nhiều model điện thoại khác nhau, thuộc các HĐH khác nhau để xem độ tương thích của game với thiết bị
Trang 5cũng như lỗi code Nếu phát hiện lỗi sẽ tiến hành sửa lỗi Bước hoàn thiện cuối cùng là phát hành bản beta cho game thủ chơi thử và lấy ý kiến
Bước gán đầu số cho game chỉ thực hiện đối với các game online Gán đầu số để các bên có thể quản lý và thu tiền người chơi
Để sản xuất một game, các quy trình bắt buộc phải diễn ra đùng như trên Tuy nhiên, tùy quy mô nhóm làm việc, tùy yêu cầu của game mà thời gian hoàn thành là khác nhau Có những game chỉ do một người làm,
nhưng cũng có game phải huy động cả trăm người
b) Kiếm tiền như thế nào
- Có một thực tế nhiều nhà phát triển ứng dụng phải thừa nhận là
họ thu về được nhiều tiền hơn đối với một ứng dụng miễn phí (nhưng thu phí không bắt buộc bên trong - In-App Purchase) hơn là một ứng dụng được phát hành với giá khoảng 0.99 USD Một lợi thế nữa của ứng dụng miễn phí là nó sẽ có lượng tải về nhiều gấp 10 lần so với ứng dụng có thu phí
- 2 ứng dụng song song
Nhiều nhà phát triển chọn cách phát hành 2 ứng dụng, một miễn phí
và một có trả phí Bản có trả phí thường có thêm những hậu tố như Pro,
Trang 6HD Trên bản miễn phí, nhà phát hành thường đính kèm link dẫn đến bản
có trả phí trên iTunes hoặc Play Store
Ở đây, ứng dụng miễn phí thường đóng vai trò “chim mồi” Người dùng có thể thử và nắm bắt các tính năng của bản miễn phí, sau đó nếu có nhu cầu sẽ nâng cấp lên bản trả phí với nhiều tính năng ưu việt hơn
- In-App Purchase
Trang 7In-App Purschase cho phép người dùng mở khóa các tính năng mới hoặc mua vật phẩm trong game Trên thực tế, 49/50 ứng dụng có tổng thu cao nhất trên App Store tại Mỹ (ở thời điểm ngày 13/2/2014) đều là ứng dụng dạng này Chẳng hạn, ứng dụng đang dẫn đầu về tổng doanh thu trên App Store tại Mỹ là Clash of Clans có doanh thu trung bình khoảng 3 triệu USD/ngày trong năm 2013
Khi viết một ứng dụng, nhà phát triển có thể chọn IAP (In-App
Purchase) theo kiểu một lần duy nhất hoặc theo kiểu tiếp diễn (chẳng hạn, mua 20 vàng với giá 0,99 USD), tức là mua đi mua lại nhiều lần
- Quảng cáo
Banner ad – quảng cáo bằng banner là cách phổ biến nhất trên các ứng dụng miễn phí Điểm mấu chốt của hình thức này chính là lượng truy cập
Trang 8Nếu ứng dụng của bạn có một lượng truy cập đủ lớn, bạn sẽ có một nguồn thu cực kỳ khủng khiếp Flappy Bird của Nguyễn Hà Đông chính là ví dụ tiêu biểu nhất Anh này chia sẻ trên The Verge, anh thu về 50.000 USD mỗi ngày từ ứng dụng có 50 triệu lượt tải nói trên
Hai hệ thống quảng cáo lớn nhất trên các ứng dụng là iAds và Admob, thuộc về Apple và Google Theo các nhà phát triển, iAds là hệ thống giúp
họ thu về nhiều hơn Tính trung bình, nhà phát triển có thể thu về khoảng 2 USD cho 100 lượt tải về Con số này không cố định, phụ thuộc vào lượt click trên các banner quảng cáo
- CPI (Cost Per Install)
Cost Per Install - tính phí cho mỗi lượt tải về - là hình thức trả phí tương đối mới trên di động, mặc dù nó đã có trên web từ lâu Ví dụ cho loại hình này có thể kể đến Playhaven hay Chartboost - những bên thứ 3 cung cấp các phần mềm cần thiết liên quan đến ứng dụng miễn phí do bạn phát triển
Người dùng sẽ gặp các “pop-up” trong game và ứng dụng, cho hiển thị một ứng dụng khác và dòng chữ “cài đặt ngay” Với mỗi ứng dụng được cài đặt theo hình thức Cost Per Install, bạn (nhà phát triển ứng dụng miễn phí) sẽ nhận được một khoản tiền nhất định Thông thường, bên ứng dụng đích đến sẽ phải trả 0,8 – 3 USD trên mỗi lượt tải cho các công ty CPI
- Các khoản tài trợ
Kiếm được các khoản tài trợ khi viết ứng dụng luôn là điều tuyệt vời với các nhà phát triển Công thức của hình thức này thường là: nhà phát triển tìm đến một công ty nào đó và nói “tôi có một ý tưởng về ứng dụng abc, tôi sẽ đưa nhãn hiệu của bạn lên đó với XXX USD” hoặc “tôi đã phát
Trang 9triển ứng dụng này vài tháng trước và đạt 50.000 lượt tải, tôi sẽ cập nhật
đồ họa của nó với nhãn hiệu của bạn với XXX USD”
II Thể loại game trên mobile
1 Game hành động (action game)
Gồm tất cả tựa game có liên quan đến tất nhiên là hành động, đề cao khả năng chiến đấu của nhân vật trong từng khu vực rộng lớn; ít sử dụng câu đố, thông điệp phức tạp, trận đánh tay đôi (nếu có thì là lúc đánh trùm)
Game đề cao khả năng chiến đấu của nhân vật trong từng khu vực rộng lớn Người chơi “nhìn” bằng mắt của chính nhân vật hoặc quan sát từ phía trên hoặc từ sau lưng nhân vật; và vị trí quan sát có thể thay đổi Dạng này yêu cầu bạn phải có khả năng phản xạ nhanh
2 Game nhập vai ( Role – Playing Game)
Người chơi sẽ vào vai một nhân vật hoặc một nhóm để tham gia các sự kiện, giao tiếp với các nhân vật phụ, bước vào những cuộc chiến (theo lượt hoặc thời gian thực) với một quá trình xây dựng nhân vật thông qua việc tăng cấp độ, phát triển các kỹ năng, tính cách
3 Game phiêu lưu (adventure game):
Nét cơ bản của của thể loại này là khám phá các vùng Đất, tìm các vật dụng
và giải đố; có rất ít hoặc gần như là không có các cảnh mang tính “hành động” Thể loại trò chơi này không chú trọng vào sự phát triển nhân vật, cũng như tăng cấp độ
Game phiêu lưu có cốt truyện rất chặt chẽ và rất dài, đòi hỏi người chơi phải vận dụng trí tuệ, lòng nhẫn nại và sự quyết đoán để chọn hướng đi tốt nhất
Trang 104 Game chiến thuật (strategy game):
Thể loại này chú trọng cách quản lý nguồn tài nguyên và quân đội trước những đối thủ do máy hoặc người chơi khác điều khiển, hầu hết đều “dính dáng” chiến tranh
Thể loại này có một số rất ít game không lấy đề tài chiến tranh mà hướng về kinh tế hoặc chính trị
5 Game kinh dị:
Gần giống game hành động – game phiêu lưu nhưng luôn tạo ra cảm giác sợ hãi và hồi hộp cho người chơi Yếu tố kinh dị trong game thường được tạo ra từ
ma quỷ (demon), linh hồn (ghost), thây ma (zombie)
6 Game mô phỏng (simulation game)
Yêu cầu duy nhất của thể loại này là phải mô phỏng làm sao cho càng giống thế giới thực càng tốt
7 Game thể thao (sport game)
Được xem là một nhánh rẽ của trò chơi mô phỏng, game thể thao mô tả một môn thể thao của thế giới thực diễn ra trong môi trường 3d
Game thường được tổ chức theo cơ cấu mùa giải, và cho phép người chơi đảm nhận các vị trí huấn luyện viên, ông bầu Bên cạnh các tính năng trao đổi, chuyển nhượng cầu thủ, quản lý ngân sách
8 Game giải đố (puzzle game)
Trang 11Game đòi hỏi người chơi phải quyết định nhanh chóng (và chính xác) các vấn đề đã được đặt ra theo hướng tư duy, suy luận logic Đôi khi các vấn đề này lại được lồng ghép, xâu chuỗi để tăng độ khó
* Ngoài ra còn một số thể loại như: Giải câu đố, đối kháng
III Engine game
Nếu chúng ta coi mỗi tựa game là một ngôi nhà thì engine game chính là hệ thống cung cấp vật liệu xây dựng, trang thiết bị và các phương thức lắp ghép cơ bản Các kỹ sư làm game chỉ việc vẽ ra bản thiết kế, tự mình lắp ghép các vật liệu, trang trí hay sắp đặt chúng thành một ngôi nhà hoàn chỉnh
• Chức năng cốt lõi của engine game bao gồm: cung cấp công cụ dựng hình (kết xuất đồ họa) cho các hình ảnh 2D hoặc 3D, công cụ vật lý (tính toán và phát hiện va chạm), âm thanh, mã nguồn, hình ảnh động, trí tuệ nhân tạo, phân luồng, tạo dòng dữ liệu xử lý, quản lý bộ nhớ, dựng ảnh đồ thị và kết nối mạng Nhờ có các engine mà công việc làm game trở nên ít tốn kém và đơn giản hơn Một số engine nổi bật hiện nay có thể kể đến như Cry Engine, Unreal Engine, Source Engine, Id Tech Engine, IW Engine, Unity Engine, Dead Engine…
Xây dựng dựa trên tiêu chuẩn công nghiệp như: OpenGL, OpenAL, Google Maps, Box2D, Facebook, Game Center
Nhờ các API, các nhiệm vụ như đối tượng hoạt hình, giao diện người dùng, thêm tính chất vật lý mà chỉ mất vài dòng mã
Viết một lần và có thể xây dựng cho Android, iOS
Trang 12Là một commercial game engine, được xây dựng bởi đội ngũ unity
technologies
Là một trong những engine game đa nền tảng tốt nhất hiện nay
Được phát triển bằng C/C++
Có khả năng hỗ trợ mã viết bằng C#, javascript hoặc boo
Có các phiên bản Cocos2d-iphone , Cocos2d-JS, Cocos2d-x
Trong đó Cocos2d-x:
+ Là 1 Engine hỗ trợ lập trình Game đa nền tảng : Mobile (IOS,
ANDROID, Blackberry, TIZEN, WP), Window, MacOS, HTML5,…
+ Engine này do các bạn lập trình viên Trung Quốc (hay Korean) phát triển + Hỗ trợ chủ yếu 3 ngôn ngữ: C++, Lua, Javascript
Do Mario Zechner khởi xướng
Triển khai được trên Windows, Mac OS X, Linux, Android, iOS và HTML5/ WebGL
Apache 2 cấp phép phần mềm mã nguồn mở, bất cứ ai cũng có thể sử dụng
2 AndEngine:
Là một Game engine mã nguồn mở hoàn toàn miễn phí dựa trên Android OpenGL
Trang 13AndEngine được xây dựng bởi Nicolas Glamlich
Về cơ bản là một gói các lớp (class) của java được viết sẵn và đóng gói Tương thích với môi trường Eclipse
Có 2 loại AndEngine: GLES1 với GLES2
So sánh GLES1 với GLES2
a GLES1 và GLES2 có nghĩa là gì?
Đó là ba phiên bản AndEngine (chi nhánh), GLES2 và GLES2 Trung tâm Neo được là phiên bản mới nhất của động cơ, GLES1 phát triển phiên bản đã được dừng lại Đó là lý do tại sao nếu bạn là người mới, nó khuyến khích mạnh mẽ để sử dụng phiên bản mới nhất, rõ ràng là nó luôn luôn tốt hơn để làm việc với phần mềm mới nhất Hãy nhận biết rằng trên trang web của tôi, trong bài viết của tôi, tôi luôn luôn cố gắng để sử dụng phiên bản động cơ mới nhất
b Sự khác biệt quan trọng nhất giữa hai phiên bản:
Linh sam của tất cả, GLES2 yêu cầu phiên bản Android> = 2.2
Một số nhà phát triển nói rằng GLES2 là chậm hơn so với GLES1 trong một
số trường hợp
GLES2 là mới nhất, và phiên bản hiện đang phát triển
c Tôi nên chọn cái nào?
Đối với tôi không có nghi ngờ, bạn nên sử dụng phiên bản mới nhất Nhưng nếu bạn quyết định xuất bản ứng dụng của bạn cho khán giả rộng lớn hơn Android, GLES2 có thể là ý tưởng tồi, bởi vì nó đòi hỏi phiên bản Android> = 2.2 Các tin tốt
là một thực tế, rằng phiên bản này hiện đang được hỗ trợ bởi 89% của các thiết bị trên toàn thế giới Vì vậy về cơ bản tất cả mọi thứ phụ thuộc vào nhu cầu ứng dụng của bạn Phiên bản mới nhất động cơ, tính năng hơn, phát triển hoạt động!
Trang 14d Sự khác biệt hiệu suất:
Như đã đề cập trước đây, một số nhà phát triển cho biết, rằng GLES2 là chậm hơn trong một số trường hợp trong so sánh với GLES1, cũng có thể nó đã được chứng minh bởi một số thử nghiệm Nhưng mặc dù, tôi khuyên các bạn nên
sử dụng phiên bản phần mềm mới nhất
e Cấu trúc cách sử dụng khác nhau:
Nếu đã làm việc với AndEngine GLES1, ta có thể nhìn thấy việc khai báo một lớp extends từ Base GameActivity Tuy nhiên, với AndEngine GLES2, lại xuất hiện một class mới là SimpleBaseGameActivity Vì có rất nhiều nhầm lẫn
về việc sử dụng class nào cho phù hợp,
vậy chúng ta hãy nói về sự khác biệt giữa BaseGameActivity và
SimpleBaseGame Activity
Đầu tiên cần lưu ý BaseGameActivity cho GLES2 và BaseGameActivity cho GLES1 gần như khác nhau hoàn toàn về cấu trúc cũng như cách sử dụng Khi AndEngine cập nhật và thay đổi được thực hiện trên BaseGameActivity, rất nhiều người từng sử dụng GLES1 tỏ ra không hài lòng về thay đổi này và muốn làm việc với một lớp họ đã quen thuộc Bởi vậy, SimpleBaseGameActivity được tạo ra cho AndEngine GLES2 SimpleBaseGameActivity được cho là giống với BaseGame Activity trong AndEngine GLES1, và đã đáp ứng được điều mà rất nhiều người phát triển AndEngine muốn vào thời điểm đó
Điều làm nên sự khác biệt cho BaseGameActivity (GLES2) là chúng ta có nhiều quyền kiểm soát hơn đối với ứng dụng của mình, vì các phương thức sẽ không được gọi một cách tự động (bên cạnh việc thiết lập các tùy chọn engine) Phần lớn các phương thức được thực hiện tương tự khi sử dụng BaseGame Activity trong GLES1, nhưng bạn sẽ phải cung cấp một lời gọi lại (callback) Một callback cho chương trình biết rằng chúng ta đã làm việc xong với phương