Come possono gli sviluppatori non indie smettere di reinventare la ruota?


8

Sembra che lo status quo nel settore dei giochi sia quello di scrivere la maggior parte dei software internamente, magari escludendo il motore se ne usi uno o più di quelli grandi. Prima di lavorare qui ero principalmente uno sviluppatore open source, quindi questa mentalità mi sembra decisamente pazza. Esiste un buon modo per smettere di costruire cose come visualizzatori di log, diagnostica di rete e sistemi di patching?

Risposte:


15

Possiamo smettere di reinventare la ruota ... smettendo di reinventare la ruota. Usa librerie esterne, motori di gioco, ecc.

Ho la sensazione che la gente non reinventare la ruota per:

  • Evita diritti d'autore, royalties, ecc. Su biblioteche o codici presi in prestito
  • Evita di pagare per un motore di gioco (per un gioco completo su AAA, questo può essere enormemente costoso)
  • Mantenere un'intima familiarità con l'intera base di codice - l'aggiunta di librerie esterne, il collegamento ai motori di gioco, ecc. Significa solo più codice con cui acquisire familiarità e possibilmente mantenere
  • Scrivere tutto il tuo codice da solo significa che puoi ottimizzarlo specificamente per il tuo gioco
  • Tale codice può quindi essere concesso in licenza ad altri, se lo si desidera, riutilizzarlo per altri progetti, ecc. Mentre si mantiene il controllo proprietario

Sono d'accordo con tutto ciò! Io stesso ho dovuto reinventare alcune cose per evitare il codice brevettato, inoltre ho dovuto evitare di pagare per un motore di gioco e, infine, ho spesso problemi che non sono colpa mia (come il mio gioco attuale che ha 3 difetti, uno è quello il motore fisico ha un comportamento contro-intuitivo ... questo significa che avrò bisogno di leggerne attentamente la fonte ... l'altro è che il mixer sembra avere un modo arbitrario di scegliere le priorità e, infine, lo stesso motore di gioco con l'editor di mappe, segfault casualmente quando scarico una mappa ... Ancora una volta questo codice significa spazzare ...)
speeder

La domanda è più sociale, come possiamo incoraggiarla? Esistono, ad esempio, strumenti per l'applicazione di patch che sono indipendenti dal gioco? Ci sono alcuni algoritmi e librerie sottostanti per la manipolazione dei dati (algoritmo rsync, zlib) ma non conosco nulla che vada fino a un'interfaccia utente.
coderanger,

1
In realtà ti sei perso la possibilità di guadare e risolvere problemi nelle librerie durante la versione di rilascio senza dover considerare il tempo di consegna di una terza parte sul loro sorgente chiusa e ottimizzare le librerie per il tuo preciso caso d'uso. Quelli possono essere piuttosto preziosi.
Moonshadow

1

Dipende. Penso che ci sia una buona quantità di middleware là fuori, che viene utilizzato, ... se sei disposto a pagare.

Allo stesso tempo, a volte è facile hackerare qualcosa per ottenere davvero velocemente senza tante dipendenze esterne, se l'ambito è piccolo.

Penso che sull'alta gamma, devi confrontare aziende come EA e Ubisoft con altre grandi società di software, come Apple, Google, Facebook, che cosa hai.

Tutti scrivono una grande quantità di codice personalizzato, quando ci sono alternative esistenti, perché vogliono ottenere un vantaggio competitivo.

Come ha detto @Sean James ci sono ragioni legali e molte altre ragioni, ma penso che anche se non ci fossero blocchi stradali, le società di software inventivo svilupperebbero comunque alternative personalizzate ai componenti software esistenti comuni se pensassero di poterli migliorare.

Tuttavia, sono anche d'accordo che c'è sempre spazio per avviare alcuni progetti di cui tutti potremmo beneficiare. Ad esempio, penso che dobbiamo sostituire COLLADA con qualcosa di molto più semplice basato su JSON. Forse qualcosa che gestisce solo maglie arbitrarie, ma nient'altro. Penso che abbiamo davvero bisogno di un formato mesh migliore.


Non c'è solo il vantaggio competitivo di scrivere il tuo "middleware", ma significa anche il supporto interno. Ciò può tornare utile in momenti di grave crisi, o quando un bug è impossibile da riprodurre senza consegnare l'intero gioco.
Kaj,

Non troppo menzione se la società di motori di gioco viene acquistata o il loro codice è piratato, l'elenco continua. A seconda di qualcun altro il codice è una responsabilità che può essere difficile da quantificare, non ci sono molti utenti, come nel caso di molti middleware specializzati
Jonathan Fischoff,

Non credo che tutti i codici personalizzati spariranno, ma la mancanza di uno o più formati praticabili per la condivisione dei dati non aiuta lo sviluppo di strumenti.
Jonathan Fischoff il

Un sacco di tempo, almeno nella mia azienda, le persone preferiscono ricostruire le cose in casa solo perché il personale è già iscritto in bilancio e l'acquisto di middleware non lo è (ed è più facile chiedere ai programmatori di lavorare 10 ore al giorno piuttosto che ottenere HQ per autorizzare grandi spese in conto capitale). I vantaggi della collaborazione più libera non sarebbero un vantaggio maggiore del vantaggio competitivo derivante dagli strumenti proprietari?
coderanger,

Penso che possa essere migliorato, ma penso che sia un problema che si estende oltre le società di gioco. Vi è molto meno riutilizzo del codice, quindi in generale, non solo con i giochi. A livello personale, mi piacerebbe aiutare ad avviare alcuni progetti.
Jonathan Fischoff il

1

Esiste un buon modo per smettere di costruire cose come visualizzatori di log, diagnostica di rete e sistemi di patching?

Nella mia esperienza, queste cose sono trattate come semplici extra che possono essere fissati insieme alla tua programmazione "reale". Certo, risultano essere tutt'altro che semplici e tutt'altro che "extra", essendo parti complesse e importanti del sistema, ma ormai ci sono già troppi investimenti nella versione su misura.

Esistono buone librerie open source o commerciali che offrono questo tipo di funzionalità? Non sono sicuro che ci siano, e fino a quando qualcuno non si farà avanti e ne fornirà uno, rimarrà così. Gli sviluppatori aziendali spesso non sono in grado di produrre librerie adatte ai giochi (" cosa, vuoi dire che non puoi rimuovere completamente tutte le chiamate in una build di rilascio ?! ") e gli sviluppatori di giochi spesso non sono interessati a creare questo tipo di cosa come un pacchetto autonomo quando hanno un gioco con cui andare avanti.

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.