"Super Meat Boy" là một nền tảng khó khăn mới xuất hiện cho PC, đòi hỏi khả năng kiểm soát đặc biệt và nhảy hoàn hảo pixel. Mã vật lý trong trò chơi phụ thuộc vào tốc độ khung hình, được khóa ở mức 60fps; điều này có nghĩa là nếu máy tính của bạn không thể chạy trò chơi ở tốc độ tối đa, vật lý sẽ phát điên, khiến (trong số những thứ khác) nhân vật của bạn chạy chậm hơn và rơi xuống đất. Hơn nữa, nếu vsync tắt, trò chơi chạy cực nhanh.
Những người có kinh nghiệm với lập trình trò chơi 2D có thể giải thích lý do tại sao trò chơi được mã hóa theo cách này? Không phải một vòng lặp vật lý chạy ở tốc độ không đổi sẽ là một giải pháp tốt hơn? (Trên thực tế, tôi nghĩ rằng một vòng lặp vật lý được sử dụng cho các phần của trò chơi, vì một số thực thể tiếp tục di chuyển bình thường bất kể tốc độ khung hình. Nhân vật của bạn, mặt khác, chạy chính xác [fps / 60] nhanh như vậy.)
Điều làm tôi băn khoăn về việc triển khai này là sự mất đi tính trừu tượng giữa công cụ trò chơi và kết xuất đồ họa, điều này phụ thuộc vào những thứ cụ thể của hệ thống như màn hình, card đồ họa và CPU. Nếu vì bất kỳ lý do gì, máy tính của bạn không thể xử lý vsync hoặc không thể chạy trò chơi với tốc độ chính xác 60fps, nó sẽ bị hỏng một cách ngoạn mục. Tại sao bước kết xuất theo bất kỳ cách nào ảnh hưởng đến các tính toán vật lý? (Hầu hết các trò chơi hiện nay sẽ làm chậm trò chơi hoặc bỏ qua các khung.) Mặt khác, tôi hiểu rằng các nền tảng trường học cũ trên NES và SNES phụ thuộc vào tốc độ khung hình cố định cho phần lớn sự kiểm soát và vật lý của chúng. Tại sao lại như vậy, và liệu có thể tạo ra một patformer trong tĩnh mạch đó mà không có sự phụ thuộc khung hình? Có nhất thiết phải mất độ chính xác nếu bạn tách kết xuất đồ họa khỏi phần còn lại của động cơ không?
Cảm ơn bạn, và xin lỗi nếu câu hỏi khó hiểu.