•  

    Hej mirki i mirabelki,

    Wczoraj na GitHub wypuściłem nową wersję mojega silnika do gier CLUSEK. Chciałem się z wami podzielić moją historią, która jest z tym związana. Ostrzegam z góry, że będzie to długi wpis w którym omówię implementację niektórych mechanizmów, które udało mi się wprowadzić w ostatnim czasie oraz moje perypetie z jedną firmą. Tym jednak zajmę się później, ponieważ na początek pełna lista zmian:
    - Dodano teren z teselacją;
    - Parametry teselacji mogą być zmieniane z pliku konfiguracyjnego oraz w czasie rzeczywistym w specjalnym oknie;
    - Wstępne generowanie siatki terenu (VB, IB) może być generowane równolegle;
    - Dodano cienie kaskadowe;
    - Dodano przesunięcie NearZ oraz usunięto starą metodę stałej głębokości dla wyliczenia cieni;
    - Bias może być zmieniony niezależnie dla każdej z kaskad;
    - Okno podglądu umożliwia zmianę kaskad;
    - Dodano nową bibliotekę do projektu - stb_image;
    - Dodano wyliczanie płaszczyzn bryły ściętej (frustum) dla kamery;
    - Naprawiono błąd z niepoprawnie działającym trybem siatki (wireframe mode) oraz wyboru ukrywania ścianek (culling mode);
    - Przeprowadzono niewielką optymalizację systemu renderowania;
    - Dodano dokumentację dla mapy wysokości (heightmap).

    Mimo to, że zmian jest sporo to skupię się na dwóch główynch zmianach, które pochłoneły większą część czasu dewelopmentu tej wersji silnika. Te dwie główne zmiany to bardziej zaawansowane cienie oraz teren. Zacznę od cieni, a następnie przejdę do terenu, ponieważ teren to niekończąca się opowieść.

    W tej wersji udało mi się zaimplementować stabilizowane kaskadowe cienie. Od teraz cienie nie drgają, ani trochę podczas obracania kamerą, co zdecydowanie polepsza doświadczenia płynące z korzystania z silnika. Dokonałem tego, dzięki przestudiowaniu świetnej prezentacji z GDC, którą znajdziecie tutaj oraz dokumentacji Microsoftu. Druga sprawa to kaskadowość cienii. Otóż cienie nie są renderowane raz, ale wielokrotnie. Dzięki tej technice można renderować cienie dla obiektów w różnej odległości od kamery, co daje nam ostre cienie blisko dla dużej ilości obiektów na scenie, również tych daleko od kamery. Co ciekawe korzystam z 4 kaskad. Wynika to z tego, że na obecną chwilę renderuje każdą z tych kaskad do tekstury 2048x2048, ale być może w przyszłości wrzucę to wszystko do jednej tekstury (tzw. atlasu) zamiast czterech różnych. Dzięki 4 kaskadom mógłbym to trzymać w optymalnej teksturze 2048x8192. Teoretycznie zabieg ten mógłby przynieść znaczącą poprawę wydajności silnika. Nie mniej na razie nie odczułem potrzeby takiej zmiany, a więc to raczej tylko teoria, ale jednak zaimplementowana np. w takim GTA V, więc dość wygrzana w poważnej produkcji.

    Jeżeli chodzi jeszcze o same cienie to dodałem również nowe opcje do "shadow preview", które umowożliwiają podglądanie poszczególnych kaskad. Niby taka głupotka, a mocno przyśpiesza dostrajanie parametrów dla cienii.

    No i przechodzimy do terenu. Temat rzeka, tak jak wspominałem wcześniej, ale postaram się go streścić i jednocześnie zachować sens. Także przed implementacją terenu wpadłem na pomysł, że zanim zacznę go implementować w silniku to poszukam sobie jakiegoś fajnego narzędzia do generowania map wysokości (heightmap) oraz tekstur przejść (splatmap), które będzie darmowe lub względnie tanie. Jak pomyślałem tak zrobiłem. Zacząłem od Houdini, ale szbko się odbiłem, ponieważ wersja, która by mi odpowiadała jest strasznie droga, także odpada. Naturalnym krokiem w tym momencie był Blender. O ile jest to świetny program do modelowania to do tworzenia terenu się nie nadaje. Po pierwsze zrobienie w nim czegoś sensownego to jest katorga. Po drugie nawet, jeżeli coś zrobimy naprawdę fajnego, ale uznamy, że chcieli byśmy wprowadzić jakąś zmianę to koniec. Zasadniczo płacz i ogromna inwestycja czasu. Także Blender odpada do terenu i dopisałem sobie do listy wymagań, że program musi mieć niedestrukcyjny proces tworzenia terenu. No więc szukałem dalej. Gdzie znaleźć program do terenu? Na GDC! Więc odpaliłem filmiki dużych firm jak robią teren i tam przewijał się jeden program - WorldMachine. Jest darmowa wersja, także ściągnąłem i przyznaję, że jest to genialny program do generowania terenu, ale jego prędkość działania oraz interfejs użytkownik pozostawiają wiele uwag. Zanim go jednak kupię, to chciałem jeszcze trochę poszperać i wtedy olśenienie. Trafiłem na program Gaea.

    Trafiłem na program, który wydawał się idealny. Tańszy od WorldMachine z tymi samymi możliwościami, a do tego z genialnym UI. Serio, interfejs jest tak dobry, jak byście korzystali z programu z programu o cenie 10x takiej. Także postanowiłem go kupić. Jako student miałem zniżkę ~50%, także skontaktowałem się z ich pomocą techniczną o taką licencję. Katastrofa... Nie wiem jak to opisać po prostu. Na początku musiałem udowodnić na milion sposobów, że jestem studentem. Korzystam z wielu programów na licencji studenckiej (np. Substance Painter) i nigdy nie byłem tak prześwietlany. No, ale okej. Może boją się wyłudzeń tańszej licencji. Potem jak przez to przeszedłem to dostałem klucz (plik z licencją do wgrania) do programu Gaea i co? Wyższa licencja, niż za nią zapłaciłem. Ech... Komedia po prostu. XD No, ale dobra nie jestem Januszem Biznesu. Dam im znać o tym, że dostałem wyższą licencję, niż zapłaciłem i zapytam, czy mi wystawią nowa, która będzie oczywiście zgodna z zamówieniem. I co? Odpisali, że dobrą licencję dostałem tylko jeden napis się źle wyświetla i mógł mnie wproadzić w błąd. No... może i tak jest, nie wiem, ale i tak to trochę śmieszne, że wyświetla się inna licencja, niż mam, ale co ja tam wiem? ¯\_(ツ)_/¯ W każdym razie mam korzystać z tej licencji, którą dostałem i się tym nie przejmować.

    Trochę śmiesznie, ale czy pomimo tej historii z licencją polecam program Gaea? TAK! I to jak! Jest to najlepszy program do generowania terenu. Fotka, którą widzicie dołączoną do tego wpisu to dość wczesna wersja terenu, którą chcę zaimplementować w moim silniku. Na mnie robi ten teren spore wrażenie. Mam nadzieję, że wy napiszecie w komentarzach co myślicie.

    No dobra, ale przejdźmy do implementacji, ponieważ zacząłem o tym pisać, więc płynnie przejdę od razu do tego tematu. Renderowanie dużego terenu to dość spory problem. Powiedzmy, że chcemy z tekstury 4096x4096 wygenerować siatkę. To będzie jakieś 16 milionów wierzchołków w VertexBufferze. Jest to dużo, ale teoretycznie nowoczesny PC obsłuży to. Nie mniej nie zapominajmy, że teren to tylko część sceny, a poświęcenie na nią 90% zasobów to moim zdaniem bezsens. Co jeżeli bym chciał użyć terenu 8192x8192 pikseli? No jest problem, bo wyrenderowanie 67 milionów wierzchołków to dramat i pchanie tego może być tak kosztowne, że nie uda się utrzymać 30 fps, jeżeli mielibyśmy tylko teren. Z tego właśnie powodu postanowiłem skorzystać z właściwości, którą na rynek wprowadził DX11, czyli teselacji. Dzięki teselacji możemy uzyskać blisko nas teren wyskoiej jakości (z dużą liczbą wielokątów), a daleko niższej jakości. Dodatkowo możemy na terenie zastosować technikę "frustum culling", która umożliwia ukrywanie niewidocznych części terenu. Teselacja umożliwia płynną zmianę wielokątów co klatkę. Nie jest to jednak bezproblemowe, a przynajmniej nie w mojej impelementacji. Po pierwsze Vertex Shader zmienił swoje działanie, a dodatkowo teren wykorzystuje dwa dodatkowe shadery, którymi są Hull Shader oraz Domain Shader. Ten pierwszy odpowiada za wyliczenie liczby podziałów kwadratu (w tym przypadku kwadratu, ale można korzstać z innych siatek), a drugi za wyliczenie pozycji nowo powstałych wielokątów. Problemem jest tutaj to, że musimy w Domain Shaderze samplować teksutrę wysokości, która jest wysokiej rozdzielczości. Dodatkowo, aby teren zachowywał się stabilnie dla gracza to normale muszą być wyliczane dla każdego piksela. Jest to ogromny koszt, ale nawet sama Nvidia pisze w swoich artykułach naukowych, że to najlepszy sposób na ukrycie zmiany ilości wielokątów. Piszą oni też, że wyliczanie wektorów normalnych w domain shaderze może koniec końców okazać się nie dość, że mniej stabilnym (normalne będą przeskakiwać) to jeszcze mniej wydajnym rozwiązaniem, ponieważ spora część terenu zostanie i tak zakryta przez inne obiekty, a jako, że wg. nich powinien on być renderowany na końcu to mało pikseli koniec końców zostanie wyliczonych.

    Także jak widzicie zrobienie teselacji to czytanie artykułów naukowych i przeglądanie ich kodu. Niestety ich kod jest często ogromny i zagmatwany, więc jest to masakrycznie wielka praca. Tutaj macie do filmu na YT jak działa to wszystko w akcji. Algorytmy YT nie lubią niestety dużej ilości linii, które szybko poruszają się po ekranie. Z tego właśnie powodu film trochę źle wygląda, ale może zobaczycie chociaż mniej więcej, jak to działa.

    Dla tych, którzy chcieliby zrozumieć lepiej technikalia bez zbędnego marudzenia to zapraszam do mojego artykułu w języku angielskim na Linkedin, który znajduje się tutaj. Kod źródłowy samego projektu natomiast znajdziecie tutaj, a wersję wykonywalną tutaj. Jeżeli natomiast ktoś chciałby wesprzeć moją wędrówkę po tej kamienistej drodze, gdzie ciągle wychodzą jakieś dziwne sytuacje to może zaplusować ten artykuł oraz dać like na Linkedin. Może uda mi się zebrać też dwie garści plusów za to, że nie byłem Januszem i chciałem zwrócić licencję i sam do nich napisałem. I tyle, jeżeli są literówki i błędy gramatyczne to przepraszam, ale piszę to od serca i nie mam czasu na redagowanie tego, a chcę na Wykop zawsze wrzucić nie kalkę z angielsksiego artykułu, a raczej oryginalną zawartość, która może kogoś zainteresuje i zmotywuje.

    #programowanie #gamedev #gry #directx #grafikakomputerowa #physx #clusek

    źródło: splash_feb_clusek.png

