Vì sao các studio game độc lập thường tự làm game engine cho mình?
*Topdev.vn – Một câu chuyện về làm game indie của Spaces of Play – Future Unfolding Chúng ta thường nghe một trong hai điều sau đây khi lần đầu trải nghiệm game Future Unfolding. Thứ nhất, mọi người thường tỏ ra khá ngạc nhiên khi biết rằng chúng tôi không hề sử dụng Unity trong ...
*Topdev.vn – Một câu chuyện về làm game indie của Spaces of Play – Future Unfolding
Chúng ta thường nghe một trong hai điều sau đây khi lần đầu trải nghiệm game Future Unfolding. Thứ nhất, mọi người thường tỏ ra khá ngạc nhiên khi biết rằng chúng tôi không hề sử dụng Unity trong suốt quá trình làm game. Thứ hai, họ không thể hình dung được chúng tôi đã nhào nặn ra game như thế nào. Thật ra, cả hai điều này hiện đang liên quan mật thiết với nhau.
Đối với game Future Unfolding, chúng tôi đã quyết định xây dựng riêng một engine phù hợp với tầm nhìn của chúng tôi. Chúng tôi dùng OpenGL và SLD2, nhưng mọi thứ đã được setup theo cách mà chúng tôi có thể dễ dàng hoán đổi các thư viện này với những thứ khác (như Direct X chẳng hạn) mà không tốn quá nhiều công sức. Điều này cũng mở ra cánh cửa giúp chúng tôi có thể port in-house. Chúng tôi còn có thể sử dụng lại một số phần code cũ từ game Spirits, vậy có thể nói chúng tôi cũng đã rất may mắn khi không phải bắt đầu mọi thứ từ 2 bàn tay trắng.
Với nền tảng công nghệ riêng, chúng tôi có thể làm việc hiệu quả hơn và tránh được nhiều rào cảng về mặt sáng tạo. Kể từ đó, chúng tôi không phải dành ra nhiều giờ liền tìm cách tối ưu hoá các engine sẵn có theo ý mình. Đa số các game engines được xây dựng quanh ý tưởng của hình học cấp tĩnh (static level of geometry) và các hình ảnh nhân vật 3D. Mọi thứ trong Future Unfolding lại được dựa trên nền 2D. Tất cả code của chúng tôi được tối ưu hoá để render cho môi trường game 2.5D, ngay cả khi mặt đất trong game được làm bằng các hạt vận động liên tục. Điều này thật sự rất quan trọng đối với phong cách đồ hoạ đặc trưng của Future Unfolding, nó hoàn toàn không phụ thuộc vào các hình khối 3D. Nhờ vậy mà chúng tôi cũng có được các góc cạnh hình ảnh rất mượt mà.
Đôi khi chúng tôi gọi công cụ của mình là framework thay vì engine, nó thật sự không phải thứ mà bạn có thể đưa cho bất kỳ ai khác để sử dụng, trừ khi họ muốn làm một thứ giống y như vậy.
Nếu có lỗi gây crash, chúng tôi luôn có thể debug từ tận trong source-code. Chúng tôi biết rằng những developer khác sẽ phải mất rất nhiều thời gian cũng như công sức để có thể chỉnh sửa code từ một bên thứ ba.
Cuối cùng, chúng tôi không cần phải trả phí bản quyền cho game engine.
Vậy điều chúng ta rút ra được là gì?
Đối với chúng tôi, điều khó khăn nhất chính là việc làm sao để khiến mọi thứ từ OpenGL chạy trơn tru theo ý mình. Cũng bởi vì phong cách đồ hoạ khác biệt của game, nên chúng tôi cũng đã gặp một số thử thách nhất định trong quá trình sử dụng. Tuy nhiên, khi chúng tôi chỉ sử dụng ít chức năng nhất có thể trên OpenGl, hệ thống đã chạy và tối ưu hoá code của chúng tôi dễ dàng hơn.
Nếu bạn muốn tự phát triển công nghệ cho riêng mình, bạn nên tập trung vào chức năng cụ thể mà game mình cần. Nếu như chẳng may, bạn cho ra đời một engine có thể làm nhiều mục đích khác nhau, thì có lẽ bạn nên sử dụng những engine có sẵn ngay từ đầu. Chỉ nên bổ sung những tính năng thật sự cần thiết cho game, đừng cố nhồi nhét những thứ không cần thiết ngay từ đầu. Thiết kế của game cũng như những đòi hỏi về mặt kỹ thuật thường luôn song hành cùng nhau, và hơn hết chúng chắc chắn sẽ cùng thay đổi theo thời gian.
Dịch từ Gamasutra