Zenedith’s dev blog

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

Eclipse + Python = prawdopodobnie najlepsze IDE dla Pythona

Temat wpisu w oczywisty sposób nawiązuje do pewnej grupy reklam - ja z tego nic mieć nie będę ale tytuł pasuje jak ulał. Tak na marginesie.

Kontynuując “cykl” tematów dotyczących języków skryptowych, chciałem przedstawić, w jaki sposób wykorzystać moje ulubione IDE Eclipse do pracy z Python’em.

Jeden adres i wszystko staje się proste i jasne - EasyEclipse for Python.
Na podanej stronie dostępne jest mnóstwo informacji na temat korzystania z Eclipse w pracy z Pythonem, poradniki dla początkujących oraz opis zawartości “dystrybucji”, który pozwolę sobie tutaj zamieścić:

Główne komponenty:

Narzędzia pracy z Javą:

Wybrane niezbędne narzędzia:

  • AnyEdit Tools - rozszerzone menu kontekstowe,
  • Eclipse Utils Plugins - m.in zapamiętywanie stanu (pozycji kursora) w dokumentach przy ponownym odpaleniu Eclipse,
  • Color Editor - kolorowanie składni do ponad stu różnych rodzajów składni,

IDE dla tworzenia w Python’ie:

  • PyDev - główny plugin umożliwiający tworzenie, debugowanie i refaktoring dla Python’a i Jython’a - dokładna lista dostępna na stronie domowej projektu PyDev - plugin ten można ściągnąć osobno jeśli mamy już Eclipse z serii Ganymede,

Systemy kontroli wersji:

Okazuje się, że Eclipse świetnie wykorzystuje swój potencjał, otwartą architekturę i system plugin’ów - w tym przypadku nie jest inaczej i dostarczone rozwiązanie jest bardzo dobre oraz wciąż rozszerzane.

17 lipiec, 2008 Opublikował/a zenedith | scripts | , , , , , | Brak komentarzy

Ogre - wizard dla VisualStudio 2005

O silniku graficznym Ogre3D nie będę się teraz rozpisywał ponieważ przyjdzie na to czas. Ponieważ co pewien czas update’uje sobie wersje z repozytorium SVN zauważyłem, że już od jakiegoś czasu nie jest z tą wersją kompatybilny wizard dla VisualStudio 2005/2008 dostępny na stronie The Conglomerate Project. Postanowiłem to zmienić,a w zasadzie jeden plik za to odpowiedzialny. Cały poprawiony przeze mnie wizard do wersji 2005 SDK jest do pobrania tutaj.

Może komuś się przyda, szczególnie na początku nauki programowania gier :)

(Jeśli będę miał więcej czasu i nie zrobią korekty autorzy wizarda, to poprawię również pozostałe wizardy.)

12 lipiec, 2008 Opublikował/a zenedith | engine, game | , , , , , | Brak komentarzy

Zmiany i nowy projekt

Zaczynam pracę nad kolejnym projektem gry komputerowej dla firmy Techland. Wiąże się to z przeprowadzką, z którą przez ostatnie dni się strasznie męczę (poszukiwania mieszkania/pokoju) - mam nadzieje, że jutro będzie lepiej. W każdym razie do końca tego tygodnia prawdopodobnie na blogu nie ukaże się żaden wpis, ale jak tylko uda mi się ułożyć sprawy mieszkaniowe we Wrocławiu to powrócę do uzupełniania bloga.

UPDATE:
Dokonałem poprawek w odnośnikach do zewnętrznej zawartości - teraz otworzą się w nowym oknie przeglądarki.

8 lipiec, 2008 Opublikował/a zenedith | Uncategorized | | Brak komentarzy

Zrób sobie test

Na stronie www.4degreez.com można sobie zrobić test - Psychotest - jego rozwiązanie zajmuje około 10 minut.
Poniżej prezentuję otrzymane przeze mnie wyniki - trochę odmiany na blogu nie zaszkodzi.

