Có lý do thực tế nào để lưu dữ liệu trò chơi trong% UserProfile% \ Documents thay vì% AppData% không?


33

Thư mục tài liệu của tôi tràn ngập các thư mục con của các trò chơi khác nhau, bao gồm cả các trò chơi AAA gần đây. Là một nhà phát triển ứng dụng chuyên nghiệp không có kinh nghiệm trong ngành công nghiệp trò chơi, điều này hoàn toàn sai, các tệp này thuộc về% APPDATA% hoặc% LOCALAPDATA%.

Câu hỏi của tôi là, có một quyết định có ý thức khi đưa các tệp này vào% UserProfile% \ Documents để đạt được một số lợi ích cụ thể hay đây chỉ là hành vi kế thừa được thực hiện từ thời Windows XP? Hoặc có một lý do thậm chí tốt hơn như, ví dụ như Steam yêu cầu hoặc đề xuất điều này hoặc một công cụ phổ biến làm điều này theo mặc định?

Liên quan: Trong thư mục nào để viết trò chơi lưu tập tin / dữ liệu? (để tránh các cuộc thảo luận vô nghĩa)



4
@Loren Không, trò chơi lưu là tệp / dữ liệu cụ thể của ứng dụng = APPDATA. Tài liệu người dùng là tài liệu được lưu một cách có ý thức bởi người dùng. Đó là cách những nơi này được xác định.
Peter

1
Người ta có thể tranh luận điều này một trong hai cách. Tôi hy vọng sẽ tìm thấy tiết kiệm trong tài liệu, cấu hình trong AppData.
Loren Pechtel

2
Làm thế nào để các chiến dịch trong một trò chơi không "lưu tài liệu một cách có ý thức"? Và làm thế nào các tài liệu Photoshop (PSD) không "ứng dụng cụ thể"?
Damian Yerrick

4
Điều này đã khiến tôi lo lắng trong một thời gian dài. Thư mục Documents là một nơi kém để tự động đặt các tệp cho dù đó có phải là vị trí phù hợp với chúng hay không. Thư mục 'Tài liệu của tôi' nên được dành riêng cho các tài liệu MY mà tôi đã chọn rõ ràng để đặt ở đó, để tôi có thể theo dõi nội dung cá nhân của riêng mình. Không phải những mẩu dữ liệu liên quan đến một nửa phần mềm trên hệ thống của tôi. Thật là một mớ hỗn độn vô duyên! Tôi thậm chí không sử dụng thư mục Documents nữa. Tôi sử dụng riêng của mình, trên một ổ đĩa riêng sau đó tôi có thư mục đó trong thư viện Tài liệu của mình và đã xóa mặc định.
Logic mờ

Câu trả lời:


35

Không thật sự lắm.

Theo truyền thống, các nhà phát triển trò chơi không tuyệt vời trong việc tôn trọng các quy ước được thiết lập bởi một hệ điều hành. Mặc dù để công bằng, rất nhiều nhà phát triển ứng dụng thông thường cũng không.

Các %AppData%thư mục và tài liệu là để lưu dữ liệu trên mỗi người dùng. Sự khác biệt giữa chúng, cho mục đích của câu hỏi này, chủ yếu %AppData%là ở chỗ người dùng không cần phải xem hoặc tương tác, và thư mục tài liệu dành cho tài liệu của người dùng : thứ họ muốn xem và tương tác .

Các trò chơi đôi khi sẽ lưu trữ cài đặt của chúng và lưu tệp trong thư mục tài liệu vì nó hiển thị chúng, vì vậy người dùng ít kỹ thuật sẽ nhìn thấy chúng và yên tâm rằng chúng tồn tại hoặc có nhiều khả năng sao lưu chính xác nếu phương thức sao lưu của chúng là thô, "sao chép nội dung trong thư mục người dùng của tôi sang ổ đĩa khác."

