Thứ Ba, 15 tháng 7, 2014

Nguyên tắc ngón tay cái trong thiết kế ứng dụng cho điện thoại

Nguyên tắc ngón tay cái trong thiết kế ứng dụng cho điện thoại
Điện thoại di động ngày nay đã quá phổ biến và trở thành vật bất li thân của nhiều người. Điện thoại không chỉ đơn thuần là công cụ nghe gọi, liên lạc giữa mọi người với nhau nữa, mà nó được tích hợp nhiều ứng dụng và trở thành vật dụng giải trí và nhiều tính năng hỗ trợ người dùng như bản đồ, đọc viết email, ….
Thiết kế những ứng dụng cho điện thoại di động cũng đòi hỏi nhiều kĩ thuật, tính toán chi tiết để chiếc điện thoại trở nên hữu dụng và sử dụng một cách dễ dàng, thuận tiện nhất. Dựa vào thói quen sử dụng điện thoại và một số đặc điểm bàn tay con người, Infographic dưới đây đưa ra một số gợi ý cho bạn khi thiết kế ứng dụng cho điện thoại di động.
Phần mở rộng: Tìm hiểu thêm về định luật Fitt
Như trong bài infographic trên có đề cập đến định luật Fitt trong thiết kế. Để hiểu rõ thêm mình xin tóm tắt ở đây. Về cơ bản, công thức định luật Fitt được tính theo khoảng cách đến mục tiêu và kích thước của mục tiêu đó. Công thức nhìn có vẻ phức tạp nhưng ý nghĩa thì lại khá đơn giản.
  1. Mục tiêu càng xa thì thời gian để tiếp cận được nó sẽ lâu hơn.
  2. Mục tiêu càng nhỏ thì thời gian để tiếp cận được với nó sẽ lâu hơn.
Khi áp dụng định luật Fitt trong thiết kế giao diện, chúng ta rút ra được 3 kinh nghiệm sau:
Kinh nghiệm 1: Kích thước của các nút bấm hoặc các phần tử tương tác phải đủ lớn để tương xứng với quãng đường cần di chuyển.
Đối với việc độ phân giải của màn hình ngày càng được nâng cao, điều đó đồng nghĩa với việc khoảng cách di chuyển của chuột trên màn hình cũng sẽ dài ra thì cách duy nhất để thỏa mãn định luật Fitt là tăng kích thước của các nút bấm. Tuy nhiên, việc tăng kích thước lại gây ra tác dụng ngược khi số lượng nút bấm quá nhiều dẫn đến chiếm hết cả màn hình. Để giải quyết vấn đề trên, ý tưởng "rubbon" đã được đưa ra. Bằng cách chia nhóm và phân loại, những nút bấm nào người dùng thao tác nhiều nhất sẽ được thiết kế với kích thước lớn, ngược lại những tác vụ người dùng ít dùng tới nút bấm sẽ được làm nhỏ hoặc ẩn đi. Ý tưởng này đã giúp giữ lại các nút bấm vừa thỏa mãn định luật Fitt vừa tiết kiệm không gian hiển thị trên màn hình.
Kinh nghiệm 2: Những tác vụ thông thường nên để gần vị trí con trỏ người dùng.
Ví dụ dễ thấy nhất để mô tả cho việc này là khi bạn click chuột phải vào màn hình desktop hay màn hình trình duyệt web, bạn sẽ thấy một menu hiện ra ngay vị trí con chuột. Tại sao nó lại hiện ngay vị trí đó? Tại sao nó không hiện ở góc trái trên cùng của màn hình? Trả lời được câu hỏi này thì bạn đã hiểu kinh nghiệm 2 là gì.
Kinh nghiệm 3: Những vị trí đặc biệt trên màn hình mà thời gian tiếp cận luôn là ngắn nhất.
Những vị trí đó chính là 4 cạnh và 4 góc của màn hình chúng ta. Nếu có ai đó bất ngờ kêu bạn đưa chuột đến góc màn hình hoặc bất kì cạnh nào thì bạn chỉ đơn giản là "phóng tay" rê chuột đến đó mà không cần phải quan tấm đến đường đi hay vị trí dừng của nó. Lý do rất đơn giản, 4 cạnh hay 4 góc là giới hạn cuối cùng của màn hình, cho dù bạn cứ tiếp tục kéo chuột thì con trỏ chuột trên màn hình vẫn ở đó thôi. Nhưng ngược lại, khi ai đó kêu bạn đưa chuột đến vị trí cách cạnh phải màn hình 5 pixel thì hẳn bạn sẽ ngồi canh từng pixel một khi di chuyển con trỏ chuột đến gần đó. Đó là lý do tại sao nút "Start" từ đời Windows XP (các đời Windows 95, 98, 2000 và ME nút Start cách các cạnh 1 pixel) lại nằm trọn ở góc trái màn hình và thanh "Finder" của Mac OS nằm cạnh trên. Đây đều là những vùng dễ tiếp cận nhất.
Tóm lại, định luật Fitt là một trong những định luật cơ bản và thú vị nhất khi bạn thiết kế trải nghiệm người dùng. Để có được một ứng dụng hoản hảo, bên cạnh thiết kế cho ứng dụng của bạn một bộ cánh đẹp (UI design - user interface) thì việc nghiên cứu trải nghiệm người dùng (UX design - user experience) sẽ tạo ra giá trị sử dụng cho bộ cánh đó. Không ai muốn sản phẩm của mình làm ra mà không người nào sử dụng đươc!
Nguồn: Visual.ly​, Tinh tế.

