Modello di elevazione per griglie di gioco esagonali


16

TL; DR:

Dove dovrebbe essere ancorata l'elevazione su una griglia esagonale in stile civico? Centro, lato o vertice? (O più complesso?)

Domanda corretta:

Considera per un momento un gioco classico che tutti conosciamo e amiamo (forse?), Alpha Centauri di Sid Meier. Il modello cartografico ha introdotto il nuovissimo concetto di elevazione del terreno visibile alla classica formula Civ. In SMAC, ogni vertice del tabellone di gioco aveva un'elevazione, consentendo alla mappa splendide colline, una necessità completa, considerando il verme della mente che bolle dietro ogni angolo.

Una mappa altimetrica solo per vertici si tradurrebbe ordinatamente in una griglia esagonale?

Le alternative ovvie sono la mappatura di elevazione basata sul lato e la mappatura di elevazione basata sul centro; così come la mappatura di elevazione vertice interna (dando l'opportunità di scogliere! Yay!)

L'ultima opzione è applicare un reticolo triangolare alla griglia di gioco che comprenda centri e vertici e abbia elevazione solo vertice o vertice interna.

Quale di queste opzioni probabilmente funzionerà bene? Quali sono le probabilità che aspirino tutta la spremuta dalla CPU e dalla RAM in fretta?

Risposte:


10

Una mappa altimetrica solo per vertici si tradurrebbe ordinatamente in una griglia esagonale?

Dipende dalla tassellatura della griglia. Se tessellate il vostro aereo in questo modo, allora sì.

griglie

In questo caso, puoi modificare il triangolo verde (x6) nel modo che preferisci: hextri

Quale di queste opzioni probabilmente funzionerà bene?

Funzionano tutti bene. È probabile che utilizzerai più metodi, comunque. Non puoi semplicemente usare l'elevazione del punto medio a meno che tu non voglia solo le caratteristiche di una montagna a tessera, dovresti "alzare" i bordi mentre sali una montagna se vuoi la topografia a più tessere.

Quali sono le probabilità che aspirino tutta la spremuta dalla CPU e dalla RAM in fretta?

Questo non è un problema (a meno che tu non stia scrivendo questo per una sorta di sistema incorporato?) Poiché tutto il lavoro di generazione delle mappe verrà svolto prima che qualcuno giochi, durante la fase di caricamento.


Per altezza del punto medio intendo una situazione in cui è possibile impostare e memorizzare solo l'elevazione per il punto medio; se due esagoni hanno elevazioni abbastanza diverse, i bordi attorno ad essi verrebbero sollevati per corrispondere alle elevazioni delle loro facce. (ad esempio 1,1 ha un'altitudine di 3; 1,2 ha un'altitudine di 5: la faccia 1,1: 1,2 ha un'altitudine di 4 quando viene renderizzata).
Williham Totland,

1
Non è un problema in fase di esecuzione perché dovrai essere in grado di calcolare i percorsi per il movimento, le differenze di altezza per il vantaggio di combattimento e così via. Potrebbe essere un problema in fase di runtime perché una dozzina di float in più per esadecimale non sono poi così male sulla maggior parte delle piattaforme, ma i dati devono ancora essere lì per usare la mappa.

-1

Fantastico che almeno qualcun altro ci abbia pensato. Peccato che incontro questa pagina solo diversi anni dopo. Tuttavia, risponderò alla tua domanda per gli esagoni di base. Le immagini che sono state mostrate fino ad ora non sono al 100%. E su una mappa di 1 metro la griglia sarà fuori forma. Ciò significa che non è possibile una rotazione di 60 gradi.

Ho sperimentato su:

  • Diverse dimensioni di esagoni: quale base triangolare (in pixel) offre la massima precisione su mappe di 1 metro una volta stampate. Questo include averli il più perfetti possibile quando li gira di 60 gradi. Anche quando li si gira di 180 gradi per il rimontaggio.

  • Diversi strati combinati di esagoni.

  • Esagoni singoli per ritagliare immagini molto dettagliate (RAM = insufficiente nelle mappe di grandi dimensioni).

  • I limiti esatti del mio computer più ciò che ritengo sia ammissibile.

Non ho ancora sperimentato sull'elevazione creando esagoni di forma diversa. Ma so che le basi devono essere corrette prima di effettuare l'elevazione.


Sommario:

  • Precisione di 1 mm o meno su una mappa di 1 metro. La regola dei 60 gradi.

  • Ho bisogno di linee che possano adattarsi a 180 gradi.

  • Ho bisogno che il triangolo si adatti allo schermo con il massimo zoom.

Ho ristretto la mia selezione a 3 con queste regole:

Piccolo:

  • Taglia; +26 x +45, 27 x 46 pixel

  • Inesattezza su 1 metro; 0,74 mm

  • Sequenza; 131213131312131

Medio:

  • Taglia; +41 x +71, 42 x 72 pixel

  • Inesattezza su 1 metro; 0,20 mm

  • Sequenza; 1312131313121313131312131

Grande:

  • Taglia; +56 x +97, 57 x 98 pixel

  • Inesattezza su 1 metro; 0,05 mm

  • Sequenza; 1312131313121313131213131312131

Quelli sono 1 pixel.

I due e i tre sono gruppi di 2 pixel. Un 2 è 4 pixel in totale e A 3 è 6 pixel in totale.

Se aggiungi una sequenza, vedrai che hanno la larghezza in pixel. Se li sommi e conti 4 e 6 invece di 2 e 3. Ottieni l'altezza in pixel.

I numeri + sono ciò che aggiungi in pixel quando metti 2 triangoli uno sopra l'altro o uno contro l'altro.

Sentiti libero di porre domande. Sulla mia email


1
Non è chiaro come stai affrontando la vera domanda. Hai discusso un po 'l'argomento, anche se il tuo punto generale è anche difficile da isolare. Che cosa hanno a che fare queste dimensioni di pixel con la geometria esagonale e l'elevazione?
Seth Battin,

1
Un'altra cosa: StackExchange non è un forum tradizionale. Le informazioni utili dovrebbero essere incluse nel post e i lettori non dovrebbero aver bisogno di inviarti un'e-mail per ottenere una risposta completa. Anche perché questo non è un forum, non c'è modo per le persone di rimettere in discussione la tua risposta. Quindi non solo l'invito alle domande è inappropriato, non funzionerà. Vedi gamedev.stackexchange.com/help/how-to-answer .
Seth Battin,
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.