Ostatnio naszÅ‚o mnie na dodanie konsoli do silnika, nie żadnej wypaÅ›nej z tysiÄ…cami komend a zwykłą konsole do wyÅ›wietlania logów. Teraz bez wychodzenia z aplikacji mogÄ™ sprawdzić logi z silnika.  Przy pisaniu konsoli dodatkowo doszÅ‚a obsÅ‚uga fontów. ZastanawiaÅ‚em siÄ™ chwile nad wybraniem odpowiednich dla mnie.  Wybór w sumie padÅ‚ na zwykÅ‚e fonty bitmapowe lub FreeType. WybraÅ‚em jednak FreeType z tego wzglÄ™du, że przy fontach bitmapowych jestem nieco uzależniony od formatu textur fontów, czyli generujÄ…c fonty bitmapowe różnymi programami, implementacja ich byÅ‚a by różna. Można byÅ‚o do tego “zaprząść” xml wraz ze kodami asci poszczególnych literek + ich współrzÄ™dne ale znowu wtedy bym musiaÅ‚ wszystko rÄ™cznie edytować co też nie jest fajne. FreeType też nie jest różowy (np. w przypadku “customowych” fontów) ale w moim przypadku bardziej odpowiednie. Wystarczy, że wczytam sobie zwykłą czcionkÄ™ ttf i mogÄ™ niÄ… pisać po ekranie. Do implementacji FreeType’a użyÅ‚em biblioteki FTGL (http://sourceforge.net/projects/ftgl/). Dość fajne i proste w obsÅ‚udze API, która potrafi rysować fonty jako textury czy nawet jako meshe.
DrugÄ… nowoÅ›ciÄ…, w moim silniku jest obsÅ‚uga dźwiÄ™ku. Tutaj posÅ‚użyÅ‚em siÄ™ OpenAL. Biblioteka jest bardzo przyjemna (szczególnie dla opengl-owców) w implementacji, dobrze udokumentowana i ma za plecami Creative’a. NapisaÅ‚em maÅ‚y wrapper na wÅ‚asne potrzeby, który obsÅ‚uguje WAV-y (OpenAL posiada gotowe funkcjÄ™ do wczytywania) oraz OGG. ObsÅ‚ugÄ™ OGG musiaÅ‚em już sam napisać ale byÅ‚o to bajecznie proste, do tego sÄ… tysiÄ…ce tutoriali w necie na ten temat. Oprócz tego udaÅ‚o mi siÄ™ w koÅ„cu (wczeÅ›niej nigdy tego nie pisaÅ‚em) zaimplementować dźwiÄ™k 3D, co daje bardzo fajny efekt. Po pierwszych testach byÅ‚em miÅ‚o zaskoczony efektem. Tutaj warto zwrócić uwagÄ™ na maÅ‚y szczegół. Jak bÄ™dziecie kiedyÅ› implementować dźwiÄ™k 3D pod OpenAL i nie bÄ™dzie Wam dziaÅ‚aÅ‚, upewnijcie siÄ™,  że dźwiÄ™ki sÄ… w mono, bo możecie na tym stracić kilka godzin i kupkÄ™ nerwów
Nie długo postaram się zrobić jakieś krótkie tech-demko i udostępnić.