Tổng hợp các Website nén JS và CSS tốt nhất

Tổng hợp các Website nén JS và CSS tốt nhất

Nén Javascript và CSS mang lại lợi ích gì ?
+ Tăng tốc độ duyệt website của người dùng. Thay vì client phải tải một file lớn, thì bây giờ chỉ cần tải một file nhỏ hơn mà không làm ảnh hưởng đến nội dung website.
+ Bảo mật js và css tốt hơn. Tránh được việc ăn cắp từ người khác.
+ Tiết kiệm băng thông ( điều hiển nhiên)
Các Website tốt nhất để nén JS:
Các Website tốt nhất để nén CSS:
4. http://refresh-sf.com/yui/ -> Trang này tổng hợp dịch vụ nén cho cả JS và CSS
Website Việt Nam cho phép nén JS và CSS

Updating....

Giới thiệu về Ajax


  • AJAX là gì? 
  • AJAX là viết tắt của Asynchronous JavaScript và XML 
  • AJAX là một kỹ thuật để tạo ra năng động, tốt hơn, nhanh hơn và các ứng dụng web tương tác nhiều hơn. 
  • AJAX được sử dụng chủ yếu trong các ứng dụng web mà tải một phần của một trang là cần thiết. Cho ví dụ: Google Map (bản đồ ở đâu sẽ được thu nhỏ trên di chuyển bánh xe chuột), Google Suggest (gợi ý sẽ được hiển thị dựa trên những gì người dùng gõ vào hộp tìm kiếm). 
  • AJAX không phải là một công nghệ mới nhưng một kỹ thuật trong đó sử dụng công nghệ hiện có để đạt được tải một phần của một trang 
  • AJAX sử dụng công nghệ sau đây để đạt được một phần tải trang: 
  1. Javascript - Để thực hiện yêu cầu không đồng bộ với máy chủ và hiển thị nội dung động 
  2. XHTML - Trình bày nội dung trên màn hình 
  3. CSS - thiết kế trang Web 
  4. XML - Thông tin nhận được từ máy chủ như là một kết quả của yêu cầu AJAX 
  5. Đồng bằng văn bản hoặc JSON - Một định dạng để nhận được thông tin 


  • Trao đổi thông tin ứng dụng web truyền thống đến và đi từ các máy chủ sử dụng yêu cầu đồng bộ. Điều này có nghĩa là bạn điền vào một mẫu, nhấn gửi, và được dẫn đến một trang mới với thông tin mới từ máy chủ. 
  • Trong các trang web AJAXified, khi nút gửi được nhấn, JavaScript sẽ làm cho một yêu cầu đến máy chủ, giải thích kết quả và cập nhật các phần của màn hình. Do đó, người sử dụng sẽ thậm chí không biết rằng bất cứ điều gì đã được truyền đến máy chủ. 
  • Trực quan và tự nhiên tương tác người dùng. Không cần phải click phải chỉ di chuyển chuột là một kích hoạt sự kiện đủ. 
  • AJAX chỉ cần thay thế "Click, Chờ và Làm mới ' kinda như tiếp cận người dùng sẽ nhận được thông tin mà không làm mới trang
AJAX làm việc như thế nào?

