GERLA.CC

game boy advance · demo · v0.44.0game boy advance · demo · v0.44.0

VECTOR

Un omaggio a Portal per Game Boy Advance, scritto da zero. La pistola non spara colpi ma varchi, due, uno caldo e uno freddo, e si aprono solo sui pannelli chiari. Entri in uno, esci dall'altro, e la velocità non si perde: cadi da in alto e ne esci sparato. Dodici camere in due metà, e la seconda è lo stesso impianto anni dopo. A tribute to Portal for the Game Boy Advance, built from scratch. The gun doesn't fire bullets but portals, two of them, one warm and one cold, and they only stick to the pale panels. Go in one, come out of the other, and keep your speed: fall from high up and you come out fast. Twelve rooms in two halves, and the second is the same facility years later.

293 KB · gira su emulatore e su hardware vero con una flashcart · demo gratuita 293 KB · runs on emulators and on real hardware with a flashcart · free demo

VECTOR, illustrazione di copertina

illustrazione di copertina, non una schermata di gioco: il GBA ha sedici colori per tavolozza e 240×160 punti. Le schermate vere sono qui sotto. cover illustration, not a screenshot: the GBA has sixteen colours per palette and 240×160 pixels. The real screens are below.

Cos'èWhat it is

È una demo, e mi interessa dirlo prima di tutto il resto: le camere fatte finora servivano a fare amicizia con il processore di questa macchina e a vedere cosa saltava fuori. Non è un gioco finito e non finge di esserlo, e alla fine c'è una schermata che lo dice: le camere cresceranno, quelle che ci sono adesso sono l'inizio.

It's a demo, and I want that said before anything else: the rooms built so far were what it took to get on speaking terms with this machine's processor and see what came out. It isn't a finished game and doesn't pretend to be one: the rooms will grow, the ones here now are the beginning.

Non è un porting e non usa niente dell'originale: è la stessa idea, due varchi collegati e la velocità che ci passa attraverso senza perdersi, portata dentro i vincoli di una macchina del 2001. Duecentoquaranta punti per centosessanta, sedici colori per tavolozza, e tutto quello che si vede disegnato punto per punto: le pareti, il vapore che esce dalle prese d'aria, i coni di luce delle lampade, i tubi al neon attorno alle soglie.

It's not a port and it uses nothing from the original: it's the same idea, two linked portals and speed carried through them intact, brought inside the constraints of a machine from 2001. Two hundred and forty pixels by a hundred and sixty, sixteen colours per palette, and everything you see drawn point by point: the walls, the steam from the air vents, the cones of light from the lamps, the neon tubes around the doorways.

niente bitmap. solo codiceno bitmaps. just code

Le camereThe rooms

Ognuna insegna una cosa sola, e la chiede una volta sola. Poi si apre sulla successiva. Il gioco è diviso in due metà, e la seconda è lo stesso posto, anni dopo. Queste sono le camere costruite finora: ne arriveranno altre, e il numero non è il punto. Each one teaches a single thing, and asks for it once. Then it opens onto the next. The game is split in two halves, and the second one is the same place, years later. These are the rooms built so far: more are coming, and the count isn't the point.

La camera dei varchi, nell'impianto in funzione
prima metà · l'impiantofirst half · the plant

Qui funziona ancora tuttoEverything still works here

Le porte si aprono, l'acqua scorre, le macchine aspettano ordini. Sei camere per imparare le regole: camminare, i varchi, il cubo sul pulsante, la torretta, il raggio, le macchine. The doors open, the water runs, the machines wait for orders. Six rooms to learn the rules: walking, the portals, the cube on the button, the turret, the beam, the machines.

La torre nella seconda metà, con l'edera e la cascata
seconda metà · la rovinasecond half · the ruin

Lo stesso posto, anni dopoThe same place, years later

Muri crollati, muschio ed edera sopra il cemento, luce del giorno dai buchi. Si riconosce, ed è questo il punto: non è un mondo nuovo, è quello di prima lasciato andare. Collapsed walls, moss and vines over the concrete, daylight through the holes. You recognise it, and that's the point: it isn't a new world, it's the earlier one left to go.

Nella seconda metà ci sono tre cose che nella prima non esistono. In the second half there are three things that don't exist in the first.

LA TORRE, alta due schermi

LA TORRE, l'ultima camera: 30 blocchi per 20, la prima del gioco più alta dello schermo. Uno scarico in cima versa una cascata che attraversa tutti e due i piani, e per gran parte della stanza è l'unica cosa che si veda da entrambi. THE TOWER, the last room: 30 blocks by 20, the first in the game taller than the screen. A drain at the top pours a waterfall crossing both floors, and for most of the room it's the only thing visible from both.

