TTBC2024

TTBC2024


[Review] Game Engine-Godot

Rain_In_River
26/1/2022 9:28Phản hồi: 0
[Review] Game Engine-Godot

GODOT




Chú ý: Đây là review do một amater viết cho amater

Game Engine là gì?

Game Engine là công cụ để làm game, vậy thôi. Ngày càng có nhiều game engine , có những game engine truyền thống như kiểu Unity,Unreal hay kiểu no code như buildbox, Construct 3. Các bạn có thể tham khảo:


List of game engines - Wikipedia

Hôm nay mình muốn giới thiệu đến các bạn Godot, một trong những game engine mới nổi.

Open source

Godot là open-source nên nó có những ưu điểm như sau:


1. Miễn phí, miễn phí hoàn, không có điều khoản rằng buộc nào.Cũng xin nói thêm là Unity và Unreal Engine cũng coi như là miễn phí với những người mới bắt đầu (Họ chỉ thu phí khi game của bạn kiếm được một số tiền nhất định). Tuy nhiên có 2 điều mình cảm thấy không thích đó là:
Một, các công ty quản lý game engine kiểu này có thể thay đổi polices bất ngờ (Đang miễn phí thành không miễn phí, thêm điều khoản rằng buộc…). Vấn đề này đã xẩy ra rất nhiều.
Hai, đó là trường hợp của mình khi mình đự định dùng game engine để viết một tool cho công ty. Như vậy mình lại vướng vào điều khoản lằng nhằng không đáng có.

2. Godot là một trong những project tích cực nhất trên github(hiện đang có 1558 contributors, gấp nhiều lần các dự án game engine open source khác). Cái này rất quan trọng nhé, hiện tại không thiếu những game engine open source xuất sắc như Flax Engine, Open 3D Engine(của Amazon)… nhưng việc một open source project tích cực sẽ giúp các lỗi được sửa nhanh hơn và các tính năng được phát triển tốt hơn.

3. Và có thể do game open source nên cộng đồng của Godot cũng rất open, bạn có thể thấy rất nhiều game open source, hoặc các add-in được việt bằng open source.

4. Nhưng chính vì Godot là open source nên nó cũng có nhược điểm là khó khăn trong việc tiếp cận với các vấn đề có tính bản quyền ví dụ như gần đây nhóm phát triển mới có tiền để mua bản quyền làm việc với file mp3. Và quan trọng nhất, Godot rất khó để export ra console như PlayStation, Xbox(Switch thì dễ hơn) do vấn đề license(Bạn phải nhờ một bên thứ 3 port hộ).

Nodes based

Một trong những điểm ăn tiền của Godot là Node-based, khác hẳn với các game engine khác dùng component-based. Chính nhờ thế giúp bạn tiết kiệm thời gian làm game, quản lý project tốt hơn, tận dụng code tốt hơn.

Quảng cáo




Về cơ bản, một game bao gồm rất nhiều thành phần như hình ảnh, âm thanh, vật lý,…, Godot sẽ coi tất cả những cái này là Node, khi các node hợp lại sẽ thành scene. Nhưng điểm hay là bạn có thể tách node để biến nó thành 1 scene và ngược lại có thể biến 1 scene thành node. Bạn có thể tưởng tượng như thế này. Bạn muốn làm một chiếc xe, với component-based, bạn sẽ có một cái xưởng to đùng trong đó góc phải là làm bánh xe, góc trái làm thân xe… Nhưng với godot, có thể hiểu, bánh xe được sản xuất ở Mỹ, thân xe làm ở Đức và lắp ghép thì ở Việt Nam. Như vậy nếu bạn muốn tập trung vào bánh xe, bạn tách nó thành 1 scene riêng biệt, bạn có thể thử nghiệm mọi thứ mà không ảnh hưởng gì, thậm chí là dùng cho dự án khác dễ dàng.
[​IMG]
Chính nhờ node based này mà bạn sẽ thấy làm việc với UI trong Godot dễ thở hơn rất nhiều. Mình có dùng Unity trong 2 năm, quả thực là nó có rất nhiều tool mạnh nhưng quá rối rắm, đặc biệt phần UI. Nhưng với Godot, nhờ có các nodes như container nên bạn có thể dễ dàng định hình được UI. Cũng phải nói thêm là có khác nhiều người dùng Godot để viết phần mềm ( Như mình là một ví dụ). Nắm bắt được điều này nên bản Godot 4.0 sắp tới, các core developer đã có một số tối ưu cho việc phát triển UI cho phần mềm.
Screenshot 2022-01-26 111903.png
Một phần mềm quản lý cloud theo kiểu Sci-Fi