Disorder Rating
Paranoid: Low
Schizoid: Moderate
Schizotypal: Low
Antisocial: Moderate
Borderline: Low
Histrionic: Low
Narcissistic: Low
Avoidant: Low
Dependent: Low
Obsessive-Compulsive: Low

Personality Disorder Test
Personality Disorder Information

4 lipiec, 2008 Opublikował/a zenedith | Uncategorized | , | 1 komentarz

CPP IDE - Eclipse + MinGW

Ponieważ w poprzednim projekcie “Nikita - Tajemnica skarbu piratów” używałem środowiska Eclipse, postanowiłem krótko opisać, jak wykorzystać to świetne IDE do pracy z cpp zamiast Javy. 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.

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 5.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 właśnie 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 Javi’e nie jest to uciążliwe (a wręcz bardzo pomocne), to w przypadku pracy z cpp może to przeszkadzać osobą 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 | , , , , , | Brak komentarzy

Unreal Engine część 1

Unreal Engine

Unreal Engine

Na początek warto wiedzieć, że wiele gier wydawanych na tym silniku graficznym, zawiera oprócz gry, także edytor zawartości - celowo nie piszę edytor map, ponieważ to co teraz potrafi najnowsza odsłona tego silnika graficznego można nazwać “kombajnem”.

Punktem wyjścia do poznawania tej technologi jest strona Unreal Developer Network. Znajdują się tam informacje na temat modowania gier na 2 i 3 generacji silnika Unreal. Jeśli nie jesteśmy posiadaczem żadnej gry z edytorem UnrealEd, możemy pobrać wersję 2 (edukacyjną) i skorzystać z materiałów pomocnych przy jego poznawaniu.

W sieci można znaleźć wideo tutoriale pokazujące tworzenie modów na bazie technologi Unreal. Jednym z ciekawszych portali jest 3dbuzz.com - na jego stronach mamy dostęp (po darmowej rejestracji) do bardzo dużej bazy wideo tutoriali, w tym dotyczących technologi Unreal, które dostępne są po rozwinięciu zakładki Unreal Tech. Do niedawna dostępne były materiały “szkoleniowe” do Unreal Tournament 2003 ale ostatnio pojawiły się też do najnowszej gry z tej serii. Wcześniejszy layout i polityka serwisu powalała na pobranie tutoriali w formacie avi, które łącznie zajmują około 2.3GB - niestety teraz trzeba wykorzystać osobną aplikację/plugin do pobrania tej zawartości na dysk twardy. Same tutoriale są w bardzo przyjemnej formie, prowadzący się nigdzie nie spieszy i można wszystko zrozumieć bez najmniejszych problemów przy średniej znajomości języka angielskiego.

Wracając do najnowszej odsłony Unreal Torunament 3 -  wszelkie informacje o tworzeniu modów znajdziemy w odnośniku na stronie głównej UDN - zaprowadzi on nas do UT3ModHome, gdzie znajdziemy mnóstwo informacji potrzebnych do stworzenie moda - od informacji dla level designerów (Content Creation: Level Design), przez artystów 2D/3D (Content Creation: Art and Animation) i programistów (Technical and Programming). Znajdziemy tam również do pobrania najnowsze patche oraz uaktualnione kody źródłowe skryptów gry.

Pokaźną listę wideo tutoriali z pierwszej ręki dostajemy również na płycie bonusowej do Unreal Tournament 3.

Jako że jestem programistą, interesują mnie informacje z działu Technical and Programming. Po zapoznaniu się z informacjami z działu Essential Reading, można od razu przejść do zapoznania się z językiem skryptowym UnrealScript.

27 czerwiec, 2008 Opublikował/a zenedith | engine, game, mods, scripts | , , , , , , | Brak komentarzy

Jak to było: Nauka cpp część 2

Miałem chwilowy zawrót głowy więc się trochę ten wpis opóźnił. Przejdźmy jednak na powrót do nauki cpp.