Chủ Nhật, 13 tháng 7, 2014

10 Trang web dạy lập trình trực tuyến mà bạn nên biết

Đã qua rồi cái thời mà các ngôn ngữ lập trình chỉ dành cho những lập trình viên bậc thầy giống như Bill Gates, người mà sau đó đã thống trị toàn thế giới bởi hệ điều hành Windows của mình. Bây giờ thì bất cứ ai cũng có khả năng, cơ hội để học và thành thạo các ngôn ngữ lập trình một cách dễ dàng. Hôm nay, chúng tôi sẽ cung cấp cho bạn danh sách 10 trang web học trực tuyến sẽ giúp bạn làm điều đó.
Những trang web dạy lập trình theo phương pháp tương tác giúp người học tiếp thu kiến thức rất hiệu quả.

Đúng vậy, hãy quên đi những cài đặt phức tạp với dòng nhắc lệnh đen ngòm và lạnh lùng khiến bạn chỉ muốn ngừng học ngay trước khi bắt đầu, và nói xin chào tới 10 trang web với những bài giảng tương tác nhanh sẽ dạy bạn về các ngôn ngữ lập trình như HTML, CSS, PHP, Ruby và thậm chí cả iOS. Bạn sẽ được học từ những giáo trình, video và thậm chí là cả những bài thực hành tốt nhất từ những chuyên gia danh tiếng trong ngành.
Hãy bắt đầu con đường mới của bạn để tiến vào thế giới lập trình ngay hôm nay nhé!

1. Codecademy

Codecademy rõ ràng là trang web nổi tiếng nhất trong việc dạy bạn học lập trình thông qua tương tác, giao diện trang web rất chuyên nghiệp và các khóa học thì được thiết kế rất tốt. Ngay khi bạn ghé thăm trang chủ, bạn đã có thể bắt đầu cảm nhận được cái phong thái lập trình ở đây, bằng một cửa sổ dạng console để thôi thúc bạn. Bạn hãy chọn một khóa học mà Codecademy đưa ra gồm Web cơ bản, PHP, JavaScript, jQuery, Python, Ruby và các API.

Bên trong mỗi bài học thì giao diện sẽ chia làm hai phần, phần bên trái sẽ giải thích những kiến thức cần thiết và có những chỉ dẫn. Phần bên phải sẽ cho phép bạn gõ những dòng code của mình, sau đó cho phép bạn kiểm tra xem liệu đã viết đúng hay chưa. Đừng lo lắng về việc gõ sai, cả hai thanh panel chỉ dẫn và lập trình nói trên sẽ cảnh báo những lỗi dùm bạn, và cung cấp những hướng dẫn để bạn có thể sửa lỗi. Học kiểu này cũng giống như là đang có một giáo viên thực thụ đứng bên cạnh dạy cho bạn vậy.

2. Code Avengers

Code Avengers được thiết kế với mục đích làm cho bạn yêu thích môn lập trình. Mặc dù hiện tại nó chỉ cung cấp các khóa học về HTML5, CSS3 và JavaScript, nhưng mỗi khóa học đều được thiết kế rất cẩn thận và thực sự lôi cuốn, nhằm nâng cao kỹ năng lập trình của bạn một cách nhanh nhất. Sau khi hoàn thành mỗi bài học thì bạn sẽ được chơi một trò game nhỏ nhằm mục đích giải tỏa căng thẳng và giúp bạn có thêm động lực để học được lâu hơn.
Code Avengers có một hướng tiếp cận dần dần tới việc học tương tác. Nó không giảng giải quá nhiều kiến thức mà chưa cần thiết cho người mới bắt đầu, chỉ là một ít code và những chỉ dẫn vui vui, nhằm tạo ra những thứ rất dễ để hiểu. Bạn hãy thử vọc vậy cùng với những dòng code và sau đó nhìn thấy những thành quả ngay tức thì. Các giáo trình ở đây được thiết kế rất chu đáo phù hợp với cách suy nghĩ của người mới học.

3. Code School

Sau khi đã hoàn thành các khóa học tại Codecademy hoặc Code Avengers, thì bạn đã sẵn sàng tiến xa hơn để nâng cao khả năng của mình. Code School là trang web chất lượng tiếp theo mà bạn nên ghé thăm. Không giống như hầu hết các trang web dạy học tương tác khác, Code School đưa ra các khóa học rất có chiều sâu để dạy và biến bạn trở thành một chuyên gia trong ngành với những bài tập thuộc loại tốt nhất.
Toàn bộ các khóa học được chia ra làm 4 mảng chính, đó là:
  • Ruby
  • JavaScript
  • HTML/CSS
  • iOS

Hầu hết tất cả các khóa học đều được chau chuốt bằng giao diện thiết kế ấn tượng và những video chứa nhiều thông tin có giá trị, mặc dù những thử thách phía sau mỗi video có thể hơi khó một chút đối với những người mới học. May mắn thay, tất cả đều có những hướng dẫn và đáp án để bạn tham khảo khi cần. Trong khi phần lớn các khóa học ở đây là miễn phí, nhưng cũng có một số khóa học sẽ yêu cầu bạn trả một khoản phí khoảng $25 đô-la/tháng để có thể truy cập toàn bộ khóa học, bao gồm cả các video, bài tập thực hành và tất cả các khóa học khác tại Code School.

4. Treehouse

Các khóa học của Treehouse thì phần nhiều là định hướng sản phẩm hơn là định hướng ngôn ngữ, vì thế nó rất phù hợp cho một lập trình viên mới vào nghề cùng với một mục đích đã lên kế hoạch từ trước, như là xây dựng một trang web hoặc một ứng dụng. Ví dụ, khóa học về Website thì sẽ hướng dẫn bạn về việc xây dựng một trang web dạng responsive (có thể hiển thị tùy theo từng loại thiết bị là PC hoặc Smartphone), trang web tương tác hoặc thậm chí là thiết kế theme cho WordPress – theo một cách rất thiết thực và hiệu quả để thành thạo các ngôn ngữ lập trình liên quan. Tuy nhiên, ở đây cũng có rất nhiều khóa học cơ bản cùng với cách dạy là hướng dẫn bằng video sau đó là phần hỏi đáp.

Đối với Treehouse, mỗi khóa học sẽ được chia làm bốn giai đoạn hoặc mô-đun khác nhau, và khi bạn học xong giai đoạn đầu tiên thì sẽ được yêu cầu trả một khoản phí thuê bao hàng tháng là $25 đô-la để truy cập toàn bộ khóa học với trên 650 video và bạn sẽ được là thành viên của diễn đàn tại Treehouse. Nếu bạn có ý định nghiêm túc theo đuổi nghề lập trình trong tương lai thì bạn có thể chọn thuê gói thuê bao theo tháng với giá $49 đô-la để xem được những phỏng vấn chuyên sâu với những chuyên gia trong ngành và các giáo trình nâng cao khác.

5. LearnStreet

Nếu bạn là dạng người không thích những thiết kế hào nhoáng mà chỉ thích làm việc với những dòng code, thì LearnStreet được thiết kế ra để dành cho bạn. Nó hiện tại chỉ đưa ra các khóa học về JavaScript, Python và Ruby ở mức độ dành cho người mới học. Với một cú click chuột vào nút “Start Course” thì bạn sẽ bắt đầu bài học ngay cùng với một bài tập, một trình thông dịch code và một thanh hiển thị những thuật ngữ (rất có ích cho những lập trình viên mới vào nghề).

LearnStreet có một bộ thông dịch code theo phong cách dòng nhắc lệnh (command prompt) cùng với những hướng dẫn để giải thích các chức năng và khuyến khích bạn bất cứ lúc nào có thể. Tuy nhiên, bộ thông dịch code có thể hơi khiếm nhã theo chuẩn của nó, và nó luôn yêu cầu bạn phải gõ thường xuyên những dòng code và những nội dung mà nó yêu cầu.
Một điểm nữa đó là nó rất dễ sử dụng và khá thú vị, và quan trọng nhất là hoàn toàn miễn phí:)

6. Udacity

Udacity là một sự kết hợp của những bài học bằng video có chiều sâu và những câu hỏi vấn đáp để có được cảm giác tương tác dành cho học viên, vì thế nó rất lý tưởng dành cho những ai không thích đọc nhiều, thay vì đó họ sẽ nhận được những hướng dẫn qua video từ các chuyên gia trong ngành, như là các nhân viên của Google chẳng hạn.