Gorące dyskusje ostatnie 12h

  • odpowiedzi (27)

  • avatar

    #pierdzepokotach
    wydanie piątkowe

    GFY

    odpowiedzi (18)

  • avatar

    Miałem 16 lat, mieszkałem wtedy w małym domku z 3 sypialniami z mamą, tatą i siostrą
    rodzice są surowi jak skurwysyn, bardzo chrześcijańscy
    ja i moja siostra, mieliśmy swoje własne sypialnie
    rodzice pozwalali mi mieć starego kompa w swoim pokoju, pod warunkiem, że obiecam im nie walić konia
    wiem, to pojne
    drzwi od mojego pokoju musiały być otwarte 24/7, rodzice sprawdzali moją historię przeglądania żeby upewnić się, że nie zejdę z właściwej ścieżki
    k***yniewiedząotrybieincognito
    rodzice pracowali do wieczora, więc gdy ich nie było to siostra trzymała pieczę nad polityką otwartych drzwi
    suka co chwilę przechodziła koło mojego pokoju i upewniała się, ze nie robię nic nieprawego
    stałem się Daredevilem, słyszałem ludzi idących do mojego pokoju z odległości kilometra
    wyrobiłem refleks naszprycowanego spastycznego tygrysa otwierając i zamykając okienka z pornografią jak haker po metaamfetaminie w 1980
    nie mam żadnej prywatności więc gdy oglądam to zapamiętuję jak najwięcej, żeby potem strzepać do pamięciówki pod prysznicem

    Bardzo chciałbym opowiedzieć o swoich masturbatorskich nawykach ale nie mają nic wspólnego z historią, więc tu skończę.
    siostra zaczęła przyprowadzać do domu chłopaka od czasu do czasu, wyglądał jak metroseksualny cwe* pokroju Justina Biebera
    ziomuś zachowuje się dobrze i nienagannie przed rodzicami, siostra wmawia im, że chce "uratować jego duszę" więc oni nie mają nic do ich związku
    rodzice dają mi zadanie, mam robić wszystko, żeby jego kuas nie znalazł się w waginie mojej siostry
    role się odwróciły
    tak jak wszystko co robię, trenowałem i szlifowałem swoje działania
    zawsze czekałem na odpowiedni moment, zawsze świadom wszystkich chwil z romantycznym nastrojem i z okazją na j***nko
    wynurzałem się z cienia za każdym razem, gdy słyszałem, że jest u ich cicho i po prostu stałem i gapiłem się na nich
    jak upiorny cień w kącie ich oka niszczyłem im każdą szansę na zbliżenie
    jak sędziwe oczy gniewnego boga wpatrywałem się w ich spragnione rchanka dusze jak najbardziej niezręcznie się dało
    i to wszystko podczas gdy mój umysł powtarzał mantrę
    "JESTEM PEŁZACZEM, CZATOWNIKIEM TERRORU, JESTEM OCZAMI W CIEMNOŚCI, WARTOWNIKIEM NOCY, MOJA JEST OBECNOŚĆ I OSĄD I SIŁA,

    JESTEM WAGINALNYM KORKIEM"
    moja siostra była już zmęczona tym co robię, tak samo jej ludzkie dildo
    powinni byli po prostu iść do hotelu
    sfrustrowani obmyślili plan, bardzo ch*jowy plan
    plan który byłby tylko oliwą do ognia jakim jest mój brak życia socjalnego i nadmiar wolnego czasu
    gdy brałem prysznic, weszli do mojego pokoju i naściągali jakiegoś hardcorowego gejowskiego BDSM porno
    nie spodziewałem się tego
    rodzice wracają do domu, sprawdzają moje zadanie domowe i historię przeglądania
    przypał taki, że ja pie**olę
    gdy zobaczyłem, co właściwie zrobili, poczułem mieszankę rozbawienia i strachu
    trochę jak oglądanie psychopatycznego klauna wsadzającego monety w dupę karła, gdy wiesz że Ty będziesz następny
    próbowałem im wyjaśnić, że to jakiś wirus albo kawał, ale prędzej chyba bym sprzedał żydowi wielbłąda z 3 nogami
    zabrali mi internet, wykasowali gry i uprawnienia na komputerze
    wiedzałem, kto był odpowiedzialny za tą zniewagę, i wiedziałem gdzie mieszkają

    Wiem, że nie brzmi to przekonująco, ale miałem kumpla który miał magistra we wk***ianiu ludzi i chciał, żeby go nazywać Harold
    Harold i ja obmyślaliśmy plany i w końcu zdecydowaliśmy się na ten, który miał największe szanse powodzenia

    Faza pierwsza planu: STRACH
    nie miałem nic do robienia podczas wolnego czasu oprócz czytania, bo nie mogłem nigdzie wychodzić po 17
    cały czas spędzałem na siedzeniu w pokoju, nawet przestałem sprawdzać siostrę
    oni myślą, że wygrali
    raz na jakiś czas śmiałem się, nie takim normalny śmiechem ale śmiechem o wyższej barwie, wibrującym śmiechem z małymi pauzami pomiędzy wydechami
    wyobraźcie to sobie jako nagiego Świętego Mikołaja któremu ktoś ssa pałę podczas gdy ten właśnie bierze 80 kg na klatę
    pierwsze starania były bez rezultatu, lecz po jakimś czasie p****ek i siostra zaczęli to zauważać
    wsłuchiwałem się jak nietoperz, a gdy tylko robiło sie u nich cicho, robiłem to tak głośno, żeby usłyszeli, robiłem to z 3 czy 4 razy dziennie, nigdy gdy rodzice

    byli w domu
    pewnego dnia siostra pyta o odgłos dochodzący z mojego pokoju
    udaję zmieszanego i zwalam to na przeciąg z łazienki
    ona nie łyka tego i wie, że to ja, jakoś głupio komentuje w stylu "pewnie tak bardzo tęsknisz za swoim p*****kim porno i stąd te odgłosy"
    robię to przez kolejne kilka tygodni i siostra w końcu wk***ia się tak bardzo, że wparowuje do mojego pokoju i każe mi przestać
    nigdy nie nakryła mnie robiąc to, zawsze byłem czujny i przestawałem, gdy słyszałem że się zbliża
    zacząłem zachowywać się tak jakbym nie wiedział o czym ona mówi i udawałem nawet zmartwionego jej stanem zdrowia
    ziarno zemsty zostało zakopane, wszystko szło według planu
    po miesiącu mój neurotyczny śmiech spongeboba stał się czymś, do czego siostra po prostu przywykła i nic sobie z tego nie robiła, to też była część planu

    Harold jest bogatym dzieciakiem i ma sporo rzeczy których nawet nie potrzebuje
    pożyczył mi dyktafon, mały skysyek którego mogłem ukryć praktycznie wszędzie, a można do niego była podłączyć jakiekolwiek wyjście audio
    nagrałem swój śmiech
    wpierw ukryłem dyktafon w szparze pomiędzy pudełkami ze starymi ciuchami w swoim pokoju
    upewniłem się, że ciężko go będzie znaleźć ale nadal zostanie dużo miejsca, żeby nie wytłumić dźwięku
    poszedłem do salonu i upewniłem się, że siostra i chłoptaś mnie zobaczyli, powiedziałem, że wychodzę do sklepu
    wyszedłem z domu i poszedłem do najbliższego spożywczaka
    zostawiłem dyktafon nastawiony na puszczenie nagrania 13 minut po moim wyjściu, i kolejne 10 minut później
    wszedłem do sklepu i patrzyłem na lody jakbym był Sashą Grey na międzyrasowym gangbangu przez 20 minut
    wróciłem do domu równo 30 minut po moim wyjściu i zobaczyłem siostrę i jej chłopaka w salonie
    ich wyraz twarzy gdy wszedłem do domu, niszczy mnie za każdym razem jak sobie o nim przypomnę
    czuję mrowienie w kręgosłupie jakby ktoś masował mi prostatę
    strach w ich oczach, niezaprzeczalny strach
    to wszystko wymagało lat dyscypliny samuraja, żeby nie wybuchnąć wtedy śmiechem
    wyglądali tak, jakby zobaczyli mnie właśnie wyczołgującego się z wielkiego odbytu w ścianie
    odpaliłem wewnętrznego DiCaprio i zachowywałem się tak zdziwiony i przejęty jak tylko się dało
    spytałem czy coś się stało bo wyglądają blado, spojrzałem siostrze w oczy gdy to powiedziałem
    siora się wkiła, zaczęła sapać, mówić, że mam chore pomysły
    ogólnie pełno oskarżycielskiego gówna, tak jakby nie widziała, że dopiero wszedłem drzwiami frontowymi, pytała jak to zrobiłem
    zachowuję pokerową twarz i pytam czy coś brała
    mówię, że zachowuje się jak poj**na odkąd zaczęła tu przyprowadzać tego wacka
    spojrzałem na cwea wkurzonym wzrokiem
    oznajmiam jej, że powiem wszystko rodzicom o tym jak się zachowuje, to ją trochę uspokoiło
    przypomniało jej się, że mam moc skarżenia jak malutki tchórz którym właściwie jestem
    powiedziałem żeby się ogarnęła i przestała robić to co robi, wyszedłem jak teksański kowboj po Alamo

    Faza druga: PARANOJA
    minął tydzień z hakiem po incydencie z dyktafonem
    siostra nic nie powiedziała rodzicom o tym kawale
    ja tu ciągnę za sznurki
    mój śmiech znów zaczął na nią działać, wbiegała do mojego pokoju, żeby mnie przyłapać
    zapomniała, że to ona jest Fretką a ja Fineaszem i Ferbem
    nie udawało jej się mnie przyłapać, czasem nawet nastawiałem dyktafon i będąc z nią w pokoju robiłem swoje
    przeszukała mój pokój próbując znaleźć cokolwiek, bezskutecznie choć raz było blisko
    mówi, że tylko ja mogę wydawać ten odgłos bo pan Timberlake też to słyszy
    zignorowałem ją i nie przestawałem oglądać swojego dokumentu o narwalach i innych arktycznych kreaturach
    zacząłem śmiać się w dłuższych interwałach, czasem pomijałem parę dni żeby miała fałszywe poczucie bezpieczeństwa
    nie mogła spać, nie mogła cieszyć się czasem z jej chłopakiem, próbowała mnie przyłapać
    stałem się najsprytniejszym małym gówienkiem, nawet rozważałem karierę w wywiadzie
    nadszedł dzień gdy siorka nie mogła już wytrzymać i nasłała na mnie rodziców jak parę wściekłych psów na bezbronnego kotka
    powiedziała im, że próbuję ją wkręcić i to wszystko jest niedojrzałe, Johnny Depp ją wspierał mówiąc, że też to słyszał
    rodzice zaserwowali mi pełno bzdurnego gadania, że stąpam po cienkim lodzie itd
    nadal nie puszczałem broni jak upośledzony republikanin po strzelaninie
    dałem pokaz warty Oskara o mojej niewinności, mówiłem, że w wielu przypadkach nie było mnie nawet w domu itd
    pokazywałem in nawet paragony które służyły za alibi, byłem gwałcicielem w obcym kraju z dyplomatycznym immunitetem
    rodzice uwierzyli, k***a, nawet ja na chwilę uwierzyłem
    siostra nadal zakładała, że kłamię
    rodzice powiedzieli że jesteśmy za starzy na takie rzeczy, dali mi ostrzeżenie i wyszli
    to dało mi erekcję tak silną by powalić nią antylopę
    czas w końcu nadszedł
    cała ciężka praca się opłaciła, spędziłem tyle czasu układając kostki domina
    czas je popchnąć

    Faza trzecia: ROZpie**ol
    piątkowa noc, mama i tato mieli randkę a ja zostałem sam z siostrą, dostała od rodziców pozwolenie na zaproszenie tego ku*asa
    podsłuchałem rozmowę i pan piękniś się jakoś wywinął i powiedział, że nie przyjdzie
    w tym miejscu wiedziałem, że koza którą zarżnąłem w imię Adanimusa, boga psotników, dała mi jego błogosławieństwo

    Od incydentu ze śmiechem, nigdy nie zostawała sama w domu. Wiedziała, że ja jestem jedynym możliwym wytłumaczeniem na te śmiechy, jedyną logiczną solucją.
    spakowałem rzeczy i powiedziałem, że idę do biblioteki
    wyglądała na zdenerwowaną, powinna być
    powiedziałem pa i wyszedłem, z głową wysoko i czując się jak facet z penisem rozmiarów trąby małego słonia
    pojechałem do biblioteki, zajęło mi to 25 minut busem
    gdy dotarłem, złapałem pierwszą książkę która mnie zainteresowała, wypożyczyłem, usiadłem i zacząłem czytać
    wszystko co mogłem zrobić, to czekać

    Teraz przedstawiam wersję wydarzeń opowiedzianą przez Harolda
    jestem Harold, wiek nieistotny
    opuściłem szkołę wcześnie tego dnia i poszedłem do domu głównego bohatera, znalazłem klucze pod zielonym kamiennym żółwiem w ogródku
    otworzyłem drzwi, zrobiłem sobie kanapkę, pograłem na PSP w pokoju kumpla aż ten w końcu wrócił do domu
    jak już przyszedł, schowałem się w szafie i zaczekałem, aż wyjdzie, a potem schowałem się w szafie
    jego siostra nie miała pojęcia, że jestem w domu
    kumpel mrugnął porozumiewawczo i wyszedł do biblioteki
    siedziałem w szafie z walącym sercem, erekcja w gaciach, ubrany w czarny czarodziejski płaszcz i maskę okaleczonej świni, coś jak te ziomki w Pile 2
    miałem ze sobą dyktafon który mu pożyczyłem, podłączony do małego wzmacniacza
    na dyktafonie były jego nagrania i miałem czekać około 45 minut od momentu w którym wyszedł
    kiedy czas nadszedł, przypiąłem dyktafon do piersi, strzeliłem knykciami i wyszedłem
    puściłem nagranie na maksymalnej głośności, zero reakcji
    usłyszałem telewizor grający w salonie, więc spróbowałem znów parę razy zanim się poddałem
    telewizor tłumił dźwięk dyktafonu, nic nie szło zgodnie z planem
    głucha szmata zakłócała nasz świetny plan
    wyszedłem z pokoju po cichu, nikogo nie było w pokoju siostry, więc musiała być w salonie
    wszedłem do salonu, a ona była na kanapie
    twarz w poduszce, dupa wysoko rchana przez jakiegoś chuderlawego cwea
    obydwoje mieli plecy zwrócone do mnie, to było lepsze iż nasz plan, to była jedyna w życiu okazja
    powód dla którego mama mnie nie połknęła, moja szansa, że jestem warty tyle co wojownik-wiking
    nigdy cel życia nie był przede mną postawiony tak oczywiście, bóg umieścił mnie na tej ziemi żeby upewnić się, że te sk**ysynki obsrają się ze strachu
    zamiar wypełnienia jego woli coraz bardziej pompuje mi krew w żyłach
    ręce spocone, kolana miękkie
    przewinąłem dyktafon na nagranie #4 na którym kumpel krzyczał jak chińska dziewica rchana przez mastodonta
    wszedłem do pokoju niczym ninja, ziomuś zapinał tego dupala tak mocno, że nie zauważyliby mnie nawet gdybym wszedł do pokoju tańcząc
    sięgnąłem po pilota, wyłączyłem TV a przystojniaczek przestał posuwać
    wziąłem głęboki wdech i krzyknąłem na całe gardło
    CO WY k***A ROBICIE
    odskoczyli spłoszeni jak gołębie na placu wolności
    ściągnąłem kaptur odsłaniając maskę świni
    widziałem jak kolory spływają z ich twarzy, terror najwyższej jakości w ich oczach
    patrzyli w odbyt boga i topił on ich oczy śmiertelników, dławiłem się własną śliną próbując się nie śmiać
    dziewczyna zaczęła piszczeć bardzo wysokim tonem, każda nutka przechodziła przez moje ciało jak przyjemne fale
    cwe* położył się na niej próbując ją osłonić swoim ciałem, ale dziewczyna próbowała desperacko wyrwać się i uciekać
    to wyglądało jak pełzające po sobie robaki po letnim deszczu
    zanim odzyskali równowagę sięgnąłem do kołnierza i nacisnąłem przycisk na dyktafonie puszczając najgorsze odgłosy jakie kiedykolwiek słyszałem
    "POMOCYYYYYYYYYYYYYYYYYY"
    koleś się posikał, dosłownie strumień uryny wyciekł z jego sztywnego puloka

    Całkiem imponujące, że mógł utrzymać erekcję w takiej sytuacji, brawo.
    podniosłem ręce odsłaniając rytualny sztylet dzierżony w prawej, podczas gdy demoniczne skrzeki z dyktafonu uderzały w nasze bębenki
    słowa nie mogą opisać dźwięku jaki wydali chłopak i dziewczyna, jak piski balonu z którego schodzi powietrze a ktoś rozszerza ustnik, jak głodne świnki morskie
    jak małe gepardy wołające matkę
    zebrali się i zaczęli biegnąć strącając wszystko po drodze
    wybiegli nago z domu, jedyne co słyszałem to ich krzyki, wiem, że moje przeznaczenie zostało dopełnione, teraz mogłem już umrzeć

    - Harold
    spotkałem Harolda później tego dnia, powiedział, że rzeczy nie poszły zgodnie z planem ale wszystko było Ok
    wróciłem do domu widząc kilka radiowozów na podjeździe
    powiedziano mi co się stało, miałem paragon z biblioteki i byłem też nagrany na kamerach więc o nic mnie nie podejrzewano
    przeprowadziliśmy się tego samego miesiąca, znów mogłem używać komputera
    nigdy nie widziałem już tego p****ka a siostra wstąpiła do zakonu
    #pasta
    pokaż całość

    odpowiedzi (24)