IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Game design [Besoin d'aide, conseils....]


Sujet :

Langage Delphi

  1. #1
    Membre habitué Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Points : 176
    Points
    176
    Par défaut Game design [Besoin d'aide, conseils....]
    Bonjour à tous !!!

    Je vient de finir une petite preview d'un jeu que j'ai crée sans directx en delphi7. j'utilise des sprites trouvé sur le net et le jeu fonctionne en 2D. Il est très proche du fameux sonic 2, pour ceux qui connaissent.

    J'ai utilisé la méthode du Tdrawgrid (merci à sub-zero) à double buffer. le jeu fonctionne très bien (le personnage bouge, il saute, il se baisse....).

    J'ai maintenant un problème de vitesse, si j'agrandi la carte, j'ai un lag pas possible.

    Je cherche donc une aide de ceux qui sont dans le developpement de jeu ou qui on une expérience la dedans pour avoir conseils, methodes. Les liens sont les bienvenue ainsi que les sources qui pourraient m'aide à évoluer dans le domaine.

    Je vous donne mon source actuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
     
    Unit Unit1;
    Interface
    Uses Windows, Messages, SysUtils, Variants, Classes, Graphics,
      Controls, Forms, Dialogs, ExtCtrls, StdCtrls, ComCtrls,
      Grids, ImgList, MPlayer;
     
    Type
      TXsonic = Class(TForm)
        Carte: TDrawGrid;
        Personnage: TImage;
        Decors: TImageList;
        Musique: TMediaPlayer;
        sprites_pers: TImageList;
        Label1: TLabel;
        Label2: TLabel;
        Procedure CarteDrawCell(Sender: TObject;
          ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
        Procedure FormCreate(Sender: TObject);
        Procedure ProcMess(Var msg: TMsg; Var Handled: Boolean);
        procedure FormKeyDown(Sender: TObject; var Key: Word;
          Shift: TShiftState);
        procedure FormKeyUp(Sender: TObject; var Key: Word;
          Shift: TShiftState);
        procedure saut;
      End;
     
    Var
      Xsonic: TXsonic;
      chemin : AnsiString;
      sprites_pers_cle : Integer;
      courir : Integer;
      pers_bas : integer;
      pers_saut : Integer;
      deplacement : integer;
     
     
    {----------------------------------------------------------------}
    {                       }Implementation{                         }
    {----------------------------------------------------------------}
    {$R *.DFM}
     
    Const
      // Mapping de la grille, les numeros sont ceux de la timagelist
      Map: Array[1..4, 1..5] Of Integer = (
        (2, 2, 2, 2, 2),
        (2, 2, 2, 2, 2),
        (0, 0, 0, 0, 0),
        (1, 1, 1, 1, 1)
        );
     
    Var
      Etatkb: Array[0..255] Of Boolean;
      // Emplacement (du sprite)
      Pos: TPoint;
     
     
    {----------------------------------------------------------------}
    Procedure TXsonic.CarteDrawCell(Sender: TObject;
      ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
    Var
      bmp: TBitmap;
    Begin
      // Création d'une image bitmap
      bmp := TBitmap.Create;
      Decors.GetBitmap(Map[ARow + 1, ACol + 1], bmp);
      Carte.Canvas.Draw(Rect.Left, Rect.Top, bmp);
      bmp.Free;
      If (Acol = Carte.ColCount - 1) And
         (ARow = Carte.RowCount - 1) Then
        Carte.Canvas.Draw(Pos.X, Pos.Y, Personnage.Picture.Graphic);
    End;
     
     
    {----------------------------------------------------------------}
    Procedure TXsonic.FormCreate(Sender: TObject);
    Begin
      Application.OnMessage := ProcMess;
      Carte.DoubleBuffered := True;
      Pos := Point(0, 78);
      sprites_pers_cle := 6;
      courir := 0;
      pers_bas := 15;
      pers_saut := 0;
      Deplacement := 2;
      sprites_pers.GetBitmap(sprites_pers_cle,Personnage.Picture.Bitmap);
      chemin := ExtractFilePath(Application.ExeName) + 'Ressources\';
      Musique.FileName := chemin + 'Musiques\01.mid';
      Musique.Open;
      Musique.Play;
    End;
     
    {----------------------------------------------------------------}
    Procedure TXsonic.ProcMess(Var msg: TMsg; Var Handled: Boolean);
    Begin
    // etakb -> array 0->255
      If (msg.Message = WM_KEYDOWN) Then Etatkb[msg.wparam] := True;
      If (msg.Message = WM_KEYUP) Then Etatkb[msg.wparam] := False;
      If (Pos.X < 190 ) then
      begin
        If (Etatkb[VK_RIGHT]) Then Inc(Pos.X, Deplacement);
      end;
        If (Pos.X > 0 ) then
      begin
        If (Etatkb[VK_LEFT]) Then Dec(Pos.X, Deplacement);
      end;
    End;
     
     
    {----------------------------------------------------------------}
    procedure TXsonic.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if (sprites_pers_cle = 6) and (Etatkb[VK_RIGHT]) then sprites_pers_cle := 0;
      if (sprites_pers_cle = 6) and (Etatkb[VK_LEFT]) then sprites_pers_cle := 53;
      if (sprites_pers_cle = 59) and (Etatkb[VK_RIGHT]) then sprites_pers_cle := 0;
      if (sprites_pers_cle = 59) and (Etatkb[VK_LEFT]) then sprites_pers_cle := 53;
      if (sprites_pers_cle = 6) and (Etatkb[VK_DOWN]) then pers_bas := 15;
      if (sprites_pers_cle = 59) and (Etatkb[VK_DOWN]) then pers_bas := 64;
      if (Etatkb[VK_LEFT]) then
      begin
        Personnage.Picture := nil;
        sprites_pers.GetBitmap(sprites_pers_cle,Personnage.Picture.Bitmap);
        if deplacement <= 6 then Deplacement := Deplacement + 2;
      end;
      if (Etatkb[VK_RIGHT]) then
      begin
        Personnage.Picture := nil;
        sprites_pers.GetBitmap(sprites_pers_cle,Personnage.Picture.Bitmap);
        if deplacement <= 6 then Deplacement := Deplacement + 2;
      end;
      if (Etatkb[VK_DOWN]) then
      begin
        Personnage.Picture := nil;
        sprites_pers.GetBitmap(pers_bas,Personnage.Picture.Bitmap);
      end;
      if (Etatkb[VK_UP]) then
      begin
        saut;
      end;
      if (Etatkb[VK_UP]) and (Etatkb[VK_RIGHT]) then
      begin
        sprites_pers_cle := 6;
        saut;
      end;
      if (Etatkb[VK_UP]) and (Etatkb[VK_LEFT]) then
      begin
        sprites_pers_cle := 59;
        saut;
      end;
      if (Etatkb[VK_DOWN]) and (Etatkb[VK_RIGHT]) then
      begin
        Personnage.Picture := nil;
        sprites_pers.GetBitmap(pers_bas,Personnage.Picture.Bitmap);
      end;
      if (Etatkb[VK_DOWN]) and (Etatkb[VK_LEFT]) then
      begin
        Personnage.Picture := nil;
        sprites_pers.GetBitmap(pers_bas,Personnage.Picture.Bitmap);
      end;
      sprites_pers_cle := sprites_pers_cle + 1;
      courir := courir + 1;
      // -- gauche --
      if (sprites_pers_cle = 6) and (courir < 10) then sprites_pers_cle := 0;
      if (sprites_pers_cle = 6) and (courir >= 10) then sprites_pers_cle := 11;
      if sprites_pers_cle = 14 then sprites_pers_cle := 11;
      // -- haut --
      if sprites_pers_cle = 35 then sprites_pers_cle := 34;
      // -- droite --
      if (sprites_pers_cle = 58) and (courir < 10) then sprites_pers_cle := 53;
      if (sprites_pers_cle = 58) and (courir >= 10) then sprites_pers_cle := 60;
      if sprites_pers_cle = 63 then sprites_pers_cle := 60;
      if Carte.Left < 48 then carte.Left := 0;
      // -- Rafraichissement --
      If (Etatkb[VK_LEFT] Or Etatkb[VK_RIGHT] Or
          Etatkb[VK_UP] Or Etatkb[VK_DOWN]) Then Carte.Refresh;
    end;
     
    procedure TXsonic.FormKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if (sprites_pers_cle < 53) then sprites_pers_cle := 6;
      if (sprites_pers_cle > 53) or (sprites_pers_cle = 30) then sprites_pers_cle := 59;
      courir := 0;
      pers_saut := 0;
      deplacement := 2;
      Personnage.Picture := nil;
      sprites_pers.GetBitmap(sprites_pers_cle,Personnage.Picture.Bitmap);
      Carte.Refresh;
    end;
     
    procedure TXsonic.saut;
    begin
      if sprites_pers_cle = 6 then
      begin
        sprites_pers_cle := 30;
        while pers_saut < 15 do
        begin
          Personnage.Picture := nil;
          if (pers_saut < 5) then
          begin
            Dec(Pos.Y, 10);
            if ((pos.X - 5) < 190) then Dec(Pos.X, -5);
          end;
          if (pers_saut >= 5) and (pers_saut < 10) then
          begin
            if ((pos.X - 5) < 190) then Dec(Pos.X, -5);
          end;
          if (pers_saut >= 10) and (pers_saut < 15) then
          begin
            Dec(Pos.Y, -10);
            if ((pos.X - 5) < 190) then Dec(Pos.X, -5);
          end;
          sprites_pers.GetBitmap(sprites_pers_cle,Personnage.Picture.Bitmap);
          pers_saut := pers_saut +1;
          Carte.Refresh;
          Sleep(5);
        end;
      end;
      if sprites_pers_cle = 59 then
      begin
        sprites_pers_cle := 30;
        while pers_saut < 15 do
        begin
          Personnage.Picture := nil;
          if (pers_saut < 5) then
          begin
            Dec(Pos.Y, 10);
            if ((pos.X + 5) > 0) then Dec(Pos.X, 5);
          end;
          if (pers_saut >= 5) and (pers_saut < 10) then
          begin
            if ((pos.X + 5) > 0) then Dec(Pos.X, 5);
          end;
          if (pers_saut >= 10) and (pers_saut < 15) then
          begin
            Dec(Pos.Y, -10);
            if ((pos.X + 5) > 0) then Dec(Pos.X, 5);
          end;
          sprites_pers.GetBitmap(sprites_pers_cle,Personnage.Picture.Bitmap);
          pers_saut := pers_saut +1;
          Carte.Refresh;
          Sleep(5);
        end;
      sprites_pers_cle := 59;
      end;
    end;
     
    End.
    Encore merci au forum sans qui je n'aurais jamais pu arriver à ça

  2. #2
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 552
    Points : 3 920
    Points
    3 920
    Par défaut
    Comme quoi, avec du courage, de la volonté et ... Developpez.com (je fais de la pub...)

    Bonne continuation

    e-ric

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  3. #3
    Membre habitué Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Points : 176
    Points
    176
    Par défaut
    Merci

    Maintenant faudrais que je passe au directx mais le palier et un peut dur à avaler

  4. #4
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 552
    Points : 3 920
    Points
    3 920
    Par défaut
    Ne connaissant pas du tout cette technologie, je ne te serai pas d'un grand secours, mais Dieu merci, je ne suis pas tout seul sur ce forum.

    Bonne chance.

    e-ric

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  5. #5
    Membre habitué Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Points : 176
    Points
    176
    Par défaut
    J'ai cherché un peut et je suis tombé sur DelphiX, je vient de l'installer et de lancer une application test. Ca fonctionne.

    Par contre, ou trouver de la doc en français (pour debuter c'est mieux) sur delphix?

    Du moin une explication des différentes options qu'il existe sur chaque composants ou des exemple de jeu.

    Merci

  6. #6
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Le développement de DelphiX est, je crois, arrété.
    Je t'encorage donc à suivre les posts de ce thread :
    http://www.developpez.net/forums/vie...613&highlight=

  7. #7
    Membre habitué Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Points : 176
    Points
    176
    Par défaut
    J'avais déjà vu se topic mais bon...

    GlScene ok mais coté gestion du clavier et le son...
    DelphiX, génial mais archaïque
    DirectX en hard ok, mais les docs de debutant sont en anglais et c'est très complexe pour commencer je trouve

    Comment faire?

  8. #8
    Membre confirmé
    Avatar de Manopower
    Inscrit en
    Décembre 2003
    Messages
    516
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 516
    Points : 453
    Points
    453
    Par défaut
    Désolé si mon post parait idiot à certains, mais un conseil de développeur à développeur qui résoudrait ton souci : Mets toi à l'anglais ! Cours du soir par exemple. ça réponds indirectement à ta question je sais, mais si tu veux utiliser des technologies DirectX, en maitrisant mieux l'anglais tu trouveras beaucoup plus d'aide que si tu te limites aux pages francophone.

    Bon courage et bravo pour ce bon début !

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Points : 119
    Points
    119
    Par défaut
    Citation Envoyé par poussinphp
    GlScene ok mais coté gestion du clavier et le son...
    Comment ca? Mais il n'y a aucune difference entre la gestion clavier en GLScene ou Delphi de base. Tu met un evenement onKeyPress sur l'ecran pour la gestion du clavier.

    Quand a la musique, tu met un composant TMediaPlayer puis le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MediaPlayer1.open;
    MediaPlayer1.play;
    Un petit nuage blanc dans un ciel tout bleu, c'est le paradis. Un petit message blanc dans un ecran tout bleu, c'est l'enfer.

  10. #10
    Membre averti
    Avatar de Hauwke
    Inscrit en
    Septembre 2005
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 329
    Points : 400
    Points
    400
    Par défaut
    Bonjour,
    Moteur 3D pour Delphi, version 6 gratuite (student version)
    World Builder: Gratuit
    Terrain Builder: Gratuit
    Livré avec certaines sources. Doc en anglais mais bien écrite (avec un petit dico pour les anglophobes ça devrait suffire)
    http://www.3dstate.com
    Apparement, il suffit de rajouter 1 unité au projet Delphi et d'adjoindre une dll au projet pour utiliser les fonctions du moteur
    J'ai testé les démos, c'est assez impressionant pour le néophyte que je suis. Ca vaut peut être un coup d'oeil de votre part.

    3- Writing your own samples:
    a- Add unit "STATED.pas" to your project(just do add files to project).
    You will find this unit in the "Engine\Uses" folder. This unit is like
    a header file for all STATE functions.
    b- Copy 3DSTATE.dll to your application working directory. (You can also put it
    in your Windows\system directory.)

    This is all it takes to make your application 3D enabled!
    Cordialement, Hauwke

  11. #11
    Membre habitué Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Points : 176
    Points
    176
    Par défaut
    Concernant l'anglais je sait le lire mais c'est de l'anglais technique et c'est toujours mieux de lire une doc technique dans sa langue.

    Concernant GlScene je suis d'accord mais pour la partie mplayer, j'ai essayé de loader un fichier mid, l'application mais 4 seconde à se lancer, c'est rien mais si j'ai 40 musiques ou son suffit de multiplier. La gestion du son est beaucoup mieux sur le composant directx . Ya le timer aussi qui n'existe pas, car celui de base est assez limité.

    Mon but est de faire de la 2d pour commencer, car la 3D est assez complexe et l'utilisation d'un moteur n'est pas mon but non plut

    Je cherche à apprendre à dev des jeux pas a en faire en faite

    Merci quand même pour vos precieux conseils

  12. #12
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Pour le son, je te conseillerais d'utiliser la librairie FMOD, elle est tout simplement géniale !!! et très performante ! et du coup, tu ne seras plus limité aux formats mid et wave, FMOD gère une pléthore de formats.

    Mais, c'est en anglais, pas moyen d'en echapper si on veut avancer en programmation, c'est triste mais c'est la réalité.

  13. #13
    Membre habitué Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Points : 176
    Points
    176
    Par défaut
    J'ai essayé d'installer GLscene, le composant glscene en lui meme marche pas mais quand j'ai lancé le fmod ça a marché. il me manquais sdl.dll que j'ai trouvé pour le SDL.

    J'ai un menu glscene mais c'est l'original ou le fmod ?

    A quoi sert BASS et ODE? ou trouve t'on les dll qui vont avec et pourquoi ça marche pas le package glsene (alors que quand j'ai installé fmod ça a ajouté l'onglet "glscene + un autre "glscene shader" ?

    Merci d'avance pour vos réponse

  14. #14
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Ca me revient maintenat, J'ai eu de grands problèmes avec GLScene, qui apparament inclut FMod, mais c'etait il y'a longtemps, je ne me rappelle pas grand chose.

    Sinon, BASS est une autre lib audio, et ODE un moteur physique

  15. #15
    Membre habitué Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Points : 176
    Points
    176
    Par défaut
    Citation Envoyé par Modjo
    mais c'etait il y'a longtemps, je ne me rappelle pas grand chose.
    Que veut tu dire par là??? Tout ceux qui se lancent dans le jeu lachent après?

  16. #16
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Une remarque, d'après ce que j'ai compris, tu voulais faire, du moins pour l'instant des petits jeux en 2D, n'est ce pas ? dans ce que, je trouve q'utiliser GLScene revient à utiliser le marteau pour ecraser la mouche !
    C'est un lib trés au point et complexe, et tu n'utiliseras que 1/1000000000000000 de ses capacités !
    Ce que je te propose à la place, c'est d'apprendre les fondements de OpenGL ou DirectX, à toi de choisir.
    Ce ne sera pas trop compliqué, surtout pour la 2D, et tu pourras alors développer un petit moteur 2D, leger et efficace, taillé pour tes besoins spécifiques.
    De plus, de cette façon, tu pourras aller trés loin, càd faire des trucs plus sophistiqués, chose pas evidente si tu te contentes d'utiliser des composants prêts à porter et qui te cachent ce qui se passe dans le ventre de la machine !

  17. #17
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Ce n'est pas ce que je voulais dire, j'ai juste laissé tomber GLScene, et je me suis lancé dans l'apprentissage d'OpenGL.

    Actuellement, je suis sur un petit moteur 2D, et disons que c'est fini à 80 %.

  18. #18
    Membre habitué Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Points : 176
    Points
    176
    Par défaut
    Je suis d'accord mais en regardant directx ça ma paru être un palier trop grand d'un coup. de plus c'est chiant coté "maths". Le mieux, je pense et de comprendre le fonctionnement par des outils de façon à voir se qui est vraiment utile, puis de comprendre par la suite se que fais la machine derrière le composant. Je suis d'accord avec toi pour se qui est de l'utilisation d'opengl mais je pense qu'il est preferable d'obtenir quelque chose de simple pour commencer et avec des outils simplifié puis de compliquer.

    Je connais le php et je pense pas qu'il serais bon pour un debutant de commencer par des connexions webservice, de connections odbc ou encore la conception objet.

    Je pense que tu m'aura compris. De plus je souhaite faire un petit jeu 2d, pas half life, donc je pense que l'outil seras assez bon pour faire un "sonic". L'interet n'est pas de mettre 40 options genre cell shading etc.. mais de comprendre la manoeuvre de départ. Ensuite, quand la chose et comprise on peut s'amuser (en plus, le faite de voir des resultat assez rapidement sans galerer 3 mois a comprendre comment faire un vertex etc... et plus motivant).

    Ne l'oubliont pas, la programmation est un domaine qui se fais avec passion et avec lequel on se fais plaisir (du moin on essaye).

  19. #19
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Ton raisonnement est logique, mais je crois qu'il est grand temps que tu te lances dans l'openGL pur et dur, puisque t'as terminé un jeu, et que tu cherches à l'optimiser.

    Et crois moi, pour la 2D, l'openGL est d'une simplicité enfantine mais d'une puissance redoutable ! Faut pas avoir peur ! il suffit de chercher une bonne doc et de suivre qlqs tutoriels, ensuite, tu regretteras de ne pas avoir commencé plutôt !

  20. #20
    Membre habitué Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Points : 176
    Points
    176
    Par défaut
    Enfantine
    (j'ai un bouquin nommé "opengl 1.2 de campuspress", qui doit avoir 1 ans. j'ai déjà fais des tests en c++.

    J'avoue en c++ se qui me gene c'est le manque de composant pour faire ses fiches

    Du moin l'opengl c'est pas si simple quand on comprend pas comment l'appliquer. Tu va me passer un lien ou ya un triangle qui tourne, ok c'est bien mais maintenant comment je l'oriente? comment je lui met une texture? ou je charge l'image? comment je la place? etc....

    C'est embetant sachant que je sait meme pas vraiment se que je vais faire après Car après tout c'est pas si simple de faire un moteur, meme 2d

Discussions similaires

  1. Besoin d'aide/conseil pour alternance.
    Par Eliada dans le forum Emploi
    Réponses: 2
    Dernier message: 05/12/2011, 12h10
  2. Java/DB : Besoin d'aide/conseils
    Par Askle dans le forum JDBC
    Réponses: 8
    Dernier message: 29/12/2009, 19h09
  3. Besoin d'aide/conseils licenciement faute lourde
    Par minette dans le forum Licenciement
    Réponses: 26
    Dernier message: 08/07/2008, 17h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo