The first publicly released Amiga game created entirely by AI.
Description
PONG AI v1.0.1 is a lightweight, retro-styled version of the classic Pong
written for the Amiga. The game emphasizes simplicity, smooth keyboard
controls, and a straightforward AI opponent. Rendering is done to an offscreen
bitmap and then blitted to the window to ensure smooth animation.
Features and Game Mechanics
Smooth keyboard control - a watchdog for RAWKEY and the KEY_HOLD_FRAMES timer
prevent missed key presses, providing responsive paddle movement.
Opponent AI - a simple model with a randomized aiming error and a cooldown
that depends on the ball speed; the faster the ball, the less frequently the
AI reacts.
Dynamic difficulty - every second full rally reduces paddle height by 1 px
(down to a defined minimum) and increases ball speed by 10%; float vectors
provide smooth acceleration.
Subpixel ball movement - ball positions and vectors are stored as floats,
eliminating loss of small speed increments due to casting to integers.
Large center score - clear digits drawn in a 3×5 style, visible during
gameplay.
Pause and end screens - a PAUSE message with background and an end screen
showing YOU WIN / YOU LOSE / DRAW, waiting for a key press before exiting.
Window resize support - automatic allocation of the offscreen bitmap and
adjustment of object positions.
Simple balance and parameters - values such as SPEED, SPEED_MULTIPLIER,
PADDLE_MIN_H are easy to tweak in the source.
Compilation and Installation
Requirements
Cross-compiler GCC for m68k AmigaOS (tested with GCC 2.95.3).
System libraries Intuition and Graphics available on the target system.
Building
Compile with the standard gcc configured for Amiga (paths depend on your
toolchain).
If the linker requires it, link the math library with -lm.
The code uses OpenLibrary("intuition.library", 37) and
OpenLibrary("graphics.library", 36) - to improve compatibility with AmigaOS
1.x/2.x, consider using version 0 or adding conditional checks after
OpenLibrary.
Video:
https://youtu.be/evLq4DNXFgk
Changelog
v1.0.1 - stability fixes, refined PAUSE rendering, added wait for key press
after game end.
v1.0.0 - first public release: core mechanics, AI, dynamic difficulty, RAWKEY watchdog.
------------------------
Polski
Krótki opis: Pierwsza publicznie wydana gra Amiga stworzona w ca³o¶ci przy pomocy AI.
Uploader: benedykt(at)netc.fr (Benedykt Dziuba³towski)
Autor: grok, chatgpt, co-pilot
Typ: game/wb
Wersja: 1.0.1
Architektura: m68k-amigaos >= 3.x, intuition.library v37 i graphics.library v36
Dystrybucja: Aminet
Opis
PONG AI v1.0.1 to lekka, retro-stylizowana wersja klasycznego Pong'a napisana dla Amigi. Gra stawia na prostotê, p³ynne sterowanie klawiatur± i prost± sztuczn± inteligencjê przeciwnika. Renderowanie odbywa siê do offscreen bitmapy, a nastêpnie jest blitowane do okna, co zapewnia p³ynno¶æ animacji.
Funkcje i mechanika gry
P³ynne sterowanie - watchdog dla RAWKEY i timer KEY_HOLD_FRAMES zapobiegaj± gubieniu wci¶niêæ, daj±c responsywne ruchy paletki.
AI przeciwnika - prosty model z losowym b³êdem celowania i cooldownem zale¿nym od prêdko¶ci pi³ki; im szybciej leci pi³ka, tym rzadziej AI reaguje.
Dynamiczna trudno¶æ - co drugie pe³ne odbicie zmniejsza wysoko¶æ paletek o 1 px (do zdefiniowanego minimum) i zwiêksza prêdko¶æ pi³ki o 10%; floatowe wektory zapewniaj± p³ynne przyspieszenie.
Sub-pikselowy ruch pi³ki - pozycje i wektory pi³ki przechowywane s± jako float, co eliminuje "zjadanie" ma³ych przyrostów prêdko¶ci przez rzutowanie do int.
Du¿y wynik na ¶rodku - czytelne cyfry rysowane w stylu 3×5, widoczne podczas gry.
Pause i ekran koñcowy - komunikat PAUSE z t³em oraz ekran koñcowy (YOU WIN / YOU LOSE / DRAW) z oczekiwaniem na naci¶niêcie klawisza przed zamkniêciem.
Obs³uga zmiany rozmiaru okna - automatyczna alokacja offscreen bitmapy i dopasowanie pozycji obiektów.
Prosty balans i parametry - warto¶ci takie jak SPEED, SPEED_MULTIPLIER, PADDLE_MIN_H s± ³atwe do modyfikacji w ¼ródle.
Kompilacja i instalacja
Video:
https://youtu.be/evLq4DNXFgk
Wymagania
W kodzie OpenLibrary("intuition.library", 37) i OpenLibrary("graphics.library", 36) - aby zwiêkszyæ kompatybilno¶æ z AmigaOS 1.x/2.x, rozwa¿ u¿ycie wersji 0 lub dodanie warunkowych sprawdzeñ po OpenLibrary.
Changelog
v1.0.1 - poprawki stabilno¶ci, dopracowanie rysowania PAUSE, dodane oczekiwanie na klawisz po zakoñczeniu gry.
v1.0.0 - pierwsze publiczne wydanie: podstawowa mechanika, AI, dynamiczna trudno¶æ, watchdog RAWKEY.
------------------------
Magyar
Rövid: Az elsõ, teljes egészében AI által készített, nyilvánosan kiadott Amiga játék.
Uploader: benedykt(at)netc.fr (Benedykt Dziuba³towski)
Szerzõ: grok, chatgpt, co-pilot
Típus: game/wb
Verzió: 1.0.1
Architektúra: m68k-amigaos >= 3.x, intuition.library v37 és graphics.library v36
Terjesztés: Aminet
Leírás
A PONG AI v1.0.1 egy könnyû, retró stílusú változata a klasszikus Pong játéknak, Amigára írva. A játék a egyszerûségre, a gördülékeny billentyûzet-vezérlésre és egy egyszerû mesterséges intelligencia ellenfélre fókuszál. A megjelenítés offscreen bitmapra történik, majd onnan blittelõdik az ablakba a sima animáció érdekében.
Fõbb funkciók és játékmenet
Gördülékeny vezérlés - RAWKEY watchdog és a KEY_HOLD_FRAMES idõzítõ megakadályozza a lenyomások "elvesztését", így a paletta mozgása gyors és pontos.
Ellenfél AI - egyszerû modell véletlenszerû célzási hibával és a labda sebességétõl függõ cooldownnal; minél gyorsabb a labda, annál ritkábban reagál az AI.
Dinamikus nehézség - minden második teljes labdamenet után az ütõk magassága 1 px-rel csökken (egy meghatározott minimumig), és a labda sebessége 10%-kal nõ; a float vektorok sima gyorsulást biztosítanak.
Al-pixeles labdamozgás - a labda pozíciói és vektorai float típusúak, így nem vesznek el kis sebességnövekedések az int-re konvertálás során.
Nagy középsõ pontszám - jól olvasható 3×5-ös számjegyek a játékmenet alatt.
Szünet és végeredmény képernyõ - PAUSE üzenet háttérrel, valamint végeredmény képernyõ (YOU WIN / YOU LOSE / DRAW), amely billentyûlenyomásra vár a kilépés elõtt.
Ablakméret-változás támogatása - az offscreen bitmap automatikus újraallokálása és az objektumok pozíciójának igazítása.
Egyszerû hangolhatóság - olyan értékek, mint a SPEED, SPEED_MULTIPLIER, PADDLE_MIN_H könnyen módosíthatók a forrásban.
Fordítás és telepítés
Követelmények
Cross-kompilátor GCC m68k AmigaOS-hoz (tesztelve: GCC 2.95.3).
Intuition és Graphics rendszerkönyvtárak elérhetõsége a célrendszeren.
Fordítás
Video:
https://youtu.be/evLq4DNXFgk
A kódban OpenLibrary("intuition.library", 37) és OpenLibrary("graphics.library", 36) szerepel - ha jobb kompatibilitást szeretnél AmigaOS 1.x/2.x rendszerekkel, fontold meg a 0 verzió megadását vagy futásidejû ellenõrzések hozzáadását az OpenLibrary után.
v1.0.1 - stabilitási javítások, PAUSE megjelenítésének finomítása,
várakozás billentyûre a játék végén.
v1.0.0 - elsõ nyilvános kiadás: alapmechanika, AI, dinamikus nehézség,
RAWKEY watchdog.
|