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

Game Studio


Ưu và nhược điểm của việc sử dụng một game engine

Sử dụng game engine -cả hai 2D và 3D- đã trở nên rộng rãi và phổ biến trong vài năm qua. Trong bài này, chúng ta cùng phân tích những ưu và khuyết điểm của việc sử dụng một engine của bên thứ ba để tạo ra trò chơi, vì đây vẫn còn là một cuộc tranh cãi lớn bất chấp những thành công vượt trội của một số game engine. Một báo cáo của Developer Economics trong năm 2014 cho biết rằng có khoảng 29% nhà phát triển trò chơi không sử dụng game engine được cung cấp bởi một bên thứ ba. Đó cũng là lý do tại sao vẫn còn những cuộc tranh luận trên các cộng đồng.

Chi phí

Rõ ràng, việc phải trả tiền để sử dụng phần mềm của bên thứ ba có thể được xem như là một chi phí bổ sung mà chúng ta có thể dễ dàng tránh được nếu chúng ta tạo ra các trò chơi từ đầu. Tuy nhiên, bạn phải nhớ các chi phí của việc tạo ra rất nhiều tính năng và dịch vụ đã trở thành tiêu chuẩn với một game engine. Thời gian để bạn phát triển game engine cho riêng bạn có thể rất tốn kém, và có thể làm tăng chi phí của dự án lên rất nhiều.

Tuy vậy, hầu hết các game engine ngày nay đã làm giảm đáng kể chi phí cho mỗi licence của họ trong những năm trở lại đây. Nếu bạn so sánh các chi phí trong việc tạo ra engine của riêng bạn với chi phí cho một license, bạn sẽ thấy rằng việc sử dụng các công cụ trò chơi của bên thứ ba sẽ được lợi hơn.

Chúng ta cũng cần phải đề cập đến một điểm khác. Một số game engine - chẳng hạn như Unreal, Unity hoặc WiMi5 - hiện tại đang cung cấp một mô hình cấp phép miễn phí khi phát triển, và chỉ tính tiền “hoa hồng” dựa trên thu nhập mà trò chơi đó tạo ra. Điều này có nghĩa là các nhà phát triển có thể sử dụng các game engine hoàn toàn miễn phí và chỉ phải trả một phần thu nhập cho công ty cung cấp game engine khi trò chơi đó tạo được doanh thu. Mô hình này rất có lợi cho các nhà phát triển độc lập hoặc những sinh viên muốn có một game engine mạnh mẽ để tìm hiểu hoặc sử dụng mà không phải trả phí ban đầu. Mặt khác, nếu có ngân sách cao, các nhà phát triển trò chơi có thể xem xét việc tạo engine của riêng mình, mặc dù chi phí là rất tốn kém.

Dễ dàng học tập, sử dụng, và tạo sản phẩm

Một trong những lợi thế mà game engine cung cấp là chúng rất dễ sử dụng. Những công cụ này cho phép tạo ra trò chơi trong một môi trường làm việc mà trong đó nó đã cung cấp một tập hợp các tính năng để làm cho việc tạo ra các trò chơi trở nên dễ dàng hơn, cả về lập trình và đồ họa. Ngoài ra, mục tiêu của những người thiết kế những công cụ này là để làm cho người sử dụng nó dễ dàng, linh hoạt và trực quan với các đường cong học tập nhỏ nhất có thể. Tuy nhiên, một số engine có thể đạt được điều này; nhưng một số khác thì chưa. Một số còn cho phép nhà phát triển kéo thả đồ họa và chỉ vài cú click là có thể có một trò chơi.

Một số ý kiến cho rằng tìm hiểu cách làm game với một engine sẽ dể dàng hơn là lập trình trong C++. Đây cũng là một cách liên quan đến năng suất. Với game engine, nó có thể tăng năng suất trong việc phát triển một trò chơi.

Nhanh chóng tạo ra mẫu thử nghiệm (prototypes)