Il giro di ricognizione della telecamera all'ingresso di una camera

ogni camera è larga due schermi, quindi entrando metà stanza ti resta dietro. Prima di restituirti i comandi la telecamera va a vedere il fondo e torna: due secondi scarsi, e non si ripete quando muori. every room is two screens wide, so walking in leaves half of it behind you. Before handing you the controls the camera goes to see the far end and comes back: barely two seconds, and it doesn't replay when you die.

I comandiThe controls

Il testo del gioco è in inglese, ma i tasti sono questi.The game's text is in English, and these are the buttons.

Come è fattoHow it's built

Niente libreria standard e niente motore: il gioco scrive direttamente nei registri della macchina. memset è scritto a mano, tre righe, perché il compilatore ne ha bisogno e la libreria non c'è. E il processore non sa dividere, quindi ogni ciclo, ogni cadenza e ogni rampa è una potenza di due o un contatore che si riavvolge: una divisione con un numero qualunque diventerebbe una chiamata a una libreria che non esiste, e il programma non si collegherebbe più.

No standard library and no engine: the game writes straight into the machine's registers. memset is hand-written, three lines, because the compiler needs it and the library isn't there. And the processor can't divide, so every cycle, every cadence and every ramp is a power of two or a counter that wraps: a division by an arbitrary number would become a call into a library that doesn't exist, and the program would stop linking.

La grafica non è disegnata in un programma di disegno: è generata. Un gruppo di attrezzi in JavaScript produce le tessere, le tavolozze, le mappe e le tabelle come file C, che poi vengono compilati dentro la cartuccia. Le camere stanno in un file di testo, e c'è un editore che le fa vedere disegnate coi pezzi veri, con i coni di luce, la corsa dei raggi, il tragitto degli ascensori e l'arco del salto, e che al salvataggio ricompila la cartuccia.

The graphics aren't drawn in a paint program: they're generated. A set of JavaScript tools produces the tiles, palettes, maps and tables as C files, which are then compiled into the cartridge. The rooms live in a text file, and there's an editor that shows them drawn with the real game pieces, with the light cones, the beam runs, the lift travel and the jump arc, and that rebuilds the cartridge on save.

I sedici quadri del personaggio di VECTOR

i sedici quadri del personaggio: otto di passo, tre di salto, cinque di mira. Le pose del passo non sono disegnate a mano, nascono da una curva. the character's sixteen frames: eight of walk, three of jump, five of aim. The walk poses aren't drawn by hand, they come from a curve.

Dietro le quinteBehind the scenes

Due dei muri sbattuti per arrivarci, raccontati per esteso: cosa succedeva, perché succedeva, e il codice che li ha risolti. Two of the walls I hit getting here, told in full: what was happening, why it was happening, and the code that fixed it.

L'omaggio, e cosa non èThe tribute, and what it isn't

VECTOR è un omaggio a Portal, della Valve. L'omaggio è dichiarato dentro al gioco stesso, nella pagina INFO, col nome dell'originale e di chi l'ha fatto: un omaggio che non nomina l'originale non è un omaggio.

VECTOR is a tribute to Portal, by Valve. The tribute is declared inside the game itself, on the INFO page, with the name of the original and of who made it: a tribute that doesn't name the original isn't a tribute.

Da Portal prende l'idea: due varchi collegati, la velocità che si conserva, le camere che insegnano una cosa per volta. Non prende niente di materiale: nessun disegno, nessun suono, nessuna musica, nessun testo, nessun personaggio, nessun nome. Non si chiama Portal, non usa il marchio, non usa i personaggi e non pretende di essere collegato alla Valve.

From Portal it takes the idea: two linked portals, speed preserved, rooms that teach one thing at a time. It takes nothing material: no art, no sound, no music, no text, no characters, no names. It isn't called Portal, it doesn't use the trademark, it doesn't use the characters and it doesn't claim any connection to Valve.

Portal e Valve sono marchi dei rispettivi proprietari. Game Boy Advance è un marchio Nintendo: VECTOR è un programma indipendente per quella macchina, non contiene codice Nintendo e non è approvato né sponsorizzato da Nintendo.

Portal and Valve are trademarks of their respective owners. Game Boy Advance is a Nintendo trademark: VECTOR is an independent program for that machine, it contains no Nintendo code and is neither approved nor sponsored by Nintendo.

vector_v0.44.0.gba

293 KB · demo, v0.44.0 · emulatore o flashcart293 KB · demo, v0.44.0 · emulator or flashcart
sha256 b41c97dc 66dbf9f5 1685e8f8 bc3cd5f7 e2273f33 e68a5c0b 50c01c54 be26e6f3

ScaricaDownload