Korzysta z nowoczesnego SDLa, który ma swoje wymagania
Czasem zdarzyło mi się zerkać w źródła SDL i uważam, że samo używanie tej biblioteki właściwie nie daje żadnego narzutu jeżeli chodzi o prędkość. To jest po prostu opakowanie i przekazanie systemowych zdarzeń do bardziej multiplatformowych struktur z których korzysta już sama gra. Tu nie działa żadna wirtualna maszyna, nie ma nic co miałoby w zauważalnym stopniu obciążać maszynę (zwłaszcza taką z 2005 roku z Radeonem). To jest tylko taki wrapper. na systemowe mechanizmy. Często robiąc grę sami dla wygody i przejrzystości kodu (mniej lub bardziej świadomie) tworzymy taką namiastkę SDL ale specjalizowaną dla jednej gry.
Uważam, że normalnie napisany program pod SDL właściwie nie powinien zwalniać przez sam fakt, że otworzył sobie okno czy odebrał sygnał z klawiatury funkcją SDL. Chociaż wiem, że tak niestety jest z niektórymi portami... Jest to taki trochę skandal.
Uważam, że bardzo często winy wcale nie ponosi SDL dla MorphOS, AmigaOS4 czy AmigaOS3 tylko sposób w jaki program był napisany. W tych programach często są takie rozwiązania, że działają 2, 5, 10, 50 razy wolniej niż powinny. Tylko, że tworzone są dla absurdalnie szybkich maszyn i przez ludzi bez świadomości i programistycznego honoru. Nikogo nie interesuje czy taka opensourcowa gra zjada 5 czy 80% procesora. Póki nie przekracza 100% to i tak jest 60 FPS.

A gdy się to zbuduje dla nieco wolniejszej maszyny to nagle głupie menu działa z prędkością 10 FPS, bo taki "nowoczesny" programista robi jakąś głupią, zupełnie zbędną operację przy każdym rysowaniu. O samej grze już nie wspomnę, bo to dopiero jest prawdziwe pole do popisu dla crapowatych rozwiązań...
Jak szybko działał "Tower 57" przy pierwszym uruchomieniu na AmigaOS4 czy MorphOS? Coś kojarzę, że chyba 5 czy 8 FPS... A po skończeniu w 1440x960 działa 60 FPS bez choćby jednego pixela różnicy w stosunku do oryginału. Tylko trzeba było poświęcić kilka miesięcy na zagłębianie się w wypociny twórców, którzy nie wiedzą, że procesor może mieć mniej niż 1GHz i myślą, że najmniejszą jednostką pamięci jest megabajt.
I ja wcale nie mówię o jakichś niezwykłych optymalizacjach. Oczekuję tylko, że nie będzie przedszkolnych architektonicznych błędów, które zwalniają program np. 10 razy, a czego nie czuć na dzisiejszych maszynach. Od programisty oczekuję resztek honoru...
Ostatnia aktualizacja: 18.02.2023 20:24:53 przez MDW