Oyun verilerini,% AppData% yerine% UserProfile% \ Documents içine kaydetmek için pratik bir neden var mı?


33

Belgelerim klasörü, bazı yeni AAA başlıklarını içeren çeşitli oyunların alt klasörleriyle doluyor. Oyun endüstrisinde deneyimi olmayan profesyonel bir uygulama geliştiricisi olarak bu tamamen yanlış, bu dosyalar% APPDATA% veya% LOCALAPDATA% 'ye ait.

Sorum şu, belirli yararlar elde etmek için bu dosyaları% UserProfile% \ Documents içine koymak konusunda bilinçli bir karar var mı, yoksa bu sadece Windows XP günlerinden beri geçerli olan eski davranış mı? Veya bunu gerektiren veya öneren Steam veya varsayılan olarak bunu yapan popüler bir motor gibi daha iyi bir neden var mı?

İlgili: Hangi dizinde oyun yazmak için dosya / veri kaydedin? (anlamsız tartışmalardan kaçınmak için)



4
@Loren Hayır, kaydetme oyunu, uygulamaya özel bir dosya / veri = APPDATA'dır. Kullanıcı belgeleri, kullanıcı tarafından bilinçli olarak kaydedilen belgelerdir. Bu yerler böyle tanımlanır.
Peter,

1
Biri bu şekilde tartışabilir. Belgelerde tasarruf, AppData'da yapılandırma bulmayı beklerdim.
Loren Pechtel 12:15

2
Bir oyundaki kampanyalar "belgeler bilinçli bir şekilde kaydedilmedi" nasıl? Photoshop belgeleri (PSD) nasıl "uygulamaya özel" değildir?
Damian Yerrick

4
Bu beni uzun zamandır mahvetti. Belgeler klasörü dosyaları kendileri için uygun bir konum olsun ya da olmasın otomatik olarak koymak için kötü bir yerdir. 'Belgelerim' klasörü , açıkça koymak istediğim MY belgelerim için ayrılmış olmalı , böylece kendi kişisel eşyalarımı takip edebiliyorum. Sistemimdeki yazılımın yarısı ile ilgili veri parçası değil. Ne kadar içten bir karmaşa! Artık Belgeler klasörünü kullanmıyorum. Kendim kullanıyorum, ayrı bir sürücüde sonra Belgelerim kütüphanemde bu dizini kullanıyorum ve varsayılanı kaldırdım.
Bulanık Mantık

Yanıtlar:


35

Hayır gerçek değil.

Oyun geliştiricileri, geleneksel olarak bir işletim sistemi tarafından oluşturulan sözleşmelere saygı göstermede büyük değillerdi. Adil olmakla birlikte, birçok düzenli uygulama geliştiricisi de yok.

%AppData%Ve belgeler klasörler kullanıcı başına verilerini kaydetmeye içindir. Aralarındaki fark, bu sorunun amaçları için, öncelikle %AppData%kullanıcının görmesi veya etkileşime girmesi gerekmediği şeylerin olduğu ve belgeler klasörü kullanıcının belgeleri içindir : görmek ve etkileşimde bulunmak istedikleri şeyler .

Oyunlar bazen ayarlarını saklar ve dosyaları belgeler klasörüne kaydeder, çünkü bu onları görünür kılar, böylece daha az teknik kullanıcı onları görecek ve var olduklarından emin olacaklar veya yedekleme yöntemleri bir ham, "kullanıcı klasörümdeki öğeleri başka bir sürücüye kopyala."

Oyunlar ayrıca dosyaları orada saklar çünkü şüphelendiğiniz gibi ilgili kodun davranışını eski işletim sistemi sürümlerinden değiştirmediler ya da sadece sorun hakkında bu kadar fazla düşünmek istemedikleri için.

Aptalca ve genellikle yanlış, ama olan bu.


2
Diğer bir avantaj, kullanıcıların% APPDATA% 'ı kazmak zorunda kalmadan dünyaları, doku paketlerini vb. Yükleyebilmeleridir.
Bardi Harborow 12:15

14
SPORE 'ı aldığımda verilerini %appdata%geri değil de belgelerim klasörüne kaydettiğimi hatırlıyorum Klasörüne baktığımda, yaratıklarım png görüntüleri olarak kaydedildi, bu oldukça şaşırtıcıydı ve bence kasıtlar üzerine kasıtlı olarak kaydedildi, böylece insanlar kolayca daha fazla yaratık ve araç paylaşıp indirebiliyorlardı. Bununla birlikte, yalnızca ham kullanan oyunların save.dateşyalarını buraya koymaya neden karar verdiğini bilmiyorum .
Gustavo Maciel

Spore'un nasıl çektiği hakkında iyi bir yazı var, keşke bulabilseydim.
TankorSmash

