hPong – Linuxový klon legendární hry



Vy ještě neznáte pong? Já ano a také jsem dostal chuť, zkusit si ho sám napsat.

Včera jsem byl začtený do knihy iWoz (autobiografie Steva Wozniaka – Hackera, který navrhoval první počítače Apple, aby potom přišel spolu se Stevem Jobsem se značkou Apple Computers) a iWoz tam psal o hře PONG od Atari a o tom, jak se na ní podílel. Byla to tuším dokonce první hra, která využívala výstup na monitor (spíš televizi). V té chvíli mě napadlo, že bych si mohl také napsat jejího Linuxového klona.

Poznámky ke kódu:
- ke kompilaci vyžaduje POSIXový systém a libc
- k běhu potřebuje stty a ANSI kompatibilní terminál
- nepoužívám nCurses nebo podobné knihovny, všechny vychytávky jsem si raději napsal sám
- kód je relativně krátký (~300 wc -l)
- všechna nastavení je (možná zatím) nutné měnit ve zdrojáku (pro mě projekt už splnil svůj účel – že to dokážu)
- Ta divná 4ka na skóreboardu je divná schválně (kdo ví, ten ví…)

Tady je video demo (2 A.I. s různou mírou chybovosti) módu hPongu:

ve srovnání s originál Atari Pongem:

Tady je můj zdroják: http://softz.harvie.cz/pong/

Interoperace s Arduinem?

Dalším z nápadů, které by mohly stát za vyzkoušení je propojit hru s Arduinem, ke kterému by byly připojeny dva potenciometry a Arduino by podle jejich natočení posouvalo pálku na obrazovce, stejně jako se původní pong ovládal pomocí dvou koleček. Možná, že to bude jeden z mých příštích projektů (Je to spíš o nalezení nějakého použitelného potenciometru, protože ve hře jsou to dvě řádky kódu a v Arduinu asi čtyři).

Aktualizace:
Hotovo, video sem natočil a budou další:

May spoukn Englisch iz houribleeee ;D

Finální prezentace projektu:

Aktualizoval sem i zdroják hry a tady je zdroják do Arduina: http://softz.harvie.cz/pong/Pong.pde

Co říct závěrem?

Hra je imho kvalitnější, než třeba nInvaders, protože má jemnější ovládání (můj subjektivní názor – kdo hrál nInvaders, jistě mi dá zapravdu, že to napsali ještě hůř než kdysi Microsoft původní Invadery, protože ovládání se extrémně seká – to byl další důvod, proč jsem hru psal – dokázat si, že to udělám lépe než autor nInvaderů).

Pokud by se tedy našel dobrovolník, který doplní hru o rozhraní pro konfiguraci (ukládání do souboru, nebo načítání argumentů), případně doplní hru o barvy, nebo jiné vychytávky, dovedl bych si ji představit v repozitářích nějaké desktopově orientované Linuxové distribuce…




Líbí se vám článek? Chcete se o něj podělit? Přidejte ho! (volba topclanky.cz nevyžaduje registraci)

4 Responses to “hPong – Linuxový klon legendární hry”

  1. Harvie Says:

    FReeZ byl tak laskav a poskytl patch na zprovozneni pongu na Gentoo: http://freez.php5.cz/pong-g...
    Ja osobne mam jiste vyhrady proti danym upravam a zatim nechci kod aktualizovat…

  2. skim Says:

    Tak tohle me docela posadilo na zem..

    1)
    > Tady je můj zdroják
    Zdrojak se vetsinou dava ke stazeni.

    2)
    > blbý html zas zk*rví indentaci
    Nechapu?
    Jako kdyby html znalo nejakou indentaci ;D

    3)
    Ten html kod je uplne spatne.
    Viz treba http://validator.w3.cz/chec...
    Opera i firefox mi ho zobrazuji bez casti kodu, coz je docela logicke, kdyz je ten html kod spatne.

    Potom v nich zobrazeny kod:
    //Pads
    for(i=-padsize;i
    for(i=-padsize;i

    vypada velmi dobre :) ))

    4) Udelat patch na toto muze byt dost zajimave usili :D DD

  3. skim Says:

    Pokus o ftip:
    Mozna by priste bylo lepsi dat ten kod jenom do toho videa.. ;D

    Dik za pobaveni..

  4. Harvie Says:

    skim, nevim no ja byl linej to nekam nahravat a omluvil jsem se za to a pocitam ze kazdy kdo slysel neco o html to pochopil, tudiz nechapu, proc to musis rozebirat…

    Je videt, ze priste si budu muset dat pozor, abych se nahodou nekoho nedotknul…

Leave a Reply