Po wielu miesiącach przemyśleń, opracowywania bilansu zysków i strat zdecydowałem, że z dniem dzisiejszym rozpoczynam pracę nad swoim (jak dotychczas) największym programistycznym projektem, a mianowicie silnikiem (engine’m) gry. Na samym początku musze zrobić małe zastrzeżenie dla wszystkich tych, którzy uważają że to zabawa dla dzieci i niepotrzebna strata czasu. Otóż moi mili - nie ma w tym nic z prawdy. Produkcja engine’u to tak naprawdę wyzwanie, które w praktyce wiąże się z ogromnym nakładem pracy i sprawnym wykorzystaniem umiejętności koderskich. Pisząc engine dotykamy praktycznie każdego aspektu inżynierii oprogramowania, gdyż już same założenia co do projektu wymuszają to na nas. Nie obędzie się bez tych mniej i tych bardziej zaawansowanych algorytmów, umiętności zoptymalizowania kodu, opracowania hierarchii projektu, zależności pomiędzy klasami, obiektami… Projekt, najlepiej gdyby był zmodularyzowany, tak, by łatwiej pracowało się nad poszczególnymi blokami wchodzącymi w skład engine’u a nie nad zawiłym “tworem” pokaźnych rozmiarów. Moduły muszą mieć jasną specyfikę, najlepiej gdyby były niezależne, lecz jednocześnie muszą ze sobą w 100% współgrać. Do tego dochodzi opracowanie renderera, modułów odpowiedzialnych za oblicznanie fizyki, do zarządzania sceną i jej obiektami, do obsługi muzyki i dźwięków, obsługi wejścia (klawiatura, mysz, itp…) użytkownika, zarządzania połączeniami sieciowymi, komunikacji z użytkownikiem za pomocą GUI, obsługi skryptów (mod-ów), kontrolowania sztuczną inteligencją komputerowych postaci, efektywnego zarządzania pamięcią, systemem plików i jeszcze wieloma, wieloma innym aspektami. Jak widzicie jest (będzie) to proces niesamowicie czasochłonny, jednak spoglądając na ostateczną produkcję dochodzi się do wniosków że “warto było”… Oby
Jako że projekt ten tworzy jednoosobowy zespół złożony…ze mnie
prace nad nim nie będą szły w jakimś zastraszającym tempie, jednak mam nadzieję że uda mi się doprowadzić tę produkcję do końca. Na blogu postaram się publikować informacje o postępach w kodowaniu. Trzymajcie kciuki ;D