Arkadespill til arkademaskinen
Arkadespill til arkademaskinen
15. mars 2021 17:11
Skrevet av Hans Alan Whitburn Haugen
Lest 998 ganger
Da er vi tilbake igjen med en ny artikkel fra arkademaskin gruppen selv med en korona pandemi som prøver trykke inn bremsene for fullt på arbeidet vårt, så lar vi ikke det stoppe oss.
Det er ca. et år siden sist vi la ut en artikkel om prosjektet nå, så for alle nye som ikke er kjent med prosjektet vårt fra før, eller gamle som trenger en oppfriskning, så er målet med arkademaskin prosjektet å lage en arkademaskin med både piano og utbyttbare kontrollere som input enheter. Det betyr at det vil bli mulig å spille forskjellige arkadespill fra gjennom tidene, samt nyere og mer spesielle og egenlagede spill som utforsker potensialet for hva en arkademaskin kan være.
Det siste året har vært mildt sagt utfordrende for prosjektet, med lengre perioder hvor vi ikke har kunne jobbe på prosjektet som en følge av nedstengingen av campus og Hackerspace. Mens vi riktignok ikke har kommet så langt som vi skulle ønske at vi var i prosjektet på dette punktet på grunn av dette, så betyr ikke det at vi har stagnert helt enda.
I mellom nedstengninger, ferier og mangel på lokaler hvor vi kan lage så mye sagflis vi bare vil; siden sagstøv er en uregjerlig greie når det kommer til renhold av Hackerspace verkstedet, så har vi jobbet videre med det vi kan av systemene som skal monteres inne i maskinen. Slikt som datasystemer, elektriske fordelingstavler, kontakter for plugin kontrollere, styring for menysystemet og utvikling av egne spill som benytter pianoet som kontroller.
Plugin kontakt
Etteren del tenking og grubling, flere ideer og noen prototyper for hvordan tilkoblingspunktet for plugin kontrollere skulle utføres, har Benjamin laget et lovende design for kontakten som skal monteres inne i maskinen. Det vanskelige med å lage en kontakt for plugin systemet er at vi trenger noe fjæring for hver kontaktflate i kontakten. Fra starten av prosjektet har dette vært et tema som har vært utfordrende å finne en løsning på som er god og pålitelig, samtidig som den er mulig å produsere med utstyret vi har på verkstedet.
Vi har diskuterat for eksempel ideer som å bruke buede biter med fjærstål på forskjellige måter for å få til dette tidligere, men siden vi ikke er særlig utstyrt for å jobbe med metallarbeid på verkstedet ble dette ansett som vanskelig å gjennomføre, etterhvert ble det prototypet ideen med å bruke tynn kryssfiner saget slik at vi har en rekke individuelle mindre armer som vi kan belegge med kobbertape slik som nevnt i forrige artikkelen vår, men dette viste seg å være for upresise og avhengig av hvordan kryssfineren endret fasong avhengig av fuktighet.
Planen nå er å bruke en rekke simple 3D printede dobbeltkontakter med inspirasjon fra design av compliant mechanisms, slik at hver dobbeltkontakt dekker et kontaktpunkt over og under i en enkelt del designet for å benytte seg av elastisk deformering av delen for å skape et trykk mot kontaktflatene, der kontakten er belagt med kobbertape. Deretter skal elektrisk forsyning og signaler for kontrolleren samles på et kretskort som tar seg av konvertering av signaler til datamaskinen, og fordeling av strøm for strømforsyninger.
Innbygging av komponenter
Vi har også begynt å integrere utstyret som skal inn i maskinen. Siden vi ikke kan gjøre mye snekkerarbeid på verkstedet uten å støve det ned med sagflis, har vi begynt å integrere komponenter som skal monteres inne i maskinen siden dette ikke er avhengig av at maskinen er helt ferdig bygget.
Som det er vist i bildet over har Patrick, Trygve, Benjamin og Tommy installert skjermen og høytalere på arkademaskinen. Det er også begynt legge til rette for monteringen av datamaskinen inne i maskinen, men det er ikke synlig på bildet. Noe som er mulig å se på bildet derimot er hvordan pianoet passer inn i maskinen, selv om det skal bygges inn mer enn det den er nå slik at det i utgangspunktet bare blir tangentene som blir synlige, og i den åpne plassen på høyre siden av pianoet kommer touch kontrollen som skal brukes til å navigere i menyen til arkademaskinen. Og etterhvert som disse komponenten blir montert, blir snart mulig å teste en noe minimalistisk spill på maskinen.
Vi har også montert hevbare hjul på maskinen slik at den både kan stå solid plantet på bakken, men også være enkel å rulle avgårde når man føler for å “drifte” litt med arkade maskinen.
Elektrisk strømfordelingstavle
Strømfordelingstavlen er på plass i arkademaskinen, og den kommer til å forsyne alt av 230V komponenter i maskinen, i tillegg til å fordele 5V, 12V og 24V til plugin kontrollere og andre systemer. Trygve har gjort det enkelt å koble opp alt som trenger strøm i arkademaskinen.
5V og 12V er hentet fra strømforsyningen til PCen gjennom to molex kontakter, mens 24V kommer fra en egen strømforsyning som er montert på tavlen. Alle disse går gjennom sikringer for å hindre skade på maskinen eller brann ved problemer. Her er det benyttet stiftsikringer(også kjent som bilsikringer). Disse ble brukt fordi de er enkle å få tak i, og lette å ha med å gjøre.
To av stikkontaktene og strømforsyningen på tavlen blir skrudd av og på ved hjelp av to relér. Et relé er en elektrisk bryter som blir skrudd av og på når det får strøm gjennom en stryringskontakt. På bildene over er reléne de svarte boksene mellom stikkontaktene.
Strømfordelingstavlen
- 2x 230V (Stikkontakt) som alltid er på. Denne blir PCen koblet til.
- 4x 230V (Stikkontakt) som er på når pcen er påslått, disse styres av et relé som igjen styres av 12V fra Pcen. Her blir eks. TV-skjermen koblet til.
- 1x 230v (Stikkontakt) som er på når både PCen er påslått og høyttalervolumet er over null. Her er høytaleren koblet til.
- 2x 5V 3A som kommer via 2 molex kabler fra PCen, en av disse leverer strøm til expansion porten og en driver elektronikk inne i arkademaskinen.
- 2x 12V 3A som kommer via 2 molex kabler fra PCen, en av disse leverer strøm til expansion porten og en driver elektronikk inne i arkademaskinen.
- 1x 24V 3A som kommer fra en strømforsyning på strømfordelingstavlen, denne blir skrudd av og på sammen med 4x 230V stikkontakten. Den leverer strøm til expansion porten.
Menysystem
Menysystemet er basert på mediasenterprogrammet Kodi og Kodi-plugin Advanced Emulator Launcher. Kodi er åpen kildekode og godt dokumentert, dette gjør det lett å tilpasse programmet til ethvert behov. Advanced Emulator Launcher brukes for å bygge menyene, indeksere spill og hente bilder og metadata om de.
Hvilke spill som er tilgjengelige i menyen vil være bestemt av hvilke pluggin-kontroller som er i bruk. For å få til dette har vi et python skript som hele tiden kjører i bakgrunnen som leser inn spesifike bitsmønstre når en kontroller blir plugget inn eller ut, og sender kommandoer til Kodi over HTTP.
Småspill for arkademaskinen
Alan jobber på forskjellige småspill for arkademaskinen. Det har vært planen lenge. Benjamin nevnte småspill for arkademaskinen allerede tilbake i mars 2019. Alan har laget en spillmotor i C++ for arkademaskinen. Spillmotoren kalles for solid og kan spille av lyd, rendre 3D-filer, få innmatninger fra tastaturet og er laget til å kunne fungere på eksotiske plattformer. Den bruker RtMidi til å få inn innmatninger fra midi-keyboardet. Her er en video av en prototype som kan utvikles i retningen av Al Alcorn sin Pong eller Steve Wozniak sin Breakout (inspirasjonen til Arkanoid og DX-Ball):
<iframe frameborder="0" height="315" scrolling="no" src="https://www.youtube.com/embed/mkZh5NGtgAo" width="560"></iframe>
Spillmotoren fungerer på linux, macOS og Windows, og bruker moderne OpenGL for grafikk og PortAudio for lydavspilling. Den er skrevet "fra grunnen av". Et annet spill Alan jobber på sammen med tvillingbroren hans Erik er survival horror spillet The Castle. Vi håper å gjøre det mulig for andre å teste spillet på arkademaskinen, spillet er ment til å se ut som et hjemmekonsollspill fra 90-tallet. I videoen under demonstreres videoavspilling, vi bruker theora (ogg). Tank controls for selve spillet, ala Resident Evil og Deep Fear blir vist på slutten av youtubeklippet. Legg merke til lang lastetid når 3D-filen lastes inn, det har senere blitt fikset. Tidligere lagde solid indices-arrayen (en 3D mesh består av indices og vertices, et shader-program, samt uv-koordinater, og farger per vertex) feil, som gjorde motoren treg.
<iframe frameborder="0" height="315" scrolling="no" src="https://www.youtube.com/embed/8t7d1fwGyRg" width="560"></iframe>
Vi håper dere får spille arkade snart.
Alan, Benjamin, Tommy, Trygve og Patrick
Arkade