Thêm một lợi thế mà game engine cung cấp là khả năng cho ra các prototypes một cách nhanh chóng. Điều này có thể rất hữu ích để thử nghiệm những ý tưởng hay những khái niệm trò chơi mới. Điều này làm cho việc chứng thực, thử nghiệm những ý tưởng hoặc các khái niệm trò chơi mới từ những chuyên gia khác trở nên dễ dàng hơn, và vì chúng có thể được test từ rất sớm, nên nhà phát triển có thể nhận được những thông tin có giá trị để phát triển thêm cho dự án. Thực hiện việc này mà không có một game engine sẽ phức tạp hơn và chậm hơn, nó cũng có thể làm cho ý tưởng trở nên bớt hấp dẫn hơn vì tạo ra mẫu thử quá lâu. Một trong những tính năng được cung cấp bởi một số game engine là khả năng tạo ra code trực quan của trò chơi. Điều này làm cho những người không phải là lập trình viên - những người phải đối mặt với những rào cản để tạo ra trò chơi của riêng mình – có thể dễ dàng truy cập vào phát triển trò chơi.

Giới hạn

Sử dụng một công cụ của bên thứ ba có thể tạo nên những mâu thuẫn với lợi ích cá nhân một nhà phát triển game. Công cụ cung cấp nhiều tính năng, tính linh hoạt, sức mạnh, và dễ dàng tạo ra trò chơi theo nhiều cách. Nhưng luôn luôn có một số khía cạnh mà nó không thể cung cấp, hoặc không hợp với cách làm việc của những nhà phát triển.

Một trong số những hạn chế mà nhiều người thường nói đến chính là những gì liên quan đến khả năng kiểm soát khi phát triển một native game. Các nhà phát triển sẽ nghi ngờ về những hạn chế kỹ thuật được cung cấp bởi các game engine. Rõ ràng, nó sẽ khó khăn hơn khi làm việc ở một mức độ trừu tượng như làm việc trực tiếp trong các ngôn ngữ phát triển chẳn hạn như C.

Thậm chí còn có một cuộc tranh luận khác trong một số diễn đàn là nếu bạn là một phát triển “chân chính”, bạn không được sử dụng các công cụ được xây dựng trước và phải bắt đầu mọi thứ từ đầu. Trong cuộc tranh luận này, chúng ta cần phải phải xác định “điểm bắt đầu” của một nhà phát triển "chân chính" là gì. Từ DirectX hay OpenGL? Liệu các nhà phát triển "chân chính" nên xây dựng luôn một hệ điều hành?

Cuối cùng, như là một tất yếu, các công ty thiết kế game engine sẽ luôn lắng nghe nhu cầu của các nhà phát triển cũng như những hạn chế mà các nhà phát triển tìm thấy. Vì khi những engine này phát triển, nhiều nhu cầu thường sẽ đáp ứng, và một số những hạn chế đang tồn tại sẽ được giải quyết.

Hỗ trợ, cộng đồng và assets store

Hỗ trợ và cộng đồng là những khía cạnh khác mà có thể ảnh hưởng đến quyết định sử dụng một game engine. Đúng là có những cộng đồng rất mạnh mẽ bên cạnh các game engine, nhưng thật sự là cũng có rất nhiều resources xung quanh ngôn ngữ lập trình và chúng cũng có thể được sử dụng để phát triển những trò chơi. Các nhà phát triển trò chơi nhờ vào các cộng đồng này để tương tác với nhau, để hỏi và trả lời những khó khăn trong quá trình phát triển, dù có sử dụng game engine hay không. Thông thường, đây là những cộng đồng được sử dụng để chia sẻ kiến thức.

Hầu hết các game engine đều hỗ trợ và cung cấp các tài liệu hướng dẫn trong việc sử dụng chúng. Những hướng dẫn này có đủ định dạng từ nghe nhìn cho đến văn bản. Trong nhiều trường hợp, chúng cũng đưa ra những ví dụ, những project mẫu, và các resources khác giúp người sáng tạo trò chơi sử dụng tốt engine của họ.

