Text RPG game in java

di il
2 risposte

Text RPG game in java

Salve a tutti,

sono nuovo, mi presento.. grigion studente!!
Devo consegnare un progetto che prevede la creazione di un RPG testuale. Sono veramente una schiappa come sviluppatore e ho bisogno di un aiuto nel capire come iniziare ad organizzare il lavoro... vi illustro il da farsi:

Si deve implementare un'architettura client-server per un RPG testuale multiplayer (\real-time", non a turni" o altro). Il progetto comprende la realizzazione sia del server che del client. Il client fornisce l'interfaccia per consentire all'utente di interagire col server. Al primo avvio il client deve concordare con il server i parametri di funzionamento (nome-utente, password). L'interazione successiva avviene attraverso comandi immessi dall'utente. Il server gestisce la creazione di nuove utenze, l'interazione dei personaggi giocatore (nel seguito \PG") tra di loro e con entita gestite dal server stesso (nel seguito \mostri") e in generale con il mondo virtuale.
I PG uccidendo mostri ottengono denaro ed esperienza, informazioni di cui il server deve tenere traccia (memorizzando i dati dei PG su disco). Un PG non ha bisogno di bere, mangiare o dormire; non invecchia (ne muore di vecchiaia). Il server e concorrente, quindi puo gestire piu PG contemporaneamente. Il mondo virtuale in cui si svolge l'azione e diviso in stanze, in genere due entita interagiranno tra loro solo se si trovano nella stessa stanza (es. un PG non puo attaccare un mostro in una stanza diversa dalla sua). Non e previsto il combattimento tra PG (il server non e \PvP"), l'unica interazione possibile tra di loro e la chat (comando \talk(who,msg)"). Quando un utente si collega al server, il suo PG parte da una stanza predenita e poi si sposta per il mondo cercando altri PG con cui attaccare i mostri presenti.
Lo stato delle stanze (mostri ed oggetti presenti) viene resettato periodicamente: ad intervalli di tempo predeniti (es. ogni 10 min) i mostri uccisi sono ricreati (in seguito \respawn"), tranne nel caso ci sia un combattimento in corso (bisogna aspettare almeno 5 min dalla ne del combattimento prima del reset, per dar tempo ai PG di prendere gli oggetti). Invece, quando un PG viene ucciso, ovvero se i suoi punti ferita scendono a zero, viene spostato in una stanza speciale denominata \tempio" e viene riportato in vita, ma subisce una penalita sui punti esperienza accumulati (l'esperienza puo scendere al massimo a zero, non e prevista la perdita di livelli).
All'avvio il server deve leggere un file di congurazione dove vengono fissati i parametri di funzionamento e caricare le informazioni sull'ambiente virtuale. Chi opera il server (in seguito Game Master o GM) puo mandare un messaggio in chat ad un PG o a tutti (comando \talk(who,msg)" o \talkall(msg)") e visualizzare l'elenco degli utenti connessi (comando \who()"), le informazioni relative ad un PG (comando \show(who)"). Il GM puo manifestarsi nel mondo virtuale (comandi \appear(room)" e \vanish()") o osservare cosa succede senza essere presente (comando \peek(room)"). Il GM non puo ferire le altre entita o essere ferito; invece puo bandire un PG, cioe disconnettere un utente ed impedire che si ricolleghi per un certo intervallo di tempo (comando \ban(who,time=1)"), per default un'ora. Infine, il GM ha un comando \quit()" per interrompere il servizio. Le funzionalita vanno implementate scegliendo quale sintassi adottare (in particolare, non è detto che ci sia corrispondenza 1:1 tra funzionalita/comandi e metodi).

Ora senza perderci in codice che mi sembra ancora prematuro, vorrei quindi capire:
- come strutturare le funzionalità de client
- come strutturare le funzionalità de server
- cosa devo far fare all'uno e all'altro e come farlo ( architettura, macchine virtuali, consigli di varia natura di chi ci è già passato magari)
- Come faccio a creare un "mondo" con le "stanze" e dove deve risiedere (client o server)
- cosa devo inziare a sviluppare

chiaramente le specifiche sono molte di più ma le proprietà degli oggetti e dei metodi per ora sono talmente lontani che li ho chiaramente evitati.
Spero in una piacevole risposta o chiacchierata con qualcuno disposto a spiegarmi da dove iniziare e come organizzarmi!!! Grazie a chi ci sarà!

2 Risposte

  • Re: Text RPG game in java

    Allora in java non ho mai creato client e server ma penso che funzionino uguali.
    come prima cosa devi capire cosa ti serve e scegliere se usare ilprotocollo TCP (più sicuro senza perdita di dati ma più lento) o UDP (più veloce ma con rischio di perdita di dati)
    poi devi creare un server multithread siccome deve gestire più richieste contemporaneamente e un client.

    fatto questo hai messo in comunicazione il server a cuoi tutti si connetteranno i i vari giocatori.

    come prima cosa i giocatori devono connettersi al server inviando una richiesta con nome utente e password.

    Dopo questo sta a te creare il gioco. devi scegliere cosa fargli fare. non ho idea di come funzioni u RPG testuale immagino che il giocatore venga messo un una stanza immaginaria e gli vengano proposte una serie di stanze in cui entrare. quindi come prima cosa devi creare su carta un mondo immaginario e poi riprodurlo in java creando una classe mondo che contiene stanze che possono a loro volta contenere stanze.

    fatto questo crei i mostri anche qusti ti dovrai fare una scheda tecnica e posizionarli nelle varie stanze e poi riportare il tutto in java.

    il gioco comincia con i goicatori che nascono in vari punti del mondo e il server gli invia una lista con le stanze in cui puo andare e lui rispnde con la stanza scelta. fatto questo continua così finche non trova un mostro e come sempre lui sceglie se combattere scappare ecc... quando sconfiggi il mostro il client guadagnerà punti e abilità e il mostro scomparirà dalla mappa. devi gestire tu i casi più complicati tipo il caso in cui 2 utenti entrano nella stessa stanza con il mostro.

    Questa è la base di tutto poi sta a te motare il tuttto. una volta fatto questo non è difficile montare un interfaccia grafica e farlo diventare un giochino non troppo semplice da creare e ad effetto
  • Re: Text RPG game in java

    Il progetto mi sembra molto carino.

    Per quello che ho letto (non tutto sinceramente) credo che tu ti debba servire di un server che gestisca la comunicazione trmite DatagramPacket.

    Per la gestione delle stanze, quello è più un "esercizio" di programmazione pura...
Devi accedere o registrarti per scrivere nel forum
2 risposte