Các trò chơi đôi khi cũng sẽ lưu trữ các tệp ở đó vì chúng không thay đổi hành vi của mã có liên quan từ các phiên bản HĐH cũ hơn, như bạn nghi ngờ hoặc đơn giản là vì chúng không quan tâm đến việc nghĩ nhiều về vấn đề đó.

Điều đó thật ngớ ngẩn và thường sai, nhưng đó là những gì nó được.


2
Một lợi thế khác là người dùng có thể cài đặt các thế giới, gói kết cấu, v.v. mà không cần phải đào %% APPDATA%.
Bardi Harborow

14
Tôi nhớ SPORE lưu dữ liệu của nó vào thư mục tài liệu của tôi thay vì %appdata%quay lại khi tôi nhận được nó. Khi tôi nhìn vào thư mục của nó, tất cả các sinh vật của tôi đều được lưu dưới dạng hình ảnh png, điều đó khá tuyệt vời và tôi nghĩ rằng nó được đưa vào thư mục tài liệu trên mục đích, vì vậy mọi người có thể dễ dàng chia sẻ và tải xuống nhiều sinh vật và phương tiện hơn. Như đã nói, tôi không biết tại sao các trò chơi chỉ sử dụng một cách thô thiển lại save.datquyết định đặt công cụ của họ ở đó.
Gustavo Maciel

Có một bài viết hay ở đâu đó về cách Spore rút ra, ước gì tôi có thể tìm thấy nó.
TankorSmash

2
Ai đó đã hỏi về nó trên trang web này ở đây ; một trong những câu trả lời tham khảo một bài viết mà bạn có thể nghĩ đến (được đặt ở đây ).
Josh

6
Về mặt lý thuyết, cách hành động tốt nhất trên Vista hoặc mới hơn là sử dụng SHGetKnownFolderPath(FOLDERID_SavedGames, 0, NULL, &path)theo mặc định %UserProfile%\Saved Games. Bằng cách đó, người dùng có thể tìm và sao lưu dữ liệu trò chơi đã lưu của họ một cách dễ dàng, nhưng nó sẽ không cản trở bạn. Bất kỳ dữ liệu nào ngoài tiến trình và / hoặc cấu hình (ví dụ: trình đổ bóng được biên dịch, tài sản được tối ưu hóa hoặc tải xuống nền tảng, v.v.) nên có trong appdata.
bcrist

18

Nhìn vào đĩa của tôi, tôi có

  • 1 trò chơi lưu trò chơi lưu trong %APPDATA%
  • 1 trò chơi lưu trò chơi lưu trong %LOCALAPPDATA%
  • 2 trò chơi lưu "những thứ khác" trong %APPDATA%
  • 3 trò chơi lưu "những thứ khác" trong %LOCALAPPDATA%
  • 2 trò chơi lưu trò chơi trong %UserProfile%\Saved Games
  • 21 Trò chơi lưu trò chơi lưu trữ và vô số nội dung khác %UserProfile%\Documents, không kể ...
  • 15 trò chơi lưu trò chơi lưu trữ và tải các nội dung khác trong %UserProfile%\Documents\My Games

Đó là một tỷ lệ 1: 9 cho savegames được lưu trữ trong %APPDATA%, %LOCALAPPDATA%, %UserProfile%\Saved Gamesso với %UserProfile%\Documents\*. Trong mẫu của tôi, tất cả 4 trò chơi không đưa trò chơi lưu trữ vào %UserProfile%\Documents\hoặc %UserProfile%\Documents\My Games\đến từ các studio nhỏ. Vì vậy, tôi phải giả định rằng các hãng phim lớn với chi phí phát triển nhiều triệu có lý do để đưa tất cả các tệp của họ - bao gồm các tệp tạm thời - vào %UserProfile%\Documents\*.

Mặc dù hành vi kế thừa có thể giải thích một số điều này, tôi không nghĩ rằng đó là một lý do đủ mạnh để giải thích cho mọi studio lớn đặt các tệp của họ ở sai vị trí. Vì vậy, phải có lý do tốt hơn.

