Programowanie rekreacyjne staje się ostatnio popularne w kręgach nerdów. To takie programowanie jak rekreacyjna gra w szachy lub rekreacyjne rozwiązywanie zadań matematycznych. Dla przyjemności i samorozwoju.

Ostatnio jdh ma serię wypróbowywania róznych języków programowania w ten sposób, przez implementację prostych gier. Gdy wypróbowywał język Odin, implementował grę Space Invaders 「スペースインベーダー」. Na podstawie tego nagrania: https://www.youtube.com/watch?v=MU4psw3ccUI

Na początku dziwiło mnie, że chce dokładnie odzwierciedlić mechanikę i ruch z gry. Zwykle jestem za tym by ktoś pisał po swojemu, jedynie inspirując się tytułem. Jednak oglądając dalej stwierdziłem, że odzwierciedlanie wszystkich szczegółów może być niezłym wyzwaniem.

Najbardziej interesującym był ruch samych alienów. Nie podobała mi się interpretacja przez jdh, który twierdził, że są tam jakieś sinusy. Postanowiłem sam ten ruch odtworzyć wg mojej intepretacji.

Takie było moje wyzwanie w Róló. Uważam, że je rozwiązałem. Wydaje mi się, że algorytm nie jest trudny. Nie będę spojlował. Ciekaw jestem waszych interpretacji.

W następnym etapie chciałbym odzwierciedlić niszczenie “budynków”/“osłon” za którymi ukrya się gracz. Algorytm w grze wydaje się prosty (xor). Tu chciałbym eksperymentować z czymś własnym, bardziej proceduralnym.

  • サぺルOPM
    link
    fedilink
    Polski
    arrow-up
    1
    ·
    edit-2
    6 months ago

    Niesamowite!

    Nie myliłeś się. Ja tylko napisałem jak nazywa się bliźniacza dziedzina, którą się zachwyciłem. Tu masz jednego z fajniejszych przedstawicieli: https://www.youtube.com/@CutTransformGlue/videos

    To dość niszowa zabawa. Na tyle, że ludzie wolą prezentować swoje prace na lokalnych wystawach zamiast na tubie. Tak jak dioramy.

    Tak myślałem, że głośniczki piezo mają jakąś charakterystykę. Wynika ona choćby z częstotliwości rezonansowej blachy, którą odkształca kwarc. Jednak w materiale który pokazałeś, niektóre są dość zrównoważone po podaniu fali prostokątnej (np PS1740P02CE). Więc jeśli kogoś nie przeraża muzyka z chiptune i starej nokii to może coś tym ugrać. Tylko zastanawiało mnie jak wzmocnić sygnał głosnika. Na TTL były zwykle bardzo ciche. Układy które widziałem miały jakieś transformatory zwiększające napięcie lub formy przetwornicy zasilającej tranzystor sterujący.

    Myślałem, że chodzi w tym o to, żeby zrobić wszystko z odpadów (jak koleś z kanału ELEKTRON), więc jestem trochę rozczarowany tym, że kupiłeś kontroler. Nie wiem który dokładnie wybrałeś, ale pamięci wydaje się wystarczająco dużo, a bogatsza wersja ma nawet DAC.

    Czytając twój komentarz, jeszcze przekonany o tym by budować ze śmieci, pomyślałem, że można uzyskać wyższą jakość dźwięku, wykorzystując małe głośniczki ze starych smartfonów. Wydaje mi się, że one są wysokości płytki z baterią od zegarka.

    Wcześniej odniosłem wrażenie, że masz problem ze zmieszczeniem melodii niczym programiści intr 4k. Ale teraz myślę, że na takiej platformie sobie poradzisz, przy okazji ucząc się teorii muzyki by opanować midi i odtwarzanie wielokanałowe.

    Jeśli chodzi o kompresję to wyobrażałem sobie, że melodia nie musi składać się ze wszystkich nut. Więc można ograniczyć ilość bitów wysokości dźwięku do tylu ile ma dana melodia [1]. Druga sprawa, że melodia lubi się powtarzać. Czasem tylko z jakimś argumentem innej tonacji. Więc to też może redukować rozmiar. Jeśli lubisz samplować to dużo można się dowiedzieć z prac demoscenowych trackerów (formaty mod/xm). Jeśli nie ma miejsca na sample. można też użyć syntezy i ręcznie generować parametryzowany dźwięk. Zwykle parametry to wysokość, kształt fali lub szum, głośność, oraz attack, decay, sustain, and release. To pozwala emulować wiele instrumentów. Sztuka polega na dobrym trafieniu częstotliwością w częstotliwości prawdziwych nut. Żeby nie fałszowało.

    Powodzenia. Jeśli możesz, dziel się doświadczeniami. To fajne.

    PS Kanał o tym co można znaleźć w “śmieciowych” urządzeniach: https://www.youtube.com/@bigclivedotcom/videos

    EDYCJA: [1] Chodziło mi o to, że melodia może składać się np. z 6 różnych wysokości dźwięku. Więc można zrobić tablicę z 6 częstotliwościami. A melodię zapisać jako indeksy tablicy o szerokości trzech bitów. Podobnie może być z czasem.

    [2] Przypomniało mi się, że Teensy miało rozbudowany tor audio. Mieli też fajny edytor z generatorem kodu do tego: https://www.pjrc.com/teensy/gui/index.html