2
Biri burada bu sitede sordu ; Cevaplardan biri ( burada bulunan ) aklınıza gelebilecek bir yazıdır .
Josh

6
Teorik olarak, Vista veya daha yenisinde en iyi eylem yolu, SHGetKnownFolderPath(FOLDERID_SavedGames, 0, NULL, &path)hangisinin varsayılan olduğunu kullanmaktır %UserProfile%\Saved Games. Bu şekilde kullanıcı kaydettiği oyun verilerini kolayca bulabilir ve yedekleyebilir, ancak buna engel olmaz. İlerleme ve / veya konfigürasyon dışındaki herhangi bir veri (örneğin, derlenmiş gölgelendiriciler, platformda optimize edilmiş veya indirilmiş varlıklar, vb.) Uygulamalara dahil edilmelidir.
bcrist 13:15

18

Diskime bakıyorum

  • Savegames kaydeder 1 oyun %APPDATA%
  • Savegames kaydeder 1 oyun %LOCALAPPDATA%
  • "Diğer şeyleri" kaydeden 2 oyun %APPDATA%
  • "Diğer şeyleri" saklayan 3 oyun %LOCALAPPDATA%
  • 2 oyun kaydetti %UserProfile%\Saved Games
  • 21 Oyun kaydetme ve diğer eşyaların yükünü kaydetme oyunları %UserProfile%\Documents , saymayan ...
  • 15 Oyun kaydetme ve diğer eşyalara kaydetme oyunları %UserProfile%\Documents\My Games

Depolanır savegames 9: O, 1 lik bir oran bu %APPDATA%, %LOCALAPPDATA%, %UserProfile%\Saved Gameskarşı %UserProfile%\Documents\*. Benim örnekte, yaptığımız tüm 4 oyun değil savegames koymak %UserProfile%\Documents\veya %UserProfile%\Documents\My Games\minik stüdyolardan bulunmaktadır. Bu yüzden, milyonlarca yıllık geliştirme maliyetine sahip büyük stüdyoların, geçici dosyaları da dahil olmak üzere tüm dosyalarını koymak için bir nedenleri olduğunu varsaymalıyım.%UserProfile%\Documents\* .

Eski davranışlar bunun bir kısmını açıklayabilirken, her büyük stüdyoyu hesaba katmanın yeterince güçlü bir sebep olduğunu sanmıyorum. için dosyalarını yanlış bir yere koymanın . Bu yüzden daha iyi bir sebep olmalı.

Aklıma gelen en iyi neden müşteri destek maliyetini azaltmak . Sorun şu ki %APPDATA%ve %LOCALAPPDATA%gizli dizinler ve kimse bilmiyor gibi görünüyor %UserProfile%\Saved Games. Dosyaları yerleştirmekle birlikte Documents, stüdyolar kayıt oyunlarının nasıl yedekleneceğini veya kayıt oyunlarının bir makineden diğerine nasıl geçirileceğini soran destek aramalarında tasarruf sağlayabilir. Kayıtlı oyun bulamayan kullanıcıların örnekleri, %APPDATA% burada , burada , burada ve burada bulundukları için .

Başka bir neden de, kullanıcıların bu örnekte olduğu gibi istediği olabilir .


1
Sadece benim PC için sayımları, 6, 17, 10, 10, 19 olan 45 ve 31. oyunları ve / veya diğer verilerde tasarruf ile 50 oyunlar da vardır başka bir veri noktası eklemek (ve Merak ettim çünkü) için steam\userdatave 5 oyun tasarruf / veri girişi %ProgramData%. Bu, tüm bunları yükleme dizininde tutan ya da veri depolamak ya da tasarruf etmek için başka bir yer bulmayı başaran oyunları saymaz.
Ross Ridge

@RossRidge Teşekkürler, bu faydalıdır. Örneğinizde, indie oyunlara ve büyük stüdyo oyunlarına karşı herhangi bir eğilim gördünüz mü?
Peter

Bağımsız oyunların ilk dört kategoride yer alması daha muhtemel gözüküyor, çünkü sadece çalışma zamanı ortamlarının bir şeyler koyduğu yer (örn. Flash).
Ross Ridge

4

Bir yedekleme / geri yükleme ya da benzeri bir şeyden sonra baştan başlamak zorunda olduğum oyun sayısını hatırlamıyorum çünkü tüm önemli dosyalarımı belgelerimden taşıdım, ancak dosya kaydetme gibi kullanıcı uygulama verilerini tamamen unuttum çünkü Genellikle program dosyaları veya diğer garip yerler ile (appdata gibi gizli bir klasörde olduğu gibi).

Şahsen bu sebepten dolayı belgelerimde bulundurmaktan hoşlanıyorum, ancak birisinin bana manuel olarak yapmak yerine uygun bir yedekleme sistemi almamı söyleyeceğinden eminim.

