Trạng thái của nghệ thuật vận chuyển đồ họa trò chơi như nhiều tệp BMP nhỏ là gì? [đóng cửa]


9

Chúng tôi có rất nhiều tệp BMP nhỏ mà tôi nghĩ sẽ dễ sao chép hơn nếu chúng tôi kết hợp chúng trong TAR / ZIP / lớn.

Trạng thái của nghệ thuật vận chuyển đồ họa trò chơi là gì?

Chúng tôi đang sử dụng C # và biết về zlib. Chỉ cần động não để xem liệu có giải pháp nào khác tốt hơn zlib không.

Câu trả lời:


7

Bạn cũng có thể xem qua SharpZipLib hoặc DotNetZip - DotNetZip cung cấp cho bạn quyền truy cập Streamtrực tiếp, điều này rất hữu ích vì hầu hết các thư viện C # ngoài kia có thể tải từ các luồng (trái ngược với các tệp). Hơn nữa, DotNetZip sử dụng Ms-PL (BSD-Like), thay vì GPL với một ngoại lệ nghi vấn về mặt pháp lý.

Một lựa chọn khác là sử dụng các bản đồ họa tiết - thay vì có nhiều hình ảnh nhỏ có một vài hình lớn. Chúng thực sự tải nhanh hơn một chút và nhanh hơn một chút khi chạy nếu bạn thông minh với cách bạn vẽ chúng.

Cuối cùng, bạn có thể chạy từng loại tài sản thông qua máy nén lossless có liên quan (PNG, FLAC, v.v.) và lưu trữ chúng trong một tệp phẳng (về cơ bản là tệp zip bị vô hiệu hóa nén). Hãy nhớ tránh nén dữ liệu nén, vì điều đó sẽ tăng kích thước trong hầu hết các trường hợp.

Một số nghệ thuật trước:

  • MPQ : Có thể là tốt như nó có được đối với tài sản trò chơi, việc tra cứu được thiết kế để nhanh chóng (bảng băm dựa trên đĩa, v.v.). Mỗi loại tệp (được hỗ trợ) có một máy nén duy nhất.
  • Quake PAK : Đây cơ bản là một cấu trúc tệp phẳng.
  • Doom WAD : Hơi cụ thể với Doom, nhưng đáng để xem xét.

1

Một tùy chọn là lưu trữ hình ảnh ở cùng định dạng nén mà bạn sử dụng để tạo họa tiết nén. Điều này có lợi thế là bạn sẽ không chuyển đổi định dạng mất dữ liệu này sang định dạng khác, nhưng bạn lưu trữ dữ liệu ở định dạng mất. Tùy thuộc vào kết cấu, vẫn có thể có thứ gì đó để đạt được bằng cách lưu trữ các tệp đó trong kho lưu trữ nén.

Xem câu trả lời này để biết thêm một chút về kết cấu nén: https://gamedev.stackexchange.com/a/5177/3505


0

ZLIB có thể là một câu trả lời tốt, nhưng nếu bạn biết rằng mọi người đang mở lấy tài sản của bạn, bạn cũng có thể tạo định dạng tệp của riêng mình để lưu trữ tài sản của mình, mặc dù điều đó không khó lắm.

Đây là cách bạn có thể làm cho nó.

Nó nằm trong C, nhưng không khó để học, vì C # là một số như C và C ++.

Tất nhiên, những người vẫn có kiến ​​thức cao hơn có thể nắm bắt tài nguyên của bạn, bạn có thể thêm ít mã hóa nếu bạn muốn, không quá khó.

Điều này có thể rất hữu ích, nhưng nó sẽ chỉ tham gia các tập tin của bạn. Để nén quá, bạn có hai lựa chọn.

  1. Tạo toàn bộ tệp tài nguyên của bạn, nén nó và gửi.
    Phương pháp này rất dễ, nhưng không tốt lắm, bạn nên giải nén mọi thứ nếu bạn chỉ muốn lấy một tài nguyên.

  2. Nén mọi tài nguyên và thêm chúng vào tệp tài nguyên.
    Điều đó cũng khá tốt, bạn sẽ có một chút tăng kích thước bên cạnh phương thức 1, vì mỗi tệp được nén riêng, nhưng sẽ tốt hơn nếu bạn muốn linh hoạt.

Mỗi phương pháp đều có nhược điểm riêng, bạn nên chọn một cách khôn ngoan. Nói chung, nếu trò chơi của bạn có số lượng tài nguyên khá thấp, phương pháp 1 sẽ tốt hơn, Nếu bạn có RẤT NHIỀU, phương pháp 2 sẽ phù hợp với bạn, bởi vì kích thước của tất cả các tài nguyên cùng nhau sẽ áp đảo số tiền bạn có được.

Đối với libs nén, bạn có:

  • Phương tiện nổi tiếng nhất, Zlib
  • Người có khả năng giải nén nhanh hơn, LZO
  • Tỷ lệ nén tuyệt vời, 7-Zip

Tôi sẽ sử dụng LZO nếu tôi muốn truy cập nhanh vào ingame, vì vậy bạn không phải lo lắng về việc giải nén trong thời gian thực, 7-Zip nếu tôi muốn các tệp bị thu hẹp A LÔ hoặc Zlib nếu tôi muốn tỷ lệ và kích thước giải nén cân bằng.
Lựa chọn là của bạn: D

Ah, tất nhiên có những người khác thuật toán để dữ liệu nén, và bạn có thể tìm thấy những googling .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.