2009-07-19 15 views
6

Voglio iniziare come hobby nello sviluppo di un gioco per desktop. Ho trovato diversi motori, ma non sono sicuro che faccia il lavoro iniziale che sto guardando.Scelta di un motore di gioco 3D

Inizialmente voglio fare quanto segue:

  1. Creare una figura (avatar), e lasciare che vestono l'utente l'avatar
  2. Carica l'avatar nel gioco

Nelle fasi successive , Voglio svilupparlo come un gioco multi-giocatore.

Cosa devo fare?

risposta

15

Raccomando anche Ogre. Ogre può farlo, fornisce tutto il necessario per quanto riguarda il supporto di mesh e animazione, ma non come soluzione drop-in. Devi scrivere molto codice per fare questo.

Per il nostro progetto abbiamo implementato qualcosa come te. Il personaggio principale e qualsiasi altro personaggio possono essere vestiti con diverse armi e armature e le immagini dell'avatar personaggio cambiano di conseguenza.

Come suggerimento iniziale su come procedere: nel tuo strumento di modellazione (Blender, Maya, 3ds max, ecc.) Modelli il tuo avatar e tutti i suoi vestiti che ti servono e li imponi allo stesso scheletro. Quindi esporta tutto individualmente nel formato mesh di Ogre.

In fase di esecuzione è possibile allegare le mesh di abbigliamento che l'utente sceglie per l'istanza dello scheletro in modo che formino insieme l'avatar. Questo non è difficile da fare tramite l'Ogre-API, ma per un accesso ancora più semplice a questo è possibile utilizzare lo strumento meshmerge dell'estensione MeshMagick. È stato sviluppato esattamente per questo scopo.

Se si desidera modificare altre caratteristiche come le caratteristiche del viso, anche questo è possibile, poiché Ogre supporta le animazioni di posa dei vertici fuori dalla scatola, in modo da poter preparare percorsi per determinate caratteristiche del viso e consentire all'utente di cambiare il volto cursori o qualcosa del genere. (ad esempio in Oblivion) ​​

Una cosa da sapere per quanto riguarda Ogre: è un motore grafico 3d, non un motore di gioco. In questo modo è possibile disegnare oggetti sullo schermo e animare e illuminare e in qualsiasi modo modificare la grafica, ma non l'input, la fisica o il suono. Per questo devi usare altre librerie e integrarle. Sono disponibili diversi motori di gioco pre-raggruppati basati su Ogre.

1

Si potrebbe voler dare un'occhiata a http://www.crystalspace3d.org/ - Devo ammettere che è stato più di una questione esplorativa per me, ma sembrava un motore piuttosto bello - con la fisica e gli script inclusi. Hanno un progetto che mostra l'avatar che cammina nell'edificio simile a una stazione spaziale con effetti di camera molto fluidi.

OTOH: a seconda di quanto si spinge lontano, potresti ritrovarti a ricreare il tipo di ambiente SecondLife (tm) -like. Se questo è un presupposto equo, allora potresti dare un'occhiata a OpenSimulator e ai relativi progetti di opensource viewer e vedere se questo potrebbe interessarti - e lavorare lì con il team esistente per sviluppare ulteriormente il codice, piuttosto che lavorare da solo .

2

Nessun motore è in grado di farlo per voi. Quello che fanno generalmente ti permette di caricare e renderizzare modelli 3d. Ma combinandoli, il modo in cui dovresti fare per "vestirli" dipende da te. E crearli, o lasciare che l'utente lo faccia, dipende in definitiva da te. Il motore potrebbe offrire una serie di strumenti per semplificare il compito (ad esempio, il rendering del modello mentre l'utente lo sta progettando), ma un motore di gioco non è una scatola magica "Crea un gioco" in cui devi solo premere un pulsante e il tuo gioco personalizzato viene fuori.

1

Se si sta bene con C++, suggerisco il C4 Engine. Dalle mie esperienze, i motori di gioco esistenti sono troppo rigidi o semplicemente nient'altro che una collezione di librerie.

+4

Direi che una "raccolta di librerie" è di gran lunga il miglior design "motore". :) – jalf

6

Se sei bravo con C++ dovresti usare Ogre, è il miglior motore open source, continuamente aggiornato dai suoi creatori, con molti tutorial e una community molto utile.

http://www.ogre3d.org/

E 'più di un motore di GFX, ma ha tutti i prerequisiti che desiderate.

Buona fortuna!

+1

Ogre non ha supporto di rete. È puramente un motore grafico. – haffax

+0

@haffax: il networking non è molto difficile da implementare, almeno rispetto alla grafica – Zifre

1

