"Super Meat Boy" là một platformer khó mà gần đây xuất hiện cho PC, yêu cầu kiểm soát đặc biệt và nhảy pixel hoàn hảo. Mã vật lý trong trò chơi phụ thuộc vào tốc độ khung hình, bị khóa tới 60 khung hình/giây; điều này có nghĩa rằng 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, gây ra (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 bị tắt, trò chơi sẽ chạy cực nhanh.2D platformers: tại sao làm cho vật lý phụ thuộc vào tốc độ khung hình?
Những người có kinh nghiệm lập trình trò chơi 2D có giúp giải thích lý do trò chơi được mã hóa theo cách này không? Sẽ không phải là một vòng lặp vật lý chạy với tốc độ không đổi là một giải pháp tốt hơn? (Trên thực tế, tôi nghĩ 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.)
Điều làm phiền tôi về việc triển khai này là mất sự trừu tượng giữa công cụ trò chơi và hiển thị đồ họa, phụ thuộc vào những thứ cụ thể của hệ thống như màn hình, cạc đồ họa và CPU. Nếu vì bất kỳ lý do nào, 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 độ 60 khung hình/giây, nó sẽ phá vỡ ngoạn mục. Tại sao bước dựng hình theo bất kỳ cách nào ảnh hưởng đến tính toán vật lý? (Hầu hết các trò chơi ngày nay sẽ làm chậm trò chơi hoặc bỏ qua khung.) Mặt khác, tôi hiểu rằng các platformer cũ trên NES và SNES phụ thuộc vào tốc độ khung hình cố định cho phần lớn khả năng kiểm soát và vật lý của chúng. Tại sao điều này, và nó sẽ có thể tạo ra một patformer trong tĩnh mạch mà không có sự phụ thuộc framerate? Có nhất thiết phải mất độ chính xác nếu bạn tách đồ 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.
Điều này có thể được yêu cầu tốt hơn trên http://gamedev.stackexchange.com/ –