prendiamo Unity, qualche tempo fa ho fatto alcuni tutorial ed arrivai a finire lo space shooer.
io non sono affatto un programmatore, sono solo un curiosone, quel progetto è stato fantastico per me, pensavo a quanto sostenuto qui:
elaborare algoritmi o pattern è una cosa che fa parte del programmare, ma che viene a cadere quanto il lavoro del programmatore più che programmare diventa configurare.
Per esempio se tu programmi un videogioco devi implementare la fisica ecc ecc... ma se utilizzi un'applicazione per fare giochi magari il tutto si riduce a fare drag and drop di blocchi, metterci su delle texture e configurare solidità=true.
Concordo sul fatto che quando programmi ci sono righe di codice da scrivere che sono noiose, come la creazione di vari getter/setter o di metodi vari per clonare oggetti.
Indubbiamente automatizzando queste cose il programmatore passa meno tempo a scrivere codice noioso.
Se però gli togli anche la parte divertente, come implementare il motore fisico, allora non c'è più gusto.
Ok.
all'interno di unity tutto il sistema di coordinate di riferimento e motore fisico sono già fatte ed uno non fa altro che utilizzarle in un ambiente di sviluppo semigrafico, esattamente quello che critica il trollone qui sopra.
il giochino è a scorrimento verticale, ad un certo punto vengono generati i nemici, è stato dato un sistema di coordinate che determinano l'area di gioco visibile ed un sistema di movimento degli elelemti del gioco (gli asteroidi e la navicella del tizio) attraverso script che fanno uso delle funzioni di base del motore di unity ed oggetti 3d organizzati nell'editor grafico ("configurazione" se ho capito bene cosa intende il trollone qui sopra), gli asteroidi vengono generati subito fuori l'area visibile con movimento verso l'area visibile e così appaiono le ondate di nemici.
Gli asteroidi vengono generati in questo loop utilizzando un semplice sistema di coordinate tridimensionali in cui z è inutile (la proiezione del gioco è ortografica e non c'è nessuna profondità, è tutto allo stesso livello)
nel tutorial te lo fanno fare così
spawnValues viene dichiarata in precedenza come variabile pubblica, e questo in unity vuol dire che una volta compilato lo script quei valori sono editabili nell'editor grafico (è di tipo Vector3 quindi l'editor visualizza una maschera dove scrivere 3 valori per x, y e z).
ti fanno impostare x alla metà della larghezza dello schermo, y fuori dallo schermo (in alto al di fuori della parte renderizzata dalla game camera) e z è sempre uguale.
A questo punto
Random.Range (-spawnValues.x, spawnValues.x)
genera una serie di coordinate casuali comprese tra i valori che le porranno all'interno dell'area di gioco. generando ondate di nemici con posizioni casuali ma sempre all'interno dell'area di gioco.
ed io mi sono ritenuto soddisfatto ed ho imparato un sacco di cose e mi divertii qualche ora.
A questo punto però, quando avrò defintivamente finito di lavorare e se mai riprenderò Unity in mano per divertirmi un altro po mi metterò a modificare quella funzione per generare ondate di nemici con le forme ed i pattern che desidero, così com'erano nei primi giochi del genere che giocai da bambino sul commodore, e questo sarà invece un problema del genere che secondo me il trollone considerava interessante e divertente.
concordo sul fatto che quella sia la vera parte interessante dello sviluppo, tutto il resto del tutorial era la configurazione di un semplice meccanismo di gioco fondametalmente già fatto all'interno del motore di Unity.
Però Unity altro non ha fatto che esporre a me, neofita completo, un problema di generazione di algoritmi e pattern che in altri modi non avrei mai potuto divertirmi a svolgere.
O forse il trollone intendeva ancora qualcos'altro come parte "divertente" che voi informatici ci tenete nascosto?
**Modificato dall'autore il 24.02.2017 15:25**
io non sono affatto un programmatore, sono solo un curiosone, quel progetto è stato fantastico per me, pensavo a quanto sostenuto qui:
elaborare algoritmi o pattern è una cosa che fa parte del programmare, ma che viene a cadere quanto il lavoro del programmatore più che programmare diventa configurare.
Per esempio se tu programmi un videogioco devi implementare la fisica ecc ecc... ma se utilizzi un'applicazione per fare giochi magari il tutto si riduce a fare drag and drop di blocchi, metterci su delle texture e configurare solidità=true.
Concordo sul fatto che quando programmi ci sono righe di codice da scrivere che sono noiose, come la creazione di vari getter/setter o di metodi vari per clonare oggetti.
Indubbiamente automatizzando queste cose il programmatore passa meno tempo a scrivere codice noioso.
Se però gli togli anche la parte divertente, come implementare il motore fisico, allora non c'è più gusto.
Ok.
all'interno di unity tutto il sistema di coordinate di riferimento e motore fisico sono già fatte ed uno non fa altro che utilizzarle in un ambiente di sviluppo semigrafico, esattamente quello che critica il trollone qui sopra.
il giochino è a scorrimento verticale, ad un certo punto vengono generati i nemici, è stato dato un sistema di coordinate che determinano l'area di gioco visibile ed un sistema di movimento degli elelemti del gioco (gli asteroidi e la navicella del tizio) attraverso script che fanno uso delle funzioni di base del motore di unity ed oggetti 3d organizzati nell'editor grafico ("configurazione" se ho capito bene cosa intende il trollone qui sopra), gli asteroidi vengono generati subito fuori l'area visibile con movimento verso l'area visibile e così appaiono le ondate di nemici.
Gli asteroidi vengono generati in questo loop utilizzando un semplice sistema di coordinate tridimensionali in cui z è inutile (la proiezione del gioco è ortografica e non c'è nessuna profondità, è tutto allo stesso livello)
nel tutorial te lo fanno fare così
IEnumerator SpawnWaves ()
{
yield return new WaitForSeconds (startWait);
while (true)
{
for (int i = 0; i < hazardCount; i++)
{
Vector3 spawnPosition = new Vector3 (Random.Range (-spawnValues.x, spawnValues.x), spawnValues.y, spawnValues.z);
Quaternion spawnRotation = Quaternion.identity;
Instantiate (hazard, spawnPosition, spawnRotation);
yield return new WaitForSeconds (spawnWait);
}
yield return new WaitForSeconds (waveWait);
}
spawnValues viene dichiarata in precedenza come variabile pubblica, e questo in unity vuol dire che una volta compilato lo script quei valori sono editabili nell'editor grafico (è di tipo Vector3 quindi l'editor visualizza una maschera dove scrivere 3 valori per x, y e z).
ti fanno impostare x alla metà della larghezza dello schermo, y fuori dallo schermo (in alto al di fuori della parte renderizzata dalla game camera) e z è sempre uguale.
A questo punto
Random.Range (-spawnValues.x, spawnValues.x)
genera una serie di coordinate casuali comprese tra i valori che le porranno all'interno dell'area di gioco. generando ondate di nemici con posizioni casuali ma sempre all'interno dell'area di gioco.
ed io mi sono ritenuto soddisfatto ed ho imparato un sacco di cose e mi divertii qualche ora.
A questo punto però, quando avrò defintivamente finito di lavorare e se mai riprenderò Unity in mano per divertirmi un altro po mi metterò a modificare quella funzione per generare ondate di nemici con le forme ed i pattern che desidero, così com'erano nei primi giochi del genere che giocai da bambino sul commodore, e questo sarà invece un problema del genere che secondo me il trollone considerava interessante e divertente.
concordo sul fatto che quella sia la vera parte interessante dello sviluppo, tutto il resto del tutorial era la configurazione di un semplice meccanismo di gioco fondametalmente già fatto all'interno del motore di Unity.
Però Unity altro non ha fatto che esporre a me, neofita completo, un problema di generazione di algoritmi e pattern che in altri modi non avrei mai potuto divertirmi a svolgere.
O forse il trollone intendeva ancora qualcos'altro come parte "divertente" che voi informatici ci tenete nascosto?
**Modificato dall'autore il 24.02.2017 15:25**
Please consider the environment before printing this message, 50% of the above is useless!
-
-
■ @ 2017-02-24 18:02:43.0 di Non Autenticato
-
■ @ 2017-02-24 20:01:21.0 di dada216
-
-
■ @ 2017-02-24 15:50:58.0 di Non Autenticato
-