Flying memes

Ruby e Gosu: un multiplayer a schermo condiviso

Tutto è nato da una bellissima presentazione che ho seguito ormai quasi un anno fa: si parla dell’Euruko 2009 in quel di Barcellona; lo speech in oggetto si intitolava ‘Fun with ruby (and without r***s). Program your own games with gosu‘ e trattava di una libreria per lo sviluppo di giochi scritta in Ruby chiamata Gosu.

Per tutta una serie di impegni/dimenticanze/ritardi/… non sono più riuscito ad avvicinarmi a Gosu anche se le sue potenzialità sembravano quantomeno interessanti; oggi approfittando del piovoso ponte lavorativo mi sono cimentato nella stesura di  una piccolissima applicazione (non la si può nemmeno chiamare gioco) che gestisca, su un unico schermo, una moltitudine di client associando ad ognuno di essi uno sprite e consentendogli di pilotarlo con dei semplici comandi.

In questa proof-of-concept ogni client può connettersi alla porta 8888 del server e dialogando in TCP può pilotare il proprio areo da caccia sullo schermo dell’applicazione; la sintassi del messaggio è semplicissima:

codice_client|comando

I comandi supportati sono, al momento, solo ‘left’, ‘right’, ‘close’ e ‘welcome’ ma ben presto introdurrò almeno ‘shot’ per consentire all’areo di difendersi dai (futuri) nemici. L’intera implementazione è come al solito presente sul mio account di github; a seguire invece uno screenshot dell’applicazione con due client connessi:

Ogni aereo è controllato da un client diverso

Ogni aereo è controllato da un client diverso

Tags: ,