Zaczynamy od samych podstaw. Jak już pisałem w jednym z pierwszych wpisów na moim blogu, można rozpocząć od dwóch następujących pozycji:

  1. Symfonia C ++ Standard - mam wersję 3 tomową, wydanie 5 poprawione. Obecnie dostępna jest odświeżona wersja, opisująca i zgodna z obecnymi standardami języka cpp uzupełniona np. o opis i wykorzystywanie klasy std::string. Dokładne informacje można uzyskać ze spisu treści.
    Uważam, że książka jest rzeczywiście “łatwym podręcznikiem”, jak pisze sam autor - zawiera bardzo przyjazne zapoznanie czytelnika z prezentowanym zagadnieniem, odpowiada na szereg pytań które się nasuwają (bądź nie) przy czytaniu kolejnych rozdziałów. Uważam że książka przeznaczona jest dla każdego, kto chce się nauczyć programować. Bardzo dużo przykładów, tłumaczonych czytelnikowi linia po linii.
    Książka ta wprowadzi nas w solidne podstawy języka cpp. Jej uzupełnieniem była kiedyś seria Pasja C++, lecz nie wiem jak to obecnie wygląda.
  2. Thinking in C++ oraz Thinking in C++ Tom 2 - możliwa do pobrania w formie ebook’ów ze strony domowej autora. Autor jest równie niesamowity w cierpliwym i przyjaznym tłumaczeniu zagadnień jak autor wspomniany wyżej. Bardzo dużo przykładów, bardzo dobre wprowadzenie w świat obiektów. Drugi tom wprowadza w bardziej zaawansowane wykorzystywanie cpp. Olbrzymim plusem jest oczywiście inicjatywa udostępnienia wersji elektronicznych swoich (wybranych) książek - jedyną przeszkodę może stanowić znajomość języka angielskiego…

“Nie od razu Rzym zbudowano” i do tematyki programowania należy podejść z olbrzymią dozą samozaparcia i co najważniejsze: przepisywać kod do używanego IDE i kompilować. Zmieniać. Kompilować. Dzięki temu nasza wiedza będzie nie tylko teoretyczna (która nie będzie ugruntowana) ale również praktyczna (wyłapiemy wtedy bardzo szybko błędy składniowe, utrwalimy sobie słowa kluczowe języka, wzorce tworzenia metod, klas - jednym słowem praktyka).

Gdy już mamy ten etap za sobą, warto jeszcze przeczytać kurs Xion’a - Megatutorial “Od zera do gier kodera”. Stanowi on bardzo dobrą powtórkę materiały oraz zwraca uwagę na pewne niuanse, które mają szczególne znaczenie dla programistów gier. Oczywiście sam kurs jest podzielony na 3 części:

  1. Podstawy programowania,
  2. Zaawansowane C++,
  3. Windows API.

Dla mnie szczególnie pomocny okazał się rozdział o szablonach (bardzo zaawansowane) oraz cześć 3 kursu (Windows API), ponieważ w jednym miejscu mamy solidną porcję wiadomości na temat programowania okienek.

W tym momencie posiadasz (konkretną) wiedzę na temat szablonów, proponuję zatem ustabilizować swoją wiedzę w temacie kontenerów. Bardzo dobrym punktem wyjścia w tym momencie może być portal cplusplus.com - zresztą wspomniany portal powinien być zawsze “pod ręką” czyli w zakładkach przeglądarki internetowej.
Gdy wiedza o kontenerach jest na odpowiednim poziomie, przeskakujemy na algorytmy - tak naprawdę będziesz używał nielicznych z nich, ale wiedza o istnieniu właśnie “tych” użytecznych musisz przecież mieć.

Jeśli zainteresowany jesteś w ogólności programowaniem gier w cpp (chociaż niekoniecznie) to polecam książkę C++ dla programistów gier lub całą serię Perełek programowania gier, ale to już temat na inny wpis.