Ogre è un buon modo per andare se sei solo interessato a ottenere qualcosa da mostrare. Come alcuni hanno già affermato qui, Ogre è un motore di rendering. Ci sono molti add-on e funzioni per completare attività comuni come Audio, Input e quant'altro. Questo è perfetto se stai solo cercando di giocare o creare un prototipo.

Se si desidera avviare un progetto a lungo termine che verrà sviluppato per un periodo di tempo più lungo (il che sarebbe molto probabile considerando che probabilmente si è l'unico sviluppatore e i giochi sono applicazioni complesse), si dovrebbe davvero iniziare a pensare a cosa vuoi fare. Quindi, in base ai tuoi obiettivi, cerca diversi motori in grado di soddisfare le tue esigenze (c'è sempre qualche API per realizzare XYZ). Poi dipende da te come gestisci il tuo gioco e dove usi le librerie esistenti: fondamentalmente leghi il tuo motore in base alle tue esigenze.

Diventa un po 'più difficile se si inizia a cercare un vero motore di gioco in termini di "motore per tutte le mie esigenze di sviluppo di giochi". Dai un'occhiata alla bella lista di motori di gioco 3d su Devmasters (http://www.devmaster.net/engines/), troverai molti motori di gioco con lo stato di alfa che cercano di ottenere questo risultato, anche se in questi casi il supporto e la documentazione di solito non sono di prima classe.

Personalmente non l'ho mai usato, ma ho valutato il motore open source Delta3D (delta3d.org) per il mio progetto e sono rimasto colpito dalla sua architettura interessante. Incapsula un sacco di altri framework open source di qualità per cose come la grafica (OpenSceneGraph: openscenegraph.org) o la fisica (ODE: ode.org). Questo è probabilmente il più vicino possibile a un motore di gioco flessibile e gratuito per quanto ne so. È stato sviluppato presso un'università aeronautica, e grazie al suo background accademico viene fornito con molta documentazione dettagliata.

2

Un paio di persone hanno detto Ogre3D, offrirò fino Irrlicht in alternativa.

0

Un motore che si può provare è il motore di gioco Torque 3D www.garagegames.com che, sebbene non sia freeware, consente l'usabilità immediata. Mentre la funzionalità che si cerca in termini di personalizzazione completa del personaggio non è immediatamente disponibile all'interno del motore, se si è disposti a creare i modelli da soli non dovrebbe essere troppo difficile aggiungerli al gioco e utilizzare il gioco motore per cambiare le "pelli" dell'avatar. Una cosa che ritengo lo distinguerà dagli altri motori è il fatto che viene fornito con funzionalità di rete preinstallate (da quello che hai descritto nella tua domanda, suppongo che tu stia tentando di creare un RTS o un MMO, e se è così ti auguro buona fortuna).

Mentre può sembrare strano che il motore sia basato su un gioco di tiro, ci sono delle guide nei forum Torque che ti permettono di aggiungere la codifica per il combattimento basato sulla spada e altre cose associate a un gioco fantasy (se, quello è, cosa stai progettando di fare).

Ma comunque ... buona fortuna con il tuo progetto. Se stai provando quello che penso tu stia tentando, non è un'impresa facile. Ma sono sicuro di sapere cosa si sta facendo =)

Spero che questo ha aiutato

0

Se siete interessati ad utilizzare il motore di Irrlicht 3D, è possibile trovare una serie di tutorial che passo attraverso il processo di creazione semplici applicazioni 3D here.

0

Suggerisco anche Irrlicht. È più facile iniziare, ma non ha la metà del supporto di Ogre3D.

1

Se sei bravo con C++ è possibile scrivere il proprio motore: P

Ogre è il migliore di Irrlicht e CrystalSpace, e il ragionamento dietro che è semplice - Ogre è stato effettivamente utilizzato in una pipeline di produzione per l'industria del gioco. In realtà ha molto peso dietro di esso, mentre Irrlicht e Crystalspace sono più o meno applicazioni che non fanno molto fuori dalla scatola. Crystalspace tuttavia ha un progetto di filiale che implementa un motore di gioco direttamente nello Blender 3d consentendo all'artista di svolgere il ruolo di programmatore senza lasciare il software vero e proprio.

Non sono molto grande su Irrlicht - c'è un sacco di curiosità dietro le sue motivazioni. Per un progetto open source si dirama in molti derivati ​​diversi che sono motori di gioco completi o editor WYSWYG e trovano modi per bloccarti in qualche modo.

Ogre eccelle nell'essere un motore grafico piuttosto che una libreria e deve essere compilato in base alle esigenze individuali. Il compromesso è che puoi implementare Ogre in qualsiasi flusso di lavoro di progettazione o persino crearne uno nuovo. Laddove toglie il peso alle spalle, è necessario scrivere un codice grafico di qualsiasi tipo, rendendolo quindi un motore di prototipazione rapida molto semplice nella sua forma base.

Problemi correlati