Tôi hiện đang viết một công cụ trò chơi 2D dựa trên nền tảng OpenGL nhỏ cho studio của chúng tôi. Khi tôi nghiên cứu sử dụng lớp 2D Vector nào, tôi tình cờ thấy ba mô hình thiết kế khác nhau:
Float & Call-by-value, như trong bài viết này của Gamasutra . Có vẻ là nhanh nhưng cung cấp độ chính xác nhỏ (xem thêm Chủ đề này ). Pro: Nhanh chóng, di động và tương thích với hầu hết các thư viện.
Double & Call-by-Reference. Nếu tôi hiểu đúng bài viết trên, tôi cũng có thể sử dụng 2 biến chính xác kép thay vì 4 số float. Theo chủ đề trên đôi vẫn chậm hơn so với float.
Mẫu cho double và float: Cuốn sách phổ biến rộng rãi " Game Engine Architecture " sử dụng các mẫu để làm cho nó có thể sử dụng float và double khi cần. Nhược điểm rõ ràng là phình mã. Ngoài ra, tôi nghi ngờ rằng mã có thể được tối ưu hóa mà không cần viết hai lớp về cơ bản.
Tôi sẽ đánh giá cao để tìm hiểu những giải pháp bạn đang sử dụng trong các công cụ nội bộ của mình và mức độ chính xác của các công cụ trò chơi phổ biến, vì vậy tôi có thể quyết định giải pháp nào tôi sẽ thực hiện trong công cụ của mình. Hiện tại tôi đang nghĩ về việc sử dụng độ chính xác của float và sống với nó.