Uff. Było tego trochę. Można przez to przejść spokojnie w 3-5 miesięcy. Warto sprawdzić czego się nauczyliśmy oraz poznać niuanse języka cpp przez odwiedzenie strony Guru of the Week. Na stronie tej znajduje się około 90 (w tym momencie 88) zadań programistycznych z różnych zagadnień wykorzystywania języka cpp, które zawierają też poprawne odpowiedzi, z których można się naprawdę dużo jeszcze dowiedzieć. Jeśli chodzi o książkę to polecam Exceptional C++ Style 40 New Engineering Puzzles [Addison Wesley, 2004], oraz trochę starszą Herb Sutter - More Exceptional CPP [Addison Wesley, 2001], które są pisane w ten sam sposób (gdyby ktoś miał problem ze zdobyciem to mogę pomóc).

Bardzo pomocne może się również okazać przeczytania FAQ twórcy języka cpp - Bjarne Stroustrup’s C++ Style and Technique FAQ.

Oczywiście sam język programowania to nie wszystko - warto poświęcić trochę czasu na poznanie struktór i różnych algorytmów. Można wtedy sięgnąć po biblię Wprowadzenie do algorytmów Cormen’a lub trochę “nowszą” książę Algorytmy. Od podstaw.

Cóż, w tym momencie potrafię już tylko wskazać kierunek, którym sam będę podążał (jeśli chodzi o programowanie w cpp i gdy uporam się do końca z niektórymi z wymienionych wyżej):

  • Meyers Scott - Effective C++,
  • Meyers Scott - More Effective C++.

Na koniec jeszcze coś, co mogłem podać na początku…ale nikt by wtedy nie czytał mojego wpisu do końca - Z czego się uczyć (gamedev.pl).

26 czerwiec, 2008 Opublikował/a zenedith | books, cpp | , , , , , , , , | Brak komentarzy

Bjam i kompilacja bibliotek Boost’a.

BoostBoost jest potężnym zbiorem bibliotek rozszerzających funkcjonalności języka cpp oraz STL - można powiedzieć, że Więcej niż C++. Obecnie dostępna wersja to 1.35.0. Z Boost’em miałem już do czynienia w przeciągu ostatnich miesięcy ale nie było to doznanie na wyższym poziomie - używałem po prostu “zwykłego” Boost’a.
Niedawno postanowiłem przyjrzeć się bliżej biblioteką wchodzącym w skład Boost’a - na początek padło na Filesystem. Wcześniej miałem prekompilowane liby i dll’e w katalogu boost1.3.5/lib, które załatwił za mnie świetny system build’u Boost.Build współpracujący z Boost.Bjam.
Wystarczy bowiem dodać aplikację bjam.exe do zmiennej środowiskowej PATH i odpalić z katalogu głównego Boost’a polecenie bjam -a. Skompilowane lib’y trafią wówczas do katalogu bin.v2 chyba że ustawimy inaczej.
Alternatywnie dostępny jest wszystko mający, wszystko robiący instalator, który można znaleźć na stronie http://www.boostpro.com.
Ponieważ wcześniej skompilowałem wszystko podanym wyżej poleceniem, biblioteki zostały skompilowane w wersjach “dynamic link“.
Próba kompilacji (Multi-threaded Debug DLL (/MDd)) prostego przykładu zakończyła się jednak niepowodzeniem z komunikatem:
LINK : fatal error LNK1104: cannot open file ‘libboost_filesystem-vc80-mt-gd-1_35.lib’
LINK : fatal error LNK1104: cannot open file ‘libboost_system-vc80-mt-gd-1_35.lib’

Boost stosuje konwencję oznaczania plików statycznych bibliotek przez dodatnie przedrostka lib.

Zdziwiłem się, dlaczego poszukiwane są pliki statycznych bibliotek ale postanowiłem sprawdzić, czy rzeczywiście plików nie ma (ponieważ byłem pewny że ścieżki include i lib są w Visual’u ustawione prawidłowo).
Okazało się, że rzeczywiście nie ma podanych plików.

