A napiszę!
31, październik 2008
Ostatni wpis prawie 5 miesięcy temu… Cholerka, sam nie wiem czemu ale jakoś tak wyszło. Co się działo przez ten czas? Dosyć sporo.
Na początku lipca wziąłem udział w World Compo. Poziom nie był zbyt wygórowany, zająłem trzecie miejsce. Zacząłem pisać “po godzinach” nowy framework, który ma z czasem przekształcić się w silnik pod FPS’a. Piszę “po godzinach”, bo dołączyłem do Wastelands Interactive i Bitter Glory jest teraz moim głównym projektem.
Edytor Red Streets jest praktycznie na ukończeniu ale praca nad nim stoi w miejscu, brak czasu. Chciałbym go niedługo wreszcie skończyc i zamknąć rozdział Red Streets, a wxWidgets więcej na oczy nie widzieć.
Od pewnego czasu myślę nad stroną domową. Na wordpress’a nie narzekam ale chciałbym coś z większymi możliwościami. Na stronce docelowo oprócz bloga miałaby być sekcja z artykułami, może zasoby, rozbudowane linkowisko i jakiś download. Pierwszą koncepcją było stworzenie czegoś własnego w html (tym, którego pamiętam jeszcze z podstawówki więc nie ma mowy o div’ach i nowych standardach), jednak po stworzeniu layoutu zobaczyłem ile roboty będzie z dodaniem pojedynczego newsa i dałem sobie spokój. Myśl druga: CMS. Zainstalowałem PHP-Fusion, który niestety przygniótł mnie możliwościami. Chciałem prostego systemu do niewielkich serwisów. Znajomy polecił jPortal2. Zacząłem testować, stabilność sux. Niektóre elementy można zmieniać tylko przez modyfikacje plików, bo przy zmianie przez panel admina sypała się cała strona. Po kolejnym crashu pozbyłem się tego cms’a. Dziś pokombinuje nieco z Joomlą, może to będzie rozwiązanie. A w między czasie mam zamiar pouczyć sie php i stworzyć własne oskryptowanie, dokładnie takie jak chcę. Kolejna sprawa to kwestia serwera – obecnie siedzę na ugu.pl, jednak reklamy to ścierwo którego nie znoszę i nie chcę nimi katować innych na mojej stronie. Rozważam najtańszy pakiet na ovh.org.
To na razie byłoby na tyle, następna notka (i raczej ostatnia) będzie zawierała link do nowej stronki (miejmy nadzieję
)
trzymajcie się!
Atraktory
5, czerwiec 2008
W ostatnim czasie trochę się zaniedbałem jeśli chodzi o prowadzenie bloga. Wpływ na to miało kilka czynników. Po pierwsze, wiadomo koniec roku, oceny, poprawy i tak dalej. Tak naprawdę jednak dosyć mocno zastanawiam się nad sensem istnienia bloga w takiej formie jakiej jest teraz. Chciałbym prowadzić raczej coś na kształt xion.org.pl ale na takie częste publikowanie miniartykułów to jestem jeszcze za cienki
W każym razie postanowiłem, że będę pisa rzadziej a treściwiej, przedstawiając konkretne prace i projekty. Dzisiaj na pierwszy ogień pójdą atraktory.
Pierwszy raz zetknąłem się z nimi na warsztacie oglądając prace Zbyszka i Kwazara. Pomyślałem, że ładne i wogóle ale takie coś to na pewno wyższa szkoła jazdy. Jakoś niedługo potem zobaczyłem, że wyżej wymieniony już Zbyszek napisał artykuł co i jak z tymi atraktorami. Swierdziłem, że fajnie byłoby coś takiego napisać, szczególnie, że już niedługo koniec roku i przydałoby się zakręcić za szóstką z infy.
Moje prace:
Pickover
Clifford
Trig 1
Trig 2
Lorenz
Pisane w C++, rendering DirectX.
No i przy okazji zrobiłem elegancką prezentację na informatykę, wpadła dobra ocena dzięki czemu podniosę sobie tragiczną średnią
Pozatym napisałem loader plików *.obj. Toporny jak Pudzian ale działa
. Podstawowa funkcjonalność jest (wierzcholki, normalne, coordy tekstur + teksturowanie), troche nie chciało mi się bawić w obsługę materiałów i tak dalej ale już dziś zabieram się za nową, porządną wersję w której to wszystko zaimplementuję. Główny problem polega na tym, że muszę to wszystko wsadzić do interfejsu LPD3DXMESH (dla wygody sprawdzania kolizji promień-model). Przypomniałem sobię o tym dopiero jak zmieniłem całą klasę CMesh i CMeshInstance na obsługę VertexBuffer’ów… Taka mała wpadka.
Jeśli będę zadowolony z ostatecznej wersji loadera to z pewnością udostępnie.
Red Streets Editor – postępy
14, kwiecień 2008
Dawno nie pisałem nic o głównym projekcie w któym uczestnicze. Szczerze to nie wiem w jakim stopniu zaawansowania aktualnie jest sama gra ale w grywalne minidemo już miałem okazję zagrać jakieś dwa miesiące temu. Ja do edytora dorobiłem kilka przydatnych opcji, między innymi:
- podświetlanie modelu
- obramowanie wybranego modelu boundingbox-em
- wstępna obsługa warstw
- zlikwidowane kilka bugów
Podłoże będzie składało się z trzech warstw
- pierwsza – czyli ulice, chodniki i tego typu elementy
- druga – czyli półprzezroczyste dodatki w stylu dziury w jezdni, zakratowane wejścia do studzienek ściekowych etc.
- trzecia – pozostałe elementy czyli drzewa i cała reszta
Warstwy ułożone będą następująco:
- trzecia (będzie nieco “wyżej” niż pozostałe, przysłania modele i inne warstwy)
- modele
- druga
- pierwsza
Po skończeniu zabaw z przesuwaniem obiektów (które i tak jest do poprawy :/) w planie mam obsługa dodawania nowych elementów na mapę a potem zacznę kombinować z formatem i zapisem/odczytem mapek.
Chyba mogę już powiedzieć, że jestem bliżej końca niż początku
Bo tak wogóle to marzy mi się totalny refaktoring kodu ale z moim lenistwem…
Compo
29, marzec 2008
Dwa dni temu skończyło się wielkanocne compo – konkurs w pisaniu gier na czas, jesli ktos jest spoza warsztatu i nie wie
Tematem była ‘gra absurdalna’. Ta edycja była dla mnie szczególna, zadebiutowałem jako uczestnik
Moją prace nazwałem gabsurdame (absurd + game
): Przygoda pana Miećka. W grze wcielamy się w tytułowego Mieczysława – czarodzieja wyrzuconego z pracy za %
. Miecio jednak się niepoddał i znalazł nową robotę, jako murarz na budowie. Strasznie rozpił swoich kolegów budowlańców (alkomagiczne napoje mają naprawdę dużą moc…) dlatego pewnego dnia jedna z postawionych przez nich ścian zaczęła się walić. Nasz bohater akurat wracał do domu, gdy zaczęły na niego spadać cegły. Żeby przeżyć, musi ich unikać. Tu gra przestaje być śmieszną zręcznościówką a zaczyna być czystym absurdem. Otóż mamy dwa poziomy trudnośći – na pierwszym, naszym celem jest PRZEGRAĆ a na drugim, ani wygrać, ani przegrać sie po prostu NIE DA
Teraz czas na trochę samokrytyki. Gra nie zachwyca niczym – ani grafiką (chociaż jest znośna), ani dźwiękiem (który ważne, że wogóle jest) ani gameplayer (który imo jest całkiem zabawny). Niektórzy skarżyli się na “chód” Miećka. Nie zapominajmy, że jest urżnięty w trzy dupy. Zmienia kierunek chodu, przyspiesza/zwalnia, czasem wchodzi w niewidzialne teleporty. IMO taki pokręcony gameplay jest plusem ale gusta to gusta.
Wyniki compo przedstawiają się następująco:
1. Ciunkos
2. sobol
3. heavymental
4-8. reszta uczestników
9. gamer.cpp (ja
) ex aequo (tak to się pisało?) z 4 innymi uczestnikami.
Niestety na 16 uczestników nikt na mnie nie zagłosował, więc nie zdobyłem ani jednego punktu. Szczerze mówiąc zdziwiłem się trochę bo wg mnie wysłałem pracę lepszą niż kilka osób będących w klasyfikacji przede mną.
Wygrał, całkiem zasłużenie, Ciunkos. Ja dałem 3 pkt jego pracy, była najbardziej rozbudowana, ciekawa, wciągająca i co najważniejsze – absurdalna. Drugie miejsce przypadło sobolowi (ode mnie 2 pkt), za to, że jego gra była najbardziej profesjonalna ze wszystkich. Trzeci na podium stanął heavymental – według mnie niezasłużenie, jego praca nie podobała mi się. Raz że była krótka, dwa że grywalność zerowa. Podobała mi się jedynie grafika.
Wracając do mojej pracy, uważam że została trochę niedoceniona. Sam postawiłbym ją na trzecim miejscu ale widocznie tylko mi się podoba
Może na następnym compo będzie lepiej… Gratuluje zwycięzcom i przegranym, najważniejszy jest przecież udział.
Garść linków
Compo na oficjalnej stronie konkursu
Temat compo na forum gamedev.pl
Moja ocena prac (na forum)
Download wszystkich prac
To co wyżej tylko na rapidshare.de (szybszy download)
Burdel, burdel, burdel.
14, marzec 2008
Wbrew tytułowi wpisu nie będzie tu słowa o zamtuzach, domach publicznych czy jak to sie tam inaczej nazywa. “Burdel” to słowo obrazujące stan mojego kodu.
Musze się przyznać, że nie doceniałem wartości dobrego projektu. Teraz, po dwóch i pół miesiącach kodzenia do bólu na żywca, bez żadnego przygotowania mam taki pierdolnik w kodzie że sam tego nie moge ogarnąć… Jest kilka uporządkowanych plików (klasy zaimportowane z silnika) a reszta to po prostu anarchia, samowola i wogóle cała reszta zua. Główny plik main.cpp ma ponad 600 linijek :D (dobrze przynajmniej, że można “pozwijać” funkcje do jednej linijki). Czas na zmianę taktyki.
W weekend zrobie sobie ładną listę todo wraz z terminami wykonania a na oddzielnej kartce postaram się przynajmniej prowizorycznie opisać działanie tego co będę próbował implementować. Na dłuższą metę muszę nadrobić zaległości – poczytać o architekturze/projektowaniu oprogramowania.
Btw, znalazłem fajną strone z rozbudowanym kursem WinAPI i C++: LINK
Czytelność kodu
12, marzec 2008
Niedawno napisałem i opublikowałem miniartykuł – “Czytelność kodu”. O czym jest chyba nie trzeba mówić
Streszczając, opisuje trzy podstawowe zagadnienia (komentarze, stosowanie wcięć i nazewnictwo) pomagające pisać jasny i przejrzysty kod. Ciekawsza niż sam art wydaje się być dyskusja na forum (trzy strony…). Kilka (naście) osób opisało swoje przyzwyczajenia i nawyki na ten temat – każdy może wybrać sobie co mu pasuje, nie ma ścisłych reguł.Przymierzam się do “apgrejdu” tekstu do wersji 1.1 uwzględniając sugestie innych. Jak na razie brak czasu ale mam nadzieje, że w końcu się za to zabiorę.
Link do artykułu i jednocześnie dyskusji na forum: KLIK
Inne linki:
Dyskusja – kod po polsku czy po angielsku?
Zaawansowani a komentarze w kodzie
Writing readable code (ang)
C++ Programming Style Guidelines
Colobot – gra o programowaniu
3, marzec 2008
Colobot jest, jak to nazywa Wikipedia, edukacyjną grą strategiczną. Nie jest to jednak typowy RTS, bo z nim właśnie kojarzy się pojęcie gry strategicznej – jest to coś zupełnie innego. Gra oferuje nam trzy tryby rozgrywki:
Misje
To fabularna część gry. Ziemii grozi kataklizm, ludzie muszą znaleźć sobie nowe miejsce we wszechświecie. Gracz wciela się w astronaute, którego zadaniem jest odnalezienie planety na której mogliby zamieszkać Ziemianie. W każdej misji mamy określone cele, które możemy wykonać na dwa sposoby: sterując robotami oraz… no właśnie, programując je (o tym za chwilę).
Ćwiczenia i wyzwania
Te dwa tryby to pojedyncze, krótkie misje o określonym celu, który mamy osiągnąć odpowienio programując robota. W ćwiczeniach stykamy się z coraz trudniejszymi zadaniami, od prostego poruszania robotem do znajdowania wyjścia z labiryntu lub szukania przeciwników i ich eksterminacji (przy czym latające działo, które programujemy musi utrzymywać odpowiednią wysokość – górzysty teren, nie tylko szukać ale i gonić przeciwników itd). W nauce programowania pomaga nam osobisty komputer naszego astronauty – SatCom. W SatCom’ie zapoznajemy się z celami misji, wskazówkami dotyczącymi tego, jak ma wyglądać program. Mamy w nim również dostęp do dokumentacji języka
Programowanie
Czyli najciekawsza część gry. Roboty programujemy w opracowanym specjalnie na potrzeby gry języku o nazwie C-BOT. Składniowo jest bardzo podobny do C++ i Javy.
Przykładowy program w języku C-BOT:
extern void object::SzukTyt()
{
object rudatyt; // deklaracja zmiennej
object huta; rudatyt = radar(TitaniumOre); // znajdź położenie rudy tytanu
goto(rudatyt.position); // idź do rudy tytanu
grab(); // podnieś ją huta = radar(Converter);
goto(huta.position);
drop(); // upuść rudę tytanu
move(-2.5); // cofnij się 2,5 metra
}
Gra wizualnie nie zachwyca, grafika (3D) ma już swoje lata. Dobrego udźwiękowienia też nie uświadczycie ale nie ma co się przejmować, zachwycanie się fajerwerkami graficznymi nie jest celem Colobot’a.
Jeśli macie młodsze rodzeństwo i chcecie je zachęcić do programowania to polecam. Pamiętam, że grałem w to pierwszy raz pare lat temu i nie mogłem przejść początkowych misji. Teraz przeszedłem wszystkie. Dla “pr0″ gra będzie stanowczo za łatwa ale co się dziwić, targetem są gimnazjaliści, którzy nigdy nie zetknęli się z programowaniem. Mam nadzieje jednak, że da się ściągnąć pare dodatkowych, trudniejszych misji
Na koniec pare screenów (kliknij, żeby powiększyć):

