Post - ciekawostka. Nie traktować zbyt poważnie, przedstawia tylko teorię, którą można spokojnie poprzeć praktyką, aczkolwiek nie istnieje ku temu jakikolwiek rozsądny powód ani cel (bo to trochę jak iść do sklepiku osiedlowego oddalonego o 50 metrów przez Berlin, Londyn a później Seul i Moskwę - po czym wracać tą samą trasą). Jeśli jednak ktoś chce spróbować - nie biorę na siebie żadnej odpowiedzialności za uszkodzenia psychiki, oprogramowania i sprzętu.
Z tym PhysX-em to nie do końca "się nie da". Da się, ale gra nie jest warta świeczki, bo raz że taki zabieg każdy antywirus będzie widział jako zagrożenie, dwa że wydajność będzie mizerna, trzy że każdy nowy spawn na mapie mógłby się zakończyć BlueScreen-em, a cztery - prędzej napiszesz na nowo UE2, niż zmusisz taki twór do w miarę stabilnego i wydajnego funkcjonowania
Ale sam zabieg jest jak najbardziej możliwy - po prostu musiałbyś napisać dodatkową aplikację, która przeczesywałaby co jakiś czas cały RAM komputera w poszukiwaniu charakterystycznych dla modeli sygnatur. Po namierzeniu takiej sygnatury musiałbyś pobrać nie mniej i nie więcej bajtów, niż zajmuje dany obiekt w pamięci. Po pobraniu - musiałbyś go przetłumaczyć na coś zrozumiałego dla PhysX. Po przetłumaczeniu - musiałbyś namierzyć kości. Rozmontowane i przetłumaczone dane następnie umieszczasz w pamięci w formie zrozumiałem dla PhysX, a samemu PhysX dajesz info o obiekcie. Fizol robi co trzeba i zwraca wynik swoich operacji. Tego "wyniku" używasz do przekształcenia zlepku danych, który zapodałeś prędzej do pamięci, żeby PhysX miał co obrobić. Następnie zlepek przerabiasz na dane wyglądające jak to co wyciągnąłeś z RAM-u na początku. Kolejnym krokiem jest podmienienie w pamięci oryginalnego obiektu na nasz nowy obiekt, z obsłużoną już w danej klatce animacji fizyką. I gotowe! Proste, nie?
Dodajmy jeszcze, że musisz się modlić, żeby przy podmianie nie zająć przypadkiem nieodpowiedniego bitu, inaczej czeka Cię Blue Screen, w najlepszym wypadku crash czegokolwiek, co miało w danym bicie pamięci fragment swoich danych. Powyższa sytuacja pomija też pobranie z pamięci mapy, żeby nasz niby-programik miał co obrabiać. Wydajność czegoś takiego byłaby, delikatnie mówiąc, żałosna. Z resztą - dla samego poglądu jak złożone byłoby takie coś, pobaw się programikem CheatEngine - on też wyszukuje w pamięci interesujących Cię danych (np.: szukasz HP z gry -> poszukujesz zmiennej, która ma wartośc 100. Dalej się nieco obić, np do 57HP. Sprawdzasz, która ze znalezionych prędzej wartości zmieniła się na 57, itd.) i pozwala na ich bezpośrednią obróbkę. Efekty nieraz są komiczne lub tragiczne.
Inna ciekawa opcja to napisanie programu, który działałby nieco jak serwer gry, komunikując się z Postal 2 za pomocą TCPLink. W takim wypadku program musiałby mieć mapę na której gracz obecnie się znajduje + potrafić obsłużyć skrypty z P2, modele oraz oryginalną fizykę. Innymi słowy - byłby to nowy engine dla Postal 2, ale z pominięciem wyświetlania grafiki i odtwarzania audio
Chociaż w tym wypadku 100% pewności nie mam, bo nie wiem czy przez TCPLink można wysyłać tak szczegółowe info jak ułożenie kości dla danego modelu.
Podsumowując - z każdym programem/grą można zrobić dosłownie wszystko, bez dostępu do źródeł. Po prostu w większości przypadków nie ma to najmniejszego sensu, bo płaci się wydajnością, stabilnością i żywotnością sprzętu (że o zdrowiu psychicznym nie wspomnę).