Aktualności

[Biblioteka gracza] „Gears” A look inside the Final Fantasy VII Game Engine

Janusz · 4078

Offline Janusz

  • The boss
  • Administrator
  • Marszałek
  • *
    • Wiadomości: 11554
    • Reputacja: 121
  • Odznaczenia Udział w forumowym wyzwaniu na przejście 28 gier w 2022 roku. Użytkownik, który może pochwalić się napisaniem na forum minimum 1000 wiadomości.
    • strefapsx.pl
Dzisiaj ciekawostka na czasie, dla fanów programowania, silników, tabelek, liczb itp.

https://strefapsx.pl/gears-look-inside-the-final-fantasy-vii-game/



Online hankie

  • Z-ca Administratora
  • Pułkownik
  • *
    • Wiadomości: 7384
    • Reputacja: 76
  • Odznaczenia Użytkownik otrzymuje to odznaczenie za wyróżniającą się chęć niesienia pomocy innym Strefowiczom na forum. Użytkownik, który może pochwalić się napisaniem na forum minimum 1000 wiadomości. Najwyższe odznaczenie na forum. Odznaka za wkład w rozwój Strefy na różnych polach.
  • PSN ID: hankie_pl
Stanowczo nie jestem - ale przeczytać zawsze przeczytam. Może coś dla noobów się znajdzie ;D



Offline Janusz

  • The boss
  • Administrator
  • Marszałek
  • *
    • Wiadomości: 11554
    • Reputacja: 121
  • Odznaczenia Udział w forumowym wyzwaniu na przejście 28 gier w 2022 roku. Użytkownik, który może pochwalić się napisaniem na forum minimum 1000 wiadomości.
    • strefapsx.pl
Raczej nie.  ;)
« Ostatnia zmiana: Kwietnia 09, 2020, 15:58:28 wysłana przez Bodzio »



Offline Keita

Dzięki za linka! Może się kiedyś przydać :)

GB, GBC, GBA, DS, 3DS, Famicom, SNES, N64, GC, Wii, NS, PSP, PS1, PS2, PS3, SMS, SMD, Lynx, 2600, 65XE, 486, K-6, PIII


Offline verteks

Dzisiaj ciekawostka na czasie, dla fanów programowania, silników, tabelek, liczb itp.

https://strefapsx.pl/gears-look-inside-the-final-fantasy-vii-game/
O, to dla mnie! Zakrzyknąłem jak w tym znanym filmiku reklamie pasztetu. Dzisiaj mam akurat taki jakiś dzień do kitu a dzięki tobie Bodzio coś pozytywnego się dziś wydarzyło!
Na razie doczytałem do 30 strony, technikalia są zrozumiałe tylko że nigdy nie grałem w FF7 i opisy dotyczące mechanik gry nic mi nie mówią. Ciekawe że kod niejako pamięta pierwszą część jeszcze z NES albo to że w trakcie tworzenia serii były liczne perturbacje z platformami, deadline'ami i portami na różne platformy.



Offline Janusz

  • The boss
  • Administrator
  • Marszałek
  • *
    • Wiadomości: 11554
    • Reputacja: 121
  • Odznaczenia Udział w forumowym wyzwaniu na przejście 28 gier w 2022 roku. Użytkownik, który może pochwalić się napisaniem na forum minimum 1000 wiadomości.
    • strefapsx.pl
O kurde, nie do końca byłem przekonany, że trafi się ktoś, kto w to będzie w stanie się  wczytać. Ja mimo najszczerszych chęci musiałem się ograniczyć do bardziej newsowej formy wpisu. :)

Jakbyś ogarnął temat i był w stanie napisać jakiś krótkie résumé tych najlepszych ciekawostek to z miłą chęcią dorzucę do tekstu. ;)



Offline Mcin

  • Wsparcie
  • Major
  • *
    • Wiadomości: 1522
    • Reputacja: 33
  • بيسي غعَمينْق مَصْتترْ رإِس
  • Odznaczenia Udział w forumowym wyzwaniu na przejście 30 gier w 2024 roku. Odznaka za zajęcie I miejsca w konkursie Strefowy Skryba. Użytkownik, który może pochwalić się napisaniem na forum minimum 1000 wiadomości. Odznaka za zajęcie II miejsca w konkursie Przejdę 28 gier w 2022 roku. Udział w forumowym wyzwaniu na przejście 25 gier w 2021 roku. Udział w forumowym wyzwaniu na przejście 25 gier w 2020 roku.
Zerknąłem. do pewnego momentu jest dla mnie zrozumiałe (co nie znaczy ani trochę, że umiem podobne rzeczy), ale rozgryzanie składni C/C++ już mnie nie kręci.
verteks, kodzisz coś? Nie pamiętam, aby ś się chwalił dziełami :)

