Włatcy Móch…
by kubagert on mar.10, 2009, under Programowanie, Programowanie gier
Włatcy Móch wrzód na d….
Ta strona nie jest poświęcona samej grze, lecz jest krótkim (naprawdę krótkim) opisem technologii użytej do jej stworzenia. A więc od początku. Zanim silnik nabrał finalnego kształtu rozwijał się przez dość długi czas. Podczas prac nad samą grą powstał także edytor wspomagający. Oto zestawienie narzędzi i bibliotek użytych do stworzenia tej produkcji:
- okno główne – biblioteka SDL dla gry lub wxWidgets dla ‘Włatczego Edytora’
- obsłga zdarzeń (mysz, klawiatura) – biblioteka SDL
- renderer – OpenGL
- obsługa tekstur – biblioteka SDL_image
- obsługa dźwięku – biblioteka SDL_mixer
- skrypty – LUA 5.1
- czcionki – blibioteka FreeType
- manager pamięci – MMGR
- animacje – własny edytor
Włatczy edytor jest niczym innnym jak silnikiem z rendererem podpiętym pod wxPanel. Dzięki temu nie było problemu „rozjeżdżania” się wersji silnika i edytora, gdyż korzystały ze wspólnych źródeł. Edytor miał wbudowane okno konsoli błędów, oraz edytor animacji. Całość gry została oparta na skryptach LUA.
SDL
Biblioteka SDL jest dla mnie idealnym rozwiązaniem. Łatwość otwarcia okna czy przechwytywanie zdarzeń powoduje że jest przeze mnie najczęsciej używaną biblioteką. W połączeniu z OpenGL+SDL_image+SDL_mixer tworzy gotowego frameworka do pisania zarówno prostych jak i bardziej skomplikowanych gier (a czasem nawet i programów). Niestety zawiodłem sie na SDL_mixer gdyż na krótki okres przed oddaniem gry do tłoczni zaczął sprawiać problemy – przy niektórych utworach podczas loopowania pojawiał się nieprzyjemny trzask. Niestety zabrakło czasu aby wymienić grajka na coś innego nad czym strasznie ubolweam. Następnym razem prawdopodobnie użyję biblioteki OpenAL. Tak czy owak dla początkujących polecam zabawy z SDL_mixerem, gdyż nie jest taki zły
.
LUA
Lua to znowu biblioteka która nigdy nie przysporzyła mi większych problemów. Zawsze mnie potrafi zaskoczyć (na szczęście za każdym razem gdy mnei zaskakiwała to w pozytywny sposób). Jej niezwykła elastyczność powoduje że w błyskawiczny sposób można zrobić coś fajnego, np grę
. Dodatkowo przyspiesza testowanie aplikacji – nie trzeba co chwilę zamykać aplikacji, przekompilowywać źródel z poprawkami i uruchamiać ponownie – dzięki językowi skryptowemu wystarczyło przeładować źródła i już można bylo testować kod z nowymi poprawkami. Nic tylko się cieszyć
FreeType
Ta biblioteka znowu miała swoje kaprysy. Raz na x-uruchomień nie renderowała się poprawnie litera ‘W’. Co ciekawe zawsze była to ta sama litera (duże W). Nie ma chyba nic gorszego niż niepowtarzalny błąd
. Jako że problem był bardzo ciężki do wywołania problem został odstawiony podczas prac, lecz ciągle obserwowano zachowanie dużej literki W. Po kilku dniach zauważyłem że ma to związek z wielkością renderowanej literki. Więc w całej grze zwiększyłem rozmiar czionki o jeden piksel. No i W przestało znikać… za to zniknęło duże ‘C’
. No więc wiedząc już co powoduje problem czionka została doświadczalnie zmniejszona do rozmiarów gdy wszystkie litery działały jak należy, no a problem do dzisiaj pozostał niezbadany i czeka w kolejce na rozwiązanie.
MMGR
To jest bardzo ciekawe narzędzie. Kawałek kodu źródłowego który bardzo dobrze loguje do pliku wszystkie wycieki pamięci które narobiliśmy. Wystarczy podpiąć pod swoje źródła i przekompilować aplikację, uruchomić, popracować, zamknąć i poczekać na wygenerowanie loga wycieków pamięci. Jeżeli nic nie skopaliśmy naszym oczom ukaże się napis: ‘Congratulations! No memory leaks found!’. Jeżeli narobiliśmy baboli zobaczymy tabelkę z opisem w którym miejscu wywołaliśmy operator new/malloc (plik oraz numer linii). Czy to nie wspaniałe ?
Mała galeria









