Coz, od jakiegos czasu tworze. Tak sobie kodze i kodze i projekt zaczyna nabierac powoli szarosci, gdyz juz biala kartka nie jest. Tak wiec narazie nabiera szarosci, silnik w tle powoli majaczy, frontend nie istnieje, ale podstawy dostepu do maszynerii tla zaczynaja sie pojawiac. Co ciekawe ostatnio zaczalem popelniac jeden z najwiekszych bledow programistow - w nieskonczonosc poprawiam te same funkcje.
Na poczatku mialem generator pewnej losowosci potrzebnej dla silnika, zajmowala ta funkcja ok 8 linii kodu, potem zaczalem to optymalizowac pod katem prawdziwej losowosci i doszedlem wg svn`a w szczytowym okresie do ... ponad 100 linii, po czym odezwala sie w mojej glowie mysl o wydajnosci i spadlo wszystko do ok 20 linii, wciaz 2,5 raza wiecej niz oryginalnie. Co ciekawe jednak czas i obciazenie cpu spadlo wzgledem wersjii 8 liniowej. Ot uzycie lepszych algorytmow i dostepnych natywnie funkcji dalo sporo.
Teraz majac swiezy po-yapowy umysl walcze z kolejna czescia silnika, tym razem jest tu bardzo duzo porownan, przyrownan, mnozen, dodawan, odejmowan... oryginalnie zajmowalo to niewiele, ot 4 kartki A3 zamazane notatkami drobnym druczkiem. Po opisaniu tego ladnie, a nastepnie okodowaniu w wersji nieoptymalnej pod zadnym wzgledem mialem kolejne kilkanascie funkcji, a kazda ok 100-300 linii kodu. Musze przyznac jedno - optymalizowanie tego to masakra. Ale coz. Kiedys trzeba sie nauczyc pewnych rzeczy. Narazie ide w strone unormalizowania pewnych rzeczy, tj sprowadzam je do formy najbardziej eleganckich znanych algorytmow, bo takie latwo przerobic nastepnie do formy optymalnej wydajnosciowo.
Zdaje sobie sprawe z tego ze czeka mnie jeszcze ok 2-3 miesiecy takiego dlubania w silniku przy kolejnych optymalizacjach bo inaczej moglbym w kwadrans zarznac kazdy sprzet nawet jakis zajebisty superkomputer. Bardziej niz to ze tyle czasu jeszcze spedze nad rzeczami ktore nie daja mi zadnego feedbacku bezposredniego i nie mam czego dotknac, martwi mnie fakt ze ... po tych 3 miesiacach bede zajmowal sie kolejnymi rzeczami i jeszcze kolejnymi, a koniec "malego i drobnego projektu ktory ma mi sprawic fun". I to koniec na zasadzie "to jest prealfa tylko dla mnie i paru kumpli" odbedzie sie pewnie w tydzien po premierze Duke Nukem Forever.
Jednak zawsze jest pozytyw - w zyciu nie myslalem ze programowanie moze byc az tak fajnym zajeciem. Siadam sobie w najlepsze wieczorem do kompa i spedzam kolejne pare godzin nad kodem. Zamiast marnowac czas na demotywatory, blipa czy inne cholerstwa jak facebook to po prostu zajmuje sie czyms co mnie rozwija. Wszak nigdy nie poznalbym tak szybko tylu roznych algorytmow, tylu fajnych konstrukcji jezykowych, tylu drobiazgow o anatomii czlowieka, tylu szczegolow o pracy miesni, tylu ciekawostek z dziedziny mechaniki...