Po krótkich poszukiwaniach otrzymałem odpowiedź, która mówiła, że w przypadku dynamicznego dołączania bibliotek boost’a należy użyć dodatkowego makra:
#define BOOST_ALL_DYN_LINK
#define BOOST_LIB_DIAGNOSTIC

dołączanego przed includem bibliotek Boost.

Co jednak w przypadku gdy chcemy mieć statycznie dołączane biblioteki?
Cóż, mamy dwie możliwości:

  1. przekompilowanie bibliotek boost’a w konfiguracji statycznego linkowania, która dokonuje się po podaniu dodatkowego parametru do Bjam: bjam link=static -a, gdzie Visual ustawiony jest w konfiguracji Multi-threaded Debug DLL (/MDd), która wcześniej wyrzuciła mi oba błędy (poszukiwała bibliotek statycznych),
  2. usunięcie zapisanego wyżej makra i ustawienie opcji kompilatora na Multi-threaded Debug (/MTd).

23 czerwiec, 2008 Opublikował/a zenedith | boost, cpp | , , , , , , | Brak komentarzy

Przerwa na .. Wrocław

Stary rynek we WrocławiuPochodzę z okolic Poznania, a dokładniej to mieszkam w promieniu 80km od tego miasta. Miasto poznałem bardzo dobrze podczas studiowania, z naciskiem na to co znajduje się w jego centrum, studenckim centrum. Zwiedzać większych polskich miast nigdy nie miałem potrzeby, ponieważ liczyłem na pracę tylko i wyłącznie w Wielkopolsce. Jednak jak to często bywa - kiedyś przyjdzie czas na weryfikację wczesnych osądów i decyzji. W ostatnim miesiącu dość “często” bywałem poza granicami Wielkopolski. Wrocław jest miastem, które poznałem najbardziej, ponieważ miałem okazję przez 2 miesiące w nim pracować - bardzo ładne miasto, bogate zaplecze pubów “dla studentów”, niezła komunikacja miejska (ale MPK Poznań na czele) a przede wszystkim POTĘŻNA branża IT. Oczywiście można się spierać, czy taka potężna jak w stolicy. Dla mnie jednak to nie jest istotne, biorąc pod uwagę tylko jedną wadę stolicy, która ją w moich oczach dyskwalifikuje - spęd ludzi. Ostatnio usłyszałem w odpowiedzi na taki osąd, że nie mieszkam tu “od małego” i nie wiem jak to jest ( i że oczywiście jest świetnie). Oczywiście, tylko że ta osoba chyba też nie przekonała się, że można żyć inaczej niż w ciągłym pędzie, spędzaniu godzin w korkach nie mówiąc o kosztach życia (które trzeba sobie wkalkulować w pensję). Wiem więc jedno - Warszawa to nie miejsce dla mnie chociaż People Can Fly…Byłoby miło. Ale to już temat na inny wpis.

Ten wpis się tu pojawia dlatego, że dokładnie wczoraj spędzałem tam cały dzień załatwiając z pozytywnym skutkiem parę spraw (m.in. rozmowa o pracę) z branży IT ogólnie oraz gamedev. Wygląda bowiem na to że Nikita…(to już tajemnica).

Swoją drogą muszę spisać pytania z rozmów o pracę ku potomnym.

Jest jeszcze jedno miasto o którym chciałbym napisać - Szczecin. Zrobił na mnie bardzo pozytywne wrażenie. Może to być jednak nie prawdziwy osąd (który może zostanie skorygowany/potwierdzony przez kogoś w komentarzach). Gdybym miał opisać Szczecin to powiedziałbym, że jest to skromniejsza wersja Wrocławia pod kątem “bogactwa” miasta oraz pod kątem branży IT.

