Domaći inženjer izradio retro Pong kao nekada, samo na temelju hardvera
Popričali smo sa stručnjakom i entuzijastom koji se iz znatiželje prihvatio vrlo ambicioznog projekta repliciranja legendarne videoigre Pong, i to, kako kaže, bez "švercanja kroz softver"
Nedavno nam je za oko zapela pričica jednog domaćeg softverskog inženjera, objavljena na društvenim mrežama, pa smo odlučili doznati nešto više o njoj – i nismo požalili. Svestrani kreativac koji stoji iza ovog projekta je Daniel Bele, softverski inženjer, predavač na Visokom učilištu Algebra. Entuzijast je u elektronici, književnosti, skateboardingu. Autor je romana "Ponedjeljak" i zbirke priča "Praznina", a naši su ga čitatelji imali prilike upoznati i na lanjskom .debugu, gdje je održao predavanje "Inovativan i kreativan pristup nastavi – kako sa studentima izgrađujemo računalo".
Ako Daniela niste upoznali do sada, novu priliku imate u nastavku, gdje prenosimo razgovor o njegovom zadnjem projektu, arkadnoj retro igri Pong izrađenoj po principima nekih davnih vremena…
Kakav ste to "uradi sam" projekt realizirali i po čemu je poseban?
Ova Pong igra posebna je, jer je u potpunosti realizirana u hardveru pa nema "švercanja kroz softver". Primjerice, kako bi se prikazao piksel na ekranu, potrebno je dobro se upoznati sa principom kako funkcionira monitor i tomu se prilagoditi. Nadalje, izgradnja igre je odličan način da se osoba vrlo temeljito upozna sa digitalnom logikom. Napokon, mnoštvo principa koje pretežito znamo iz softverskog inženjerstva, poput loose coupling potječe iz hardvera, gdje su primjene evidentne i moguće ih je "dodirnuti", dok je u softveru to ipak prilično apstraktno i time teže shvatljivo.
Kako je došlo do ideje za takvu igru?
Sve je počelo čavrljanjem u fotokopiraonici na Črnomercu i pretvorilo se u opsesiju. I tako, dok sam čekao da se dokumenti isprintaju, tišina je stvorila prazninu koja je žudila za ispunjenjem. Kad sam spomenuo da sam programer i predavač, tip za pultom mi je rekao da je on više hardverski tip. Nažalost, RIZ je propao, pa je on umirovio svoj entuzijazam i sada "samo printus papirus". Bilo je jako zabavno, doduše, a njegov srednjoškolski rad bio je stvaranje replike Pong igre. Kad sam ga pitao koji mikroprocesor je koristio, samo se počeo smijati:
"Ne sinek, ovaj put nema švercanja kroz softver, koji ste vi lajbeki!?! Lima, sve je bilo hardverski, uglavnom digitalno, osim palica koje su se pomicale okretanjem potenciometara..."
I umro lima na mjestu! Jednostavno nisam mogao shvatiti. Kako!?! Kako se to može!?! Samo sa čipovima!?! Dokumenti su odavno bili isprintani, a ljudi u redu su se umorili od mojih pitanja i počeli jamrati, pa sam se ljubazno ispričao i teturajući izašao na cestu. Ali bio sam opčinjen, promijenjen. Morao sam to razumjeti, jednostavno sam morao! Odjednom sam zaglavio u beskrajnoj rekurziji misli koje su se mogle otpetljati samo tako da izgradim igru iz nule.
Koliko je trajala realizacija?
Realizacija konkretne igre je trajala 3 mjeseca. Međutim, važno je napomenuti da sam imao ogromnu poteškoću razumjeti osnovne pojmove jer sam lajbek za elektroniku. Stoga sam morao krenuti iz nule, a to je utjecalo i na stvaranje vlastite paradigme pristupa izgradnji, ne samo Ponga, već potom i 4-bitnog procesora i 8-bitnog kompjutora – svaka komponenta mora biti u potpunosti shvaćena, realizirana diskretnim komponentama da bih imao "opravdanje" koristiti gotov čip.
Primjerice, čip 7483 predstavlja potpuno zbrajalo dvaju 4-bitna nibblea. Potpuno zbrajalo jednog bita sastoji se od XOR, AND i OR logičkih sklopova. Nadalje, logički sklopovi mogu se izgraditi korištenjem tranzistora. Stoga treba krenuti od razumijevanja tranzistora. A da bi razumjeli princip rada tranzistora, bitno se upoznati se sa diodom i, napokon, pojmom poluvodiča. Cijeli ovaj proces je detaljno opisan i implementiran na mojoj stranici, u obliku članaka i moguće je skinuti pdf, zajedno sa shemama.
Što je bio najveći izazov?
Najveći izazov bio je razumjeti i implementirati koncept kretanja loptice. Dakle, lako je dokučiti kako nacrtati mrežicu, jer je statička na ekranu i sastoji se od dovođenja napona u diskretnim vremenskim intervalima. Potom slijedi veći izazov, jer je potrebno shvatiti kako potenciometrima realizirati kretanje palica po ekranu. Napokon, dinamika kretanja loptice je toliko genijalna da je zaštićena patentom. Trebalo mi je pun kufer vremena da to probavim, implementiram, a potom i laički objasnim na svojoj stranici. Jer da, ja sam i dalje lajbek i trebam jednostavna objašnjenja. Kompliciranje umara i obeshrabruje.
Je li u današnje vrijeme lako naći komponente za ovakve retro projekte?
Većinu komponenata sam bez komplikacija nabavio u Zagrebu, međutim, postoje i deprecated čipovi koje sam, ipak s lakoćom, naručivao iz Kine. Pritom, radiš i na strpljenju, ali i povjerenju, gledano metafizički (smijeh). Istini za volju, brže sam isprintao PCB u Kini no što sam dočekao neke od čipova, ali najdulje što sam čekao je bilo 2 tjedna, pa u tom vremenu radiš na nekom drugom modulu za koji imaš komponente.
Osim zabavne, ima li projekt i edukativnu svrhu?
Projekt je u potpunosti edukativne prirode. Kao što sam već naveo, sama paradigma pristupa izgradnji ne tolerira korištenje komponenata sa kojima graditelj nije u potpunosti upoznat. Usuđujem se reći da sam putem izgradnje uspio shvatiti osnovne pojmove elektronike, a potom pomoću tog znanja izgraditi i 4-bitni procesor te 8-bitni kompjutor sa monitorom, kazetofonom, tastaturom i modulom za zvuk, kojih se opis izgradnje također nalazi na mojem webu.
Za mene, ovo je bio nevjerojatan game changer, ali i helluva ride. Hvala na bilo kakvom interesu, društvo!