Edit: zapomniałem dodać, że istnieje jeszcze bliźniaczo podoba gra – CeeBot. Nie ma w niej trybu fabularnego, zrezygnowano też z możliwości bezpośredniej kontroli astronauty. Ukazały się cztery wersje gry, różnią się targetem a więc i trudnością zadań programistycznych. Producentem obu gier jest Epsitec, dystrybucją Colobota zajmuje się Alsyd, natomiast Ceebota Play.
Cenne znalezisko
28, luty 2008
Jakis czas temu znalazlem ciekawa strone:
Mamy tam do sciagniecia prawie 5,5 tysiaca ksiazek i ebookow (wszystko w *.pdf) za tytulowe… free! Tak na prawde jest to baza linkow (najczesciej rapidshare) do pobrania tych materialow. Kwestii piractwa nie poruszajmy bo to indywidualna sprawa. Z jednej strony nie popieram a z drugiej niektorych ksiazek po prostu nie ma a jak sa to cholernie drogie. W bazie mamy opis ksiazki, oceny, link. Moja rada: jesli chcecie cos stamtad sciagnac to pospieszcie sie albo chociaz skopiujcie linki – strona moze dlugo nie pozyc…
pozdrawiam
Po przerwie
28, luty 2008
Witam wszystkich, nie bylo mnie tu juz dluzszy czas (ferie, snowboard, imprezy
), wiec wypadaloby cos w koncu napisac.
Jak ostatnio pisalem pracuje nad edytorem map do gry Red Streets. Red Streets bedzie podobne do pierwszych czesci serii GTA. Pisana w C++, za render odpowiada OpenGL. Teraz nieco o edytorze.
Do tej pory zrobione:
- szkic layoutu (kontrolki itd)
- viewport (render DirectX)
- podstawowe przeksztalcenia modeli (obroty, skalowanie, translacje)
- wyswietlanie warstw podloza (dostepne 3 warstwy)
- input z myszki, przesuwanie modeli (prowizorka, do poprawienia)
- kamera
- logger
Do zrobienia:
- format map
- zapis/odczyt map
- zarzadzanie modelami
- loader meshy *.obj (w tej chwili czyta tylko *.x)
- poprawa dzialania niektorych elementow
- cala reszta
Uzywam:
- c++ – kod
- DirectX – rendering
- wxWidgets – GUI
Screeny z edytora:
(kliknij zeby powiekszyc)
W tle moj piekny pulpit z Warsztatowa tapeta ;]
I screeny z gry (grafika testowa):
(kliknij zeby powiekszyc)
Sory ze napisze kilka notek po kolei ale nie chce wrzucac do jednej kilku tematow
Aktualne projekty
17, styczeń 2008
Do następnego razu!




