Game Studio
Liên kế mạng xã hội

Game Studio


Unity có thể sẽ ngừng hỗ trợ cho UnityScript vào cuối năm nay

Đã từ rất lâu, có thể nói là thời điểm đầu tiên khi Unity được ra mắt (phiên bản 1.0), engine này đã hỗ trợ một phiên bản khác của JavaScript, được gọi là UnityScript. Tuy nhiên qua thời gian, số người sử dụng UnityScript đã giảm đáng kể và điều này sẽ sớm kết thúc vì mới đây, Unity Technologies đã chính thức thông báo rằng họ đã lên kế hoạch để ngừng hỗ trợ UnityScript trong Unity engine.

Theo thông báo:

  • Thứ nhất, kể từ đầu tháng 6, Unity Technologies đã sửa đổi chính sách submit sản phẩm lên Asset Store, trong đó quy định các packages có chứa code UnityScript sẽ ngay lập tức bị reject. Tất cả các packages submit lên Asset Store phải được viết bằng C#. Sau đó, Unity Technologies sẽ bắt đầu quét tất cả các packages hiện đang phân phối trên Asset Store để tìm ra packages nào có chứa file UnityScript và họ sẽ liên hệ với nhà xuất bản để yêu cầu họ chuyển code sang C#. Sau đó, nếu bất kỳ packages nào chưa được chuyển code sẽ bị loại ra khỏi Asset Store.
  • Thứ hai, phiên bản beta của Unity 2017.2 đã không còn có tùy chọn 'Javascript' (hay UnityScript) trong menu Create Assets. Mặc dù họ đã loại bỏ nó ra khỏi menu nhưng tất cả các hỗ trợ vẫn còn đó, và bạn vẫn có thể tạo các tập tin UnityScript mới bên ngoài Unity (ví dụ, thông qua MonoDevelop). Unity Technologies làm việc này để đảm bảo rằng người dùng mới sẽ không thể sử dụng UnityScript được nữa.
  • Thứ ba, Unity Technologies đã bắt đầu làm việc với một công cụ tự động chuyển đổi UnityScript -> C#. Mặc dù vậy họ vẫn chưa hài lòng về cách mà công cụ này hoạt động. Do đó, họ vẫn chưa quyết định được liệu nó sẽ được tích hợp trực tiếp vào Unity eingine hay họ sẽ phát hành nó riêng biệt dưới dạng một công cụ mã nguồn mở. Dù cho kết quả như thế nào, Unity Technologies hy vọng rằng công cụ này sẽ được định đoạt trong phiên bản 2017.2 vào cuối năm nay. Họ cũng cho biết là sẽ có một bài đăng về công cụ này, ngay khi nó đã sẵn sàng để sử dụng.
  • Như một cách để phòng ngừa, Unity Technologies cho biết họ sẽ theo dõi số liệu Analytics và hy vọng rằng sẽ có một sự sụt giảm khá nhanh trong việc sử dụng UnityScript. Nếu không thấy một sự suy giảm đáng kể nào diễn ra, họ sẽ tạm dừng kế hoạch và điều tra xem điều gì khiến các nhà phát triển không di chuyển sang C#. Unity Technologies muốn chắc chắn rằng họ sẽ không phải vướng vào bất kỳ rắc rối gì trước khi họ ngừng hỗ trợ hoàn toàn.
  • Và một khi Unity Technologies cảm thấy hài lòng với kết quả mà họ mong muốn (số lượng sử dụng UnityScript thấp nhất có thể), Unity engine sẽ không còn đi kèm với trình biên dịch UnityScript, và sẽ không xem các tập tin .js như là các script code của người dùng. Họ cũng sẽ loại bỏ các ví dụ của UnityScript ra khỏi documentation, cũng như Script Updater.

Trình biên dịch UnityScript vẫn có sẵn trên Github phòng trong trường hợp bạn cần nó để làm điều gì đó, nhưng Unity Technologies sẽ không chấp nhận bất kỳ pull requests nào vào nó.

Đưa ra lý do cho hành động này, Unity Technologies cung cấp khá nhiều số liệu thống kê như:

  • Hiện, không tới 4% các nhà phát triển sử dụng UnityScript như là ngôn ngữ lập trình chính.
  • Trong tất cả các project được phát triển bằng cách sử dụng Unity 5.6, có khoảng 14,6% project có chứa ít nhất một file với phần mở rộng .js ở trong đó. Từ đó thấy được hiện có đến 85,4% project được viết hoàn toàn trong C#, tức là không có bất kỳ file UnityScript nào cả.
  • Con số 14,6% là khá cao, nhưng nếu nhìn sâu hơn về số lượng script (.js + .cs) trong project, sẽ có những thay đổi lớn: 9,5% trong số đó chủ yếu là viết bằng C# - chúng có một số tệp UnityScript, nhưng ít hơn 10% tổng số file script của chúng; 1,5% trong số các project này có chứa từ 10% đến 20% code UnityScript trong các tập tin; Điều đó cho thấy chỉ có 3,6% project có chứa hơn 20% code UnityScript. Và chỉ 0,8% project được viết với 100% UnityScript.

Có thể thấy chỉ với một phần nhỏ các nhà phát triển sử dụng UnityScript, thật sự không có ý nghĩa gì để tiếp tục hỗ trợ ngôn ngữ này, đặc biệt là bây giờ sự hỗ trợ cho C# đã gần như hoàn chỉnh. Và mặc dù Unity Technologies không đưa ra ngày tháng cụ thể để ngừng hỗ trợ cho UnityScript, nhưng nó sẽ sớm xảy ra. Nếu bạn vẫn còn sử dụng UnityScript trong procjet của mình, đã đến lúc bạn phải thay đổi chúng.


Đăng sự kiện cho developer