Pulpit programisty

30, marzec 2008

Mam ochotę na małą blogową wariację. Wybór padł na krótką charakteryzację tego co mam na pulpicie. Oto przedmiot dzisiejszych rozkmin – moje wirualne miejsce pracy.

Free Image Hosting at www.ImageShack.us
(kliknij, żeby powiększyć)

Zacznijmy od tapety. Jej zadaniem jest ładne wyglądanie i przypominanie o tym, co mam teraz robić zamiast się opieprzać. Warsztatowy wariant wydawał mi się najodpowiedniejszy. Efekty można podziwiać na screenie. Teraz włączając komputer od razu wita mnie wesoły slogan “bo gry to nasza pasja“, który sprawia, że mój kursor mimowolnie kieruje się w strone ikonki podpisanej “Microsoft Visual C++ 2008 Express”… :) Na dole mamy kultowe już menu start. W sumie nie wyróżnia się niczym. Styl domyślny (kiedyś miałem srebrny ale od czasu formatu nie chciało mi się zmieniać). Po prawej w trayu zegarek informuje mnie o godzinie a odpalony whatpulse liczy ile życia straciłem dzisiaj klepiąc w klawiaturę. Widnieją tam również ikonki tlena – komunikatora, którego używam. Tak, muszę się przyznać, że mam kilku znajomych. Widziałem też słońce. Więcej grzechów nie pamiętam… Obok tlena włączony jest też antywirus – preferuje nod’a32 chociaż jak widać darmowy okres mi się skończył.Po przystawce czas na danie główne czyli ikony. Zaczne od lewego górnego rogu.
  • Mój komputer – dostęp do każdej partycji, flasha czy napędu DVD musi być pod ręką dlatego “Mój komputer” jest w samym rogu co bym nie musiał go szukać.
  • Komunikator Tlen.pl – żeby nie stracić łącznośći ze światem. To troche czasozżeracz ale jednak nie zdobędę się na pozbycie się go.
  • Opera – wiadomo, bez przeglądarki ani rusz. To chyba pierwsze (zaraz po winampie) co odpalam po starcie komputera. Będzie o niej jeszcze krótka notatka trochę niżej.
  • Winamp – bez muzyki bym nie strzymał dlatego ta ikona to świetość. Od razu po szkole puszczam ulubioną plytę i dopiero mogę zacząć robić coś konkretnego. Na screenie Winamp oczywiście włączony, akurat leci “Introgliceryna” z nowej płyty O.S.T.R’a. Genialny krążek.
  • 2xVisual Studio – obecnie korzystam z noweszej wersji, starej nie usuwałem ze względu na sentyment. W sumie nie wiem po co mi ikona od 2005 ale uznałem, że razem będzie im raźniej. VSC++2008E to jeden z trzech (obok Opery i Winampa) najczęściej uruchamianych przeze mnie programów.
  • Screenup – często muszę się pochwalić jakąś udaną pracą, podzielić śmiesznym screenem lub coś w tym stylu. Screenup nadaje się do tego idelanie. Korzystam z niego nawet teraz, robiąc screena do notki.
  • Nero – w weekend jeżdzę do rodziców i muszę pracować na drugim komputerze. Nagrywam sobie więc cały potrzebny stuff i w drogę :) Nie zaszkodzi też zrobić kilka kopii zapasowych danych czy po prostu nagrać koleżance składankę na urodziny :)
  • eMule – kiedyś wykorzystywany do szukania pojedynczych mp3 czy kawałków dla taty, teraz już zupełnie zapomniany. Nie pamiętam kiedy ostatnio go włączałem :)
  • Ad-Aware – jako że podczas intensywnego surfowania można nałapać dużo śmiecia od czasu do czasu skanuję dysk i usuwam robactwo.
  • AllPlayer – jak na entuzjaste dobrych filmów przystało na pulpicie musi znajodwać się jakiś player :) Wybór padł na AllPlayera, z racji obsługi wielu formatów, wygody i niezawodności.
  • MilkShape 3D – pracując z grafiką 3d często potrzeba skonwertować jakiś model, lekko go zmodyfikować czy coś w tym stylu. Darmowa wersja Milkszejpa nadaje się do tego idealnie.

 

To była główna sekcja, przejdźmy teraz do centrum pulpitu gdzie znajdują się dwie ikony.