Lý do tốt nhất tôi có thể nghĩ đến là để giảm chi phí hỗ trợ khách hàng . Vấn đề là %APPDATA%%LOCALAPPDATA%các thư mục ẩn, và dường như không ai biết về nó %UserProfile%\Saved Games. Đặt các tệp vào Documents, các studio có thể tiết kiệm tiền cho các cuộc gọi hỗ trợ hỏi cách sao lưu các tên lưu trữ hoặc cách di chuyển các tên lưu trữ từ máy này sang máy khác. Ví dụ về những người dùng không thể tìm thấy các trò chơi lưu trữ vì chúng được đặt ở %APPDATA% đây , đây , đâyđây .

Một lý do khác có thể là do người dùng yêu cầu , như trong ví dụ này .


1
Chỉ cần thêm một điểm dữ liệu khác (và vì tôi tò mò), số lượng cho PC của tôi là 19, 10, 10, 17, 6, 45 và 31. Ngoài ra còn có 50 trò chơi lưu trò chơi và / hoặc dữ liệu khác trong steam\userdatavà 5 trò chơi với lưu / dữ liệu trong %ProgramData%. Điều này không tính bất kỳ trò chơi nào giữ tất cả nội dung này trong thư mục cài đặt của chúng hoặc đã tìm được nơi khác để lưu trữ dữ liệu hoặc lưu.
Ross Ridge

@RossRidge Cảm ơn, điều đó hữu ích. Trong mẫu của bạn, bạn có thấy xu hướng nào liên quan đến game indie so với game studio lớn không?
Peter

Có vẻ như nhiều trò chơi độc lập sẽ thuộc một trong bốn loại đầu tiên, nếu chỉ vì đó là nơi môi trường thời gian chạy của chúng đặt các thứ (ví dụ: Flash).
Ross Ridge

4

Tôi không quan tâm đến việc nhớ lại số lượng trò chơi mà tôi đã phải bắt đầu lại sau khi sao lưu / khôi phục hoặc điều tương tự vì tôi đã chuyển tất cả các tệp quan trọng của mình khỏi tài liệu của mình, nhưng hoàn toàn quên mất dữ liệu ứng dụng của người dùng như lưu tệp vì đó là thường ở trong các tệp chương trình hoặc các vị trí lạ khác (như trong một thư mục ẩn như appdata).

Cá nhân vì lý do này, tôi thích có nó trong tài liệu của mình, mặc dù tôi chắc chắn rằng ai đó sẽ bảo tôi chỉ cần có một hệ thống sao lưu phù hợp thay vì thực hiện thủ công.

Một chút nhất quán sẽ là tốt và thậm chí còn đẹp hơn đối với các dịch vụ như Steam để giữ các bản sao lưu tệp trên mạng ở đâu đó.


1
Steam đã có lưu trữ đám mây từ năm 2009. Tuy nhiên, nó yêu cầu các nhà phát triển chọn sử dụng nó và nó chỉ hoạt động nếu người dùng kích hoạt nó. Hầu hết các trò chơi mới hơn hiện nay đều hỗ trợ nó, nhưng nhiều game cũ vẫn không có.
bcrist

Tôi sẽ sử dụng bất kỳ lý do nào để nói với mọi người rằng họ cần tạo bản sao lưu và tôi cũng thích tính nhất quán, nhưng thư mục dữ liệu ứng dụng không phải là 'nơi kỳ lạ' để lưu trữ dữ liệu ứng dụng, thư mục tài liệu là. Lưu trữ các tệp mà chúng không thuộc về khiến tôi khó quản lý các bản sao lưu của mình hơn nhiều.
Marcks Thomas

0

Từ trải nghiệm cá nhân của riêng tôi, tôi đã chọn lưu vào% UserProfile% vì người dùng luôn có quyền đọc / ghi / sửa đổi quyền truy cập vào nó mà không phải thay đổi bất kỳ quyền nào.