Net Yaroze to życie. Net Yaroze to Nadzieja.


Offline JabuPL

  • Starszy kapral
  • *
    • Wiadomości: 222
    • Reputacja: 12
  • Jeżeli działa, nie dotykaj!
  • PSN ID: JabuPL
Przeczytałem to chyba z dwa lata temu.
W sumie moge zrobić to jeszcze raz.

Discord: Jabu#6618    PSN: JabuPL


Offline verteks

Przeczytałem całe, trochę obniżam ocenę bo jest wiele sekcji nieopisanych i w ich miejsce jest wstawione "Lorem Ipsum". Ponoć bardziej aktualne informacje są na tym forum Qhimm co piszą w dokumencie.

O kurde, nie do końca byłem przekonany, że trafi się ktoś, kto w to będzie w stanie się  wczytać. Ja mimo najszczerszych chęci musiałem się ograniczyć do bardziej newsowej formy wpisu. :)

Jakbyś ogarnął temat i był w stanie napisać jakiś krótkie résumé tych najlepszych ciekawostek to z miłą chęcią dorzucę do tekstu. ;)

Jasne. No to dokument scharakteryzowałbym tak:
- wyraźny podział na wersję z PS1 i port na PC
- zero deasemblacji kodu źródłowego gier...
- ...ale za to dość powierzchowna analiza jak ten kod działa, podziału na moduły i jak one ze sobą współpracują
- skupienie się na zasobach / danych jakie FF7 używa, to jest formaty modeli, tekstur, teł, budowa szkieletów postaci i tak dalej
Te "kody" w C++ / Delphi to sposób na opisanie formatów danych, typy danych z tych języków upraszczają opis wielkości poszczególnych pól - zamiast pisać, że oś X ma rozmiar 32 bitów / 4 bajtów, łatwiej napisać że jest w rozmiarze int i programiści wiedzą jakich wartości się spodziewać.
- dużo matematycznych wzorów na liczenie obrażeń danej broni, czarów - mechaniki gry, jakieś materie, stany postaci, hodowla Chocobo i tak dalej (nie wiem jak to działa w grze, nie grałem jak pisałem wcześniej)

Generalnie grupa ludzi za to odpowiedzialna skupiła się na hackowaniu zasobów w celu podmiany teł, modeli i tym podobnych.

Ciekawostki:
- podział kodu na rdzeń (kernel) oraz moduły wywodzi się z pierwszej gry w serii, to jest Final Fantasy na konsolę Family Computer / Nintendo Entertainment System i niezmieniony zachował się do siódmej części włącznie. W pierwowzorze wynikał on z tego, jak Famicom / NES działają
- moduły te mają ściśle wyspecjalizowane zadania i nie odwołują się bezpośrednio do sprzętu - od tego jest rdzeń, taka warstwa abstrakcji pomogła w przeportowaniu gry na PC
- FF7 został napisany z pomocą środowiska Psy-Q, popularnego wśród twórców gier na PS1, dowodem na to są statycznie dołączone do kodu biblioteki Psy-Q i kilka formatów danych zgodnych z narzędziami będącymi częścią środowiska developerskiego
- w zapisie gry pierwsze 80 bajtów to zduplikowane dane z dalszej części sejwa - zrobiono to w celu przyspieszenia wczytywania podglądu w menu save w grze; zmiana tych danych jest tylko kosmetyczna - zmienione dane się wyświetlą, ale po wczytaniu gra z nich nie skorzysta, tylko z tych w dalszej części pliku zapisu
- filmiki FMV są w palecie kolorów o rozmiarze 24 bitów, ale grafiki wykorzystane podczas rozgrywki mają paletę kolorów tylko 15 bit
- gra kontroluje napęd PS1 w specjalny sposób w celu uniknięcia zwiech przy zmienianiu modułów
- gra ma ukryty duży tryb debugowania, gdzie poszczególni twórcy mieli swoje pokoje w grze do testowania różnych zdarzeń z gry - część zdarzeń nie działa prawidłowo powodując bugi
- gra używa własnego języka skryptowego do obsługi rozgrywki, język ma 246 (!) różnych poleceń
- w celu obliczania obrażeń podczas walk gra wykonuje 19 kroków na podstawie wielu danych (bardzo nerdowych danych nadmienię)
- w grze jest 319 unikalnych przedmiotów a jest tylko 256 unikalnych identyfikatorów, początkowe ID są przypisane do dwóch przedmiotów jednocześnie, a jaki jest to przedmiot rozróżnia się po ilości - jeżeli ilość jest nieparzysta, no to jest to jeden przedmiot, jak parzysta to drugi (w grze można mieć tylko 127 / 128 sztuk danego przedmiotu?)
- dane generalnie wszystkie są skompresowane, użyte algorytmy to LZS (specyficzny, dobrze opisany w dokumencie) i GZIP

