Tuesday, March 24, 2015

Top các Android app đáng chú ý tháng 2 - 2015

Opera Max - Data manager



Opera thì rất nổi tiếng với trình duyệt Opera Mini có chức năng nén dữ liệu truyền tải khi truy cập web, để giảm dung lượng data tiêu tốn khi duyệt web. Và tính năng hữu ích này, bây giờ được cung cấp bằng một app riêng biệt chính là Opera Max này.
Opera Max là apps miễn phí, có chức năng quản lý data, nhờ đó giúp bạn kéo dài được thời gian sử dụng gói data của bạn.
Bạn có thể theo dõi lưu lượng sử dụng hàng ngày; hạn chế các apps được sử dụng theo dung lượng, hoặc hạn chế cho các app chỉ được vào mạng qua WiFi thôi.
Tính năng hấp dẫn là nén dữ liệu của Opera Max, hoạt động với cả các dữ liệu là video, ảnh, file media, và hoạt động với hầy hết các apps cũng như websites khác nhau, mà bạn sẽ không nhận ra được sự thay đổi chất lượng do data đã bị nén. Với Opera Max, bạn sẽ hạn chế được việc sử dụng quá dữ liệu.

Các tính năng chính:

  • Data savings

    - Nén hầu hết các loại data tự động. Bạn không phải làm gì cả. Việc nén dữ liệu nhỏ lại này, cũng có nghĩa là bạn sẽ duyệt web được nhanh hơn, download nhanh hơn.
    - Tiết kiệm lưu lượng data sử dụng.

  • Xem được nhiều video hơn

    Đây là app đầu tiên có tính năng nén data video cho smartphone. Và nếu bạn có sở thích xem video online trên chiếc điện thoại của bạn, thì Opera Max là app nên cài đặt ngay và luôn. Hãy thử tưởng tượng, thay vì tốn 10MB như thường lệ, bạn sẽ chỉ tốn 3MB thôi. Điểm sung sướng đó là bạn vừa tiết kiệm được tiền, vừa giảm được thời gian ngồi chờ video buffer data về nữa. Việc này hoạt động cả trên các app xem video online, chứ không chỉ là trên trình duyệt.

  • Data Manager

    Cung cấp cho bạn công cụ quản lý đo đạc mức sử dụng data real-time, hàng ngày, hàng tháng. Bạn cũng thấy được app nào đang sử dụng bao nhiêu dung lượng data. Chặn các app không cần thiết không cho truy cập data qua mobile plan nữa.

  • Bảo mật và An toàn

    Opera Max sẽ không tác động đến các dữ liệu được gửi sử dụng các kết nối có mã hóa. Và Opera cũng sẽ không can thiệp vào các dữ liệu cá nhân như ảnh, video, hay emails, của bạn, do đó bạn có thể an tâm sử dụng.

  • Miễn phí

    Với Savings Pass, Opera Max miễn phí 100%, bạn chỉ cần trả bằng cách thỉnh thoảng xem một video quảng cáo, hoặc share thông tin về app, hoặc rate app này trên Google Play Store là đủ.

Wednesday, March 4, 2015

Gaming - Lập trình game với Cocos2D-JS - Hello Game World

Sau khi đã chuẩn bị đầy đủ môi trường phát triển như đã làm trong bài Giới thiệu, bài viết này nhằm hướng dẫn bạn cách khởi đầu làm game với Cocos2d-JS, cũng như có cái nhìn đầu tiên về làm game với framework này.

Phương pháp học là, thông qua những project demo, ta sẽ tiếp cận dần dần từ dễ đến khó, và nhờ đó hiểu biết cùng kỹ năng cũng sẽ tăng theo.
Ở bài này, chúng ta sẽ làm những công việc sau:
  • Tạo một project mới để làm với Cocos2D-JS
  • Code game Hello World
  • Tham khảo


Source code cho toàn bộ các bài học trong series này có thể download ở GitHub.

Đây là hình ảnh của game sau khi đã hoàn thành:

Monday, March 2, 2015

Gaming - Lập trình game với Cocos2D-JS - Giới thiệu

Cocos2D-JS là framework sản xuất game opensource, hoàn toàn miễn phí.
2014 là một năm có nhiều đổi thay lớn đến với Cocos2D-JS, bằng sự kết hợp của Cocos2d-html5 và Cocos2d-x JSB. Với nền tảng này, việc làm game support cross-platform, cross-browser, trở nên dễ dàng hơn nhiều lần. Đi kèm với đó là một hệ thống tools, APIs,... giúp cho việc "Code one, run anywhere" dễ dàng đạt đến. Cách viết game là consistent cho các nền tảng khác nhau, Mac OS X, Android, iOS, Windows,... và nhờ đó, bạn dễ dàng cung cấp phiên bản game của mình đến nhiều đối tượng hơn, tăng thêm các kênh phân phối game.


Với phiên bản 3.0, một số điểm quan trọng được hoàn thiện trong framework Cocos2D-JS gồm:
  • Dung nhập 2 engine game Cocos2d-html5 và native Cocos2d-x Javascript thành một bộ duy nhất là Cocos2D-JS, hỗ trợ đa nền tảng cross-platform, đa trình duyệt cross-browser
  • Cung cấp một quy trình làm việc thống nhất consistent workflow cho mọi nền tảng
  • Tiến một bước lớn trong việc cải thiện performance cho engine, cả về web lẫn native
  • Dựng sẵn hàng tá các tính năng mới, mà cần thiết ví dụ như là Facebook Integration, Assets Manager, Object Pool, JS to Objective-C/JAVA reflection, ...