Resource stores hay asset stores, cung cấp tất cả các loại resource để giúp nhà phát triển tăng tốc độ phát triển trò chơi. Một số engines cung cấp những asset stores được tối ưu hóa cho engines đó, một số thì chưa có. Các asset stores có thể cung cấp những phần mở rộng hoặc bổ sung mà có thể tích hợp vào engine và những phần này được tạo ra bởi công ty của engine đó, hoặc bởi các nhà phát triển khác. Bằng cách này, các engine có thể cho phép các nhà phát triển trò chơi tạo ra các thư viện hay plugin của riêng mình.

Tính nguyên bản

Nhiều người nói rằng các trò chơi được tạo ra từ Unity đều rất giống nhau. Câu hỏi đặt ra là có phải nhiều nhà phát triển đã sử dụng các tính năng, các đối tượng, và các thành phần tương tự nhau của engine để giải quyết các vấn đề. Đó là lý do tại sao chúng ta có thể nhìn thấy rất nhiều điểm tương đồn từ những trò chơi được tạo ra bởi các engine.

Dù thế nào thì nhiều engine cung cấp các khả năng để tùy chỉnh cho các các đối tượng thông qua các thành phần, và dể dàng thích nghi với mỗi nhu cầu, từng trường hợp khác nhau. Chúng cũng thường cung cấp cho bạn khả năng truy cập vào source code của các đối tượng, do đó bạn hoàn toàn có thể thay đổi chúng. Cuối cùng, điều quan trọng vẫn là những cố gắng của nhà phát triển, nếu họ muốn có những sản phẩm rất riêng.

Nền tảng và sự phân mãng

Cuối cùng, chúng ta cần xem xét về một trong những đặc điểm mạnh mẽ nhất được cung cấp bởi các game engine. Hiện nay, các nhà phát triển cố gắng cung cấp sản phẩm của họ trên nhiều nền tảng nhất có thể, chẳng hạn như iOS, Android, web, smartTVs, console, và có thể là những thiết bị mới có mặt trên thị trường như VR-AR. Những game engine thường cung cấp cho các nhà phát triển khả năng để dễ dàng export trò chơi của họ cho một số nền tảng. Một số công cụ có thể export hầu như tất cả các nền tảng, một số khác thì chỉ export được một vài nền tảng.

Một câu hỏi nữa chính là sự đa dạng về độ phân giải màn hình và các định dạng trên nhiều thiết bị hiện nay. Độ phân giải màn hình có thể khác nhau từ 380 × 460pixel lên đến 1920 × 1080pixel hoặc hơn. Ngoài ra còn có các hệ số co (aspect ratios) là 3: 4 hay 16: 9, hoặc bất kỳ tỷ lệ khác. Bên cạnh đó còn có bố cục landscape hay portrait.

Để xử lý tất cả những trường hợp trên, nhóm phát triển game engine đã đầu tư nhiều và bỏ ra rất nhiều thời gian. Mục tiêu của họ là cung cấp một giải pháp đáng tin cậy và nhất quán cho phép người chơi thưởng thức trò chơi bất kể thiết bị và độ phân giải màn hình nào họ đang sử dụng. Hầu hết các game engines giải quyết những vấn đề này khá tốt. Đối với các nhà phát triển nào muốn đối mặt trực tiếp với những vấn đề, họ cần phải xử lý một số điều:

  • Sử dụng một ngôn ngữ phát triển, có thể dễ dàng port sang các nền tảng khác. Điều này có nghĩa là bạn phải ngừng sử dụng ngôn ngữ native của một nền tảng cụ thể, trừ khi bạn muốn phát triển trò chơi nhiều lần cho nhiều nền tảng. Trong trường hợp không sử dụng game engine, bạn sẽ phải thích nghi để sử dụng các API cụ thể cho mỗi nền tảng.
  • Bạn phải có một cơ sở dữ liệu về đặt điểm riêng biệt của các thiết bị mà bạn muốn port trò chơi của bạn cho nó, và tích hợp những dữ liệu đó khi phát triển.

Hi vọng với những phân tích trên các bạn có thể thấy được những khiếm khuyết và những thế mạnh của một game engine.

J.Black

GameStudio.vn