Skip to content
Alessandro Bria edited this page Sep 30, 2026 · 10 revisions

Wiki di agpunicas

Questa wiki accompagna lo studio di agpunicas, un framework didattico per videogiochi 2D scritto in C++ e basato su SDL3.

L'obiettivo non è sostituire la lettura del codice, ma offrire una mappa: quali responsabilità ha ogni modulo, come collaborano le classi e dove inserire il codice specifico di un gioco. Ogni pagina collega le spiegazioni alle classi da leggere: usa la wiki per orientarti e il sorgente per verificare i dettagli.

utils: le convenzioni da conoscere

Due guide pratiche alle utilità condivise:

Percorso consigliato

  1. Panoramica del core
  2. Architettura e game loop
  3. Input ed eventi
  4. Scene, oggetti e scheduling
  5. Rendering, coordinate e camera
  6. Sprite, animazioni e testo
  7. UI, overlay e clipping
  8. Quadtree e query spaziali
  9. Servizi e asset
  10. Come estendere il core
  11. Editor dei livelli
  12. LevelData e livelli JSON
  13. Post-processing e shader

Esempi di gioco

I quattro esempi condividono il core, ma implementano regole differenti. Ognuno ha un percorso di lettura dettagliato:

  1. CustomPlatformer: fisica e collisioni personalizzate. Prosegui con scena e risorse, movimento e collisioni ed entità e gameplay.
  2. CustomPlatformerSlopes: platform ispirato a Super Mario Bros 3, con rampe, scivolamento e piattaforme attraversabili. Prosegui con scena e risorse, movimento e collisioni ed entità e gameplay.
  3. Box2DPlatformer: platform con simulazione Box2D 3.x. Prosegui con scena e risorse, world, body e contatti ed entità e gameplay.
  4. ActionRPG: gioco con vista dall'alto, collisioni personalizzate, AI e interfaccia. Prosegui con scena e risorse, movimento e collisioni, pathfinding e NPC, Link e gameplay e UI e portali.

Come leggere il progetto

Il repository è diviso in tre livelli:

Livello Responsabilità
utils/ Tipi geometrici, collisioni, tempo, file, funzioni SDL e altre utilità riusabili.
core/ Ciclo principale, scene, oggetti, rendering, audio, font, editor, LevelData e servizi comuni.
Progetti di esempio Regole di gioco, fisica, personaggi, livelli e contenuti specifici.

Il core non è un motore fisico: fornisce l'infrastruttura comune sulla quale i progetti costruiscono sistemi di collisione e dinamica differenti.

Una mappa mentale

Durante un frame, Game raccoglie gli eventi e aggiorna le scene; la Window chiede poi a ciascuna scena di disegnarsi. Una GameScene aggiorna i propri Object, mentre la sua View seleziona quelli nella camera. Soltanto gli oggetti renderizzabili arrivano allo Sprite, che legge una regione di texture. In breve:

Game -> Scene/GameScene -> Object
     -> Window -> Scene -> View -> RenderableObject -> Sprite

Le due catene condividono la scena ma rispondono a domande diverse: cosa succede? e cosa viene mostrato?. Le pagine seguenti le seguono nell'ordine in cui è utile studiarle.

Diagrammi delle classi

Ogni modulo ha una pagina dedicata, raggiungibile anche dal menu laterale:

Collegamenti

Clone this wiki locally