Bạn sẽ được xem một video từ các chuyên gia bàn luận và hướng dẫn về một chủ đề nào đó, sau đó bạn sẽ trả lời những câu hỏi mang tính logic về lập trình để mở rộng vốn hiểu biết hoặc rèn luyện kỹ năng thực hành. Một điều đáng nói là Udacity cung cấp số lượng video nhiều hơn hẳn các trang web khác, và những người hướng dẫn thường là các giáo sư đại học hoặc là các chuyên gia kỳ cựu ở trong ngành.
Chỉ có một nhược điểm là hầu hết các khóa học ở đây không liên quan đến nhau nhiều cho lắm, vì thế Udacicy thường không phải là nơi để bạn bắt đầu học lập trình, nhưng nó là một trường đại học ảo cung cấp cho bạn rất nhiều kiến thức trong con đường học vấn sau này.

7. CodeHS

Đến thời điểm này thì tất cả các trang web đề cập ở trên chủ yếu tập trung vào phát triển web và khoa học máy tính, nhưng CodeHS là một trang web đem lại cho bạn sự đơn giản và thích thú bởi các bài học lập trình game, hướng dẫn cách giải quyết vấn đề, JavaScript, hiệu ứng động, cấu trúc dữ liệu, thiết kế game và những thử thách khác.

Điểm nổi bật của CodeHS là nó sẽ dạy bạn cách nghĩ và giải quyết một vấn đề giống như một lập trình viên thực thụ ngay trong khóa học đầu tiên. Các bài học ở đây rất vui nhộn kiểu như bạn sẽ học cách sử dụng code để di chuyển một con chó, cho tới việc hoàn thành một tác vụ nhất định và khó hơn như nhặt bóng hoặc xây tháp. Nó cung cấp cho bạn những khái niệm lập trình nền tảng và phương pháp giải quyết vấn đề một cách có hệ thống ở trong đầu.
Bạn phải đăng ký với mức phí $25 đô-la/tháng để tiếp tục khóa học của mình, nhưng nó là một trang web hoàn hảo để học lập trình game cơ bản một cách khá hiệu quả.

8. Khan Academy

Mặc dù các khóa học của Khan Academy không có cấu trúc bằng các khóa học tại CodeHS, nhưng nó phục vụ như là một sân chơi mở dành cho cả lập trình viên mới vào nghề lẫn những người không chuyên mà có sở thích trong việc vẽ, hiệu ứng động và tương tác người dùng cùng với code. Khan Academy không nói về một ngôn ngữ lập trình xác định nào cả, nhưng những code pattern ở đây thì có thể áp dụng ở khắp nơi, và những ngôn ngữ lập trình phổ biến đều chia sẻ chung những pattern đó.

Đầu tiên bạn có thể tham gia vào khóa lập trình cơ bản để xem qua và học các khái niệm căn bản trước, sau đó khám phá những đoạn code được cung cấp phía sau mỗi bài hướng dẫn bằng video để củng cố thêm kiến thức. Cùng với Khan Academy, bạn có thể lưu lại những chỉnh sửa của bạn như là một “sản phẩm” để cho mọi người có thể tham khảo và tùy chỉnh lại. Có đến hàng trăm sản phẩm chỉ từ một bài học trong một khóa học, vì thế bạn hãy tưởng tượng với số lượng lớn học viên trong cộng đồng thì tính hiệu quả của khóa học sẽ lớn đến nhường nào.

9. Scratch 2.0

Nếu bạn nghĩ rằng CodeHS và Khan Academy vẫn còn quá khó cho lũ trẻ nhà bạn có thể học được, bởi vì chúng chưa có những kiến thức căn bản. Thì cũng đừng lo lắng, có một thứ thậm chí còn dễ hơn cho khao khát của bạn về một thế hệ lập trình tài năng kế tiếp, và nó được gọi là Scratch. Trước đây nó là một phần mềm cài đặt trên máy tính cá nhân để cho phép lũ trẻ có thể tạo, tải và chia sẻ những dự án của chúng một cách thích thú, nhưng nay Scratch đã chuyển lên giao diện dạng web 2.0 một cách hoàn toàn.

Tuy nhiên nó không chỉ đơn thuần là về lập trình, mà nó là một sự kết hợp của các khối dòng lệnh để điều khiển hành vi của đối tượng, như là ra lệnh cho đối tượng con mèo di chuyển 10 bước, hoặc kêu ‘meo meo’ khi nó chạm đến chân của ông chủ. Bằng cách sử dụng phương pháp lập trình trực quan sinh động, các em nhỏ sẽ hình thành nên một thói quen chia các vấn đề lớn thành những khối nhỏ hơn và giải quyết chúng từng cái một theo trình tự logic.