Phần animation cũng là phần được đánh giá rất cao, cực kì đơn giản, dễ dùng nhưng cũng rất mạnh. Bạn có thể animate bất cứ thành phần nào.
Tuy nhiên cũng có một số cái mà Godot làm chưa tốt như phần Tilemap, thực sự tồi tệ, vừa khó hiểu, vừa mất thời gian lại có quá ít công cụ. Tuy nhiên, tất cả những cái này sẽ được sửa đổi khi bản Godot 4.0 ra đời.

GDScript đơn giản nhưng tuyệt vời

Bản thân game engine hỗ trợ các ngôn ngữ lập trình là GDScript, C#, Visual Script (Cho những anh không thích viết code). Trong đó GDScript là ngôn ngữ riêng của game engine. OK, nhiều bạn sẽ nghĩ, tại sao lại phải dùng GDScript, trong khi nếu tôi dùng C#, hoặc học Unreal để biết thêm về C++, như vậy vừa học lập trình game, nếu cần có thể viết phần mềm? Đơn giản vì GDScript siêu dễ, tất cả những gì cần thiết để lập trình game được tối ưu là không thêm vào những thành phần thừa thãi.

Quảng cáo




Chính vì thế bạn sẽ làm quen rất nhanh và viết code cũng rất nhanh.


Module

Nếu bạn vẫn không thích dùng GDScript,C# vì bạn đã biết một ngôn ngữ khác như Python, Rust, Lua... thì sao? Không vấn đề gì, bạn hoàn toàn có thể dùng Godot kết hợp với các game engine này thông qua GDNative.


Đặc biệt, giống như các game engine khác, Godot cũng có một lượng Add-on khá lớn để mở rộng. Ví dụ như Escoria để tạo các game point’click adventure.



Vua 2D, nông dân 3D
Hiện tại, có thể nói nếu bạn muốn làm việc với 2D thì bạn nên chọn Godot, Godot hỗ trợ bộ render 2D cực tốt, đặc biệt là các game pixel, không như kiểu 3D ép thành 2D như các game engine khác.
Tuy nhiên, nói về 3D, không phải Godot không làm được 3D, nhưng để tạo nên các tác phẩm AAA thì có thể bạn sẽ đợi đến Godot 4.0



Godot rất nhẹ.

Về cả dung lượng lẫn tài nguyên. Cái này rất quan trọng với các bạn mới học lập trình game nhé. Bạn không thể mua một cỗ máy cực mạnh chạy 24/24 để làm game được, đúng không? Hãy cứ tưởng tưởng bạn có 30 phút nhưng chỉ khởi động Unity hay Unreal đã hết 15 phút, thực sự rất mất hứng.


Godot dễ học

Lập trình game không phải là công việc dễ, dù dùng game enine nào thì bạn cũng phải làm quen với các khái niệm như kinematic,vector,... và làm việc với các hàm.Tuy nhiên Godot sẽ kiến những việc đó dễ thở hơn vì:


Lượng turorial rất nhiều trên youtube, reddit, udemy... Đặc biệt là document của Godot được viết rất dễ hiểu. Không những vậy công đồng của Godot cũng rất thân thiện.
Ngoài ra, nhờ có thiết kế node-based và gdscript nên việc đọc source code của game rất rất dễ dàng so với các game engine khác. Bản thân mình chỉ cần 2 tuần là có thể thoải mái học qua source code của game mà không gặp vấn đề gì.


Những điều mình không thích:

1. Thiếu nhiều tool và plugin hơn so với các game engine khác. Thú thực là khi từ unity sang mình cảm thấy có phần hơi hụt hẫng vì ở Unity có quá nhiều tính năng mà Godot thiếu.


2. Godot vẫn chưa đạt đến tầm Blender, ý ở đây là nó vẫn chưa có một studio lớn nào sử dụng.
3. Godot 4.0 được phát triển quá lâu. Lý do chính là vì các core developer muốn đây là một bản có thể giúp Godot cạnh tranh được với Unity và Unreal nên họ cho vào quá nhiều các tính năng, ví dụ :Tích hợp Vulkan, SDFGI-công nghệ độc quyền của Godot cho open world, GDcript 2.0, Tilemap mới...

Chia sẻ

Xu hướng

Xu hướng

Bài mới










  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2024 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02822460095
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019