Anonimo
Anonimo ha chiesto in Computer e InternetProgrammazione e Design · 2 sett fa

Per imparare a creare un gioco in C++ avendo conoscenze di base, mi conviene impararlo focalizzandomi sul gioco?

Intendo dire se è meglio focalizzarmi sul gioco oppure imparare prima tutta la sintassi e le varie funzioni, librerie ecc...

Comunque ho detto di avere conoscenze di base ma in realtà ho letto un libro completo sul C++ e ho seguito un sacco di corsi, sia in italiano che in inglese, eppure quando vedo qualcuno che spiega come creare un gioco non ci capisco NIENTE. Vedo istruzioni che non ho mai visto prima, quindi non ho idea di come imparare a creare un gioco. Ho persino ordinato un libro, ma ovviamente non ci ho capito niente neanche da lì. Consigli?

Aggiornamento:

Muflone ovvio che conosco gli algoritmi, li ho studiati nel 1° superiore. So scrivere un algoritmo su un gioco, ma non saprei come tradurlo nel linguaggio.

11 risposte

Classificazione
  • ?
    Lv 5
    2 sett fa

    Ciao.

    Prima di ogni cosa  devi essere cosciente di che cosa vuoi come risultato e cerco di essere chiaro:

    Se tu vuoi come risultato un gioco 3D in prima, seconda, o terza persona come, Quake, Doom, TombRaider, Resident Evil ecc, sappi che non devi solo conoscere il linguaggio di programmazione ma anche come utilizzare il motore grafico e prima del motore grafico ( Considerando che tu voglia usare un motore grafico già esistente) una volta che  ha inizializzato il motore grafico, creato l'ambiente, settato la tipologia , risoluzione, interazioni , pattern, mesh, oggetti 3D, Posizionamento degli oggetti nell'ambiente, rivestimento dell'ambiente, creazione del percorso, creazione delle mappe, ecco che solo dopo aver fatto tutto questo puoi creare  degli script che gestiscono le interazioni del gioco.Fare un gioco 3D da solo non è una cosa facile e non puoi farlo in poco tempo, considera che per fare un gioco come Skyrim, o Tomb Raider è stato necessario uno staff  con più di 60 persone tra grafici, programmatori, scripters, scrittori, analisti, pubblicatori ecc.

    Attualmente esistono degli BASIC ENGINE per creare giochini 2D dove si deve lavorare solo di scripting e fantasia, come RPGMaker e Rempy, tutto l'ambiente è già pronto.

    Attualmente i motori grafici per ambienti 3D e 2D sono ottimizzati per C# che ha una sintassi simile a quella di Java, tipo Unreal 2.

    Ovviamente ti sconsiglio vivamente di provare a creare un motore grafico, le case di sviluppo che li creano hanno interi staff di programmatori  specializzati in istruzioni per schede grafiche e sono quasi senza vita sociale.

    PS.

    Questo mi farà guadagnare tanti pollici abbassati ma devo necessariamente dirlo.

    Non leggere commenti che ti scoraggiano considera che di gente in grado di programmare seriamente in C++ non ti rispondono su Yahoo Answer perché non lo guardano proprio, quelli li trovi su "Stackoverflow" e li ovviamente devi sapere leggere e scrivere in inglese altrimenti le tue domande neanche le vedrai pubblicate.

    E riguardo alle altre risposte che ho letto stai sicuro che sono nabbi che credono che html sia programmazione, quindi non farci affidamento.

  • 2 sett fa

    Forse (anzi, molto probabilmente) gli esempi che hai visto hanno usato librerie esterne. In quel caso devi tenere sotto mano la documentazione di tale libreria e una guida introduttiva.

  • Lu
    Lv 7
    2 sett fa

    Puoi saper tutti i comandi a memoria, ma se non sai come metterli assieme è inutile. Prima di imparare a creare un gioco, inizia con programmi semplici, parti da una stampa su schermo, continuando con somme, creazione di una semplice calcolatrice e così via.

  • Anonimo
    2 sett fa

                   

  • Che ne pensi delle risposte? Puoi accedere per votare la risposta.
  • Anonimo
    2 sett fa

    Si vede che  hai seguito  dei  pessimi  corsi! 

  • 2 sett fa

    Credi che per imparare a programmare basti conoscere un linguaggio??

    Tipico errore dei principianti. Non sanno programmare, conoscono meno di zero nel campo dell'informatica, taaac che li vedi partire a studiarsi un linguaggio da YouTube.

    Ma il linguaggio è l'ultima cosa che ti serve, prima devi saper scrivere algoritmi, devi saper studiare il problema e trovare una soluzione. Per esempio saresti in grado di scrivermi in italiano un algoritmo che fa funzionare una lavatrice?

    Se non ne sei in grado non ti serve a niente conoscere un linguaggio di programmazione

  • boh             

  • Anonimo
    1 sett fa

    Mia nipote (12 anni), vedeva che, di tanto in tanto, scrivevo qualcosa a computer in "C" e ha voluto saperne qualcosa. Siamo stati assieme tre mesi durante le vacanze di qualche anno fa e alla fine mi ha presentato questo, è in TurboC della Borland:

    #include <stdio.h>

    #include <stdlib.h>

    #include <conio.h>

    #include <time.h>

    void swap (int *, int *);

    void printArray (int [], int);

    void randm (int [], int);

    int controllo(void);

    void vittoria(void);

    void beep(void);

    int pos0;

    int mosse=0;

    typedef struct {

      int x;

      int y;

            }p;

    int e[16];

    main()

    {

    int i,x,y,d,t;

    p po[16] = {{29,8}, {35,8}, {41,8}, {47,8}, {29,9}, {35,9}, {41,9}, {47,9},\

    {29,10}, {35,10}, {41,10}, {47,10}, {29,11}, {35,11}, {41,11}, {47,11}};

    textmode(2);

    randomize();

    for(i=0;i<=14;i++)

     e[i] = i+1;

    e[15] = '\0';

    randm(e,16);

    gotoxy(26,7);

    printf("ÚÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄ¿");

    for(i=0;i<15;i+=4)

    {

     gotoxy(26,8+(i/4));

     printf("³ %3d ³ %3d ³ %3d ³ %3d ³",e[i], e[i+1], e[i+2], e[i+3]);

    }

    gotoxy(26,12);

    printf("ÀÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÙ");

    x = pos0%4;

    y = pos0/4;

    textattr(31);

    gotoxy(27 + x*5+2+x,7 + y + 1);

    cprintf(" 0");

    textattr(7);

    do

    {

     d = bioskey(0);

     switch(d)

     {

        case 19200: /* sinistra */

            if(pos0 > 0)

       swap(&e[pos0],&e[pos0-1]);

            gotoxy(po[pos0].x,po[pos0].y);

            textattr(7);

            cprintf("%2d",e[pos0]);

            pos0 -=1;

            if(pos0<0)

            {

      pos0 = 0;

      beep();

            };

            gotoxy(po[pos0].x,po[pos0].y);

            textattr(31);

            cprintf("%2d",e[pos0]);

            mosse++;

            if(controllo())

       vittoria();

            break;

        case 19712: /* destra */

            if(pos0 < 15)

       swap(&e[pos0],&e[pos0+1]);

            gotoxy(po[pos0].x,po[pos0].y);

            textattr(7);

            cprintf("%2d",e[pos0]);

            pos0 +=1;

            if(pos0>15)

            {

      pos0 = 15;

      beep();

            };

            gotoxy(po[pos0].x,po[pos0].y);

            textattr(31);

            cprintf("%2d",e[pos0]);

            mosse++;

            if(controllo())

        vittoria();

            break;

        case 18432: /* su */

            if(pos0>3)

      swap(&e[pos0],&e[pos0-4]);

            gotoxy(po[pos0].x,po[pos0].y);

            textattr(7);

            cprintf("%2d",e[pos0]);

            pos0 -= 4;

            if(pos0 < 0){

      pos0 += 4;

      beep(); }

      gotoxy(po[pos0].x,po[pos0].y);

      textattr(31);

      cprintf("%2d",e[pos0]);

      mosse++;

      if(controllo())

         vittoria();

      break;

          case 20480: /* giu */

            if(pos0<12)

      swap(&e[pos0],&e[pos0+4]);

            gotoxy(po[pos0].x,po[pos0].y);

            textattr(7);

            cprintf("%2d",e[pos0]);

            pos0 += 4;

            if(pos0>15){

       pos0 -= 4;

       beep();}

            gotoxy(po[pos0].x,po[pos0].y);

            textattr(31);

            cprintf("%2d",e[pos0]);

            mosse++;

            if(controllo())

       vittoria();

            break;

     };

    }while(d != 283);

    }

    void swap (int *a, int *b)

    {

        int temp = *a;

        *a = *b;

        *b = temp;

    }

    void randm ( int arr[], int n )

    {

    int i;

    srand ( time(NULL) );

    for (i = n-1; i > 0; i--)

     {

      int j = rand() % (i+1);

      swap(&arr[i], &arr[j]);

     }

    for(i=0;i<=15;i++)

     {

      if(arr[i] == 0)

        pos0 = i;

     }

    }

    void beep(void)

    {

     sound(440);

     delay(8000);

     nosound();

    }

    int controllo(void)

    {

    int i;

    gotoxy(1,24);

    printf("Mossa: %3d",mosse);

     for(i=0;i<=14;i++)

     {

      if(e[i] > e[i+1])

      {

       if((e[i]==15) && (e[i+1] == 0) && (i==14))

        return 1;

       return 0;

      };

     }

    }

    void vittoria(void)

    {

    gotoxy(1,24);

    textattr(31);

     cprintf("In %3d mosse: HAI VINTO!!!!! ",mosse);

     gotoxy(14,24);

     if(mosse<100)

       cprintf(" Che campione!");

     else if((mosse > 100) && (mosse < 250))

      cprintf(" Bene!");

     else

      cprintf(" Puoi fare meglio!");

     mosse--;

    textattr(7);

     sound(256);

     delay(10000);

     sound(330);

     delay(10000);

     sound(380);

     delay(10000);

     sound(512);

     sleep(2);

     nosound();

    while(!kbhit()){};

    }

  • ?
    Lv 7
    2 sett fa

     un libro di c non basta leggerlo, bisogna applicarlo. quindi sì, scegli un gioco molto molto semplice (tipo tris o meno) e realizzalo

  • ?
    Lv 7
    2 sett fa

    COS'E' UN GIOCO   IN  C++...................?????????

Altre domande? Fai una domanda e ottieni le risposte che cerchi.