NL

Een game maken met JumPHP

JumPHP is een framework om 2D-retrogames in PHP te schrijven. Dezelfde code draait op de desktop (PHP + SDL2, in een echt venster) en in de browser (PHP gecompileerd naar WebAssembly): daarmee werken alle games op deze site. Er zijn meerdere manieren om te beginnen, van de snelste tot de meest complete.

Manier Account Wat je nodig hebt Voor wie
Sandbox nee een browser in 1 minuut uitproberen: een hello world aanpassen en starten
Met je eigen Claude GitHub Claude Code + Docker je game beschrijven en hem laten schrijven, testen en publiceren
Online editor GitHub een browser een gepubliceerde game bijwerken, of die van iemand anders forken
Op je computer nee (GitHub om te publiceren) Docker ontwikkelen als een prof: tests, screenshots, browserbuild. In één regel: curl -fsSL https://jumphp.net/install.sh | sh
Een repository importeren GitHub een JumPHP-repository een bestaande game hier publiceren
Amstrad CPC-remake GitHub de .dsk-diskette van de game een CPC-game opnieuw maken met zijn originele graphics en muziek
Een bestaande game porteren GitHub zijn broncode een oude game (C, Pascal, BASIC…) naar PHP vertalen

Daarna bouwen de tutorials stap voor stap een game:

  1. Hello world: een menu, een tekst, een geluid
  2. Een personage dat beweegt en animeert
  3. Een platformgame: level, botsingen, camera
  4. Geluid en muziek
  5. Menu's, opties, pauze en talen
  6. Scores en opties opslaan
  7. Online multiplayer
  8. De startpagina van de game en de publicatie

Is de game af: zet hem op Google Play (een Android-app, gemaakt met bin/jumphp twa).

En voor programma's die het overzicht willen lezen: de openbare API.

Hoe werkt een JumPHP-game

Een game is een map games/<id>/ van een JumPHP-project:

games/mon-jeu/
  config/game.yaml      de titel, de resolutie (320 × 180…), de eerste scène
  config/input.yaml     de acties (springen, schieten…) en hun toetsen, gamepad, touchscreen
  src/Scene/*.php       de schermen: de titel, de game, de pauze…
  src/Entity/*.php      alles wat beweegt: de held, de vijanden…
  assets/               afbeeldingen, geluiden, muziek, levels (optioneel: alles kan in PHP worden getekend)
  site/                 (optioneel) de startpagina van de game

Elk beeld (60 keer per seconde) roept de engine update($dt) aan van de getoonde scène (je verandert de toestand van de game) en daarna render($r) (je tekent). De coördinaten zijn “virtuele” pixels (de resolutie van de game): de engine vergroot het beeld naar de grootte van het scherm.

Het volledige contract van het framework, voor mensen en AI's, is het bestand AGENTS.md in de JumPHP-repository.