Associare server a gioco in C#

di il
8 risposte

Associare server a gioco in C#

Salve a tutti ragazzi, apro questo post in quanto utente poco esperto ma molto aperto all'apprendimento e perciò, sono qui per chiedervi una banalità che spero sia possibile realizzare. Io sto creando un gioco molto semplice in C# (il famoso impiccato) che vorrei potesse avere un server che lo supporta. Io attualmente ho un database SQLite affiancato al gioco dove ho tutte le possibili parole che il programma può pescare ad ogni partita. Io per fare esperienza e per soddisfazione personale volevo affiancare un server appunto in cui:

- raccogliere suggerimenti di parole dei player per aggiungerle poi al "vocabolario" del gioco: attualmente ho un file di testo creato a mano dove ci ho messo dentro 15 parole a caso che il programma legge ad ogni avvio e inserisce (controllando se questa non c'è gia ovviamente) nel database. La mia idea sarebbe quella di far si che il file di testo venga generato nel server e letto per esempio 1 volta a settimana, e che se ci sono parole nuove rispetto a quelle già esistenti, aggiungerle al db; una volta fatto tutto, eliminare il file di testo e crearne uno nuovo quando vengono suggerite nuove parole

- permetta la sfida multiplayer, quindi con giocatori sfidanti da due posti diversi

- e che riconosca me come utente "administrator", cioè che mi permetta di avere "comandi speciali" e di poter effettuare modifiche

So che può essere anche una perdita di tempo fare tutte queste cose per un'app così banale però siccome ho la passione per la programmazione di grandi giochi online (stile metin, combat arms, warrock, 4story etc..), voglio iniziare dalle cose più banali come è consigliato fare e fare esperienza. Io riconosco di aver un usato un linguaggio non orrimale però spero voi capiate la mia richiesta e possiate aiutarmi. Quello che cerco io non è un codice già scritto ma due dritte su dove iniziare, cosa andarmi a vedere, se possibile una guida ma soprattutto se è fattibile.

Grazie a tutti

8 Risposte

  • Re: Associare server a gioco in C#

    Server web o server in generale?
  • Re: Associare server a gioco in C#

    dvaosta ha scritto:


    Server web o server in generale?
    Non so bene cosa intendi ma ti farò capire con un esempio. Io vorrei affiancare un server tipo come quelli dei grandi giochi online (metin, warrock, combat arms, 4 story etc..). Il progetto finale sarà comunque un exe installato che lanciato effettua una connessione al server quando si vuole giocare online, se è presente una connessione internet (ho dimenticato anche questa funzionalità che vorrei implementare) che ti possa permettere di giocare online contro altri player oppure resti in offline e giocare in locale. Io vorrei un server dal quale dipende la funzione multiplayer, ovvero che se lo disattivo non è possibile giocare online con altri player per dire.. nello stesso tempo però vorrei che il server gestisca anche tutta la parte offline del gioco, come aggiungere parole nuove con la funzione descritta sopra per esempio...

    Pretendo troppo? Mi sono spiegato male? E controsenso? Chiedo scusa conosco zero per quello che riguarda server affiancati ai giochi o ad altro.. sono alle prime armi
  • Re: Associare server a gioco in C#

    Con server web intendo che sia accessibile attraverso un sito, quindi con un browser. Ma se hai detto che vuoi che i giocatori usino un programma ad hoc, direi di creare una coppia di programmi, client e server, che comunicano semplicemente su socket tcp (in questo caso più semplice da gestire rispetto ad udp).
    Quindi ricicli il codice che hai già scritto mettendo la logica nel server e l'interfaccia nel client, dopodiché aggiungi e modifichi il necessario per far comunicare i due programmi (ad esempio, quando nel client si scatena un evento, nell'handler metti il codice per inviare un comando al server, dove viene interpretato e vengono eseguite le operazioni necessarie). Poi aggiungerai la parte per permettere l'inserimento di nuove parole e via dicendo (tra cui ad esempio un sistema di autenticazione).
  • Re: Associare server a gioco in C#

    dvaosta ha scritto:


    Con server web intendo che sia accessibile attraverso un sito, quindi con un browser. Ma se hai detto che vuoi che i giocatori usino un programma ad hoc, direi di creare una coppia di programmi, client e server, che comunicano semplicemente su socket tcp (in questo caso più semplice da gestire rispetto ad udp).
    Quindi ricicli il codice che hai già scritto mettendo la logica nel server e l'interfaccia nel client, dopodiché aggiungi e modifichi il necessario per far comunicare i due programmi (ad esempio, quando nel client si scatena un evento, nell'handler metti il codice per inviare un comando al server, dove viene interpretato e vengono eseguite le operazioni necessarie). Poi aggiungerai la parte per permettere l'inserimento di nuove parole e via dicendo (tra cui ad esempio un sistema di autenticazione).
    Allora prima di tutto comincio col ringraziarti per l'interesse, con il tuo aiuto comincio già a vederci più chiaro. Da quello che ho letto mi è sembrato di capire che devo creare un altro programma con visualstudio (console o form?) scrivendo le funzioni che voglio che il server esegua nel nuovo programma. Oltre alla parte della comunicazione su socket che cercherò bene come utilizzare su internet, non mi è chiara questa parte: "Quindi ricicli il codice che hai già scritto mettendo la logica nel server e l'interfaccia nel client", quello che intendi tu è che il server deve fare tutto il motore del gioco quindi? Controllare chi vince, se la lettera scelta è presente, per esempio? Insomma deve gestire anche le partite?
    Scusa le domande forse un po' sciocche e scontate
  • Re: Associare server a gioco in C#

    mitikuzzo9 ha scritto:


    dvaosta ha scritto:


    Con server web intendo che sia accessibile attraverso un sito, quindi con un browser. Ma se hai detto che vuoi che i giocatori usino un programma ad hoc, direi di creare una coppia di programmi, client e server, che comunicano semplicemente su socket tcp (in questo caso più semplice da gestire rispetto ad udp).
    Quindi ricicli il codice che hai già scritto mettendo la logica nel server e l'interfaccia nel client, dopodiché aggiungi e modifichi il necessario per far comunicare i due programmi (ad esempio, quando nel client si scatena un evento, nell'handler metti il codice per inviare un comando al server, dove viene interpretato e vengono eseguite le operazioni necessarie). Poi aggiungerai la parte per permettere l'inserimento di nuove parole e via dicendo (tra cui ad esempio un sistema di autenticazione).
    Allora prima di tutto comincio col ringraziarti per l'interesse, con il tuo aiuto comincio già a vederci più chiaro. Da quello che ho letto mi è sembrato di capire che devo creare un altro programma con visualstudio (console o form?) scrivendo le funzioni che voglio che il server esegua nel nuovo programma. Oltre alla parte della comunicazione su socket che cercherò bene come utilizzare su internet, non mi è chiara questa parte: "Quindi ricicli il codice che hai già scritto mettendo la logica nel server e l'interfaccia nel client", quello che intendi tu è che il server deve fare tutto il motore del gioco quindi? Controllare chi vince, se la lettera scelta è presente, per esempio? Insomma deve gestire anche le partite?
    Scusa le domande forse un po' sciocche e scontate
    Il server può essere un programma console, mentre il client deve essere dello stesso tipo del programma che hai già creato.
    Quanto alla domanda, sì, il server controlla le mosse, si fa i suoi calcoli e invia l'esito a tutti i client che partecipano ad una partita.
  • Re: Associare server a gioco in C#

    Il server può essere un programma console, mentre il client deve essere dello stesso tipo del programma che hai già creato.
    Quanto alla domanda, sì, il server controlla le mosse, si fa i suoi calcoli e invia l'esito a tutti i client che partecipano ad una partita.[/quote]

    Ok adesso credo di aver capito: il server è il motore (applicazione Console) il client sarebbe l'interfaccia e il mediatore tra il server e l'utente, giusto?

    Quando dici " invia l'esito a tutti i client che partecipano ad una partita" è una cosa di cui si occupa il socket?
  • Re: Associare server a gioco in C#

    mitikuzzo9 ha scritto:


    Il server può essere un programma console, mentre il client deve essere dello stesso tipo del programma che hai già creato.
    Quanto alla domanda, sì, il server controlla le mosse, si fa i suoi calcoli e invia l'esito a tutti i client che partecipano ad una partita.
    Ok adesso credo di aver capito: il server è il motore (applicazione Console) il client sarebbe l'interfaccia e il mediatore tra il server e l'utente, giusto?

    Quando dici " invia l'esito a tutti i client che partecipano ad una partita" è una cosa di cui si occupa il socket?
    Se ne occupa il server attraverso il socket. Quando avrai studiato i socket capirai.
  • Re: Associare server a gioco in C#

    dvaosta ha scritto:


    mitikuzzo9 ha scritto:


    Il server può essere un programma console, mentre il client deve essere dello stesso tipo del programma che hai già creato.
    Quanto alla domanda, sì, il server controlla le mosse, si fa i suoi calcoli e invia l'esito a tutti i client che partecipano ad una partita.
    Ok adesso credo di aver capito: il server è il motore (applicazione Console) il client sarebbe l'interfaccia e il mediatore tra il server e l'utente, giusto?

    Quando dici " invia l'esito a tutti i client che partecipano ad una partita" è una cosa di cui si occupa il socket?
    Se ne occupa il server attraverso il socket. Quando avrai studiato i socket capirai.
    Ok ti ringrazio le tue risposte sono state oro per me perchè mi hai dato proprio quello che cercavo. Grazie mille!
Devi accedere o registrarti per scrivere nel forum
8 risposte