Czytam, czytam i na serio mam łezkę wzruszenia w oku. Dokładnie takie same dylematy i problemy miałem w 1996 pisząc grę "Rycerze Mroku". Gra była bardzo średnia więc niewiele ludzi ją zna ale w 1997 zdążyła jeszcze zostać wydana przez Avalon. Pod sam koniec robienia tej gry musiałem stawić czoła dokładnie temu samemu problemowi.
Człowiek od zabezpieczeń antypirackich w Avalonie wtedy chwilowo nie był dostępny i poprosili mnie żebym zrobił w grze zabezpieczenie w postaci takiej klasycznej tabeli kodów. Ręce mi opadły, bo zupełnie tego nie zakładałem. Gra była tak upchnięta (jak na moje ówczesne mizerne AMOSowe możliwości), że na serio już czegoś takiego nie mogłem dodać. Program do wpisywania kodów musiał być osobnym execiem. No ale nie wiedziałem jak sprawić żeby gra się uruchomiła jeżeli użytkownik poda poprawny kod i nie uruchomiła jeżeli poda zły. Nie bardzo miałem się kogo poradzić i wymyśliłem coś tak prostackiego, że dzisiaj wręcz wstyd mi o tym pisać. Liczyłem po prostu na to, że nikt się nie domyśli, że można było użyć czegoś tak głupiego.
W startup-sequence były po sobie: program pytający o kod i później sam program gry. Ten pierwszy miał zaszytą dużą tabelę wygenerowanych kiedyś czteroliterowych kodów (wydrukowanych później w instrukcji), prosił kod z wylosowanego wiersza i kolumny. Jeżeli użytkownik podał poprawny to program zapisywał do RAM: malutki plik i zaraz się zamykał. Wtedy odpalał się kolejny exe ze startup-sequence, czyli gra właściwa. I exec gry sprawdzał czy w RAM: jest ten malutki plik. Jeżeli jest to go kasował i gra działała już normalnie. Jeżeli tego pliku nie było (co znaczyło brak poprawnej odpowiedzi) to gra się zamykała.
Gdyby ktoś to podpatrzył i był wystarczająco szybki to mógłby ten malutki plik będący w RAM: przez sekundę czy dwie sobie skopiować, wrzucić na dysk i w startup-sequence zrobić kopiowanie go do RAM: przed uruchomieniem exe gry. Wtedy można byłoby uruchamiać grę zupełnie bez odpalania programu do sprawdzania kodu.
Ale nikt na to chyba nie wpadł. To była przedostatnia gra na Amigę wydana przez Avalon więc nawet nie wiem czy ktokolwiek ją kiedykolwiek złamał, bo zainteresowanie już było prawie żadne.
A tak przy okazji. Istnieje kod, który zawsze jest poprawny. To pierwsze litery imion autorów MAKA (Mariusz, Andrzej, Karol, Artur). Nie trzeba sięgać do tabelki.
A wracając do oszczędzania pamięci to myślę, że dzisiaj pewnie wykombinowałoby się coś co pozwoliłoby zaoszczędzić trochę RAMu. Ale wtedy moja wiedza i świadomość były mizerne. Nie zdawałem sobie sprawy z tego, że Chip nie jest z gumy.

Klatki animacji w grze miały 16 kolorów i były wielkości 1/4 ekranu, Tła miały 32 kolory i były na podad 1/4 ekranu, panel 32 kolory i był na pół ekranu. To zjadało absurdalne ilości ChipRAMu. Nawet w startup-sequence odpalałem chyba coś co zamyka ekran systemowy w tle czy zmienia go na dwukolorowy (już nie pamiętam dokładnie ale to był częsty wtedy zabieg).
Ostatnia aktualizacja: 17.08.2023 15:58:47 przez MDW