Fare un gioco come tutorial? [chiuso]


19

Sono responsabile di un club di sviluppo di giochi nella mia scuola e mi piacerebbe lavorare a un progetto questa estate che potrei usare come tutorial il prossimo semestre. Non ho mai fatto nulla del genere, quindi mi chiedevo se qualcuno avesse delle linee guida o idee.

Quello che voglio fare sostanzialmente è fare un gioco molto semplice. Qualcosa di simile a uno sparatutto dall'alto verso il basso in cui i nemici entrano di corsa per ucciderli e raccogliere qualche bottino. Tuttavia, voglio che tutto sia facilmente modificato. Le persone nel club hanno poca esperienza di sviluppo del gioco, quindi se potessi impostare il mio gioco in modo tale che le persone potessero modificare e aggiungere funzionalità con facilità, sarebbe fantastico per loro.

Roba come avere una classe nemica in cui il comportamento è facile da giocare o far sparare armi in modo diverso / aggiungere nuove armi e nuovi bottini. Anche aggiungendo nuovi elementi al gioco. Quale sarebbe il modo migliore per costruire il gioco per consentire questo tipo di malleabilità?


1
Dai un'occhiata a questa risposta su StackTranslate.it.
Andrew Russell,

Risposte:


16

Un modo tradizionale per raggiungere questo obiettivo nello sviluppo del gioco consiste nell'utilizzare un'architettura basata sui dati per i sistemi di gioco.

In sostanza, ciò significa che il codice non implementa un particolare tipo di arma (una pistola) con valori esplicitamente definiti per il suo raggio / danno / penetrazione piuttosto che popola i concetti generici di un'arma a distanza (raggio / danno / penetrazione ...) da un'origine dati esterna (al codice). Questa fonte esterna può variare da file analizzabili (forse XML) letti dal disco, a file binari o elementi di database generati tramite strumenti interni o esterni al motore di gioco stesso.

Definendo qualcosa di simile a un nemico, il sistema di intelligenza artificiale potrebbe essere progettato per supportare un numero di comportamenti generici (aggressivo, difensivo, supporto, codardo) che vengono quindi modificati da elementi basati sui dati.

My New Enemy, inizia con l'aggressivo comportamento di base dell'IA con valori basati sui dati per: -ignore giocatori> il mio livello + X -segui i giocatori fino a X unità oltre il punto di spawn-fuggono quando la salute <X priorità delle abilità disposte a raggi-priorità delle abilità dei mieli (per quando i giocatori si avvicinano troppo)

Uno schema più complicato basato sui dati potrebbe consentire la definizione di punti dati specifici (eventi) in cui uno stato AI passa (macchina a stati finiti) a un altro stato (o addirittura la possibilità di passare a uno di N altri stati) consentendo agli utenti di definire un gerarchia complicata di comportamenti.

Tutto ciò ovviamente richiede più lavoro rispetto alla semplice codifica esplicita di un comportamento, ma è una sfida divertente per consentire agli utenti di produrre contenuti senza modificare la fonte.

Ci sono punti bonus da raggiungere:

  • se è possibile aggiornare dinamicamente i dati e avere le modifiche riflesse nel motore di gioco senza riavviare l'applicazione
  • se si creano interfacce utente intuitive sui dati che consentono agli utenti di utilizzare un'interfaccia per interagire con i dati anziché modificare direttamente i file di testo (xml o altro)

Per un gioco tutorial rivolto a un pubblico più tecnico, la maggior parte del lavoro è invece in classi / oggetti progettati che espongono interfacce pulite per gli utenti che possono essere estese e che a loro volta possono anche essere guidate dai dati.


Bella risposta! +1
AttaccoHobo il

Grazie per il tuo contributo :)! Ti capita di conoscere siti che mi mostrerebbero come implementare questo tipo di codice? Non ho mai fatto giochi con fonti esterne del genere. Anche se voglio assolutamente che programmino in XNA nel club, quindi probabilmente farò qualcosa di più lungo le linee di classi e oggetti che potrebbero facilmente ereditare nelle loro classi. Ma esaminerò sicuramente questo,
Benixo,

Un ottimo modo per farlo richiede il proprio parser di configurazione, per consentire il caricamento di strutture guidate da dati molto semplici. Essenzialmente la chiave di qualsiasi tutorial, è l'insegnamento in blocchi, quindi l'astrazione è assolutamente fondamentale. Potrebbe essere un buon esercizio, progettare una semplice GUI che consenta all'utente di definire e creare nuovi tipi di armi.
deceleratedcaviar

Gli aspetti più comuni basati sui dati nei giochi sono i livelli. Anche se tutto il resto è hardcoded, i design dei livelli (cioè dove si trova lo scenario, dove sono posizionati i nemici, ecc.) Sono quasi sempre definiti nei file di dati che il gioco carica. Il suo secondo punto bonus descrive uno strumento di modifica del livello.
jhocking

Il processo di scrittura / lettura degli oggetti su / dal disco è noto come "de- / serializzazione". Potresti trovare alcuni tutorial utili sotto quel termine.
Exilyth

1

Se stai cercando alcune idee su come avviare il tuo progetto e costruirlo passo dopo passo in modo che possa essere convertito in un tutorial, dai un'occhiata a XNA Game Programming Adventures . L'autore ha impostato diversi tutorial, con spiegazione e codice sorgente che incrementa passo dopo passo.


0

Suggerirei di guardare il tutorial sullo sviluppo di giochi Java su www.thenewboston.com

Potrebbe non essere esattamente quello che stai cercando in termini di tizi con le armi e tutto quel jazz, ma fornisce una bella suddivisione passo-passo di una serie di fattori chiave nello sviluppo del gioco. Il presentatore "Bucky" ha anche uno stile di insegnamento rilassato e divertente. Godere.

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.