10. SQLZOO

Structured Query Language (SQL) chỉ là một ngôn ngữ được thiết kế chuyên về lưu trữ và truy xuất dữ liệu từ cơ sở dữ liệu, vì thế hãy hình dung ra sự nhàm chán mà bạn sẽ phải trải qua khi lập trình với một chương trình quản lý dữ liệu lớn. Vì thế SQLZOO muốn bạn học SQL một cách vui vẻ hơn cùng với nhiều tương tác thú vị.
SQLZOO

Thực ra không có gì nhiều để giải thích về một ngôn ngữ không phức tạp lắm như SQL, trang web này sẽ chỉ yêu cầu bạn thay thế một số biến như tên thành phố hoặc số dân, và tăng dần mức độ khó lên cao dần. Một điểm khá đáng tiếc là trang web này lại không có phần gợi ý, các câu đáp án và diễn đàn hỗ trợ, vì thế có thể bạn sẽ gặp phải một vài khó khăn trong việc giải quyết các câu trắc nghiệm tại đây.

Bảng so sánh giữa các trang web

Sau đây là bảng so sánh giữa các trang web trên về những ưu và nhược điểm của chúng, cũng như là mức phí dành cho mỗi khóa học.
Trang webKhóa họcĐặc trưngHọc phíĐộ khó
CodecademyHTML, CSS, JavaScript, jQuery, PHP, Ruby, Python, APIBộ thông dịch code, Progress Saver, Project, Diễn đànMiễn phíDễ – Trung bình
Code AvengersHTML5, CSS3, JavaScriptBộ thông dịch code, Progress Saver, Project, Ghi chúMiễn phíDễ
Code SchoolHTML5, CSS, CSS3, jQuery, Ruby, Ruby on Rails, iOSBộ thông dịch code, Screencast, Progress Saver, Diễn đànMiễn phí, $25 đô-la/thángTrung bình – Khó
TreehouseHTML, CSS, CSS3, JavaScript, jQuery, Ruby, Ruby on Rails, iOS, Android, UX, DatabaseBộ thông dịch code, Screencast, Progress Saver, Project, Diễn đànMiễn phí, $25 đô-la/tháng, $49 đô-la/thángDễ – Khó
LearnStreetHTML, CSS, JavaScript, Python, RubyBộ thông dịch code, Progress Saver, Project, Diễn đànMiễn phíDễ
UdacityPhát triển Web, HTML5, Python, Java, Khoa học máy tính, Thuật toán, Trí tuệ nhân tạoBộ thông dịch code, Screencast, Progress Saver, Diễn đànMiễn phíTrung bình – Cực khó
CodeHSGiải quyết vấn đề, JavaScript, Hiệu ứng động, Lập trình GameBộ thông dịch code, Screencast, Progress SaverMiễn phí, $25 đô-la/tháng, $75 đô-la/thángDễ – Trung bình
Khan AcademyLập trình căn bản, Canvas Drawing, Hiệu ứng động, Tương tác người dùngBộ thông dịch code, Screencast, Progress Saver, Project, Diễn đànMiễn phíDễ – Trung bình
Scratch 2.0Lập trình trực quanVisual Editor, Project, Diễn đànMiễn phíDễ
SQLZOOSQLBộ thông dịch codeMiễn phíDễ – Khó
Bạn đã từng học tại bất kỳ trang web nào trong số những trang web mà chúng tôi liệt kê ở trên chưa? Bạn thấy như thế nào? Liệu chúng tôi có liệt kê sót một vài trang web dạy lập trình tương tác tuyệt vời nào chăng?
Bài viết được dịch từ Hongkiat.com

Thứ Ba, 8 tháng 7, 2014

Game developer [Andengine] - [Libgdx] - [ Cocos2d-x] - [Unity 3D]

 1. Andengine
Andengine