To takie ciekawostki które wydają mi się najciekawsze, jeśli coś konkretnego miałbym napisać to dajcie znać co.

Zerknąłem. do pewnego momentu jest dla mnie zrozumiałe (co nie znaczy ani trochę, że umiem podobne rzeczy), ale rozgryzanie składni C/C++ już mnie nie kręci.
verteks, kodzisz coś? Nie pamiętam, aby ś się chwalił dziełami :)
Tak jak pisałem, z języków programowania jest tam tylko użycie typów danych, zero kodu. Ważniejsze jest wiedzieć jak tworzy się grafikę 3D - szkielety postaci, animacje szkieletowe, sceny, kamery, wierzchołki, poligony, wektory, teksturowanie... Tutaj nie ukrywam moja wiedza nie jest kompletna ale podstawy znam.

Cały czas się kręcę wokół programowania (z 10 lat będzie) i wiążę z tym swoją przyszłość ale od tych fajnych, ciekawych, kręcących mnie rzeczy odciągają mnie takie nudne aktywności jak klepanie apek CRUD co by z branży nie wylecieć, inne takie korpobzdurne programowanie, szkoły / uczelnie i życie. Brakuje doby na to żeby być graczem, programistą hobbystą, uprawiać sport, rozwijać się muzycznie i inne aktywności. Coś tam mam do pochwalenia się, ale wiedza nie idzie w parze z praktyką - często jest tak, że bym coś napisał ale po chwili szukania okazuje się że ktoś już coś takiego zrobił i kończy się temat na tym że nic nie tworzę.
Jakiego typu dzieła by cię interesowały?
« Ostatnia zmiana: Kwietnia 10, 2020, 18:12:41 wysłana przez verteks »



Offline Janusz

  • The boss
  • Administrator
  • Marszałek
  • *
    • Wiadomości: 11554
    • Reputacja: 121
  • Odznaczenia Udział w forumowym wyzwaniu na przejście 28 gier w 2022 roku. Użytkownik, który może pochwalić się napisaniem na forum minimum 1000 wiadomości.
    • strefapsx.pl
Dobra robota! Gdzie to wszystko tam znalazłeś to nie wiem, bo ja przy tym się trochę czułem jakby hieroglify musiał czytać. Masa bardzo szczegółowych ciekawostek, zwłaszcza ciekawy ten podział kodu. Widać też, że pomimo ograniczonych możliwości, wynikających ze specyfiki PSX, starano się to jakoś obchodzić na różne sposoby.

Dorzuciłem Twoją pracę do materiału na głównej. Teraz to można nazwać merytoryczną analizą, a nie tylko ciekawostką z linkiem. Dzięki!



Offline Mcin

  • Wsparcie
  • Major
  • *
    • Wiadomości: 1522
    • Reputacja: 33
  • بيسي غعَمينْق مَصْتترْ رإِس
  • Odznaczenia Udział w forumowym wyzwaniu na przejście 30 gier w 2024 roku. Odznaka za zajęcie I miejsca w konkursie Strefowy Skryba. Użytkownik, który może pochwalić się napisaniem na forum minimum 1000 wiadomości. Odznaka za zajęcie II miejsca w konkursie Przejdę 28 gier w 2022 roku. Udział w forumowym wyzwaniu na przejście 25 gier w 2021 roku. Udział w forumowym wyzwaniu na przejście 25 gier w 2020 roku.
Jakiego typu dzieła by cię interesowały?
Nic bardzo konkretnego. Po prostu zdziwiłem się, że masz wiedze w tym temacie, parę lat krążymy po podobnych forach i nie pamiętam, żebyś coś na ten temat wcześniej wspominał.

Net Yaroze to życie. Net Yaroze to Nadzieja.


Offline verteks

Dobra robota! Gdzie to wszystko tam znalazłeś to nie wiem, bo ja przy tym się trochę czułem jakby hieroglify musiał czytać. Masa bardzo szczegółowych ciekawostek, zwłaszcza ciekawy ten podział kodu. Widać też, że pomimo ograniczonych możliwości, wynikających ze specyfiki PSX, starano się to jakoś obchodzić na różne sposoby.

