I sistemi di realizzazione possono essere implementati successivamente nello sviluppo?


12

Sono indeciso se al momento voglio implementare questa funzione nel mio gioco o meno. Non voglio che il progetto diventi troppo fuori controllo, quindi mi sto concentrando prima sulla meccanica di base.

È una funzionalità che è facile da implementare in seguito supponendo che io guidi i dati e immagazzini tutto?


3
Un paio di anni fa ho portato su Windows un certo noto gioco DOS - una delle cose che mi sarebbe piaciuto aggiungere ad esso, se avessimo apportato modifiche al gameplay - sarebbero stati i risultati. Quindi, se potessi aggiungere risultati a un gioco di oltre 10 anni chiaramente non progettato per questo, direi praticamente che possono essere aggiunti ovunque. Diamine, questo stesso sito ha dei risultati ...
Jari Komppa,

Risposte:


19

Stai chiedendo dal punto di vista dei tecnicismi di implementazione o delle ramificazioni del design? In entrambi i casi, la risposta alla tua domanda è "sì".

Dal punto di vista tecnico, in generale trovi solo gli hook nel tuo codice che rispondono ai tuoi eventi di successo e inserisci lì il tuo codice di monitoraggio delle statistiche. Potrebbe essere necessario aggiungere alcune nuove cose se stai monitorando cose che non sono esattamente eventi discreti che stanno già accadendo nel gioco (ad esempio: X quantità di ore giocate).

Dal punto di vista del design, beh, i risultati sono motivatori estrinseci e aggiungerli in realtà non gioca troppo nel ciclo di gioco principale, tranne per le persone che vogliono cercarli. Quindi sono abbastanza sicuri a prescindere.


Sì, lo sto facendo ora. È stato abbastanza facile collegarsi shotsFired++alla parte in cui vengono istanziati nuovi proiettili e shotsHit++alla parte in cui un proiettile ha un impatto su un altro giocatore. Mi ha aiutato a rintracciare chi ha sparato a quale proiettile (perché uso le informazioni per rintracciare chi ha ottenuto ciò che uccide, ecc.)
Bobobobo,

5

A condizione che il tuo motore di gioco sia ben progettato e utilizzi una sorta di sistema di eventi osservabile (in cui gli eventi sono generati e ascoltati dalle parti interessate), dovrebbe essere abbastanza facile "collegare" un sistema di successo in un secondo momento (aggiungendo ascoltatori appropriati). Questo tipo di design è molto flessibile.


2

Poiché già le persone esistenti hanno aggiunto buone risposte, lasciatemi rispondere a situazioni scoperte.

Se sei in una posizione in cui hai completato la codifica del tuo gioco e ora inizi a codificare i risultati e trovi molto complesso mantenere troppe variabili e conteggi e cancellarli in determinati eventi e cose del genere.

Puoi sempre creare una classe (preferibilmente singleton) per ricevere tutti gli eventi. Ora elenca tutti i tuoi risultati. Quindi elenca tutti gli eventi di gioco che devono essere monitorati. Ad esempio, la mia lista attuale è simile a questa

KILL ENEMY - walking, proiettili MORTE DEL GIOCATORE - falling_off, salute ENTER_ROOM, EXIT_ROOM ecc.

Quei dettagli extra come camminare, proiettili possono essere parametri. Ora disponi di una funzione chiamata fireEvent in quella classe di monitoraggio Achievement. Cerca in tutti i posti nel codice in cui è necessario fireEvents e chiamare quella funzione. Ora fai il resto del lavoro sporco nella classe Achievements. questo è il modo più sicuro per non disturbare gli obiettivi di codice e codice esistenti. Ha funzionato abbastanza velocemente per me.


Questa è davvero un'ottima soluzione per l'implementazione post sviluppo. Lo terrò a mente perché non sono ancora sicuro di volerlo implementare. Potrei farlo in una fase successiva perché non voglio che l'ambito del mio progetto sfugga al controllo.
Bryan Harrington,
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.