Nazywają się ‘edytor debug‘ i ‘bugi‘. Pierwszy to skrót do aktualnego projektu (co by mieć szybki dostęp do plików) a drugi to dokument z zapisanymi błędami – pod ręką, szybko, sprawnie.

Prawy górny róg nazywa się rozrywka. Czyli jeśli mam jakąś grę (co na prawdę rzadko się zdarza [brak kasy]… raz na pół roku) to tam właśnie jest do niej skrót. Aktualnie jest to pożyczone Call of Duty 4. Świetna gra, przeszedłem już singla na 3 poziomie trudności, teraz czasem pomęcze multi ale nie jestem w to zbyt dobry. Wyszedłem z wprawy od kiedy nie gram w piraty.

Ostatnią sekcję, lewy dół okupuje kosz i katalog temp. Kosz jaki jest każdy widzi. Do temp’a wrzucam wszystkie pliki tymczasowe, ściągniete rzeczy do uporządkowania, dokumenty z notatkami itd. Istny burdel ale raz na jakiś czas sprzątam.

Tak przedstawia się mój pulpit. Nie myślcie jednak, że na codzień jest tu tak czysto. Przed zrobieniem screena wpieprzylem trzy rządki ikon do tempa i gitara gra :)

A teraz bonus – strony na karcie powitalnej Opery. Bo Opera to ma taki bajer, że można ustawić 9 stron których miniaturko-linki ładują się po włączeniu przeglądarki. Oto moja startowa operowa karta

Free Image Hosting at www.ImageShack.us
(kliknij, żeby powiększyć)

I oczywiście komentarz.

  1. Witrualna Polska – żeby wiedzieć co się dzieje na świecie, bo telewizji nie oglądam ponad 1,5 roku. (serio!)
  2. Warsztat – zaglądam kilkanaście razy dziennie. Czytam nowe posty na forum, mównicę, oglądam nowe screeny i projekty. Czasem coś skomentuję, na forum piszę rzadko.
  3. Forum klasowe – już podupadłe ale zostawiam z przyzwyczajenia. Patrzę kiedy mam jakieś klasówki :)
  4. bash.org.pl – śmieszne cytaty z irc’a, gg itd. Na prawde można zaliczyć klasycznego rotfl’a.
  5. kretyn.com – to samo co bash, może trochę niższy poziom ale częstszy update.
  6. pr0n.pl – również strona ze śmiesznymi cytatami. Tak na prawde cytaty ssą ale komentarze są genialne. A właściwie były to obecną są równie idiotyczne jak cytaty. Jak jeszcze troche pr0n obniży poziom to zwolni miejsce innej stronie.
  7. joemonster.org – bo powaga zabija powoli. Najlepszy serwis satyryczny jaki widziałem.
  8. Wikipedia – często szukam czegoś do szkoły, czasem patrze jak nie rozumiem jakiegoś pojęcia. Generalnie jest przydatna.
  9. Gmail – mail jest równie ważny jak komunikator. Mam newsletter w paru serwisach, wiadomości z allegro, przesyłanie plików i wiele innych. Używam skrzynki codziennie.

To by było chyba na tyle. Teraz znacie mnie na wylot :)

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)

Urodzinowo

20, marzec 2008

Wczoraj skończyłem 17 lat. Jak zawsze w urodziny podsumowuje miniony rok życia i robie postanowienia na ten nowy.

Na plus:
+ zacząłem się poważniej uczyć DirectX’a
+ napisałem framework oparty o DX
+ rozpocząłem kilka projektów – zdobyłem doświadczenie
+ dołączyłem do projektu jako programista edytora
+ założyłem tego bloga

- nie skończyłem żadnej gry (no dobra, ponga :P )
- straciłem masę czasu
- nauczyłem się mniej niż mogłem
- rozpadł się team którego byłem członkiem

To z grubsza tyle, jeśli chodzi o kod. Teraz postanowienia.

- więcej kodu
- nauczyć się lepiej DirectX’a
- bardziej zgłębić C++
- nauczyć się jakiegoś języka skryptowego
- liznąć C#
- skończyć jakąś nieduża grę, np. casuala
- wydać pierwszą grę
- dołączyć do jakiegoś większego projektu i/lub zacząć swój
- i wiele, wiele innych.

Za rok zobaczę ile z tego udało mi się zrealizować :)

Magia staroci

18, marzec 2008

