Czy pozostawienie zasobów gry otwartym okiem jest nieprofesjonalne?

43

Nadal mam problemy z pakowaniem zasobów, po przejściu przez skomplikowane interfejsy API i po prostu pliki zip, które wyczerpują mój mózg, pomyślałem, że mogę również spakować grę z zasobami widocznymi dla ludzkiego oka, w prostym folderze.

Czy byłoby to nieprofesjonalne? Osobiście nigdy nie widziałem, aby gry to robiły, w gruncie rzeczy oznaczałoby to, że gracz mógł po prostu edytować wszystko, co chce w grze, na przykład przejść do map1.txt i dodać X gdzieś, aby stworzyć ścianę, lub zmienić duszkę gracza do kucyka w MS PAINT.

Bugster
źródło
30
Pomyśl o tym jak o społeczności moddingowej :)
Orin MacGregor,
1
Czy jesteś profesjonalnym twórcą gier z budżetem? Myślę, że jest w porządku, jeśli nie planujesz zarabiać dużo z tej gry. Mam jednak kilka wskazówek. Jeśli dzięki temu poczujesz się lepiej, edytowałem zapisywanie plików w X-COM / UFO Defense
wolfdawn
6
@ArthurWulfWhite: Myślę, że zamiast zarabiać pieniądze czy nie, punktem podziału jest to, co implikuje modyfikacja zasobów dla gry. W przypadku MMORPG zmodyfikowane zasoby / klient mogą dawać nieuczciwą przewagę niektórym graczom, więc chcielibyście temu zapobiec w jak największym stopniu. W przypadku wielu innych gier przyjazny klientowi modding jest atrakcyjny dla społeczności moddingowej, aby rozwijać się wokół twojej gry i jest ogólnie uważany za dobrą rzecz.
Lie Ryan,
1
Aspekt modowania w Quake (1) był bardzo dobrze obsłużony, bez narażania modeli i plików bsp przypadkowym graczom. Nie sądzę, że to źle ukrywać rzeczy, jednocześnie utrzymując je łatwo dostępne. Podobał mi się fakt, że mogłem edytować pliki zapisu w X-COM, widziałem to jako funkcję. Byłoby jednak głupie, gdyby istniał plik tekstowy o nazwie money.txt, w którym mógłbym po prostu wpisać ilość gotówki, od której chcę zacząć, ponieważ niejako zaciera granicę między piaskownicą a grą.
wolfdawn
2
Podoba mi się sposób Introversion : umieść pliki w plikach zip o zmienionych nazwach, np sound.dat. Używanie nieskompresowanych folderów z kilkoma setkami plików sprawia, że ​​(de) instalacja jest dość denerwująca.
Tobias Kienzler

Odpowiedzi:

44

Nie, nie jest, zmiana danych gry nazywa się modowaniem, co jest powszechną praktyką i często postrzegane jako pozytywny efekt. Właściwie dobrze jest zachować dane gry tak przejrzyste, jak to możliwe, i edytować je tak bezproblemowo, jak to możliwe. Tym bardziej, jeśli wybierasz bardziej „zaawansowanych” graczy jako grupę docelową.

Powodem, dla którego nie znajdziesz wielu gier AAA, które używają zwykłej struktury folderów dla swoich danych, jest to, że używają niestandardowych zoptymalizowanych formatów archiwów, aby uzyskać lepsze czasy ładowania. Minusem jest zmniejszona przezroczystość i dodatkowe wymagane narzędzia w łańcuchu narzędzi. Jednak w przypadku mniejszych lub 2D gier te dwie rzeczy są zwykle bardziej warte niż lepszy czas ładowania.

Upewnij się tylko, że to, co widzą ludzie, to nie tylko wielki bałagan :) umieść pliki w odpowiedniej strukturze folderów.

API-Beast
źródło
Rzeczy są również zapakowane, aby być formą odstraszającą od kradzieży (choć ostatecznie nieefektywną, jeśli zostanie popchnięta)
CobaltHex
15

Oprócz innych odpowiedzi należy rozważyć dwie ważne kwestie:

Zaskakujące niespodzianki
Powiedz, że jestem w połowie gry i odkrywam folder „wideo”. Ciekawe, klikam na jeden i akurat widzę końcową scenkę przerywnikową gry.

Przegrane wyzwanie
Ten sam scenariusz, ale uważam, że zapisany format gry ma wartość „złota”. Zmieniam go z 250 na 999999999 i działa. Nagle twoja starannie spreparowana krzywa trudności, maksymalizująca radość z gry, zniknęła.

