Godot engine

  1. Vì sao mình lại chọn Godot.


Vì sao mình lại chọn Godot.

Lựa chọn game engine luôn là vấn đề khó khăn đối với mỗi người khi bắt đầu. Qua quá trình sử dụng các engine, mình đã nhận thấy Godot khá phù hợp với các dự án game của mình so với các engine khác như Unity, Unreal, Libgx, Cocos creator, Corona SDK, Game maker, Contruct2D… Hãy cùng xem qua những thứ khiến cho Godot thực sự đáng để thử và lựa chọn cho việc phát triển game.

Godot hoàn toàn open source và hướng tới cộng đồng

Nếu như đem ra so sánh về tính mở, Godot là lựa chọn số 1. Godot hoàn toàn open source theo đúng nghĩa: hoàn toàn miễn phí, mã nguồn mở và tự do phát triển theo ý của bạn. Godot sử dụng giấy phép MIT, người dùng hoàn toàn có thể lấy mã nguồn về chỉnh sửa theo ý mình, phân phối lại mà không hề vi phạm điều gì. Hơn nữa Godot phát triển theo hướng cộng đồng, các tính năng, yêu cầu đều xuất phát từ cộng đồng và được tạo bởi sự đóng góp của cộng đồng. Điều này khiến cho các bạn hoàn toàn yên tâm về vấn đề bản quyền, chi phí (miễn phí hoàn toàn và mãi mãi). Không hề sợ vấn đề ảnh hưởng do mã nguồn đóng, tính thêm các phí trong quá trình phát triển hay phân phối game của mình như các game engine khác.

Godot là engine game cross-platform cả về hệ điều hành cho phát triển và các nền tảng phân phối game.

Bạn có thể phát triển godot trên hầu hết các nền tảng hệ điều hành: Window, MacOS, Linux. Game phát triển với godot hỗ trợ việc xuất bản ra rất nhiều các nền tảng khác nhau:

  • Mobile: Android, IOS
  • Desktop: Windows, macOS, Linux, UWP, *BSD, Haiku
  • Web: sử dụng HTML5 và WebAssembly.

Godot sử dụng ngôn ngữ đa dạng và linh hoạt

Bạn có rất nhiều sự lựa chọn cho ngôn ngữ lập trình với Godot:

  • GDScript: ngôn ngữ scirpt tương tự như Python, được thiết kế riêng cho Godot và dành cho công việc phát triển game. Đây là một điều tuyệt với với Godot, mình sẽ có một bài viết riêng về vấn đề ngôn ngữ script trong lập trình game và vì sao Godot lại lựa chọn GDScript, vì sao GDscript lại tuyệt vời! (Ban đầu mình tiếp cận với Godot mình đã nghĩ: f*ck, lại có thêm một ngôn ngữ nữa phải tìm hiểu, nhưng đúng như những gì Godot đưa ra, hãy thử trải nghiệm với nó, không mất quá nhiều thời gian của bạn, nhưng bạn sẽ thấy vì sao nó lại cần phải có một ngôn ngữ thêm mới nữa!)
  • C#: Ngôn ngữ được bổ sung vào sau và là ngôn ngữ được cộng đồng yêu cầu, đáp ứng hoàn toàn theo mong muốn từ phía cộng đồng (Theo mình đánh giá thì chắc là cộng đồng Unity chuyển qua mong muốn).
  • Visual scripting: Giúp mọi người không cần phải code mà vẫn làm được game :))
  • GDNative: Support cho việc hỗ trợ binding cho bất kì một ngôn ngữ nào mà bạn mong muốn: các ngôn ngữ được cộng đồng hỗ trợ sử dụng GDNative: Python, Nim, D… và C++ (Ngôn ngữ phát triển engine và cũng được engine hỗ trợ). Việc support GDNative sẽ giúp lập trình viên có thể viết các module native để tăng hiệu năng cho các phần trong game và hỗ trợ lập trình viên sử dụng các ngôn ngữ khác nhau vẫn có thể sử dụng engine. Cùng với việc hỗ trợ nhiều ngôn ngữ lập trình, Godot cũng có sẵn Editor để viết mã nguồn riêng cho engine. Theo mình đáng giá Editor cũng khá ổn :D.

Godot dễ sử dụng:

Tất cả những gì trong engine đều là Node. Với việc tạo sẵn hàng trăm các loại node trong engine để hỗ trợ bạn làm game (Đừng nghĩ nhiều node mà phức tạp, vẫn rất là đơn giản theo cách riêng của nó :D), ngoài ra bạn hoàn toàn có thể tùy chỉnh các thuộc tính, hành vi của node hay tạo ra các node của riêng mình làm cho engine trở nên linh hoạt hơn. Giao diện editor hoàn toàn là đồ họa (tương tự Unity, Unreal, game maker, cocos creator…) và bạn có thể viết mã để tùy chỉnh editor hay thêm các plugin cho nó.

Godot Nhẹ

