Il codice sorgente del motore sorgente è disponibile?


Risposte:


35

No non lo è. È possibile ottenere una licenza sorgente da Valve, ma la fonte stessa non è open source.


Inoltre, è generalmente un approccio molto pericoloso utilizzare interi motori esistenti come materiale di apprendimento senza la guida di qualcuno che era fortemente coinvolto nello sviluppo di quel motore.

Il solo codice sorgente ti dice solo come prendere decisioni progettuali particolari, non perché dietro la maggior parte di quelle decisioni che è spesso estremamente importante dato che così tante scelte nell'ingegneria del software sono tra le opzioni generalmente ugualmente valide. Hai bisogno di un contesto per capire perché una scelta è buona e se guardi alla fonte di alcuni motori e pappagalli le loro tecniche e modi di dire, difficilmente stai imparando qualcosa di utile.

Inoltre, proprio perché il codice spedito un gioco non fa che il codice buono (Fonte in particolare, è soggetta a molte società molto decisioni di progetto fuori moda rispetto al C ++ e OO, per esempio). Ci sono molte storie dell'orrore che risiedono nei codici dei motori anche dei titoli AAA di maggior successo. E come neofita impressionabile, come riuscirai a distinguere il buono dal cattivo?

Fai molta attenzione usando il codice sorgente come risorsa di apprendimento e assicurati di abbinarlo con quante più informazioni supplementari possibile.


3
"Il solo codice sorgente ti dice solo come prendere decisioni progettuali particolari, non perché dietro la maggior parte di quelle decisioni che è spesso estremamente importante dato che così tante scelte nell'ingegneria del software sono tra le opzioni generalmente ugualmente valide." Penso che questa sia la mia risposta.
Sad CRUD Developer

@BDillan in effetti, alcune persone lo imparano nel modo più duro .. anche se le aziende ti assumeranno per lavorare con enormi pile di codice motore che non capisci e non hai il tempo di finire per eseguire il debug.
teodron,

Si noti che il software ID ha reso disponibili molti dei loro motori: github.com/id-Software
pjc50

1
Come una leggera tangente, guardare il codice di un motore commerciale può essere molto istruttivo se hai un professionista a portata di mano per spiegare la differenza tra "questo codice è buono" e "questo codice è un brutto trucco che era necessario nel vecchio giorni "; per esempio -> fabiensanglard.net
Shish,

5

tl; dr: Imparare a creare un motore è spesso utile per la creazione di giochi come imparare a costruire il proprio computer e sistema operativo da zero. Se non sei un esperto nel settore, probabilmente non vuoi creare un motore. Crea invece un gioco, la parte del motore esiste già. In seguito, se nessuno dei motori a cui hai accesso soddisfa i criteri per la progettazione del tuo gioco, potresti concentrarti sulla costruzione di quell'aspetto specifico e l'inferno potrebbe essere utile anche agli altri poiché stai creando qualcosa di nuovo e non rifacendo una versione meno robusta di qualcosa in cui la gente ha già investito migliaia di ore.

Versione lunga: se vuoi davvero imparare a scrivere un motore, non guardare ancora un motore esistente. Impara invece delle parti (algoritmi) che formano un motore, che si tratti di rendering, fisica o ricerca di percorsi, ecc. Una volta acquisita una conoscenza approfondita di un aspetto specifico, potresti voler controllare l'origine.

Normalmente non desideri imparare direttamente dalla fonte a meno che non ci siano alternative superiori. Anche i programmatori esperti normalmente non guarderebbero alla fonte di un intero motore per imparare da esso (se possono aiutarlo), molto probabilmente ispezionerebbero una parte specifica di esso o ne modificerebbero una parte. Cercare di guardare alla fonte per puro scopo di apprendimento non esporrebbe la procedura e il processo di pensiero dietro il codice del motore; Sarebbe come fare a pezzi un edificio a pezzi nel tentativo di vederne l'interno per imparare a costruirne uno. Mentre sono d'accordo con la risposta di Josh, farò un ulteriore passo avanti, non imparerai nemmeno il "Come" in molti sensi (a meno che tu non abbia familiarità con il campo); per esempio, quale metodologia è stata utilizzata dal team di programmazione? Su quali principi si sono basati per implementare il codice di lavoro? Quali strumenti e tecniche hanno usato per il debug? Tutte queste domande sono talvolta più importanti del codice stesso (a fini di apprendimento).

Se desideri imparare dalla fonte, cerca la fonte che sia ben documentata e che abbia attorno una forte comunità. Leggere il codice (motore), anche se l'hai scritto tu stesso, è spesso fonte di confusione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.