Küçük bir tutarlılık iyi olurdu ve hatta daha da güzel, Steam gibi servislerin bir yerde bir ağ üzerinde kaydetme dosyalarının kopyalarını saklaması için daha iyi olurdu.


1
Steam 2009'dan beri bulut deposuna sahip. Ancak geliştiricilerin onu kullanmayı seçmesi gerekiyor ve yalnızca kullanıcı etkinleştirmişse çalışır. Artık çoğu yeni oyun bunu destekliyor, ancak çoğu eski oyun hala desteklemiyor.
bcrist

İnsanlara yedekleme yapmaları gerektiğini söylemek için herhangi bir mazeret kullanacağım ve tutarlılığı da seviyorum, ancak uygulama veri dizini, uygulama verilerini depolamak için 'tuhaf bir yer değil', belgeler klasörü. Dosyaları ait olmadıkları bir yerde saklamak, yedeklemelerimi yönetmeyi çok zorlaştırıyor.
Marcks Thomas

0

Kendi kişisel tecrübelerime göre,% UserProfile% 'e kaydetmeyi seçtim, çünkü kullanıcı izinlerini değiştirmek zorunda kalmadan her zaman okuma / yazma / değiştirme erişimine sahipti.

% APPDATA% ile bu doğru değildi. Özellikle Sınırlı kullanıcı hesaplarını kullanırken, genellikle% APPDATA% içindeki diğer hesapların oluşturduğu dosyalara yazma erişiminiz yoktur. AAA başlıklarının bizimle aynı sebepten dolayı seçim yaptığını hayal ediyorum; baş ağrısını istemedik.


3
Kullanıcı tarafından yazılabilen, genellikle kullanıcı tarafından yazılabilen PROGRAMDATA (C: \ ProgramData) ile karıştırılan APPDATA (C: \ Users \ Username \ AppData) aldığınızdan eminim. windows.microsoft.com/en-us/windows-8/what-appdata-folder
Patrick M

1
% APPDATA% 'nin tamamı, kullanıcı tarafından yazılabilir olmasıdır. Özellikle orada çünkü C: \ Program Files kullanıcı tarafından yazılabilir değil.
Bardi Harborow

@PatrickM Haklısın, ProgramData hakkında konuşuyordum. Üzgünüm. Cevabı silmenin en iyi yolu nedir?
David,

0

Bir kullanıcı olarak kişisel bakış açımdan, öncelikle yedekleme yapmak istediğim verileri ve umursamadığım verileri ayırt ediyorum.

Artımlı yedeklemeler oluşturmak %LOCALAPPDATA%bir karışıklıktır, çünkü yedeklemeyi çoğu arka plan hizmetleri tarafından kilitlenen on binlerce geçici dosyayla karıştıracaktır. Bu, yedeklemeleri yavaşlatır (birçok küçük dosyadan genel gider) ve gereksiz yere büyük (sık sık değişen geçici dosyalar "artan" bölümü sabote eder). Bunu önlemek, bir dışlama listesinin manuel olarak tutulmasını gerektirir.

%APPDATA%geçici içermesi gerekmediğinden biraz daha iyidirönbellek gibi dosyalar - ne yazık ki yine de yapar ve program ayarlarının çoğu gerçekten bir yedekleme gerektirmez.

Sonuçta, oyun kaydetme, kullanıcı olarak etkileşimde bulunmak istediğim bir tür veridir ve bu %UserProfile%\AppDatadurum kendisini ödünç vermez.


-3

Neden / "oyun yükleme klasörü" / savegame / daha eski oyunları kullanmıyorsunuz? Savegames'i neden gizli klasöre, hatta sistem sürücüdeki belgelerime koyduğumu hiç anlamadım.

Eski günlerde her zaman oyunların nerede olduğunu biliyordun.


3
Bu klasör yazmaya karşı korumalıdır. Oyuna bir danışman olarak başlamanız gerekecek. Bu can sıkıcıdır ve tüm kullanıcılar tarafından kullanılamaz (örneğin, bilgisayarını çocuklarından korumak isteyen bir ebeveyn, örneğin).
Vaillancourt

1
"game installation folder"olduğunu %ProgramFiles%\<gamename>. %ProgramFiles%sadece programların kurulumu / kaldırılması sırasında değiştirilmek istenmektedir. Bu dizine yazılan Windows XP / Vista uygulamalarının yönetici olarak çalıştırılması gerektiğinden, daha zor hale getirmek için, word.exe'nin virüslü bir sürümüyle word.exe'nin yerini alacak bir virüs. Diğer bir neden ise, Microsoft'un birden fazla kullanıcının kişisel programlarını paylaşmak zorunda kalmadan aynı programları kullanabilmelerini istemesiydi, bu durumda savegames. Bu sorunları çözmenin başka / daha iyi yolları var, ancak o zamanlar seçilmediler.
Peter
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.