title: Domande frequenti su Defold engine ed editor
R: Sì, il motore e l'editor di Defold con funzionalità complete sono completamente gratuiti. Nessun costo nascosto, commissioni o royalties. Solo gratuito.
R: Uno degli obiettivi della Defold Foundation è garantire che il software Defold sia disponibile per gli sviluppatori in tutto il mondo e che il codice sorgente sia disponibile gratuitamente.
R: Siamo profondamente impegnati in Defold. La Defold Foundation è stata costituita in modo tale da garantire che esista come proprietario responsabile di Defold per molti anni a venire. Non andrà via.
R: Assolutamente. Defold è utilizzato da un numero crescente di sviluppatori di giochi professionisti e studi di sviluppo. Dai un'occhiata alla vetrina dei giochi per esempi di giochi creati con Defold.
R: Registriamo dati anonimi sull'utilizzo dai nostri siti web e dall'editor Defold per migliorare i nostri servizi e prodotti. Non c'è tracciamento degli utenti nei giochi che crei (a meno che tu non aggiunga un servizio di analisi tu stesso). Leggi di più su questo nella nostra Politica sulla privacy.
R: Defold è stato creato da Ragnar Svensson e Christian Murray. Hanno iniziato a lavorare sul motore, sull'editor e sui server nel 2009. King e Defold hanno iniziato una partnership nel 2013 e King ha acquisito Defold nel 2014. Leggi la storia completa qui.
R: Assolutamente! Il motore è un vero e proprio motore 3D. Tuttavia, gli strumenti sono progettati per il 2D, quindi dovrai fare molto lavoro manuale. È previsto un miglior supporto per il 3D.
R: La logica di gioco nel tuo progetto Defold è scritta principalmente utilizzando il linguaggio Lua (specificamente Lua 5.1/LuaJIT, consulta il manuale Lua per i dettagli). Lua è un linguaggio dinamico leggero che è veloce e molto potente. Puoi anche utilizzare codice nativo (C/C++, Objective-C, Java e JavaScript a seconda della piattaforma) per estendere il motore Defold con nuove funzionalità. Quando crei materiali personalizzati, viene utilizzato il linguaggio shader OpenGL ES SL per scrivere vertex e fragment shaders.
R: Le seguenti piattaforme sono supportate per l'editor/strumenti e il runtime del motore:
| Sistema | Versione | Architetture | Supportato |
| ------------------ | ------------------ | ------------------ | -------------------- |
| macOS | 11 Big Sur | x86-64
, arm-64
| Editor |
| macOS | 10.15 | x86-64
, arm-64
| Motore |
| Windows | Vista | x86-32
, x86-64
| Editor e Motore |
| Ubuntu (1) | 18.04 | x86-64
| Editor |
| Linux (2) | Qualsiasi | x86-64
, arm-64
| Motore |
| iOS | 11.0 | arm-64
| Motore |
| Android | 4.4 (API level 19) | arm-32
, arm-64
| Motore |
| HTML5 | | asm.js
, wasm
| Motore |
(1 L'editor è costruito e testato per Ubuntu 18.04 a 64 bit. Dovrebbe funzionare anche su altre distribuzioni ma non diamo garanzie.)
(2 Il runtime del motore dovrebbe funzionare sulla maggior parte delle distribuzioni Linux a 64 bit purché i driver grafici siano aggiornati, vedi sotto per ulteriori informazioni sulle API grafiche)
R: Con un solo clic puoi pubblicare su PS4™, Nintendo Switch, iOS, Android e HTML5, oltre che su macOS, Windows e Linux. È davvero una base di codice unica con più piattaforme supportate.
R: Come sviluppatore devi preoccuparti solo di una singola API di rendering utilizzando una pipeline di rendering completamente scriptabile. L'API di script di rendering di Defold traduce le operazioni di rendering nelle seguenti API grafiche:
R: Sì, seleziona l'opzione "Informazioni" nel menu Aiuto. Il popup mostra chiaramente la versione beta di Defold e, più importante, lo specifico SHA1 di rilascio. Per il lookup della versione runtime, usa sys.get_engine_info()
.
L'ultima versione beta disponibile per il download da http://d.defold.com/beta può essere verificata aprendo http://d.defold.com/beta/info.json (lo stesso file esiste anche per le versioni stabili: http://d.defold.com/stable/info.json)
R: Sì, consulta sys.get_sys_info()
.
R: Quando invii, Apple ha tre caselle di controllo per i loro tre casi d'uso validi per l'IDFA:
Se selezioni l'opzione 1, il revisore dell'app cercherà annunci da mostrare nell'app. Se il tuo gioco non mostra annunci, il gioco potrebbe essere rifiutato. Defold stesso non utilizza l'ID pubblicitaria.
R: Defold supporta acquisti in-app e varie soluzioni pubblicitarie. Controlla la categoria Monetizzazione nel portale delle risorse per un elenco aggiornato delle opzioni di monetizzazione disponibili.
R: Il processo di build può non riuscire a ricostruire i file in rari casi in cui ha precedentemente incontrato errori di build che hai risolto. Forza una ricostruzione completa selezionando Progetto > Ricostruisci e avvia dal menu.
R: Sì, li supporta. Si chiamano collections. Ti permettono di creare gerarchie complesse di oggetti di gioco e memorizzarli come blocchi separati che puoi istanziare nell'editor o a runtime (tramite il caricamento di collezioni). Per i nodi GUI c'è supporto per i modelli GUI.
R: Probabilmente stai cercando di aggiungere un figlio nel file dell'oggetto di gioco e ciò non è possibile. Per capire perché, devi ricordare che le gerarchie genitore-figlio sono strettamente una gerarchia di trasformazione del scene-graph. Un oggetto di gioco che non è stato posizionato (o generato) in una scena (collezione) non fa parte di un scene-graph e quindi non può far parte di una gerarchia scene-graph.
R: Le relazioni genitore-figlio non esprimono altro che le relazioni di trasformazione del scene-graph e non devono essere confuse con gli aggregati di orientamento agli oggetti. Se ti concentri sui dati del tuo gioco e su come trasformarli al meglio mentre il tuo gioco cambia stato, troverai probabilmente meno bisogno di inviare messaggi con dati di stato a molti oggetti tutto il tempo. Nei casi in cui avrai bisogno di gerarchie di dati, queste sono facilmente costruite e gestite in Lua.
R: Questo è un artefatto visivo chiamato "edge bleeding" in cui i pixel di bordo dei pixel adiacenti in un atlas si mescolano nell'immagine assegnata al tuo sprite. La soluzione è imbottire il bordo delle tue immagini dell'atlas con righe e colonne extra di pixel identici. Fortunatamente questo può essere fatto automaticamente dall'editor di atlas in Defold. Apri il tuo atlas e imposta il valore Extrude Borders su 1.
R: Lo shader sprite integrato che viene utilizzato per impostazione predefinita per tutti gli sprite ha una costante "tint" definita:
local red = 1
local green = 0.3
local blue = 0.55
local alpha = 1
go.set("#sprite", "tint", vmath.vector4(red, green, blue, alpha))
R: La posizione Z di un oggetto di gioco controlla l'ordine di rendering. I valori bassi vengono disegnati prima dei valori alti. Nello script di rendering predefinito, gli oggetti di gioco con una profondità compresa tra -1 e 1 vengono disegnati, qualsiasi valore inferiore o superiore non verrà disegnato. Puoi leggere di più sullo script di rendering nella documentazione ufficiale Render. Sui nodi GUI il valore Z viene ignorato e non influisce sull'ordine di rendering. Invece, i nodi vengono renderizzati nell'ordine in cui sono elencati e secondo le gerarchie di figli (e i livelli). Leggi di più sul rendering GUI e sull'ottimizzazione delle chiamate di disegno utilizzando i livelli nella documentazione ufficiale GUI.
R: No. L'unico effetto è la precisione. Il buffer Z è logaritmico e ha una risoluzione molto fine dei valori Z vicini a 0 e meno risoluzione lontano da 0. Ad esempio, con un buffer a 24 bit i valori 10.0 e 10.000005 possono essere differenziati mentre 10000 e 10005 no.
R: In realtà c'è coerenza. Gli angoli sono espressi in gradi ovunque nell'editor e nelle API di gioco. Le librerie matematiche utilizzano i radianti. Attualmente la convenzione si interrompe per la proprietà fisica angular_velocity
che è attualmente espressa in radianti/s. Ci si aspetta che cambi.
R: È semplicemente una forma colorata con vertici. Tieni presente che costerà comunque in termini di fill-rate.
R: Tutte le risorse sono conteggiate internamente. Non appena il conteggio delle referenze è zero, la risorsa viene rilasciata.
R: Tutto è basato su componenti. È possibile creare un oggetto di gioco senza testa con più suoni e riprodurre i suoni inviando messaggi all'oggetto controller del suono.
R: In generale tutte le risorse sono dichiarate staticamente con il vantaggio che ottieni la gestione delle risorse gratuitamente. Puoi usare le proprietà delle risorse per cambiare quale risorsa è assegnata a un componente.
R: No, attualmente non è possibile.
R: Sì, imposta il flag physics.debug in game.project. (Consulta la documentazione ufficiale Project settings)
R: Defold esegue una versione modificata di Box2D in background e il costo delle prestazioni dovrebbe essere abbastanza simile. Puoi sempre vedere quanto tempo il motore trascorre sulla fisica aprendo il profilatore. Dovresti anche considerare quale tipo di oggetti di collisione utilizzi. Gli oggetti statici sono più economici in termini di prestazioni, ad esempio. Consulta la documentazione ufficiale Physics in Defold per ulteriori dettagli.
R: Dipende se stanno suonando o meno. Un ParticleFx che non sta suonando non ha alcun costo in termini di prestazioni. L'impatto sulle prestazioni di un ParticleFx in riproduzione deve essere valutato utilizzando il profilatore poiché il suo impatto dipende da come è configurato. Come per la maggior parte delle altre cose, la memoria è allocata in anticipo per il numero di ParticleFx definito come max_count in game.project.
R: Ogni collezione caricata tramite proxy ha il proprio stack di input. L'input viene instradato dallo stack di input della collezione principale tramite il componente proxy agli oggetti nella collezione. Ciò significa che non basta che l'oggetto di gioco nella collezione caricata acquisisca il focus dell'input, l'oggetto di gioco che detiene il componente proxy deve acquisire anche il focus dell'input. Consulta la documentazione Input per i dettagli.
R: No. Defold supporta proprietà di tipo hash. Queste possono essere utilizzate per indicare tipi, identificatori di stato o chiavi di qualsiasi tipo. Gli hash possono anche essere utilizzati per memorizzare ID degli oggetti di gioco (percorsi) sebbene le proprietà url siano spesso preferibili poiché l'editor popola automaticamente un menu a discesa con gli URL rilevanti per te. Consulta la documentazione Script properties per i dettagli.
R: Accedi alle celle usando mymatrix.m11
, mymatrix.m12
, mymatrix.m21
ecc
Not enough resources to clone the node
quando uso gui.clone() o gui.clone_tree()R: Aumenta il valore Max Nodes
del componente GUI. Trovi questo valore nel pannello Proprietà quando selezioni la radice del componente nel Riepilogo.
R: Certamente! Abbiamo una categoria speciale "Work for hire" per questo. Incoraggeremo sempre tutto ciò che beneficia la comunità, e offrire i tuoi servizi alla comunità---a pagamento o meno---è un buon esempio di ciò.
R: Per ridurre il bumping dei thread "Work for hire", non puoi pubblicare più di una volta ogni 14 giorni nel tuo thread (a meno che non sia una risposta diretta a un commento nel thread, nel qual caso puoi rispondere). Se vuoi aggiungere ulteriori lavori al tuo thread entro il periodo di 14 giorni, devi modificare i tuoi post esistenti con il contenuto aggiunto.
R: Certo, sentiti libero! Può essere utilizzata sia per offerte che per richieste, ad esempio "Programmatore cerca artista pixel 2D; sono ricco e ti pagherò bene".