Guida Personalizzazione Gioco
Ultimo aggiornamento: 2026-04-15
Guida step-by-step per chi scarica Logeon e vuole creare il proprio gioco personalizzato.
1. Setup iniziale
- Copia il progetto nella webroot (es.
C:\xampp\htdocs\logeon). - Esegui
composer install. - Verifica che
vendor/autoload.phpsia presente. - Configura:
configs/config.phpconfigs/db.phpconfigs/app.php
2. Prima installazione del database
Scegli un percorso.
Percorso A (consigliato): wizard installer.
- usa un database vuoto
- apri
/install - completa i 5 step (app config, DB test, write config, init DB, finalize)
- nello step
init DB, Logeon importa lo schema unicodatabase/logeon_db_core.sql
Percorso B: import manuale.
- importa
database/logeon_db_core.sql - verifica
configs/installed.phpconINSTALLED = true
3. Branding base del tuo gioco
Modifica configs/app.php:
baseurlnametitledescription- contatti staff/supporto
- logo (
brand_logo_icon,brand_logo_wordmark)
4. Personalizzare le pagine pubbliche
Intervieni in app/views/:
- homepage:
app/views/index.twig - regolamento:
app/views/rules.twig - storyboard:
app/views/storyboard.twig
Regola: niente JS/CSS inline nelle view.
5. Personalizzare area gioco (/game)
Template principali:
app/views/app/maps.twigapp/views/app/location.twigapp/views/app/profile.twigapp/views/app/forum.twigapp/views/app/shop.twig
Logica frontend:
- feature pagina in
assets/js/app/features/game/* - moduli API in
assets/js/app/modules/game/* - componenti shared in
assets/js/components/*
6. Aggiungere una nuova funzionalita (pattern consigliato)
Esempio standard:
- crea endpoint backend in
app/controllers/*+ route inapp/routes/api.phpocustom/routes.php - applica i controlli autorizzazione con
AuthGuard - crea modulo frontend in
assets/js/app/modules/game/* - collega la feature pagina in
assets/js/app/features/game/* - aggiungi hook
data-*nel Twig - testa il flusso completo
7. Regole per non rompere il core
Non toccare questi file per personalizzazioni normali:
core/Models.phpcore/Router.phpcore/SessionGuard.phpcore/Template.phpcore/Database/MysqliDbAdapter.phpcore/Database/DbAdapterFactory.phpapp/services/AuthService.phpautoload.phpapp/routes.php
Usa questi punti di estensione:
custom/routes.phpcustom/bootstrap.phpapp/services/*app/controllers/*app/views/*assets/js/app/*
8. Permessi e sicurezza
- backend autoritativo: i permessi si validano sempre in PHP
- frontend solo per UX/visibilita
- per operazioni sensibili usa
AuthGuard::api()->requireAbility(...) - mantieni
CONFIG['debug'] = falsein produzione
9. Stile e tema
- base CSS:
assets/css/framework.css - override tema:
assets/css/style.css - CSS admin:
assets/css/admin.css - personalizzazioni del creatore di gioco:
assets/css/custom.css - sorgenti Sass:
assets/sass/framework.scss,assets/sass/style.scss,assets/sass/admin.scss - policy:
assets/sass/e la sorgente autorevole,assets/css/e output compilato assets/css/custom.cssresta volutamente vuoto e va usato solo per override del gioco, non per stili core- build:
sass.cmd --load-path=assets/vendor/bootstrap-5.3.8/scss assets/sass/style.scss assets/css/style.css --style=expanded --source-mapsass.cmd assets/sass/framework.scss assets/css/framework.css --style=expanded --source-mapsass.cmd assets/sass/admin.scss assets/css/admin.css --style=expanded --source-map
10. Configurazione del pannello admin
Prima di pubblicare, configura le entita di gioco dall'area /admin:
- mappe e location
- oggetti, categorie, rarita, slot equipaggiamento
- botteghe e inventario delle botteghe
- valute
- lavori e compiti
- gilde (struttura base)
- news e regolamento
11. Accesso Google e personaggi multipli
Configurazione in /admin/settings:
Google OAuth:
auth_google_enabled: abilita/disabilita login Google.auth_google_client_id,auth_google_client_secret,auth_google_redirect_uri.- se disabilitato, il pulsante Google non viene mostrato nella modale di login.
Personaggi multipli:
multi_character_enabled: abilita account con piu personaggi.multi_character_max_per_user: massimo personaggi per utenza (1-10).
Comportamento runtime:
- se personaggi multipli disattivi: login diretto come prima.
- se attivi e l'utente ha piu personaggi: dopo il login viene richiesta la selezione del personaggio.
- la selezione crea la sessione completa del personaggio scelto (user + character + config runtime).
12. Checklist prima di pubblicare il tuo gioco
- login/logout funzionanti
- mappe/location/chat funzionanti
- forum/thread/messaggi funzionanti
- shop/inventario/equip funzionanti
- upload profilo funzionante
- pannello admin accessibile e funzionante
- nessun fatal error PHP nei log
- nessun loop anomalo di richieste nel browser
- smoke core runtime CLI verde:
C:\xampp\php\php.exe scripts/php/smoke-core-runtime.php
- debug disattivato
13. Dove approfondire
- overview documentazione:
docs/README.md - guida contributori:
docs/guida-contributori.md - runtime frontend:
docs/guida-architettura-frontend.md - sistema moduli:
docs/guida-sistema-moduli.md - contratti API:
docs/contratti-api-backend.md