Zenedith's dev blog

Dałem się namówić.., szatanowi chyba..

Debian: OpenAL + OGG czyli Play Music #2

Było już o odtwarzaniu dźwięku w systemie Windows za pomocą OpenAL i dekodera ogg Vorbis. Postanowiłem opisać, jak można taki sam efekt uzyskać na systemie Debian. Na początek potrzebujemy biblioteki:

  • OpenAL - mamy możliwość instalacji w postaci pakietu, lecz jest on trochę “starej daty”. Ponieważ dostępne są tylko źródła, to go sobie skompilujemy sami. Źródła możemy pobrać z oficjalnej strony CreativeLabs lub ze strony OpenAL Soft.
  • biblioteki VorbisFile, Vorbis i Ogg są aktualne do zainstalowania z poziomu pakietów, więc polecam zainstalować je wszystkie poleceniem: aptitude install libvorbis-dev które zainstaluje nam również pozostałe biblioteki.
  • potrzebujemy również bibliotekę asound, którą zainstalujemy poleceniem: aptitude install libasound2-dev.

Czytaj dalej »

11 styczeń, 2009 Opublikował/a zenedith | debian, engine | , , | Nie ma jeszcze komentarzy

Gettext w aplikacjach cpp dla Windows i Debiana.

We wcześniejszym wpisie przedstawiłem wprowadzenie do Gettext i jak używać tego narzędzia do tworzenie wielojęzycznych treści w php. Jak się za moment okaże, analogicznie można tworzyć aplikacje w cpp, które mogą nawet korzystać z tych samych plików *.mo.

Idąc za ciosem, w tym wpisie przedstawię jak można bardzo łatwo stworzyć aplikację dla Windows i Debian’a w cpp, korzystającą z Gettext’a.
Czytaj dalej »

2 styczeń, 2009 Opublikował/a zenedith | cpp, debian | , , | Nie ma jeszcze komentarzy

DirectX9 : Eclipse + CDT + MinGW

W ostatnim wpisie było o SDL i poniekąd o OpenGL (OGL), więc dla równowagi coś dla “panującego standardu”, oczywiście z wykorzystaniem Eclipse, CDT i MinGW. Tak naprawdę  nie wysiliłem się za bardzo, ponieważ wziąłem przykładowy kod aplikacji DX z template’a dołączonego do Code::Blocks. Czytaj dalej »

3 sierpień, 2008 Opublikował/a zenedith | cpp, game | , , | Nie ma jeszcze komentarzy

SDL : Eclipse + CDT + MinGW

Ponieważ wiele razy wspominałem, ile dobrego zawiera w sobie na starcie MinGW Distro – nuwen.net, dziś stworzymy okienko Windows’a za pomocą SDL.
W skrócie można rzecz, że jest to bardzo prosty interfejs do OpenGL. Jego jedyną (poważną) wadą jest to, że działa on software’owo, czyli nie wykorzystując w pełni karty graficznej, co ma z kolei ten plus, że jest to przenośna biblioteka.
Oczywiście możemy brać z SDL to co najlepsze a resztę robić w “pure” OGL.
Czytaj dalej »

3 sierpień, 2008 Opublikował/a zenedith | cpp, engine, game | , , , , , | Nie ma jeszcze komentarzy

JNI #2 – Stawiamy JVM

Pierwszą część mamy już za sobą. Potrafimy już tworzyć skomplikowane skrypty w Javie i korzystać z natywnego wsparcia ze strony cpp. Pozostaje więc teraz cały proces odpalić z exe..Stworzymy teraz aplikację startującą JVM i nasze skrypty – otrzymamy więc możliwość stworzenia “silnia gry” z Javą jako językiem skryptowym! Do dzieła. Czytaj dalej »

31 lipiec, 2008 Opublikował/a zenedith | cpp, engine, game, java, scripts | , , , , | Nie ma jeszcze komentarzy

JNI #1 – Eclipse + CDT + MinGW

Pisałem już o różnych językach skryptowych – postaram się opisać przynajmniej podstawy współpracy z cpp z każdym z nich. Dziś przedstawię jak wygląda współpraca Javy i cpp przez interfejs JNI (Java Native Interface).

Tak jak w temacie, pokażę jak napisać prosty pomost między Javą a cpp przy wykorzystaniu IDE Eclipse z biblioteką CDT5.0 oraz wykorzystując toolchain’a MinGW. O sposobie konfiguracji takiego środowiska wspomniałem już wcześniej, a więc zaczynamy. Czytaj dalej »

23 lipiec, 2008 Opublikował/a zenedith | cpp, java, scripts | , , , , , , | 4 komentarzy

CPP IDE = Eclipse + MinGW

Ponieważ programując w Javie używałem środowiska Eclipse, postanowiłem krótko opisać, jak wykorzystać to świetne IDE do pracy także z CPP.
Trzeba przyznać, że rozszerzalność tego IDE jest niesamowita – istnieje mnóstwo plugin’ów dzięki którym można wykorzystać Eclipse do programowania w większości języków kompilowanych oraz skryptowych.

Potrzebne będą dwie rzeczy:

  1. Dystrybucja MinGW,
  2. Eclipse + CDT lub samo CDT do pobrania przez update software w Eclipse po dodaniu strony
    http://download.eclipse.org/tools/cdt/releases/ganymede.

