Nadeszła najwyższa pora aby zabrać się za pierwszą funkcjonalność silnika.
Tylko co wybrać?
Ach, tyle możliwości…
Najlepiej aby to co wybierzemy było bardzo łatwo pokazać/wykorzystać. Nie ma co spędzać czasu nad hiperduper skomplikowanymi algorytmami czy innymi super wydajnymi systemami. Szczególnie w fazie kiedy silnik dopiero się kształtuje.
A więc funkcjonalność musi:
- Być łatwa w implementacji
- Być używalna poza systemem
- Kształtować architekturę systemu
Może sterowanie postacią? Jest całkiem proste i bardzo łatwe do demonstracji!
Niby tak, ale poza tym potrzebujemy jeszcze mieć po czym się poruszać a demo wymagało by już jakiegoś renderera. Nie wspominając o różnych sposobach kontrolowania postaci (klawiatura/pad itp.)
A menu główne? Od tego zaczyna dużo osób przecież..
Hmmm, też grafika… Wymagało by też zaprojektowania jakiegoś modułu od UI… Neeeee
Ok, ok a pathfinding? Algorytmy nie są przesadnie skomplikowane a do dema można by wykorzystać jakiś prosty mockup z grafem.
Lepiej lepiej. Nie wymaga to od nas paćkania się w GUI i wpływa zasadniczo na architekturę – definiuje strukturę danych której będzie wymagał algorytm…
Chociaż chyba poddałeś mi lepszy pomysł…
Dungeon generator!
Yup, generowanie poziomów. Jedna z najbardziej rozpoznawalnych cech gatunku rougelike.
- Algorytmów jest pełno zarówno trywialnych jak i bardziej złożonych.
- Wynik algorytmu wystarczy przełożyć na bitmapę i mamy gotowe demo.
- Generatory mają bardzo duży wpływ na strukturę danych w jakiej będzie przechowywany poziom gry więc i kształtują architekturę silnika.
Tylko teraz jaki algorytm? Hmm…
A może kilka? Inne do lochów, inny do jaskiń a jeszcze inny na powierzchnię? 🙂
Taki jest plan – aby zrobić kilka różnych generatorów. Jak wyjdzie w praniu to zobaczymy 🙂