Oczywiście konkluzja z tego wszystkiego jest taka, że Poznań to miasto “tragiczne” - tak słabo rozwinięta branża IT i brak firm z branży gamedev (tak mi się wydaje) je w moich oczach odrzuca prawie tak bardzo jak Warszawa. Na plus dla Poznania działa oczywiście świetna infrastruktura oraz koszt życia..
Można się ze mną spierać, że tak nie jest, że przesadzam - jednakże będąc w stałym kontakcie z różnymi firmami zajmującymi się HR, dostałem swoje potwierdzenie z pierwszej ręki (ok, może z drugiej).

Z drugiej stony stajemy się bardzo mobilni - nie pierwszy raz to słyszę, jestem zresztą tego świetnym przykładem. Bo cóż możemy zrobić, jeśli Poznań daje nam takie “możliwości”..

20 czerwiec, 2008 Opublikował/a zenedith | Uncategorized | , , , , , | 1 komentarz

Jak to było: Nauka cpp część 1 (tło)

Mój pierwszy sensowny kontakt z cpp jak i z java miałem na studiach. Do tamtej pory “bawiłem” się dość ambitnie w php4 robiąc pewną grę (bijatykę turową) na podstawie świata Dragon Ball (swoją drogą bardzo fajna seria anime i mangi) oraz mniej ambitnie w delphi. Jednak dopiero poznanie tej największej wartości wśród programistów gier (czyli cpp) pozwoliło mi spojrzeć na tworzenie oprogramowania w inny sposób.

btw. byłem w szoku, gdy dowiedziałem się ile lat miał już język cpp.

Początki z cpp były dla mnie trudne ze względu na wskaźniki - nie miałem zacięcia żeby je zrozumieć i przez jakiś czas przy nich kulałem. Wszystko jednak można zrozumieć jeśli się tylko chce i poświeci trochę czasu na praktykę, nie tylko teorię.

W między czasie pojawiły się na studiach zajęcia z Javy. Początkowo byłem nastawiony na nie - po co mi dodatkowy język programowania, który jest wolniejszy od cpp, można w nim pisać w zasadzie jakieś tam aplety bo przecież do “normalnych” aplikacji mam już konkretne narzędzie w postaci cpp, a multi-platformowość - kto by tam się nad tym wtedy zastanawiał.. Ponieważ trzeba było się z tym zmierzyć, więc się zmierzyłem. Jak to czasem ironicznie bywa, okazało się, że Java ma mnóstwo zalet w stosunku do cpp i tak naprawdę stałem się “wojownikiem w imię Javy”.

To wszystko doprowadziło do tego, że moja znajomość cpp nie wykraczała poza mocne podstawy, ponieważ nie miałem jeszcze wtedy pojęcia co to tak naprawdę jest STL. Podsumowałbym to w ten sposób, że moja wiedza nie wychodziła za wiele poza ramy książki Symfonia C ++, chociaż była to usystematyzowana i konkretna wiedza.

Tak było do momentu, gdy zrozumiałem, że żeby stworzyć grę czy framework graficzny muszę mieć dużą wiedzę na temat cpp. Oczywiście zrozumiałem to za późno, ale lepiej później niż .. jeszcze później.

Mając solidną wiedzę na temat obiektowego programowania (OOP) w teorii i praktyce, czas był najwyższy na rozpoczęcie re-edukacji cpp..

(i tak kończy się tło mojej znajomości cpp jeszcze 6 miesiący wstecz).

18 czerwiec, 2008 Opublikował/a zenedith | cpp, java | , , , , | Brak komentarzy

Wróciłem

Wróciłem pełen sił i tematów na zapełnienie bloga. Żeby nie było to w skrócie co się działo w tym czasie:

  • zakończenie prac nad projektem Nikity, gdzie byłem głównym programistą.
  • dogłębne poznawanie języka cpp,
  • zapoznanie z technologią Unreal Engine 2 i 3,
  • próba sił z technologią Java EE,
  • rozmowy o pracę w gamedev.

Postaram się teraz w kolejnych wpisach opowiedzieć więcej na temat każdego wymienionego zagadnienia, a przede wszystkim już na bieżąco uzupełniać blog’a.