Oba mogą spowodować, że ktoś straci zainteresowanie grą, częściowo, jeśli nie całkowicie. Może to skończyć się niższym ogólnym wrażeniem, jak dobra była gra (niesprawiedliwa, ale prawdziwa).

Pomyśl o nich w kategoriach odbiorców docelowych - szczególnie młodsi gracze są podatni na zepsucie własnej zabawy, nie zdając sobie nawet sprawy, że to właśnie robią.

Nawet jeśli chcesz zachęcić do modowania, możesz nadal chcieć chronić użytkowników przed zrujnowaniem własnego doświadczenia z grą „przypadkowo”.

MGOwen
źródło
4
Dokładnie tak. Nie zaszkodzi, jeśli będziesz musiał przejść kilka przeszkód, zanim będziesz mógł zmodyfikować grę. +1 za scenariusz wideo
wolfdawn
14

Być może nieprofesjonalne to niewłaściwe słowo. Naprawdę zależy od gry, czy pozostawienie narażonych plików jest złą rzeczą.

W prostej grze jednoosobowej gracze i moddery pokochają cię. Dajesz im możliwość łatwej zmiany gry i robienia tego, co chcą. I pamiętaj, że zawsze będą modyfikatory do gry, bez względu na to, jak mała jest ta gra. Wielu graczy poczuje się lekceważonych, jeśli modyfikacja jest trudna, w końcu kupili twoją grę i powinni móc robić w niej wszystko, co chcą.

Z drugiej strony, łatwa edycja zasobów gry jest zła dla gry wieloosobowej, ponieważ uważa się ją za oszustwo. Złośliwi gracze mogą zamieniać treści, aby wrogowie byli bardziej zauważalni, ściany przezroczyste itp. Chociaż kod gry powinien naprawdę egzekwować, że zasoby nie zostały zmienione, podejście „pakiet zasobów” ma tę zaletę, że pomaga powstrzymać tę aktywność (bezpieczeństwo poprzez zapomnienie).

SomeWritesReserved
źródło
1
Jeśli jesteś wystarczająco dobry, aby ominąć test sumy kontrolnej, jesteś wystarczająco dobry, aby zadzierać z zapakowanymi zasobami. Nie sądzę, aby opakowanie było bezpieczniejsze.
mmyers
11

Jest na to łatwa poprawka. Możesz po prostu zmienić nazwę rozszerzeń w wierszu polecenia, używając czegoś podobnego

rename *.txt *.map

A następnie umieść je w folderze \ map

Dostęp do wiersza polecenia można uzyskać z systemu Windows z uruchomionym cmd

To nie powstrzyma modderów, którzy wiedzą, że chcą zmodyfikować grę i pozostawi mniej niechlujne wrażenie na ludziach, którzy chcą po prostu grać w tę grę, bez całej zawartości.

Tak, nadal będzie można go edytować. Ludzie będą mniej skłonni to zauważyć.

Aby odpowiedzieć na komentarz Erica Robertsona

Jeśli chcesz poprawnie ukryć zawartość swojej gry przed graczami, możesz użyć szyfrowania RSA w tych plikach tekstowych i scalić je w jeden plik tekstowy, gdy jesteś w tym miejscu. Nie powinno to stanowić większego problemu, chociaż podejrzewam, że jest to o wiele więcej niż przesadzanie.

