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.
|