File cài đặt của godot chỉ khoảng vài chục MB (62MB với bản window 64bit cho bản mới nhất 3.2 mình đang sử dụng). Thực sự đáng kinh ngạc vì nó quá nhẹ nhàng so với hàng trăm MB nặng nề của Unity, Unreal hay cocos creator. *Mình chém đấy vì thực sự thì khi export ra các nền tảng khác nhau các bạn sẽ phải tải thêm vài trăm MB nữa (424MB) (unity thì hàng GB @@), và thực sự thì Godot bản win mình dùng không phải cài :)) chỉ có mỗi thực thi exe để chạy và mở ra thì quá nhanh và nhẹ nhàng so với việc khởi động Unity hay cocos creator mà mình đã dùng.

Godot phát triển game 2D thuần thay vì hỗ trợ 2D như các engine khác.

Phần lớn các engine game đều hỗ trợ phát triển game cho 2D và 3D, nhưng các engine hàng đầu như Unity, Unreal lại là 3D và fake 2D chứ không hoàn toàn là 2D như Godot (các bản về sau của Unity thì bắt đầu có phần 2D riêng). Điều này khiến cho các game 2D phát triển với Godot sẽ có hiệu năng tốt hơn (tương tự như cocos) Tuy nhiên phần 3D của godot và cocos hiện tại thực sự chưa tốt hoàn toàn (về hiệu năng cũng như các tính năng cho 3D, các bản về sau hứa hẹn sẽ có nhiều cải thiện đặc biệt với bản 4.0 với việc render engin sử dụng là vulkan).

Ngoài ra Godot còn hỗ trợ hàng loạt các tính năng, công cụ đi kèm trong engine editor như shader, particle system, tiled map editor, animator tool, version control… các bạn có thể xem thêm tại đây. Điều này khiến cho engine trở nên đầy đủ và tiện lợi @@

Trên đây là những tóm tắt của mình về Godot với những ưu điểm của engine này. Tuy nhiên, Godot vẫn còn nhiều hạn chế như hiệu năng render của 3D vẫn còn kém, Việc build ra các nền tảng VR/AR hay các hệ máy console bị giới hạn (một phần vì giấy phép mã nguồn mở của Godot), Godot là một game engine còn trẻ (open source 2014) hệ sinh thái (ecosystem) còn hạn chế, các thư viện hỗ trợ đi kèm theo còn khá ít, vấn đề liên quan đến nguồn lực và các công ty chưa thực sự chọn godot như một engine chính bên cạnh các engine lâu đời và có cộng đồng đông như Unity hay cocos khiến cho việc lựa chọn Godot như một engine để theo đuổi, sử dụng và phát triển hạn chế. Theo thời gian những hạn chế này cũng sẽ thay đổi, engine ngày càng phát triển lên và việc xây dựng cộng đồng Godot sẽ ngày càng lớn mạnh hơn. Việc bắt đầu với blog này cũng là mong muốn Godot sẽ được chú trọng hơn ở Việt Nam và sẽ ngày càng được đón nhận hơn từ cộng đồng phát triển game Việt.

Trong khuôn khổ một bài viết ngắn gọn, mình không thể đưa ra chi tiết và đầy đủ được sự tuyệt vời của một engine như Godot, nếu các bạn có chung quan điểm, lựa chọn thì mình hi vọng các bạn hãy thử trải nghiệm đủ với Godot đủ lâu và sẽ thấy Godot thực sự tuyệt vời thế nào.

PS: Mình bắt đầu làm game với J2ME cho feature phone, sau đấy việc phát triển của smartphone, mình bắt đầu sử dụng các engine như Andengine, Libgdx để phát triển. Tuy nhiên qua các dự án game lớn hơn, hiệu năng của Java không tốt khiến mình phải lựa chọn Cocos2dx và C++ để phát triển. Cùng với thời gian cocos chuyển dần sang cocos creator (dùng JS là ngôn ngữ và đóng mã nguồn của editor) mình cũng tìm kiếm các engine khác và thử như Unity. Việc Unity có editor dễ dàng sử dụng, dễ debug, cộng đồng lớn và lượng resource nhiều khiến cho phát triển game trở nên dễ dàng, nhưng Unity vẫn mất phí, lại sử dụng ngôn ngữ biên dịch như C# hay không open source khiến mình vẫn chưa dừng lại lựa chọn như engine để phát triển lâu dài. Tình cờ biết đến Godot và trải nghiệm thử mình thấy engine hiệu năng, dùng ngôn ngữ script và quan trọng hơn cả là open source, hướng tới cộng đồng. Tuy nhiên Godot lại ít được biết đến và sử dụng nên mình muốn làm blog về Godot và viết lại những gì mình tìm hiểu, vừa để học và phát triển game, vừa để có nơi trao đổi và chia sẻ với mọi người có cùng chung quan điểm, để cộng đồng Godot Việt Nam ngày càng phát triển.

comments powered by Disqus

Đăng ký nhận tin

Bạn có thể để lại email đăng ký nhận tin khi có bài viết mới.