Domanda

Progetto Darkstar era l'argomento del mensile JavaSIG incontro presso gli uffici di Google a New York ieri sera.Per coloro che non lo sanno (probabilmente tutti), Project Darkstar è un framework per i giochi online multiplayer massiccia che tenta di prendersi cura di tutte le "cose ​​difficili". L'idea di base è che scrivi la logica del tuo server di gioco in modo tale che tutte le operazioni siano suddivise in piccole attività.Passi queste attività al framework Project Darkstar che gestisce la loro distribuzione a un nodo specifico nel cluster, eventuali problemi di concorrenza e infine la persistenza dei dati.

Apparentemente fare questo genere di cose è un problema molto diverso per i videogiochi rispetto alle applicazioni aziendali.Jim Waldo, che ha tenuto la conferenza, afferma che i giochi MMO hanno un rapporto lettura/scrittura DB di 50/50, mentre le app aziendali sono più simili al 90% in lettura e al 10% in scrittura.Afferma inoltre che la maggior parte degli MMO esistenti mantengono tutto esclusivamente in memoria e lo scaricano in un DB solo ogni 6 ore.Ciò significa che se un server non funziona, perderai tutto il lavoro dall'ultimo dump del DB.

Ora, il progetto in sé sembra davvero interessante, ma non credo che l'industria lo accetterà.Per prima cosa devi scrivere il codice del tuo server in Java.Il codice client può essere scritto in qualsiasi cosa (Jim sostiene che ActionScript 3 è il più popolare, seguito da C++), ma il materiale del server deve essere Java.Mi sembra una buona cosa, ma ho davvero l'impressione che tutti nel settore dei giochi odino Java.

In secondo luogo, a differenza di altri settori in cui gli sviluppatori preferiscono utilizzare framework e librerie esistenti, i ragazzi del settore dei giochi sembrano voler scrivere tutto da soli.Non solo, a loro piace riscrivere tutto per ogni nuovo gioco che producono.Le cose stanno iniziando a cambiare laddove gli sviluppatori utilizzano Havok per la fisica, Unreal Engine 3 come piattaforma, ecc., ma per la maggior parte sembra che tutto sia ancora proprietario.

Quindi i ragazzi di Project Darkstar stanno solo perdendo tempo?Può una struttura generale come questa davvero funzionare per giochi complessi con le prestazioni richieste?Anche se funzionasse, le aziende produttrici di giochi sarebbero disposte a usarlo?

È stato utile?

Soluzione

Modificare:Questo è stato scritto prima che Oracle acquistasse Sun e iniziasse una furia per uccidere tutto ciò che non gli fruttava un miliardo di dollari al giorno.Vedi i commenti per un fork OSS. Sono ancora della mia opinione che cose del genere (MMO Middleware) siano realistiche, hai solo bisogno di un'azienda che non faccia schifo.

Il mercato può essere dominato da pochi giochi di grandi dimensioni, ma ciò non significa che non ci sia molto spazio per giochi di nicchia.Affrontiamolo:Se vuoi raggiungere più di 100.000 giocatori, finirai per costruire il tuo stack tecnologico, almeno per il nucleo critico.Questo è ciò che CCP ha fatto per EVE Online (StacklessIO), questo è ciò che ha fatto Blizzard per World of Warcraft (sebbene utilizzi molte librerie di terze parti), questo è ciò che ha fatto Mythic per Warhammer Online (sebbene siano basati su Gamebryo).

Tuttavia, se miri a diventare un MMO piccolo e di nicchia (come le dozzine di MMO Free-to-Play/Itemshop), allora ottenere le giuste informazioni sulla rete è semplicemente follemente difficile, la coerenza dei dati è ancora più difficile e la scalabilità è la più grande b* tch.

Ma la tecnologia dei giochi non è il tuo unico problema: devi anche affrontare la fatturazione.Solo carta di credito?Divertitevi a vendere in Germania allora, la gente lì vuole gli ELV.È qui che hai bisogno di un fornitore di fatturazione affidabile, ma devi comunque collegare l'applicazione di fatturazione con i tuoi account per assicurarti che gli account vengano bloccati/riattivati ​​quando la fatturazione fallisce.

Ci sono alcune società che offrono già "Servizi di infrastruttura MMO" (ad es. EEIS di Arvato), ma il punto è:Cose come Project Darkstar SONO realistiche, ma supporre che sia possibile costruire un MMO multimiliardario interamente su uno stack di terze parti è ottimistico, forse idealistico.

