Witam. Jestem co-developerem Battleships Forever ( http://gmc.yoyogames.com/index.php?showtopic=139677 ).
Jak zapewne niektórzy wiedzą, BSF cierpi na chroniczny brak wydajności. Jest to spowodowane kombinacją trzech faktów:
- Statki w BSF są budowane przez graczy z tzw. sekcji. Każda sekcja to praktycznie dwa sprite'y - jeden 'normalny' i jeden do uzyskania pewnego efektu graficznego. Bywają sytuacje, że na ekranie znajduje się kilka statków zbudowanych z setek części każdy - a już jeden statek zbudowany z kilkuset części jest problemem.
- Aby uzyskać efekt smugi/śladu, większość pocisków jest renderowana do surface'a obejmującego cały room, włączając pociski poza ekranem. Z kolei surface ten jest renderowany kilka razy (plus inne 'sztuczki') aby uzyskać efekt rozmycia.
- Gra korzysta z view'ów.
Dotąd byłem przekonany że nic się nie da poradzić na brak wydajności, ze względu na limitacje GameMakera. Ale ostatnio na oficjalnym forum GM odkryłem Xenon PlayGate i bardzo mnie to zainteresowało, narazie zapowiada się bardzo dobrze.
Niestety jedyne źródła informacji jakie znalazłem to ten thread, thread na gmc.yoyogames.com, no i oczywiście załączone sample. Dlatego chciałbym tutaj zadać parę pytań odnośnie PlayGate:
1. Zdaję sobie sprawę że rendering to nie jedyna mało wydajna część GameMakera, ale chciałbym zapytać jak dużo mogę zyskać przez wymianę renderingu na PlayGate? Czy istnieją jakieś dane lub benchmarki porównujące wydajność? Czy warto się w to w ogóle bawić?
2. Rozumiem że PlayGate posiada odpowiedniki odpowiedniki funkcji GameMakera (synonimy). Czy mogę w całości wykorzystać istniejący kod i tylko podpiąć PG, czy muszę coś zmienić? Zakładając że jedyne co chcę zmienić to rendering, jakie konkretnie modyfikacje są potrzebne? Które funkcje z GM mają swoje synonimy w PG?
3. Zakładając że zdecyduje się na użycie PlayGate do renderingu, jakie zmiany w kodzie rysowania mogę/powinienem wprowadzić aby uzyskać większą wydajność?
4. Zauważyłem że wszystkie przykłady to .gm6 . Czy to oznacza że PlayGate nie jest kompatybilny z GM7?
Byłbym wdzięczny za odpowiedzi na te pytania i wszelkie linki do źródeł informacji.