Quali sono alcuni buoni approcci per l'apprendimento dell'SDK di Half-Life 2?

StackOverflow https://stackoverflow.com/questions/803391

  •  03-07-2019
  •  | 
  •  

Domanda

Sono stato un amante dell'emivita per anni. Ho una laurea in CS e ho programmato in modo informale sin dalle superiori. Quando ero ancora al college ho provato a diventare un programmatore di mod per divertimento ... usando il primo motore Half-Life ... non ha funzionato così bene. Quindi ho pensato dopo tutto il mio grande insegnamento al college :-) Avrei avuto più informazioni su come affrontare questo problema e potrei finalmente farlo. Quindi eccomi qui, finalmente nel mondo degli affari, a programmare Java ... così ho scaricato l'SDk HL2 e ho iniziato a cercare nella struttura delle classi. Mi sembra di averlo fatto l'ultima volta che ho provato questo ... stordito e confuso. Mi dispiace per tutto lo sfondo.

Quindi qual è il modo migliore per apprendere sistematicamente la struttura del codice? Conosco java e conosco c ++ .. non so proprio cosa facciano le lezioni ... i commenti sono pochi e lontani tra loro e la documentazione sembra scarsa. Qualche buona approvazione? ** Non voglio iniziare la mia mod ... Voglio solo essere un programmatore di mod per il tempo libero in qualche MOD divertente un giorno ... per mantenere il divertimento nell'apprendimento della programmazione insieme al lato business.

È stato utile?

Soluzione

  

i commenti sono pochi e lontani tra   e la documentazione sembra scarsa.   Qualche buona approvazione?

Benvenuti nella meraviglia che è l'SDK di origine. No, non è documentato. Sperimenta, modifica, posiziona i punti di interruzione e vedi cosa succede se cambi bit di codice.

Esiste un wiki che potresti trovare utile in alcuni casi, ma è pieno dalla community e non da Valve, il che significa che non troverai alcuna documentazione reale lì, solo spiegazioni di come i modder precedenti hanno violato il motore.

Onestamente, fa schifo. L'unico modo per aggirarlo è quello di immergerti. Cerca di apportare varie modifiche al gioco e non aver paura di dividere il codice esistente. Non sarà carino, ma se funziona, chi si lamenterà? Il loro codice è piuttosto orribile, e molto probabilmente lo sarà anche il tuo.

Altri suggerimenti

Penso che il modo migliore sia controllare il codice sorgente di una delle poche mod open source là fuori, Open Source Jail Break . Ti aiuterà almeno a familiarizzare con il codice.

Oltre a ciò, sono solo risorse per sviluppatori e forum.

Modifica: Plan of Attack sembra fantastico.

Inoltre: Questo è un ottimo elenco, che include argomenti sia generali che specifici.

Farei quello che faccio con qualsiasi altro sistema vago ... stabilisco molti punti di interruzione e percepisco la struttura osservandone il funzionamento. Aggiungi i tuoi commenti / documentazione mentre procedi. Metti alla prova la tua comprensione apportando piccole modifiche e vedi se ottieni i risultati previsti.

Ho lavorato un po 'con l'SDK di origine e ho apportato alcune modifiche. Davvero devi avere una buona conoscenza di C e C ++. L'SDK di origine non è C ++ moderno ed è molto più simile a C con le classi di qualsiasi OOP reale.

L'SDK è semplicemente modellato in quanto la maggior parte del codice è costituita da entità, di cui molte possono essere ignorate.

Sappi anche che l'SDK usa l'ereditarietà molto pesantemente, quindi cerca di basare le classi per le funzionalità che potresti desiderare.

Direi di fare un elenco di file e classi importanti che potrebbero essere rilevanti per quello che vuoi fare con l'SDK. Quindi inizia a ordinare questi file usando le cartelle virtuali in VS (o le cartelle reali sul filesystem) e usa l'opzione trova nei file (o grep) per orientarti.

Alcuni file di esempio: eiface.h - Interfacce motore gameinterface.cpp / .h - Molte interfacce da dll esterne per server cdll_client_int.cpp / .h - Molte interfacce da DLL esterne per client * _gamerules.cpp / .h - Gamerules (determina la logica del gioco) world.cpp - Entità che determina le proprietà della mappa e carica i gamerules e altre entità

Prova anche a usare la Source SDK Base invece della HL2MP Base per un mod. Il primo è molto più pulito e facile da costruire.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top