Ma ancora una volta, inventare interamente tutta la tecnologia è ancora più stupido: usa il materiale di terze parti di cui hai bisogno (ad es.Fatturazione, Rendering dei caratteri, Uscita audio...), ma scrivi le cose che realmente fanno o distruggono la tua attività (cioè.Stack di rete, interfaccia utente, ecc.) in autonomia.(Nota:Il messaggio di Jeff potrebbe esserlo un po' imperfetto, ma la direzione generale è corretta secondo me.)

Addendum:Inoltre, l'industria dei giochi concede in licenza e riutilizza molto i motori.I motori di gioco più importanti sono Motore irreale, Motore di origine E id Tech, che alimentano dozzine, se non centinaia di giochi.Ma ci sono alcuni motori meno conosciuti (al di fuori del settore).C'è Gamebryo, il middleware dietro giochi come Civilization 4 e Fallout 3, esisteva RenderWare ora è solo EA-in-House, ma utilizzato in giochi come Battlefield 2 o The Sims 3.C'è l'open source Orco3d, che è stato utilizzato in Alcuni commerciale titoli.Se stai cercando solo il suono, ci sono cose come FMOD o se vuoi eseguire il rendering dei caratteri, perché non dare Tipo libero un giro?

Quello che sto dicendo è:Esistono motori/middleware di terze parti e vengono utilizzati con successo da più di un decennio (so per certo che il motore Wolfenstein di id è stato concesso in licenza ad altre società, e questo era il 1992), anche da grandi aziende in multimilionari titoli in dollari.La cosa importante è il supporto, perché un buon motore senza aiuto in caso di problemi è praticamente inutile o almeno molto costoso se lo sviluppatore deve dedicare il tempo di sviluppo del gioco a debugging non necessario del motore.

Se quelli di Darkstar riescono a ottenere il giusto supporto e a pubblicare 2 o 3 titoli di profilo più alto, credo che potrebbero riuscire ad aprire il mercato degli MMO a sviluppatori e indie molto più piccoli.

Altri suggerimenti

Mi sembra una tecnologia inutile.Il mondo degli MMO è controllato da alcune grandi società di videogiochi che dispongono già della propria tecnologia.Gli sviluppatori di giochi indipendenti adorano provare a creare MMO e talvolta lo fanno, ma questi giochi raramente guadagnano terreno.Le aziende più grandi che entrano nel mondo degli MMO probabilmente concederebbero in licenza una tecnologia "collaudata" o estenderebbero la propria.

Le società di giochi riutilizzano grandi quantità di codice da un gioco all'altro.La maggior parte/molte società di giochi hanno sviluppato internamente la propria tecnologia e la utilizzano su ogni gioco che producono.Occasionalmente, faranno qualcosa come sostituire il loro codice fisico con un motore fisico di terze parti.Se il loro codice di base interno (motore di gioco, strumenti di progettazione, pipeline interna) inizia a invecchiare troppo o diventare ingombrante, potrebbero passare a uno dei grandi motori di gioco come Unreal.Anche in questo caso, porzioni importanti di codice continueranno a essere riutilizzate da un gioco all'altro.

Da quello che posso dire, le aziende di videogiochi non riutilizzano la maggior parte del loro codice, perché se lo fanno implica che il loro nuovo gioco è solo un rimaneggiamento di quello vecchio.

Ehm...se ti riferisci alla lunga coda delle aziende di videogiochi, forse.All'interno di un'azienda che ha avuto una serie di giochi di successo, di solito c'è un minimo di riutilizzo.Importanti modifiche hardware possono comportare l'abbandono di molto lavoro, ma dipende davvero dall'azienda.

Sembra divertente da progettare e programmare, ma penso che alla fine sia tutto astrazioni inutili (per rubare a Joel).

È molto comune che i giochi riutilizzino i "motori di gioco", anche quelli di terze parti.Sembra un altro passo in quella direzione.

Penso che sia una cosa grandiosa da fare.Gli sviluppatori non devono preoccuparsi di tutte queste cose di cui si occupa Project Darkstar, ed è molto facile da usare.Ma non si tratta solo di farlo funzionare e di non dover imparare tutto sulla comunicazione via Internet, si tratta anche di prestazioni.Il progetto Darkstar è in fase di sviluppo da oltre 2 anni e continua a migliorare, più velocemente e più robusto.

Penso che sarà difficile e probabilmente non varrà la pena scrivere queste cose quando si punta a un gioco specifico, quando invece è possibile utilizzare tecnologie come questa.E ottieni anche informazioni utili durante il runtime che ti dicono dove in un'applicazione c'è una causa di rallentamento o blocco in modo da poterlo migliorare.

Non lavoro nel settore dei giochi, ma mi sembra che questo farà la stessa cosa per i videogiochi che hanno fatto i motori Quake e Half-Life.Cioè promuoveranno l'interesse dei giovani sviluppatori nel settore e promuoveranno lo sviluppo di giochi indipendenti.

Da quello che posso dire, le aziende di videogiochi non riutilizzano la maggior parte del loro codice, perché se lo fanno implica che il loro nuovo gioco è solo un rimaneggiamento di quello vecchio.Tutti vogliono un nuovo fantastico motore fisico, una grafica migliore, nuovi modi di giocare.La maggior parte dei motori e dei framework dei videogiochi sono realizzati per uno scenario specifico e quindi non sono molto adattabili ad altre situazioni.

Forse Darkstar riuscirà a farlo bene, ma ne dubito, dal momento che generalizzare funziona solo per un certo limite.

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