Thursday, April 3, 2014

BÀI 1: Giới thiệu về Cocos2d-X

Xin chào tất cả các bạn yêu thích Lập trình nói chung và Lập trình game nói riêng!

Đầu năm 2014, Flappy Bird của Nguyễn Hà Đông đã làm sôi sục cộng đồng Game Developer toàn thế giới. Nó như một cú hích mạnh vào đam mê làm Game của nhiều người. Chắc hẳn nhiều bạn trẻ đã từng "ước gì mình được như anh ấy" ,"mình cũng làm được", và tôi cũng vậy. Nhưng để trở thành một Game Developer thật sự, Dev được những game để lại ấn tượng cho người chơi, con đường phía trước của bạn và tôi thật sự sẽ có quá nhiều chông gai. Tôi cam đoan vậy!

Nhưng đừng ai vội nản lòng nhé, Thành quả bạn đạt được sẽ rất có ý nghĩa ( thậm chí rất đáng tự hào) nếu chặng đường bạn trải qua có đủ gian nan. "Không có ước mơ nào quá lớn, và không có kẻ mộng mơ nào quá nhỏ ". Chỉ cần bạn muốn mình là ai, bạn sẽ trở thành người mình muốn.

Dài dòng quá rồi, mình vào đề luôn nhé.

1/ Sơ lược Cocos2Dx

+ 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). Và hiện thời đang là V3.2 Beta

+ Web chính thức: http://www.cocos2d-x.org/

+ 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...

Làm cái ảnh cho máu



2/ Tại sao lại là Cocos2d -x?

Nói về Engine game thì nhiều lắm. Các bạn search Google là ra hẳn 1 trang Wiki liệt kê các loại Engine game,...

Vậy tại sao lại là Cocos2d -x.?

Lúc đầu khi mới bắt đầu tìm hiểu vào việc Làm game, mình cũng kiếm rất nhiều các công cụ để hỗ trợ cho việc này nhưng cuối cùng chọn ra được Cocos2d -x là phù hợp nhất, vì:

+ Đa nền tảng, viết code 1 lần xuất ra cho mấy hệ điều hành, và nhiều loại thiết bị khác nhau.

+ Hỗ trợ cả Window ( Win7 trở lên) và MacOS, hỗ trợ các IDE nổi tiếng: Eclipse, Visual 2012 trở lên, Xcode

+ Ngôn lữ lập trình C++, Lua, JavaScript, tương đối phổ biến, gần gũi dễ học với hầu hết mọi người. C++ là chính nhé.

+ Mã nguồn mở ( quan trọng nè, hầu hết Engine hay đều thu phí cắt cổ ra ấy). Chừng nào có nhiều tiền và muốn phát triển theo cách như 1 công ty game chuyên nghiệp thì hãy mua.

+ Đã có nhiều game nổi tiếng bằng Cocos2d-x để tham khảo và học hỏi.

+ Cộng đồng lớn, Code ví dụ cũng nhiều ( chủ yếu tiếng Anh, Trung, Nhật, Hàn) Việt Nam hơi bị ít và hầu hết toàn copy, dịch. Cũng tại có ít Lập trình viên chuyên nghiệp ở Việt Nam, và hầu hết đều giữ nghề thôi.