17 czerwiec, 2008 Opublikował/a zenedith | Uncategorized | | Brak komentarzy

CPP -> skrypty zewnętrzne część 1

Pamiętam jeszcze czasy “zabaw” z C# i moment, w którym również szukałem języka skryptowego współpracującego z CS. Nie szukałem długo - C# w tej roli mi nie odpowiadał. Dowiedziałem się sporo dobrych rzeczy o Lua - zaliczam to na plus.

Pomijając całą tą otoczkę wokół samej Lua, zgłębiwszy podstawy współpracy Lua z C# do czegoś udało mi się dojść ;) Miałem jednak trochę pecha - projekt upadł. W zasadzie w tym momencie zatrzymała się moja dalsza eksploracja języka C#.

Wracam więc do głównego tematu. Oczywistym wyborem mogłaby być lua w “czystej” postaci, ale zdecydowałem się poszukać dalej. W zasadzie liczą się 4 możliwe rozwiązania z 6 podanych niżej:

  1. Wspomniana Lua,
  2. Mocno rozszerzalny Python,
  3. GameMonkey,
  4. AngelScript,
  5. Zawsze można stworzyć swój język skryptowy i parser, korzystając np. z  serii artykułów Złośliwca,
  6. Java przez interfejs JNI.

Bardzo dużo informacji na temat wiązania skryptów Python’a z cpp zawiera strona codesampler a konkretnie rozdział “Extending & Embedding Python with C/C++”.

Jeśli chodzi o Lua to warto odwiedzić stronę lua wiki, oraz docelowo podstronę z Code wrappers. Z dostępnych “Development environments” dla Lua najbardziej przypadło mi do gustu luaeclipse, z uwagi na IDE Eclipse.

Nie najgorzej czułbym się pisząc skrypty w Javie, wykorzystując technologię JNI. Jak się okazuje, język skryptowy używany przez engine Unreal - UnrealScript, ma wiele cech Javy ( i cpp).

29 grudzień, 2007 Opublikował/a zenedith | cpp, game, scripts | , , , , , , , , , | Brak 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 | , , , , | Brak komentarzy

Java -> cpp

Trudno jest powrócić do cpp, gdy przez dobry rok pracowało się niemal wyłącznie w środowisku Javy. Prawda jest taka, że w czasie tym skupiłem się na poznaniu nowej technologi, jaką oferuje MS w postaci języka C# i całego tego “managed”.

Było fajnie - szybkość tworzenia aplikacji i intuicyjna praca - tak jak w Java’ie. Nawet jeśli chodzi o tematykę gier i tworzenia na XBOX’a, czyli technologię XNA i Managed DX. Niestety, MS się wycofał z dalszego wspierania MDX i przerzucił wszystko do XNA - mi to nie pasuje.

Zatem jak szybko przestawić się na język cpp?

Zacząłem od Symfonii - dość szybko przeleciałem stare, 3 tomowe wydanie. Okazało się, że jest to dość “stary” język cpp, poza tym nie bardzo kojarzyłem czym tak naprawdę jest STL - a o tym mówiła Pasja, której niestety nie posiadałem.

Odwiedziłem trochę portali internetowych znalazłem bardzo przyjemny, na czasie kurs, który brzmiał bardzo górnolotnie ” Megatutorial “Od zera do gier kodera”. Wprowadza czytelnika w świat cpp od podstaw, przechodząc do coraz bardziej skomplikowanych mechanizmów tego języka, mając cały czas na uwadze wszelkie niuanse i zwracając uwagę na mogące się pojawić problemy. Kurs ten omawia również technologię WinAPI, czyli programowania pod Windows.

22 grudzień, 2007 Opublikował/a zenedith | cpp, java, xna | , , , , , | Brak komentarzy

Hello world!

Stało się, zaczynam prowadzić bloga!

19 grudzień, 2007 Opublikował/a zenedith | cpp, game, java, xna | | Liczba komentarzy: 2