Witaj świecie

Czyli jak programista mówi cześć.

Witaj świecie cover
Debug.Log("hello world");

Od tego zaczyna chyba każdy programista – pierwsza linijka, która wypisuje na ekran hello world. Witaj świecie. I właśnie tak, najprościej jak się da, chcę przywitać każdego, kto tu trafił.

Czego nie widać na screenach

Portfolio z definicji pokazuje to, co da się pokazać – projekty, screeny, czasem trailer, krótki opis, moją rolę. To ma sens. Ale to tylko jedna, bardziej widoczna część pracy. Cała reszta zwykle zostaje gdzieś obok.

Na screenach nie widać, że system działa prawie dobrze – a to „prawie” bywa największym problemem. Nie widać debug view, małych narzędzi zrobionych pod siebie ani zmian w workflow, które nie wyglądają efektownie, a realnie oszczędzają czas.

Przykładowy widok z edytora – gizmosy, debugowe etykiety, mały panel-analizator. Takie rusztowanie, które nigdy nie trafia na screena, a w którym siedzi spora część roboty.
Przykładowy widok z edytora – gizmosy, debugowe etykiety, mały panel-analizator. Takie rusztowanie, które nigdy nie trafia na screena, a w którym siedzi spora część roboty.

I szczerze mówiąc, to właśnie takie rzeczy zostają mi w głowie najmocniej. Nie konkretny kadr z gry, tylko problem, który długo nie chciał puścić. System, który wyglądał prosto, a potem rozszedł się na kilka przypadków. Albo małe narzędzie zrobione po to, żeby coś szybciej sprawdzić – a potem zostaje w użyciu na długo.

Bo nie wszystko, co ważne, dobrze wygląda na screenshotach.

Kilka słów o mnie

Komputer był u nas w domu od zawsze i od zawsze mnie interesował – pamiętam jeszcze czasy DOS-a, choć byłem wtedy za mały, żeby programować, a i o graniu nie było raczej mowy. Trudno więc się dziwić, że moja historia poszła właśnie w tę stronę.

Długo kręciło się to głównie wokół grania, aż w pewnym momencie chciałem zrobić coś więcej, być trochę ambitniejszym. Tak zacząłem odkrywać rzeczy związane z programowaniem. Najpierw trafiłem na HTML i CSS – trudno to jeszcze nazwać programowaniem, ale coś z tego powstawało i dawało efekt na ekranie, co od razu mi się spodobało. A że gry kochałem, kierunek nasunął się sam: chciałem robić właśnie je.

Na początku trochę błądziłem – nie bardzo wiedziałem, od czego zacząć. Przełom przyszedł, kiedy trafiłem na pierwszy naprawdę dobry kurs wideo o C++, wytłumaczony w bardzo przystępny sposób. To mnie pochłonęło, a po skończeniu takiego kursu chciałem już tylko iść dalej i dalej. Przerabiałem wtedy głównie aplikacje konsolowe – rozumiałem już, jak działa kod, ale wciąż siedziałem w czarnej konsoli, a chciałem zobaczyć coś na ekranie.

Później doszły biblioteki graficzne i niskopoziomowa grafika w OpenGL-u. Tyle że przeskok z konsoli i podstaw prosto na tak ogromny temat był po prostu za duży – jak na zrobienie zwykłej, prostej gry było tego stanowczo za dużo. Sporą część czasu pochłaniała wtedy sama walka o to, żeby cokolwiek wyświetlić na ekranie – vertexy, trójkąty, shadery, całe to zaplecze. Było ciekawe, ale potrafiło zjeść mnóstwo godzin, a gry jak nie było, tak nie było. A ja po prostu chciałem robić gry.

Następnym krokiem było Unity. Gotowy silnik, w którym to wszystko, co wcześniej kosztowało mnóstwo czasu i nerwów, miałem po prostu gotowe do użycia – i to w sposób, który był wtedy dla mnie przystępny, bo miał interfejs. Prawdziwy edytor, realne narzędzie, w którym od razu widać efekt. Pomyślałem: to jest to. I co ciekawe, tamta wcześniejsza walka wcale nie poszła na marne – z czasem, gdy siedziałem już w Unity dłuższą chwilę, wszystkie te rozproszone kawałki wiedzy, nawet ten za trudny wtedy OpenGL, ułożyły się w całość. Mogłem w końcu po prostu robić gry, a przy okazji naprawdę zacząłem rozumieć, jak to wszystko działa pod spodem.

Do dziś najbardziej lubię ten moment, w którym coś w końcu zaczyna działać – i całą drogę, która do niego prowadzi. Rozgryzanie systemu, walkę z błędem, który nie chce ustąpić, i chwilę, w której algorytm wskakuje dokładnie na swoje miejsce.

I choć kiedyś zależało mi tylko na tym, żeby zobaczyć coś na ekranie, żeby się ruszało, dziś najbardziej cieszę się z tego technicznego zaplecza, które wtedy zbudowałem. To ono pozwala mi teraz pracować z rzeczami, których na ekranie nie widać – z algorytmami i logiką, które gdzieś pod spodem sprawiają, że całość w ogóle działa. I szczerze mówiąc, właśnie o tej niewidocznej części pisze mi się najciekawiej.

Czym to jest, a czym nie

To nie jest daily blog. Nie mam planu publikacji, nie piszę dla algorytmu i nie będzie serii pod słowa kluczowe SEO. Wolę pisać rzadziej, ale konkretnie, niż zapełniać miejsce byle coś było.

To luźniejsza część strony – obserwacje z pracy, ciekawsze problemy, narzędzia zrobione przy okazji i rzeczy, których nie widać na stronie projektu, ale są warte wspomnienia. Pisane prosto, bez nadęcia.

Bo tak naprawdę to nie jest dla mnie tylko portfolio. Minęło już prawie dwadzieścia lat, odkąd wciągnąłem się w ten temat, i ten blog jest dla mnie trochę takim zapiskiem tej drogi – miejscem, do którego sam będę mógł kiedyś wrócić. Ale historia to jedno – mam nadzieję, że mimo tych lat wciąż będę ciekawy i że dalej będę się rozwijał.

Jeśli dotarłeś aż tutaj – cześć. Mam nadzieję, że znajdziesz tu coś dla siebie. A jeśli kiedyś zechcesz pogadać o czymkolwiek, co tu napiszę, linki do kontaktu są na stronie głównej.