- Đây là engineer phục vụ cho android
- Andengine là một 2D Game Engine cho phép các lập trình viên có kinh nghiệm hoặc chưa có kinh nghiệm đều có khả năng phát triển các ứng dụng Android một cách dẽ dàng. Andengine bao gồm đầy đủ các thuộc tính quan trọng nhất của OpenGL giúp cho việc dựng hình và tạo vật thể, đồng thời cung cấp khả năng quản lý các thiết bị đầu vào (các sensor, màn hình cảm ứng) và âm thanh
- Một số đánh giá về Andengine:
+) Giá thành: Hoàn toàn free.
+) Hiệu năng: Tương đối tốt, tuy nhiên chậm hơn so với các Engine khác (như LibGDX ở phần trên)
+) Cộng đồng: tương đối tốt, số lượng người sử dụng khá nhiều.
+) Tài liệu và ví dụ: không có tài liệu cụ thể. Đây là một trong những khó khăn khi chúng ta làm quen với Andengine. Tuy nhiên có các ví dụ và các bài viết hướng dẫn của các lập trình viên (có thể tìm được qua Internet). Do đó nếu bạn muốn sử dụng Andengine hãy chuẩn bị tam lý là sẽ tìm hiểu bằng các ví dụ là chủ yếu.
+) Mã nguồn mở , thiết kế sử dụng nhiều phương thức abstract và kế thừa. Hướng đối tượng tốt, tuy nhiên chưa thật sự tốt với nền tảng di động Android.
+) Tính năng: Có đầy đủ hầu hết các tính năng cơ bản để xây dựng một ứng dụng game. Tuy nhiên vẫn chưa có nhiều tính năng giống như LibGDX.
Điểm cộng dành cho Andengine chính là ở việc dễ sử dụng và dễ học hơn các Engine khác, đồng thời các tính năng cơ bản cũng khá đầy đủ cho việc xây dựng một game 2D đơn giản. Hãy nhớ, Andengine chỉ thích hợp cho Game 2D. Nếu yêu cầu về hiệu năng của bạn thật sự cao và game co nhiều hình ảnh phức tạp, cũng như hình ảnh vật thể là 3D, hãy tìm một Engine khác.

2. Libgdx
Libgdx

- Chúng ta cũng không thể quên libgdx :)
- LibGDX là một framework được sử dụng để phát triển các ứng dụng game và đồ họa cho Desktop, Android, iOS, HTML5.
- Một số ưu điểm của Libgdx như sau:
+) Đa nền tảng: chúng ta chỉ cần viết code 1 lần nhưng có thể chạy trên được nhiều nền tảng khác nhau. Một ứng dụng của tính năng này đó là phát triển các ứng dụng cho Android. Để phát triển một ứng dụng cho Android, khi chạy thử ứng dụng, chúng ta cần chạy ứng dụng trên Emulator hoặc trên thiết bị thật. Việc này rất mất thời gian do Emulator chạy rất chậm và quá trình cài đặt cũng như chạy ứng dụng trên thiết bị thật cũng không khá hơn. Với LibGDX, chúng ta có thể chạy ứng dụng trên PC, sau đó chỉ cần với vài dòng code, chúng ta có thể chạy ứng dụng này trên Android với hiệu năng tương đương. Điều này giúp chúng ta kiểm thử và tìm lỗi ứng dụng nhanh hơn và hiệu quả hơn.
+) Hiệu năng: Hiệu năng của LibGDX thực sự rất ấn tượng do LibGDX sử dụng cả Java và mã nguồn C để tạo nên ứng dụng.
+) Cộng đồng: cộng đồng sử dụng LibGDX rất tuyệt vời với số lượng người dùng lớn. Các lập trình viên luôn đóng góp và giúp đỡ cho cộng đồng. Việc sửa lỗi cũng được cập nhật rất thường xuyên.
+) Tài liệu và ví dụ: rất đầy đủ với Javadoc. LibGDX cũng cung cấp rất nhiều các ví dụ và demo với đầy đủ các chức năng từ đơn giản đến phức tạp.
+) Mã nguồn: mã nguồn mở với thiết kế rất rõ ràng và phù hợp với việc phát triển ứng dụng cho di động. LibGDX cho phép người lập trình khả năng sử dụng các API từ các lớp thấp đến cao, tùy theo yêu cầu của người sử dụng.
+) Tính năng: LibGDX có rất nhiều tính năng như tạo hình, xử lý đồ họa 2D, 3D, xử lý âm thanh, quản lý các thiết bị vào ra, quản lý file hệ thống. Cùng với đó là các công cụ đi kèm rất hữu ích như Texture Packer và Particle Editor.
- Nguồn tham khảo :
+ http://vietandroid.com/threads/lap-trinh-game-voi-libgdx.4742/