Dưới đây là sơ đồ các thành phần kiến trúc được tích hợp trong Cocos2D-JS.


Requirement để làm được Cocos2D-JS

Để làm được cocos2d-js thì chuẩn bị cũng khá đơn giản, gồm:
  • IDE/Editor: Công cụ chính chủ là Cocos Code IDE. Ngoài ra, nếu bạn đã quen thuộc với các công cụ text editor khác thì bạn vẫn có thể tiếp tục dùng chúng nếu muốn.
  • Webserver: Để test project, bạn cần 1 webserver chạy trên máy của mình. Mình thường dùng XAMPP, các bạn cũng có thể dùng MAMP, WAMP,...
  • Browser: Ưu tiên test bằng Google Chrome và Safary trước.
  • Bộ cài đặt framework Cocos2D-JS download: http://www.cocos2d-x.org/download

Dựng môi trường để sẵn sàng working với Cocos2D-JS

Cocos2D Code Studio được tuỳ biến dựa trên bộ IDE Eclipse. Bạn download về và cài đặt như là đối với Eclipse, sau đó có thể sẵn sàng sử dụng bộ IDE này. Nếu bạn đang quen thuộc với các IDE hoặc tool text editor khác, bạn có thể tiếp tục sử dụng chúng theo sở thích mà không gặp phải khó khăn gì.
Cũng theo đường link trên, bạn cần down bộ framework về. Xả nén ra một nơi an toàn là được.

Gaming - Các khái niệm khởi đầu khi làm game

Hiện nay có nhiều framework hỗ trợ mạnh các developer trong việc sản xuất game theo ý thích của mình. Các gương mặt tiêu biểu có thể nhắc đến, có cộng đồng lớn như cocos2d-x (cocos2d series), Unity,...
Tuy nhiên, trước khi bắt tay vào làm game, bạn cũng nên nắm được một số khái niệm cũng như là thuật ngữ chuyên môn sử dụng trong sản xuất game.


Director - Đạo diễn
Việc làm game cũng giống như việc thực hiện một bộ film, chỉ khác một chút là khán giả cũng có thể thao tác trực tiếp để tạo nên câu chuyện chứ không chỉ đơn thuần là thưởng thức bằng cách xem như là film. Và để khởi đầu, bạn cũng tưởng tượng như bạn đang phải thực hiện một bộ film, và bạn chính là Executive Producer - Nhà điều hành sản xuất game. Bạn sẽ phải nói với Director - Đạo diễn về những gì cần làm cho game của mình.
Director - Đạo diễn sẽ điều khiển các Scene - Cảnh, việc thay cảnh này cảnh kia, chuyển đổi các Scenes.
Trong một game, Director thường là một singleton Object được shared dùng chung, bạn có thể gọi nó ở bất kỳ đâu trong code.


Scene
Tương tự như trên, Scene sẽ là nơi bạn tổ chức, phân bố các thành phần sẽ hiển thị trên màn hình: main menu, buttons, objectives,...
Các object hiển thị trên Scene theo một quy tắc hình cây như sau:

Các object sẽ được hiển thị lần lượt theo hình cây, theo hướng đường nét đứt. Từ trái qua phải, từ trên xuống dưới.
Bạn cũng cần hiểu thêm về z-index (z-order) là khái niệm có liên quan khi hiển thị các object. Z-order là chiều từ màn hình hướng về phía người chơi, ví dụ: background của game có z-index = 0, sau đó trên background có thể có nhà với z-index = 1, trên nhà lại có người ở bên ngoài có z-index = 2. Như vậy, khi người chơi nhìn vào màn hình sẽ thấy người đầy đủ, đằng sau người là nhà, và người không bị nhà che lấp đi.

Sprites
Sprite là các object graphics sẽ sử dụng để hiển thị việc move-di chuyển, trong game. Ví dụ như nhân vật chính với các hành động đi lại, đánh quái trong game của bạn.

Sprites Sheet
Sprites sheet là cách kết nối các sprite thành một file. Việc này giúp cho dung lượng của file tính về tổng là giảm đi so với việc để riêng rẽ từng file. Như vậy, cũng tương ứng với việc giảm được bộ nhớ phải sử dụng, thời gian tải object lên bộ nhớ. Ngoài ra còn tăng được tốc độ xử lý perfomance vì chỉ cần init một object graphics thôi. Việc làm này thường đã trở thành một chuẩn chung, thường gặp trong sản xuất game.


Nodes
So với Sprite, thì Node tương tự, nhưng nó là những object no-move, không cho phép bạn di chuyển chúng. Xem hình bên dưới đây để hiểu rõ hơn:


Trong hình đó, Sprites là các nhân vật, bạn có thể tap vào và drag để di chuyển. Còn các Nodes là Banners, tường gạch, bạn sẽ không di chuyển được.


Sequences và Spawns
Sequences là tập hợp các Actions chạy theo một thứ tự cố định được chỉ sẵn. Ví dụ, hành động mây bay trên trời ở nền của cảnh game thường được điều khiển tự động bằng sequence.
Khi mà nhiều sequences cùng chạy một lúc thì gọi là Spawn. Ví dụ, khi nhân vật được thăng cấp, có thể có các hiệu ứng cùng xảy ra một lúc vào thời điểm đó.

Parent Child Relationship - Quan hệ Cha Con
Các thay đổi được gán cho parent node, sẽ được apply vào children node của node đó, tương ứng ngay.