Ahoy!
Sto cercando alcune informazioni sulle mappe delle piastrelle, o meglio, come viene chiamato un tipo specifico di mappa delle tessere.
Sono interessato al tipo di implementazione utilizzata nel magnate sulle montagne russe, o alla serie di giochi del magnate dei trasporti e ho cercato il terreno del campo vettoriale e il terreno della mappa di altezza, ma non sono sicuro che siano adatti a ciò che sto cercando sviluppare.
È stata una lotta trovare informazioni decenti dato che la maggior parte delle persone si riferisce ad essa come una mappa di piastrelle isometriche, ma sto cercando di creare qualcosa in 3D con una prospettiva ortografica fissa. Capisco che l'archiviazione di base della mappa delle tessere non ha nulla a che fare con il modo in cui viene renderizzata, ma non sto cercando di creare una mappa delle tessere 2D come i giochi pokemon / zelda della vecchia scuola, più lungo le linee di diablo con la possibilità di includere scogliere a strapiombo e terreno in pendenza.
Sto solo cercando di trovare i termini giusti per cercare su Google e StackOverflow risorse per aiutarmi a decidere quale percorso procedere.
Finora sono riuscito a perfezionare una mappa di tessere di base senza utilizzare il componente altezza / y memorizzato in un VBO e renderizzato come wireframe. Fin qui sembra tutto a posto, ma immagino che incontrerò problemi quando provo a manipolare un singolo vertice per creare scogliere e pendenze senza influenzare una piastrella vicina.
Esiste un tipo specifico di implementazione che dovrei esaminare? Pensavo di averlo risolto quando ho trovato una discreta quantità di informazioni su un terreno di campo vettoriale, ma non sono sicuro che questo avrebbe prodotto i risultati corretti.
Se qualcuno può farmi luce su questo per me, l'aiuto sarebbe molto apprezzato :)
Aggiornare
Ho incluso un'immagine per ulteriori chiarimenti su ciò che vorrei ottenere:
Immagine presa in prestito da Come creare tessere isometriche inclinate (in altezza)
Questa immagine mostra il tipo di terreno che vorrei generare, ma non include le "scogliere" o i tipi di terreno a strapiombo che sono interessato alla modellazione. Tuttavia solleva alcune altre domande che non avevo considerato, vale a dire;
- Come verrebbero gestiti "strati" come l'acqua (in alto a sinistra dell'immagine) per includere il terreno visibile sotto l'acqua?
- Come verrebbero soddisfatti i "bordi" della mappa in modo che la terra / fango venisse rappresentata per rappresentare il mondo come un'entità non piana?
- La memoria sottostante per questo tipo di terreno potrebbe essere usata per modellare la fisica come una palla che rotola giù da una collina o la velocità di movimento di un giocatore che attraversa una pendenza?
Ho avuto l'idea che ogni piastrella del terreno potesse essere modellata con 8 vertici in cui i 4 vertici principali coprivano la tessera stessa e i restanti 4 vertici sono usati per modellare i lati / le pareti di ogni piastrella. I due problemi che vedo con questa implementazione sono che a) la mappa del mondo è essenzialmente raddoppiata per dimensione eb) dato che non tutte le tessere includeranno "muri", alcune tessere finiranno con vertici ridondanti che non vengono utilizzati.
Vorrei creare un editor del terreno che consenta la deformazione di ogni tessera e includa la possibilità di cambiare il terreno durante il gioco. Questo di per sé pone ulteriori domande come; È possibile utilizzare un VBO per archiviare e rendere il terreno mentre viene modificato al volo e inoltre, è possibile modificare i vertici senza influire sulle tessere vicine?
Ho l'impressione che stia complicando troppo le cose o incorrendo in analisi-paralisi in quanto sto trascurando di scrivere qualsiasi codice per risolvere il problema senza avere una chiara idea di come raggiungerei ciò che voglio.
Ancora una volta, sto davvero cercando una spinta nella giusta direzione con questo. Esiste un tipo specifico di implementazione di tilemap / terreno in grado di far deformare una mappa 3D sia da un editor di mappe che durante il gioco o devo fare il mio, per così dire? Non sto cercando di reinventare la ruota qui, ma sto lottando per trovare risorse dato che non sono sicuro di cosa cercare.
Se qualcuno è in grado di fornire informazioni, risorse o frammenti di codice, questo sarebbe molto apprezzato in quanto sono impaziente di sporcarmi le mani e iniziare a produrre qualcosa di diverso dal wireframe piatto che ho attualmente.
Grazie per aver letto!