@Korni,
post #6
A Descent, Hexen, Quake, Wipeout, SuperFrog, Settlers, Another World, Bioshock, GTA, Little Big Planet, Wiedźmin, Angry Birds, Test Drive czy inne Doomy ile procent procesora zjadają? Wszystkie gry inne niż szachy czy układanki tak mają i nie ma to nic wspólnego z SDL. Tak samo można napisać żeby gra w SDL nie zjadała 100% jak w systemowym API żeby zjadała 100%. Jeżeli gra jest nie dynamiczna i podczas czekania na ruch człowieka nic nie musi odświeżać to spokojnie można zrobić czekania na klawisz/mysz (SDL ma takie mechanizmy). No a jak wszystko cały czas musi się przerysowaywać, aktualizować, odrysowywać (każdy chce te 60 FPS) to nic dziwnego, że program stara się wycisnąć maxa z maszyny. W przypadku gier w które gramy na całym ekranie to zupełnie normalne. Jednak w przypadku gier typu pasjans czy tetris, które sobie odpalamy (w pracy, hehe) jak coś tam się robi w tle, które musimy nagle spauzować, zminimalizować na chwilę żeby zrobić coś innego taki model działania aplikacji jest faktycznie niedopuszczalny. Pętla napierniczajaca (tak to nazywam, hehe) to klasyczny model funkcji "main" w większych grach (czy przynajmniej takich, którym wydaje się, że są większe). Ale nawet większa gra powinna podczas pauzy (albo nieaktywnego okna) zawiesić renderowanie i puścić procek. Skoro użytkownik przeszedł do innego okna/ekranu to znaczy, że potrzebuje prędkości na inne zadanie. Tak, wiem że Fortis nie oddaje czasu procesora w czasie pauzy. Zrobię to kiedyś. :) Chociaż pewnie wcześniej będzie to w kolejnej grze. :)
To, że gra jest pisana z wykorzystaniem SDL wcale nie musi być negatywną cechą. Co za różnica w czym jest pisana? Przecież to tylko kilka funkcji. Wieszaliśmy psy na grach w AMOSie, bo nie wykorzystywały AGA/CGX, nie dawały się odpalić na ekranie systemowym, promować na VGA. To wszystko. To czy był szybki czy to nie miało znaczenia. Wiadomo, że nikt w tym Quake nie będzie robił. Jeżeli gra była na tyle niewymagająca to dlaczego nie miałaby być pisana w czymś co za szybkie nie jest. Ma działać i tyle. Ważne, że wszystko operowało na systemowych plikach (a nie jak w starych assemblerowych NDOSach na jakichś padackich trackach), dało się to wrzucić na twardziela nawet jeżeli nie było installera.
Faktem jest, że fukcje do rysowania 2D w SDL do najszybszych nie należą. Więc jeżeli ktoś robi co wymaga więcej niż oferuje SDL to wybór tej biblioteki faktycznie jest niezbyt szczęśliwy. Jednak jak się na przykład używa OpepnGL (też może być do 2D), a SDL tylko do takich rzeczy jak: dźwięk, ekrany, okna, mysz, klawiatura i inne drobiazgi to dlaczego nie. Przecież to wszystko jest w zgodzie z systemem. Żadnych niesystemowych hacków w SDL nie ma. A że jest bardzo multiplatformowo... no trudno. :)
Ostatnia edycja: 14.03.11 11:55:23