Wykorzystałem dystrybucję MinGW Distro – nuwen.net, ponieważ jest szybka w instalacji (rozpakowanie plików) i zawiera wszelkie podstawowe aplikacje oraz te bardziej specjalne, ale o tym można się dowiedzieć na podanej stronie.

Jeśli chodzi o Eclipse, to jest to wersja specjalnie przygotowana do projektów w cpp i zawiera oprócz CDT (w wersji 6.0) także klienta repozytorium CVS (klienta SVN można ściągnąć ze strony subclipse.tigris.org) oraz Mylyn.

Istotne jest to, jak należy “zainstalować” tą dystrybucję MinGW, żeby była widoczna dla Eclipse. Otóż możemy rozpakować podaną dystrybucję gdziekolwiek (najlepiej bez białych znaków w strukturze katalogów), lecz jeśli nie będzie to standardowe miejsce C:\MinGW\ to musimy utworzyć na dysku C takie katalogi: C:\MinGW\bin\, ponieważ CDT wyszukuje zainstalowanego toolchain‘a od MinGW m.in. po istnieniu podanej ścieżki na dysku C.
To oczywiście nie wszystko – w zmiennej PATH należy dodać lokalizację rozpakowanej dystrybucji ze ścieżką do podkatalogu bin, czyli dla przykładu D:\PRO\MinGW\bin\. Żeby sprawdzić czy wszystko jest ok, należy uruchomić ponownie komputer lub wylogować się z profilu – dopiero wtedy zmiany w PATH zostaną uwzględnione dla systemu (oczywiście można wszystko zmienić z wiersza polecenia ale nie będę komplikował).

W tym momencie należy sprawdzić, czy zmienna systemowa PATH zawiera dystrybucję MinGW – w tym celu wydajemy w konsoli systemu (cmd) polecenie:
g++ -v.
Jeśli wszystko jest ok, to powinniśmy otrzymać parę linii komunikatu kończącego się np. tak:
gcc version 4.2.1-dw2 (mingw32-2).

Czas na odpalenie Eclipse i stworzenie projektu.
W tym celu wybieramy opcję New Project/C++ Project z menu kontekstowego nad oknem Project Explorer, przez przyciśnięcie przycisku na liście toolbox’a New C/C++ Project lub przez menu File.

W otworzonym okienku istotne są dwie rzeczy:

  1. W prawym panelu powinien być widoczny toolchain MinGW GCC,
  2. Tworząc “zwykły” projekt .exe wybieramy “Empty Project”, zamiast pozostałych “Hello World …”.

Dalsze okienka akceptujemy bez wprowadzania zmian.

Tworzymy nowy plik implementacji (.cpp) z menu new, i dodajemy tam przykładowy kod:

#include <iostream>
using namespace std;

int main () {
// Say Hello five times
for (int index = 0; index < 5; ++index)
cout << "HelloWorld!" << endl;
exit(0);
}



Domyślnie kompilacja następuje przy każdym save’owaniu – o ile przy programowaniu w Java’ie nie jest to uciążliwe (a wręcz bardzo pomocne), to w przypadku pracy z cpp może to przeszkadzać osobom takim jak ja, które wciskają ctrl+s co 20 sekund. Warto więc odznaczyć pole “Build Automatically” w menu Project.
Kompilacji (build całego projektu) dokonywać teraz można np. poprzez skrót ctrl+b lub przez odpowiednią ikonkę “młotka” na toolbox’ie Eclipse’a.
W odpowiedzi w oknie Console dostaniemy podobne podsumowanie:

Build complete for project (twój projekt)
Time consumed: 1578 ms.

Teraz wystarczy otrzymany .exe odpalić bezpośrednio z Eclipse przez menu Run as – Local C/C++ Application i w oknie Console otrzymamy wynik działania aplikacji podanej wyżej.

2 lipiec, 2008 Opublikował/a zenedith | cpp | , , , , | Nie ma jeszcze komentarzy

CPP -> poszukiwanie IDE

Ok, zaczynamy z cpp.

Mam już wiedzę, tylko trzeba ją w coś przelewać :)
Standardowo pracowałem sobie na początku w Visual Studio 8.0, a dokładniej “Visual C++ 2005 Express Edition”, ale szybko zostałem poinformowany (news z Warsztatu), że lepiej będzie pisać w nowszym i pewnie poprawionym narzędziu – tak więc ściągnięcie wersji 2008 było kwestią szybkości łącza :) Szybka instalacja i do dzieła. Ok, parę zmian kosmetycznych, sprawdziłem jeszcze klawiszologię nowego dziecka MS i do boju.

Przeglądając forum, napotkałem na informację o zintegrowanym MinGW + GCC z wieloma popularnymi bibliotekami używanymi w “prostym” gamedev. Parę podejść do kompilacji “z ręki” i dałem sobie spokój. Niestety, wolę iść na łatwiznę na tym etapie, a skoro już na tym to do końca tak zostanie -pewnie w przyszłości MS na mnie zarobi. A przecież właśnie tak działa ich mechanizm reklamy i darmowych wersji :)
Oczywiście są przynajmniej dwa IDE współpracujące z GCC – Code::Blocks oraz Eclipse. Dodatkową siłą tego pierwszego jest zestaw kreatorów projektów dla różnych “technologi” – może się to okazać pomocne przy pierwszych kontaktach z nimi.

Ja jednak pozostanę przy darmowej wersji Visual’a.

26 grudzień, 2007 Opublikował/a zenedith | cpp | , , , | Nie ma jeszcze komentarzy