3. Cocos2d-x
Cocos2d-x

- Website : http://www.cocos2d-x.org/
-  Cocos2Dx là 1 Engine hỗ trợ lập trình Game đa nền tảng : Mobile ( IOS, ANDROID, Blackberry, TIZEN, WP) Window, MacOS, HTML5,.. đại loại là đủ cả.
- Engine này do Các bạn lập trình viên Trung Quốc ( hay Korean? ) phát triển. Mình thật sự chưa thấy nói về nguồn gốc ở đâu.. Nhưng ko sao, có tiếng Anh để có thể đọc, và cũng không quan trong bởi ngôn ngữ vì chúng ta có thể hiểu được qua bộ Code của nó.
- Ngôn ngữ để Code: Cocos2Dx hỗ trợ chủ yếu 3 ngôn ngữ: C++, Lua, Javascript.
- Phiên bản mới nhất là Cocos2Dx – 3 RC0; (RC1 vừa ra lúc mình viết bài này)
- Trang web Việt Nam có thể tham khảo: http://cocos2d-x.vn/
- Mã nguồn mở.
- Hỗ trợ Window, Mac OS IDE.( môi trường lập trình).
- Đã phát triển nhiều Game nằm TOP của Appstore, CHPlay (tìm lại đã). Đại loại là 1 Engine khá mạnh
- Có 1 phiên bản khác là Cocos2d-iphone – dành riêng để phát triển Game cho Iphone ( dùng ngôn ngữ lập trình Object – C nhé) nhưng mà học cũng ko khó lắm đâu. Và 1 bản Cocos2d-JS, dành để phát triển ứng dụng nền Web, dùng ngôn ngữ Java Scrípt. Nhưng mình nghĩ dùng bản Cocos2d -x sẽ tốt hơn vì ĐA NỀN TẢNG cơ mà ( viết code 1 lần, chạy được cho nhiều hệ thống khác nhau ) chả sướng hơn à. Mình đoán trong tương lai sẽ hợp nhất 3 bản vào làm 1 cho mà xem.
- Có 1 bộ CocosStudio đi kèm để hỗ trợ cho việc thiết kế giao diện, hiệu ứng chuyển động…
- Nguồn tham khảo chi tiết: http://laptrinhgamecocos2dx.blogspot.com/2014/04/gioi-thieu-ve-cocos2d-x.html 

5. Unity 3D
Unity 3D

- Website Unity3d
- Unity3D là phần mềm làm games trực tiếp theo thời gian thực, mà không cần render, cho phép người  design game có thể thiết kế InterfaceGraphic, map hay character … từ một phần mềm thứ 2 (thường là các phần mềm thiết kế đồ họa chuyên nghiệp như 3Dsmax, Blender, Maya, XSL,Cinema4D,Cheetah3D, Modo, Autodesk FBX, LightWave…) sau đó chỉ việc import nó vào trong Unity với định dạng của tập tin là *.FBX hay *.dae, *.3DS, *.dxf và *.obj, nhưng định dạng *.FBX hay được dùng vì được tối ưu hóa hơn, còn dùng các định dạng khác ngoài FBX thì phải cài phần mền thiết kế character tưng ứng thì mới dùng được (tức là dùng Maya có định dạng *.mb, *.ma thì muốn dùng được phải cài Maya)
Ngoài ra khi bạn design được một game thì bạn có thể xuất được ra một file.exe và có thể chạy và chơi được trên PC khác.
Một thế mạnh nữa của Unity là bạn có thể chạy demo game của bạn ngay trongkhi design, nó có hỗ trợ hai chế độ là Scene và Game, rất thuận tiện cho việc test thử các modulGame.
Unity3D có 2 loại phiên bản, một cho người dùng free, và một phiên bản pro thì mất phí.
Khi tải Unity về các bạn cài đặt bình thường, đến khi kết thúc cài đặt nền các bạn chọn phiên bản Pro thì cần phải mua, còn nếu là người dùng free thì các bạn chọn kích  hoạt qua web, chỉ cần có kết nối mạng internet, sau đó chọn cài đặt thủ công và nhập mail, chọn free là bạn có thể sử dụng một bản Unity free.
- Tham khảo chi tiết hơn : https://sites.google.com/site/chiaselaptrinh/lap-trinh/unity-3d/tong-quan-ve-unity-3d