+ Sao chỉ là 2D mà ko là 3D? Các bạn ơi, hãy bắt đầu từ học bò rồi mới lo học chạy nhé. 3D khó hơn nhiều đấy. Nếu cá nhân hoặc Team nhỏ thì phát triển game 2D sẽ đỡ vất hơn 3D. và Engine 3D toàn tính tiền bản quyền cả nhé, rẻ nhất cũng vài chục chai. : ((

+ Còn nhiều nữa. Vì mình mới tìm hiểu nên nắm bắt được tới đây thôi. Có gì bổ sung sau nhé.

3/ Những ai có thể sử dụng Engine này để học lập trình Game?

Theo cá nhân mình thì những đối tượng như sau có thể đọc và học lập trình Game với Cocos2d -x

- Có đam mê lập trình ứng dụng hoặc game. Là lập trình viên ứng dụng thì càng tốt.

- Đã từng học lập trình ở trường, đặc biệt là ngôn ngữ C, hoặc C++, Lua, hoặc Java (ko dùng thằng này nha nhưng mà phong cách lập trình của nó khá giống C++).

- Kiến thức về toán càng nhiều càng ít. Bạn nào học toán tin thì quá tuyệt, xử lý phần thuật toán sẽ có tư duy tốt hơn.

- Kiến thức về Vật lý cũng nên có, để còn xử lý mấy hiên tượng vật lý trong game chứ. Vì game là một thế giới mô phỏng thế giới thật dựa trên các nguyên tắc toán học và vật lý mà ( Tất nhiên các nguyên tắc này mình chủ động thay đổi được để tạo sự khác biệt).

- Biết thiết kế đồ họa, hoặc có tí năng khiếu đồ họa. "Code là xương, gameplay là hồn, đồ họa là diện mạo", bạn không muốn đứa con cao to, giỏi giang của mình xấu xí chứ?.

- Máy tính Window 7, hoặc Mac OS. Mình dùng Win 7 32 bít, nên ko rõ Mac OS cần gì. Có điện thoại, máy tính bảng để test thực tế thì tốt.

- A, cuối cùng là biết tiếng Anh, Hàn, Trung là một lợi thế lớn, vì hầu hết bài Tut trên mạng là tiếng Trung, rồi tiếng Anh, bạn có thể đọc code, nhưng ko thể hiểu phần comment giải thích của code thì học làm sao?

- Còn điều kiện nào nữa ko nhỉ? Tất nhiên là thời gian, phân bổ thời gian hợp lý nhé, kẻo học nhiều + nhanh quá là tẩu hỏa nhập ma thì toi.

- Có gì bổ sung sau nhé....


4/ Lời cuối:

Sẽ có bạn hỏi, sao mình ko tham gia các diễn đàn trên, ở đó cũng có nhiều người cùng đam mê, chẳng phải tốt hơn sao. Mình xin trả lời thế này:

+ Blog này là 1 công cụ để mình học Lập trình Cocos2d - x . Tất cả những gì mình biết, mình học được, làm được, mình sẽ viết vào Blog này như là một hình thức lưu trữ tài liệu và ký ức. Học như vậy sẽ dễ dàng hơn, nhớ lâu hơn, tuy có mất thời gian hơn.

+ Mọi bài viết trong này đều do mình tự nghiên cứu, hoặc thực hành viết ra những gì đã làm được, sẵn sàng chia sẻ cho tất cả mọi người yêu thích. Trang nào có copy thì xin ghi cho mình cái nguồn về đây để thể hiện sự tôn trọng lẫn nhau nhé.

+ Các bài học mới, hoặc bài nghiên cứu Code ví dụ ( của người khác ) mình sẽ cố gắng hướng dẫn cặn kẽ để giúp CHÍNH MÌNH và người khác có thể hiểu được và làm được.

+ Hệ thống trợ giúp của mình là chiếc LAPTOP cùi Core2Duo, ram 2G chạy Win 7 32 bít + 1 điện thoại Android nên nhiều khi không thể thực hiện trên các thiết bị khác, mong mọi người thông cảm.

+ Những ai là lập trình Pro, hoặc làm game Pro rồi nếu đọc thấy gì không đúng, thì cũng đừng chỉ trích mà hãy Chỉ Giáo giúp mình và mọi người khác nhé.

Cám ơn tất cả đã đọc bài này!!!

Vậy nhé, chuẩn bị tinh thần chiến đấu, chinh phục đam mê nào!

Bài 2: Phương pháp học Cocos2d-x của tôi.

22 comments:

  1. Bạn cố gắng viết nhiều để mình học hỏi với nha :)

    ReplyDelete
  2. Ừ, tất nhiên rồi, vì chính mình cũng đang phải học mà. Cũng không khó lắm đâu!

    ReplyDelete
  3. a làm video đi đc ko, bọn em dễ học hơn

    ReplyDelete
  4. + Dao Tu: Mình đang xem xét việc làm Video, chắc chỉ bài nào quan trọng ( Bài hướng dẫn cài đặt chẳng hạn). Hoặc bài nào được nhiều người quan tâm yêu cầu thì mình làm. Chứ bài nào cũng làm thì... chắc không đủ thời gian mất. hihi

    ReplyDelete
  5. nhầm rồi, cocos2d ra đời trước và cocos2d-x là con của nó

    ReplyDelete
    Replies
    1. OK, và chắc là người ta chuyển qua bản -X hết rồi

      Delete
  6. tuyệt quá, bạn viết nhiều để mn học tập nhé :)

    ReplyDelete
  7. Hi Trần Xuân,
    Trước tiên mình rất vui và rất cảm ơn bạn vì blog rất bổ ích. Có lẽ bạn cũng phải khá vất vả khi tạo ra và duy trì nó.
    Mình có góp ý nho nhỏ: Những đoạn code trong bài bạn có thể bố trí cho dễ nhìn hơn được không? Hiện tại nhìn nó không khác gì đoạn text bình thường nên rất khó theo dõi.

    ReplyDelete
    Replies
    1. Cám ơn bạn đã góp ý, cái này mình cũng chú ý từ lâu rồi, Nhưng vấn đề là
      + Blog bị giới hạn về số font chữ trong Editor, rất ít và hầu như là giống giống nhau
      + Đã từng đổi font nhưng ko thành công, trong Editor thì khá đẹp, rõ ràng, phân biệt được code với text, nhưng khi hiển thị web thì xấu, khó đọc hơn
      + Có lẽ phải thay đổi màu sắc font Code, nhưng chưa biết chọn màu nào cho hợp lý

      Delete
  8. Cảm ơn bạn vì đã cho mình tự like trang web này ^^

    ReplyDelete
  9. Với Công Nghệ In Bằng Giống Các Trường Đại Học Trên Toàn Quốc
    Làm Bằng Đại Học Tại TPHCM - Làm Bằng Đại Học Giá Rẻ

    http://lambangdaihocgia.xtgem.com/
    Nhận làm bằng đại học tại tphcm, hà nội và các tỉnh trên toàn quốc, cao đẳng, trung cấp, bằng cấp 3. Dịch vụ làm bằng đại học phôi gốc cùng các loại chứng chỉ nghề, anh văn tin học, toeic giá rẻ.
    Chúng tôi chuyên nhận làm bằng đại học phôi gốc uy tín, giá rẻ trên toàn quốc. Đặc biệt giá cả cạnh tranh.
    Nếu bạn đang cần một tấm bằng đại học để tăng lương, hay để được đề cử lên chức vụ cao hơn hoặc đơn giản chỉ là để đối phó với gia đình.
    Nếu bạn muốn làm bằng đại học giá rẻ hãy Liên Hệ với chúng tôi: 096 113 5459

    Làm bằng đại học giá rẻ
    Làm bằng đại học giá gốc
    Làm bằng đại học uy tín, chất lượng
    Làm bằng đại học không cần đặt cọc
    Làm bằng đại học tại tphcm - hà nội
    Làm bằng đại học uy tín trên toàn quốc

    Image1
    Làm bằng đại học giá rẻ tại TPHCM và Hà Nội

    Thông tin cần cung cấp khi làm bằng giá rẻ
    + Họ Tên: Tên trong khai sinh đầy đủ của bạn
    + Ngày Sinh: Ngày sinh chính xác trong khai sinh của bạn
    + Nơi Sinh: Nơi sinh trên giấy khai sinh
    + Tên Trường: Trường bạn cần làm bằng đại học, ví dụ: đại học Nguyễn tất thành, đại học Quốc gia TPHCM
    + Tên Nghành: Ngành học bạn cần làm, ví dụ: Kế toán, Tài chính, IT...
    + Khóa Học
    + Năm Tốt Nghiệp: Bạn nên chọn năm cho phù hợp với tuổi của bạn
    + Giới Tính: Nam hoặc Nữ
    + Dân Tộc
    + Xếp Loại: Nên chọn Khá hoặc Giỏi
    + Ảnh: Đính kèm file

    Vì sao bạn lại chọn dịch vụ làm bằng đại học giá rẻ
    Với phương châm làm bằng đại học Uy Tín - Nhanh Chóng - Giá Rẻ và quan trọng nhất là đảm bảo chất lượng khi khách nhận được hàng nên chúng tôi luôn nhận được sự quan tâm và ủng hộ của những bạn có nhu cầu làm bằng đại học tại tphcm

    Bạn làm việc với chúng tôi bằng cách nào
    Chúng tôi sẽ gặp bạn và trao đổi thông tin trực tiếp, sau khi thỏa thuận xong chúng tôi sẽ tiến hành làm bằng đại học.
    Bạn hoàn toàn yên tâm vì chúng tôi không bao giờ lấy tiền trước ( vì hiện nay có nhiều trường hợp gửi tiền cọc trước sau đó không liên lạc được ). đến khi nào làm bằng đại học xong chúng tôi mới lấy tiền.
    Chúng tôi nhận làm bằng đại học ngay trong ngày nếu bạn cần gấp cho công việc.
    Đảm bảo làm bằng đại học phôi thật, chất lượng tốt nhất, không giống chúng tôi sẽ hỗ trợ làm lại ngay cho bạn.

    Liên hệ tư vấn làm bằng đại học
    Mr Nguyên: 096 113 5459

    ReplyDelete
  10. cảm ơn sự chia sẻ của bạn.rất hay :D

    ReplyDelete
  11. sao mấy cái ảnh e k xem đc vậy anh ơi

    ReplyDelete
  12. bài viết rất hay :), cám ơn bạn rất nhiều về bài viết này ^^

    ReplyDelete
  13. Cám ơn những chia sẻ của bạn, hữu ích quá. bạn có thể chia sẻ một mã nguồn game phức tạp, và code chuẩn cho mọi người tham khảo được không

    ReplyDelete
  14. https://www.youtube.com/watch?v=zXzIljHX3-o

    ReplyDelete
  15. Làm sao đọc file pvr.ccz vậy huynh, mở ra nó toàn bị mã hóa

    ReplyDelete
  16. This comment has been removed by the author.

    ReplyDelete