Điều này không đúng với% APPDATA%. Đặc biệt, khi sử dụng các tài khoản người dùng bị hạn chế, bạn thường không có quyền truy cập ghi vào các tệp được tạo bởi các tài khoản khác trong% APPDATA%. Tôi tưởng tượng các danh hiệu AAA đã đưa ra lựa chọn vì lý do tương tự như chúng tôi; chúng tôi không muốn đau đầu.


3
Tôi khá chắc chắn rằng bạn đang nhận được APPDATA (C: \ Users \ Username \ AppData) có thể ghi được bởi người dùng, trộn lẫn với PROGRAMDATA (C: \ ProgramData) thường không thể ghi được. windows.microsoft.com/en-us/windows-8/what-appdata-folder
Patrick M

1
Điểm chung của% APPDATA% là nó có thể ghi được. Nó đặc biệt ở đó vì C: \ Chương trình tập tin không phải là người dùng có thể ghi.
Bardi Harborow

@PatrickM Bạn nói đúng, tôi đã nói về ProgramData. Lấy làm tiếc. Cách tốt nhất để xóa câu trả lời là gì?
David

0

Từ quan điểm cá nhân của tôi với tư cách là một người dùng, tôi chủ yếu phân biệt giữa dữ liệu tôi muốn sao lưu và dữ liệu mà tôi không quan tâm đến nó.

Tạo các bản sao lưu gia tăng %LOCALAPPDATA%là một mớ hỗn độn, bởi vì nó sẽ làm lộn xộn bản sao lưu với hàng chục ngàn tệp tạm thời, nhiều tệp bị khóa bởi các dịch vụ nền. Điều này làm cho các bản sao lưu chậm (chi phí cao từ nhiều tệp nhỏ) và lớn không cần thiết (thường xuyên thay đổi các tệp tạm thời phá hoại phần "gia tăng"). Ngăn chặn điều này đòi hỏi phải duy trì thủ công một danh sách loại trừ.

%APPDATA%tốt hơn một chút, vì nó không có nghĩa là chứa các tệp tạm thời như cache - thật đáng buồn là dù sao thì nó cũng rất nhiều cài đặt chương trình thực sự không đảm bảo sao lưu.

Cuối cùng, trò chơi lưu là một loại dữ liệu tôi muốn tương tác với tư cách là người dùng và %UserProfile%\AppDatakhông cho vay chính nó.


-3

Tại sao không sử dụng / "thư mục cài đặt trò chơi" / savegame / như các trò chơi cũ hơn? Tôi không bao giờ hiểu tại sao đặt lưu tên trong thư mục ẩn hoặc thậm chí trong tài liệu của tôi trên ổ đĩa hệ thống?

Ngày xưa bạn luôn biết nơi lưu trữ tên.


3
Thư mục này được ghi bảo vệ. Bạn sẽ phải bắt đầu trò chơi của mình như một người hâm mộ. Điều này gây phiền nhiễu và không có sẵn cho tất cả người dùng (ví dụ, phụ huynh muốn bảo vệ máy tính của họ khỏi con cái họ cài đặt bất cứ thứ gì).
Vaillancourt

1
"game installation folder"%ProgramFiles%\<gamename>. %ProgramFiles%có nghĩa là chỉ được sửa đổi trong khi cài đặt / hủy cài đặt chương trình. Do các ứng dụng Windows XP / Vista ghi vào thư mục đó cần phải được chạy với tư cách quản trị viên, để làm cho khó nói hơn, một vi-rút thay thế word.exe bằng phiên bản word.exe bị nhiễm. Một lý do khác là Microsoft muốn nhiều người dùng có thể sử dụng cùng một chương trình mà không phải chia sẻ các tệp cá nhân của họ, trong trường hợp này là các trò chơi lưu trữ. Có những cách khác / tốt hơn để giải quyết những vấn đề này, nhưng chúng không được chọn vào thời điểm đó.
Peter
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.