Mam sentyment do staroci. Uwielbiam stare gry (Red Alert!), konsole (pegazus!), muzykę (8 bit!) i całą masę innych. Co jakiś czas nachodzi mnie na takie wspominanie starych, dobrych, beztroskich czasów pogrywania przez pare godzin dziennie w Contrę na Pegazusie (pamięta to wogóle ktoś?:)). Zawsze na te okazje przypomina mi się kilka śmiesznych scen (włącznie z zesraniem się w gacie brata kolegi, który to brat nie chciał iść do kibla bo by mu kolejka grania przepadła) jak i pare mniej przyjemnych – jak na przykład szlabany za “trochę” przydługie granie.

Jakiś czas temu trafiłem też na stronę 8 bit peoples [1] . Właściwie to jest to ogromny zbiór produkcji artystów zajaranych klasycznymi grami, którzy tworzą muzykę w konwencji 8 bitów. Przesłuchałem już kilka płyt i niektóre kawałki są po prostu genialne. Szczególnie polecam płytę Random – Bad Joke EP. Ta muzyka ma coś w sobie, to chyba z sentymentu do czasów kiedy słyszałem jej najwięcej :) Założyłem nawet temat na forum gamedev [2] – okazało się, że nie tylko ja lubie takie retrospekcje :)

Pisałem też kiedyś na blogu o Dune – prekursorze gatunku rts a konkretnie serii Red Alert. O samym Red Alert jeszcze z pewnoscią ukaże się osobny wpis. Też macie takie “chwile zadumy” i wracacie do przeszłości wyciągając Amigę czy też Commodore z szafy?

Baj de łej: wiecie, że na bazarku w moim mieście (Siedlce) są jeszcze kartdridże do Pegazusa? Serio!

I na koniec programistyczny żart z basza [3]:

< maf >w tym roku zlot programistów delphi się nie odbył
< maf >jeden zachorował a drugi powiedział że sam nie jedzie

:D

ps. Czy przypadkiem nie nadużywam nawiasów?

[1] 8 bit peoples
[2] Temat na warsztacie o muzyczkach 8 bit
[3] Bash

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

Thinking with portals

4, marzec 2008

Jestem fanem serii Half-Life. Przeszedłem obie części i uważam, że to jedne z lepszych gier jakie kiedykolwiek powstały. Szukając informacji na temat Portal – jednej z trzech gier znajdujących się w The Orange Box, natrafiłem na ciekawe znalezisko – flashową wersję słynnego Portal’a. Jak na razie to najfajniejsza flash’ówka w jaką do tej pory grałem :) Prosta grafika, troche monotonna muzyka ale za to jaka grywalność! Gra polega na przedostaniu się z jednego miejsca planszy (wejścia) do drugiego (wyjścia). Celowo napisałem “przedostaniu się” zamiast “przejściu” bo cała zabawa polega na manewrowaniu portalami (czy też teleportami jak kto woli). Gra oferuje 40 poziomów (od banalnych po na prawdę skomplikowane). Skończyłem je wszystkie i chyba skuszę się na Orange Box – jeszcze więcej i w 3d – mniam :) .

Grę znajdziecie tutaj:

PORTAL

I na koniec bonus – piosenka “Still alive”, czyli outro z Valve’owskiego Portal’a.


Go ahead and leave me.
I think I prefer to stay inside.
Maybe you’ll find someone else
to help you.
Maybe Black Mesa…
THAT WAS A JOKE. FAT CHANCE.

:D

And you, are you thinking with portals?

Chyba każdy amatorski programista gier choć raz w życiu myślał o “grze o programowaniu”. Niektórzy nawet próbują realizować ten pomysł (pozdro k_b ;) ). Ja już dosyć dawno trafiłem na taką grę, nazywa się Colobot.

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
}

Do dyspozycji mamy funkcje sterujące robotem (na przykład move, grab, drop, aim), zmienne (int, float itd ;) ) i masę innych ciekawostek. Robociki programuję się bardzo fajnie, zwłaszcza, że już po chwili widać efekty. Dodatkowy “ficzer” to różne rodzaje robotów, dzięki czemu każdego z nich trzeba zaprogramować inaczej. Na przykład, żeby przemieszczać się transporterem będziemy jechać i skręcać (move i turn), pojazdem na gąsiennicach ustawiać moc prawego i lewego silnika (motor) a samolotem po prostu latać.

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ć):

Free Image Hosting at www.ImageShack.usFree Image Hosting at www.ImageShack.us

Free Image Hosting at www.ImageShack.us

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.