Hầu hết các công cụ và khung công tác tốt cung cấp các chức năng mà bạn cần, và không bao giờ cản trở bạn.
Họ có làm không? Điều đó khá phụ thuộc vào chính xác những gì bạn đang làm, nói một cách đồ họa.
Đối với nhiều loại trò chơi, có câu trả lời tiêu chuẩn cho câu hỏi đồ họa. Ví dụ, trò chơi 2D trung bình có thể được xử lý tốt với khả năng 2D, ví dụ, XNA / MonoGame. Nó chỉ là các sprite, có thể đi theo đợt cho địa hình, có thể được xoay, v.v.
Nhưng điều gì sẽ xảy ra nếu trò chơi của bạn từng là trò chơi 2D trung bình, sau đó bạn đọc về một số kỹ thuật thú vị, chẳng hạn như sử dụng bản đồ chiều cao để xây dựng một kẻ mạo danh có chiều sâu so với màn hình. Và bạn muốn làm điều đó.
Bây giờ bạn đang sử dụng ánh xạ bình thường và thậm chí có thể là ánh xạ thị sai. Tất cả trong cùng một bối cảnh của "họa tiết kết xuất", nhưng đòi hỏi nhiều hơn rất nhiều công cụ 2D thuần túy có thể xử lý. Cụ thể, nó đòi hỏi "sprite blits" đa điểm, đây không phải là điều mà nhiều công cụ 2D có thể làm.
Bạn sẽ làm gì nếu động cơ của bạn không thể thích nghi với bạn? Vì vậy, điều đó có nghĩa là bạn phải thực hiện nhiều đường chuyền, một cho màu sắc và một cho ánh sáng thông qua bản đồ bình thường. Nhưng điều đó không hiệu quả, bởi vì bạn cần trường chiều cao của bản đồ bình thường để sử dụng ánh xạ thị sai cho việc tra cứu màu. Thế bây giờ thì thế nào? Bạn cần alpha để minh bạch, vì vậy bạn không thể đánh cắp alpha. Và động cơ không hỗ trợ đa điểm.
Vì vậy, bạn phải chọn một trong những điều sau đây:
- Từ bỏ ý tưởng. Điều này có nghĩa là trò chơi của bạn bị giới hạn chức năng bởi công cụ của bạn.
- Hack động cơ để có đa điểm. Giả sử bạn có quyền truy cập vào mã nguồn, bây giờ bạn đang tự mình lấy nó để chọc vào mã của người khác. Điều này cũng có nghĩa là bạn cần duy trì nó và không phá vỡ nó với vấp ngã của bạn.
- Làm tốt nhất có thể, trong giới hạn của động cơ. Vì vậy, bạn có thể có thị sai trên các bản đồ bình thường, nhưng không phải trên màu sắc. Nó có thể không chính xác như những gì bạn muốn, nhưng tốt hơn là không có gì.
Chỉ là một ví dụ, lấy Geometry Wars. Hầu hết các công cụ 2D sẽ hút các loại hình ảnh này, vì hầu hết chúng được xây dựng xung quanh vẽ các họa tiết, không phải đường kẻ. Đó là một trò chơi cần một loại trình kết xuất rất chuyên dụng.
Vào cuối ngày, bạn cần chịu trách nhiệm về các yếu tố của trò chơi quan trọng đối với nhu cầu của trò chơi. Nếu giao diện trực quan của trò chơi của bạn chủ yếu được phát triển bởi phong cách nghệ thuật của hình ảnh và mô hình bạn sử dụng, thay vì hiệu ứng cụ thể, thì sử dụng giải pháp đóng gói sẵn là ổn. Nhưng nếu phong cách hình ảnh của trò chơi của bạn được xác định đáng kể bằng mã kết xuất tùy chỉnh, tỷ lệ cược tốt là một công cụ tiêu chuẩn có thể trở thành một giới hạn nghiêm trọng nếu bạn quyết định làm những việc bên ngoài hộp.
Hơn nữa, có một vấn đề rất thực tế: không phải tất cả các công cụ trò chơi đều có thể di động như nhau.
Với sự phát triển gần đây của các nền tảng di động, thị trường trò chơi được trải rộng trên nhiều thiết bị giao diện người dùng và hệ điều hành. Không phải tất cả các động cơ làm việc trên tất cả các thiết bị. Và nếu công cụ của bạn không hoạt động trên nền tảng, bạn chắc chắn sẽ không dành thời gian để làm cho nó hoạt động trên một nền tảng . Rốt cuộc, đó là lý do tại sao bạn sử dụng một động cơ ở nơi đầu tiên, phải không?
Nếu điều quan trọng với bạn là trò chơi của bạn hoạt động trên một nền tảng cụ thể, thì bạn lại cần phải chịu trách nhiệm về nó. Và cách "dễ nhất" để đảm bảo thành công với việc này là tự làm. Để xây dựng một công cụ có thể hoạt động trên nhiều nền tảng, có lẽ sử dụng các khung cụ thể nền tảng đơn giản hơn khi cần xử lý một số chi tiết cấp thấp. Theo cách đó, nếu nó bị hỏng, đó là mã của bạn; bạn là người tốt nhất để có thể sửa nó.