Dorzuciłem Twoją pracę do materiału na głównej. Teraz to można nazwać merytoryczną analizą, a nie tylko ciekawostką z linkiem. Dzięki!
Fajnie się dokument zaczął właśnie od takich rzeczy mocno powiązanych z kodem i architekturą PS1, później entuzjazm nieco mi opadł jak kolejny strony skupiały się tylko na formatach danych użytych w grze.
W porządku, widzę że nawet są linki do innych artykułów. Jakimś cudem nie kojarzę żebym czytał o zestawach developerskich, muszę nadrobić. Możesz nawet przeredagować językowo ten mój opis, jestem świadomy że często pisze "niepolskim" szykiem zdania i zdania mogą nie brzmieć zbyt "wyjściowo". Przez całą moją edukację poloniści nie dali rady tego naprostować heh.

Jakiego typu dzieła by cię interesowały?
Nic bardzo konkretnego. Po prostu zdziwiłem się, że masz wiedze w tym temacie, parę lat krążymy po podobnych forach i nie pamiętam, żebyś coś na ten temat wcześniej wspominał.
Zawsze starałem się brać udział w dyskusjach na takie tematy i w ten sposób niebezpośrednio, subtelnie dawałem do zrozumienia że mam jakiś związek z kodowaniem. Samemu zaczynać temat to tak nie bardzo w moim stylu, ale jak ktoś zapoda coś to jak najbardziej się dołączę. To chyba taki pierwszy post typu kawa na ławę.
No też od kilku lat znajomy jest mi pseudonim "Mcin", jak go widzę to wiem że wypowiedź będzie napisana z pasją do gier.

W komentarzach pod artykułem @ikskoks wspomniał, że udostępniono źródła gier na PS1. Dzięki za tą informację, temat mi jest nieznany, może rzucę okiem na to i też będę mógł jakoś pomóc w tworzeniu artykułów.
« Ostatnia zmiana: Kwietnia 11, 2020, 19:31:07 wysłana przez verteks »



Offline Janusz

  • The boss
  • Administrator
  • Marszałek
  • *
    • Wiadomości: 11554
    • Reputacja: 121
  • Odznaczenia Udział w forumowym wyzwaniu na przejście 28 gier w 2022 roku. Użytkownik, który może pochwalić się napisaniem na forum minimum 1000 wiadomości.
    • strefapsx.pl
Możesz nawet przeredagować językowo ten mój opis, jestem świadomy że często pisze "niepolskim" szykiem zdania i zdania mogą nie brzmieć zbyt "wyjściowo". Przez całą moją edukację poloniści nie dali rady tego naprostować heh.

Jakby coś było nie tak, to przeredagowałbym i bez pytania. :D Więcej wiary w siebie. ;)



Offline Mcin

  • Wsparcie
  • Major
  • *
    • Wiadomości: 1522
    • Reputacja: 33
  • بيسي غعَمينْق مَصْتترْ رإِس
  • Odznaczenia Udział w forumowym wyzwaniu na przejście 30 gier w 2024 roku. Odznaka za zajęcie I miejsca w konkursie Strefowy Skryba. Użytkownik, który może pochwalić się napisaniem na forum minimum 1000 wiadomości. Odznaka za zajęcie II miejsca w konkursie Przejdę 28 gier w 2022 roku. Udział w forumowym wyzwaniu na przejście 25 gier w 2021 roku. Udział w forumowym wyzwaniu na przejście 25 gier w 2020 roku.
W komentarzach pod artykułem @ikskoks wspomniał, że udostępniono źródła gier na PS1.
Samo udostępnienie takich źródeł jest warte newsa, moim zdaniem.

Net Yaroze to życie. Net Yaroze to Nadzieja.


Offline ikskoks

  • Szeregowy
  • *
    • Wiadomości: 42
    • Reputacja: 3
    • ikskoks.pl
Odpowiedź #14 dnia: Października 13, 2020, 23:33:11
Cytat: verteks w Kwiecień 11, 2020, 19:28:27

    W komentarzach pod artykułem [member=324]ikskoks[/member] wspomniał, że udostępniono źródła gier na PS1.

Samo udostępnienie takich źródeł jest warte newsa, moim zdaniem.

Hej, natrafiłem dzisiaj na bardzo ciekawe linki i tak sobie przypomniałem o istnieniu tego tematu na strefie :p

https://en.wikipedia.org/wiki/List_of_commercial_video_games_with_available_source_code
https://en.wikipedia.org/wiki/List_of_commercial_video_games_with_later_released_source_code

Znajdziecie tam spis wszystkich kodów źródłowych, które zostały udostępnione lub w jakiś sposób wyciekły
(na przykład SpongeBob czy Mortal Kombat na PS1).


 

SMF spam blocked by CleanTalk