wolfdawn
źródło
1
-1 To nie jest tak naprawdę „poprawka”. Zasoby są nadal dostępne dla oka.
Erick Robertson,
6
@Eric Robertson Cóż, to można powiedzieć o pakowaniu ich również w stylu Quake (1). Nie ma magicznego rozwiązania, które całkowicie ukryłoby aktywa. Ma to na celu ukrycie ich przed przypadkowym graczem i obejście problemów, o których wspomniał. To powiedziawszy, umieszczenie ich w strukturze folderów lub pakiecie zasobów nie oznacza, że ​​zasobów nie ma (dostępne dla oka), chyba że użyjesz szyfrowania.
wolfdawn
Wiem, że rozszerzenia plików nie mają znaczenia w systemie Linux, ale czy jesteś pewien, że to zadziała w systemie Windows?
jcora
1
@Bane Nazwa pliku nie ma znaczenia kropka, spróbuj tego, zmień nazwę pliku .txt na .zip, .bmp lub .xyz i ponownie otwórz go za pomocą notatnika. nazwa pliku ma znaczenie tylko wtedy, gdy przeglądasz pliki na komputerze, na przykład .xyz ma powiązaną z nimi pewną ikonę, jeśli chcesz otworzyć plik za pomocą xsoftware, domyślnie będą wyświetlane tylko pliki * .x, pokaże notatnik. txt, mspaint wyświetli gify, jpeg, bmps, pngs, tiffs, icos itp. Nazwy plików to tylko wygodna konwencja (abyś nie musiał patrzeć i analizować danych w pliku, aby zidentyfikować charakter jego pliku spis treści
wolfdawn
1
Dzięki za wyjaśnienie! Zatem Windows nie wydaje się tak bardzo różny od Linuksa w tej domenie
jcora
3

Jeśli kiedykolwiek byłby nieprofesjonalny, może już nie być. Wczesne gry wykorzystywały własne formaty pakietów, przede wszystkim w celu zachowania swojej własności intelektualnej (IP).

Można przezwyciężyć niektóre ograniczenia, takie jak fragmentacja i niepotrzebne wywołania funkcji podstawowego systemu plików, pakując wszystkie zasoby do jednego archiwum. To sprawia, że ​​zdarzenia fragmentacji są mniej prawdopodobne podczas wdrażania pakietu na komputerze klienta.
W najgorszym przypadku może dojść do rozproszenia niewielkich pojedynczych zasobów plików wokół sektorów dysku twardego. (Wraz z pojawieniem się dysków SSD ten punkt jest często wywoływany)

Ale wszystkie te korzyści można również uzyskać dzięki bezpłatnemu, unikatowemu .tarformatowi archiwum.

Dodatkowo, używając własnego formatu pakietu, możesz pokonać ograniczenia, takie jak brak wersjonowania, skrótów plików, kodowania oraz wskaźników / linków w plikach, żeby wymienić tylko kilka.

Podsumowując , opowiadam się za przejrzystością w rozwoju niezależnym, chyba że wyraźnie potrzebujesz ochrony swojego adresu IP.


Co do wspaniałych kwestii podniesionych przez MGOwen: Aby zapobiec niespodziankom Spoiling , możesz zmienić nazwę rozszerzenia pliku, zmienić atrybuty pliku, używać nietypowych formatów multimediów, wyciąć nagłówek multimediów i przechowywać go w innym miejscu itp. Aby zapobiec utracie wyzwania, użyj serializacji binarnej program do zapisywania stanu gry, w razie potrzeby z dodatkowym szyfrowaniem i zmiennymi wabiącymi.

Oświadczenie: Nie jestem twórcą gier. Postaw ten post tylko jako punkt wyjścia ...

Lorenz Lo Sauer
źródło
1
„Aby zapobiec utracie wyzwania, użyj binarnego programu do serializacji do zapisania stanu gry, w razie potrzeby z dodatkowym szyfrowaniem i zmiennymi wabiącymi”. Jeśli ludzie chcą oszukiwać, będą oszukiwać. Za pomocą debuggera w pamięci, który cztery bajty w pamięci korelują ze złotem i śledzi zmiany, jeśli zajdzie taka potrzeba.
Random832
1
@ Random832 Amen do tego.
Lorenz Lo Sauer
Twoja odpowiedź jest zła. Dostęp do zawartości 6000 małych plików jest moim zdaniem od 5 do ponad 10 razy wolniejszy niż dostęp do tej samej zawartości z 1 pliku. W przypadku, gdy ładowanie zajmuje 5 sekund na dysku SSD, 15 sekund od normalnego dysku twardego rozbicie tych samych danych na pliki edytowalne i ładowanie przeskakuje do ponad 30 sekund na obu dyskach (HDD i SSD). Z jakiegoś powodu wzrost jest bardziej wyraźny na dysku SSD niż na dysku twardym. (W obu przypadkach brak RAID)
Coyote
@ Coyote Miałem wrażenie, że opowiadałem się za tym samym punktem w poście ...? Fragmentacja (tj. Ograniczenia kontrolera sprzętowego, fizyczne ograniczenia talerzy ...) + wiele wywołań API systemu plików (często przez opakowania) = Powolne
Lorenz Lo Sauer
To konkretne zdanie jest więc błędne: „Wraz z pojawieniem się dysków SSD ten punkt staje się dyskusyjny”
Kojot
1

Łatwo to naprawić, w przeciwnym razie indeksowanie wyszukiwania pozwoli znaleźć finalne filmy itp.

W przypadku plików danych: odwróć bity za pomocą xor

   realByte_cpp = readByte_cpp ^ 0x44; // xor

Aby ukryć „Gold: 250” przed GREP.

Wystarczy zakodować przy użyciu tej samej (losowej) wartości xor.

Aby ukryć sceny przed przypadkowymi użytkownikami, spróbuj tego: Machinarium przetłumaczyło nazwy plików, więc \ videos zmieniło się w \ 0101, a wszystkie pliki miały 8-cyfrowy identyfikator, a następnie .101, aby zatrzymać skojarzenia plików.

użytkownik1212212
źródło