Metodo di generazione del nemico in uno sparatutto top-down


20

Sto lavorando a uno sparatutto dall'alto verso il basso simile a DoDonPachi , Ikaruga , ecc. Il movimento della videocamera nel mondo viene gestito automaticamente con il giocatore in grado di muoversi all'interno della regione visibile della videocamera.

Lungo la strada, i nemici sono programmati per spawnare in determinati punti lungo il percorso. Anche se sembra semplice, ho potuto vedere due modi per definire questi punti:

  1. Posizione della telecamera: il "trigger" viene generato mentre la telecamera passa per i punti
  2. Tempo lungo il percorso: "30 secondi dopo, genera 2 nemici"

In entrambi i casi, verranno definite le posizioni relative alla telecamera e il comportamento del nemico.

Per come la vedo io, il modo in cui definisci questi punti influenzerà direttamente il modo in cui "l'editor di livelli" o quello che hai funzioneranno.

Ci sarebbero vantaggi di un approccio rispetto all'altro?

Risposte:


7

Suggerirei di posizionare le posizioni di spawn effettivamente sulla mappa di sfondo come nodi che sono visibili da una sorta di editor di mappe. Puoi rappresentare un shmup spawn con due variabili:

  1. Posizione da cui sono visibili per la prima volta, che è meglio visualizzato come punto
  2. Distanza dallo schermo inferiore quando dovresti generarli.

Quindi puoi visualizzare la distanza dalla parte inferiore dello schermo come una linea verticale che punta verso il basso dal nodo di spawn (che potrebbe essere visualizzato come una versione in grigio del nemico o qualcosa del genere). Quando la parte inferiore dello schermo tocca quella linea, si genererà. Ciò ti consente di eseguire tutte le modifiche del nemico completamente in una sorta di editor visivo e di darti una panoramica dell'intero flusso del gioco.


Ri 2) Naturalmente, all'esportazione dovresti invertire questo codice (cioè per riga, quali punti di spawn dovrebbero diventare attivi, poiché con questo sistema devi essere consapevole di alcuni punti di spawn prima che diventino visibili. Un dettaglio, questo è davvero il modo più logico.
Kaj

1
Come nota, assicurati di utilizzare un editor che ti consenta di spostare facilmente i nodi in blocco. Quando imposti il ​​tuo livello shmup inserirai e rimuoverai i nemici, e modificherai costantemente i tempi nel mezzo del tuo livello, e dovendo spostare tutte le tue entità una alla volta ti uccideranno.
ZorbaTHut

Adoro questa idea in quanto renderà il montaggio molto più semplice, il che è sempre un vantaggio
Chris Waters,

7

Solo un po ', la posizione della telecamera per spawn sarebbe probabilmente più flessibile poiché potresti modificare il percorso senza doversi preoccupare di un grande effetto domino.

Se vai con le spawn del tempo, sarà un grande dolore aggiungere o rimuovere il percorso perché dovrai modificare molte spawn nemiche.

Un altro problema che vedo è l'ottimizzazione della velocità della fotocamera. Vuoi davvero andare e devi modificare le spawn nemiche solo perché hai fatto muovere la telecamera un po 'più velocemente o più lentamente? Inoltre dovresti giocare attraverso il livello un numero orribile di volte solo per trovare tempi di spawn o modifiche per loro.


2

Consiglio vivamente di non spostare affatto "la fotocamera"; considera sempre il giocatore e i nemici nello stesso spazio di coordinate fisso. I nemici e lo scorrimento in background devono entrambi corrispondere a una sequenza temporale indipendente. Rende tutta la matematica più semplice.


Sono per metà d'accordo con te. Sicuramente la fisica degli shmup è falsa e basata sulla nave che non si muove realmente in avanti. Detto questo, la domanda è ancora valida poiché hai una macchina fotografica ecc. Da considerare
Iain

In effetti, non invalida la domanda. È ancora tempo rispetto alla distanza (virtuale) percorsa. Se muovi il giocatore in avanti o lo sfondo all'indietro è semplicemente un livello concettuale. Inoltre, il loro disaccoppiamento per facilitare la matematica può rendere le cose molto più difficili, come mettere i nemici in background (torrette), farli evitare oggetti di sfondo o avere oggetti collezionabili in background.
Kaj,

1

Vorrei scegliere la posizione della telecamera. L'uso del tempo lo renderà piuttosto difficile se si desidera far corrispondere un percorso nemico con alcuni elementi grafici nel file della mappa (come i nemici che seguono un percorso curvo). Inoltre, consente di velocizzare lo scorrimento senza modificare i punti di spawn.
Il rovescio della medaglia è che accelerare la pergamena renderà i nemici più veloci. Che potrebbe essere considerato un plus (l'accelerazione sarebbe difficoltà su) o un negativo (la velocità di scorrimento influenza la stimolazione).


1

Sto anche lavorando a un gioco sparatutto spaziale. Quello che ho fatto è stato usare un oggetto di gioco vuoto chiamato GameController. aggiunto un componente di script chiamato GameController.cs che controlla la parte di generazione come,

  • Memorizza un elenco di punti di generazione [array]
  • Dai a ogni nemico un peso e punti specifici. il peso che controlla il tasso di spawn del nemico se un nemico ha un peso elevato ha buone possibilità di scegliere ogni livello.
  • Quindi ogni volta controlla Livello corrente e Scegli un numero casuale, se il numero è inferiore al peso, genera quel nemico associato. Spero abbia aiutato.

http://www.youtube.com/watch?v=VqFJsU63GRo


0

Li posizionerei sullo sfondo della grande mappa e includerei il loro percorso iniziale di movimento su quella mappa. In questo modo ho potuto cambiare il percorso della telecamera in un secondo momento in modo significativo invece di dover cambiare sia il percorso che i tempi separatamente.

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.