AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -32%
-32% sur le purificateur d’air Dyson Pure Cool ...
Voir le deal
229 €
Le Deal du moment : -67%
– 67% sur le Ventilateur sur pied OCEANIC ...
Voir le deal
16 €

 

 C / C++ et la SDL (Comparaison et similarité avec le gml)

Aller en bas 
AuteurMessage
blendman
Utilisateur confirmé: Rang **
blendman

Messages : 432
Projet Actuel : Crée des jeux, logiciels, BD, Romans et nouvelles.

C / C++ et la SDL (Comparaison et similarité avec le gml) Empty
MessageSujet: C / C++ et la SDL (Comparaison et similarité avec le gml)   C / C++ et la SDL (Comparaison et similarité avec le gml) EmptySam 1 Mai 2010 - 12:39

salut

En parallèle de mon projet 3 arks, je me suis mis il y a quelques temps (décembre 2009) à l'apprentissage du C avec la SDL.

Game Maker a cet immense avantage d'être très logique d'utilisation. Le GML est à la fois "simple", complet et relativement puissant.

Les langages C / C++ sont plus compliqués (en tout cas, pour moi, pour le moment Razz), mais très performants. On peut faire beaucoup de choses avec, et un exe compilé (c/c++) est plus "sécurisé" semble-t-il qu'un exe GM.

En ce moment, j'essaye donc de voir si on peut réaliser en C/c++ des fonctions équivalente plus ou moins à certaines fonctions GML de gameMaker (avec par exemple, la SDL comme librairie graphique, mais on peut parler d'autres lib sans problème).

J'essaye aussi de trouver une méthode qui permettrait d'organiser son travail comme un fichier GM :
- sprites
- objets
- room
etc..

Voici donc quelques unes de mes réflexions très sommaires (je n'en suis qu'au début Smile). Si vous souhaitez les compléter par vos idées ou ce que vous connaissez du C/C++ (avec la SDL, mais pas que ça), n'hésitez surtout pas, cela pourrait profiter à tous Smile.

De plus, j'aurai aussi quelques questions sur le C ou le C++ (je ne m'y suis pas encore mis, j'attends de mieux "maitriser" le C pour m'y mettre, mais les informations seront disponibles Smile).

Le but n'étant pas de refaire un gamemaker en C/C++, mais plutôt de voir s'il est possible de développer en C/C++ dans l'esprit de GameMaker et son organisation que je trouve vraiment bien pensée Very Happy.

1. Créer des fonctions équivalentes à certaines fonctions de GameMaker.

Voici les fonctions que j'essaye de créer en C/C++ avec la SDL (fonctions de GM à la base). Je pense notamment aux fonctions les couramment utilisé et assez "simples", mais aussi à certains évènements.

J'ai essayé de les classer plus ou moins par facilité de création et d'utilisation.

1. Fonctions générales, assez simple

1.1. random() : voici la fonction que j'ai (fortement aidé par le tutoriel sur le C du SDZ), elle fonctionne très bien.

En entrée : un chiffre minimum, et un chiffre maximum, en sorti un chiffre entier au hasard choisi parmi ces 2 chiffres :

Il est préférable de créer 2 fichiers:
general.h : contenant les prototypes des fonctions
et general.c : contenant les fonctions. (voir le SDZ pour plus d'infos là-dessus.

Code:

int random(const int MIN, const int MAX)
{
    int resultat = 0;
    srand(time(NULL));
    resultat = (rand() % (MAX - MIN + 1)) + MIN;
    return resultat;
};

Il faut inclure ça pour que ça marche :
Code:

#include <math.h> //pour les operations
#include <time.h> //pour les randoms ou timer

Ce qui donne donc pour le code complet (fichier general .c par exemple) :
Code:

#ifndef DEF_GENERAL // Si la constante n'a pas été définie` le fichier n'a jamais été inclus
#define DEF_GENERAL // On définit la constante pour que la prochaine fois le fichier ne soit plus inclus
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h> //pour les operations
#include <time.h> //pour les randoms ou timer
#include <SDL/SDL.h>
#include <SDL_image.h>
#include <SDL_ttf.h>

int random(const int MIN, const int MAX)
{
    int resultat = 0;
    srand(time(NULL));
    resultat = (rand() % (MAX - MIN + 1)) + MIN;
    return resultat;
};

#endif



1.2. Fonction draw_text()

Pour celle-ci, je pensai utiliser la librairie SDL pour l'affichage du texte.

J'ai commencé la fonction, mais j'ai une erreur et je ne sais pas trop comment la résoudre :
Code:

SDL_Surface    *ecran = NULL;

void draw_text(int a, int b, char text[TAILLEMAX])
{
    SDL_Surface texte2;
    SDL_Rect positionText;
    positionText.x = a;
    positionText.y = b;
    TTF_Init();
    SDL_Color c_black = {0, 0, 0};
    TTF_Font *police = NULL;
    police = TTF_OpenFont("font/arial.ttf", 20);
    texte2 = TTF_RenderText_Solid(police, text, c_black);
    SDL_BlitSurface(texte2, NULL, ecran, &positionText);
};

l'erreur :
Code:

D:\3Arks_Demo\general.c||In function `draw_text':|
D:\3Arks_Demo\general.c|32|error: incompatible types in assignment|
D:\3Arks_Demo\general.c|33|error: incompatible type for argument 1 of `SDL_UpperBlit'|

Une idée ?


Les autres fonctions que j'aimerai créer et utiliser :



Une idée très vague pour ça :
- moving_toward_point ou moving_toward_objet (ou équivalent) : si l'objet "cible" est créé, il est facile de bouger un objet vers celui-ci. Par contre, il me manque fonction de création de cet objet cible.
- sprite_add() :je pense utiliser IMG_load de la SDL pour ça.


Pas vraiment d'idée pour l'instant :
- instance_create()
- instance_destroy()
- event alarm[]
- event destroy

Un peu d'aide serait la bienvenue pour tout ça Very Happy.

2. Quelques questions

- Existe-t'il une méthode simple pour régler le fps du jeu (avec la SDL ou une autre librairie), comme on régle le fps d'une room ?

- savez-vous s'il est possible d'avoir une sorte de blend mode avec la SDL ?

- Enfin, avez-vous une idée de la façon dont il faudrait se prendre pour créer une sorte d'objet façon Gm.

Pour les variables, je pense utiliser les structures :
Code:

typedef struct Personnage t_Personnage;
struct Personnage
{
//SDL_Surface *surfaceImage[4];
char nom[100];
char sprite[50];

int id,
    x,
    y,
    xp,
    //level,
    //force,
    vitesse,
    //mana,
    //vie,
    centre_x,
    centre_y,
    collision;
};
Mais pour le reste, je ne sais pas encore comment faire Smile.

voiloutch, toute information est la bienvenue Smile
Revenir en haut Aller en bas
http://blendman.blogspot.com/
M@d_Doc
Modérateur
M@d_Doc

Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

C / C++ et la SDL (Comparaison et similarité avec le gml) Empty
MessageSujet: Re: C / C++ et la SDL (Comparaison et similarité avec le gml)   C / C++ et la SDL (Comparaison et similarité avec le gml) EmptySam 1 Mai 2010 - 13:52

Très bon projet!
Bon, j'ai pas le temps de tout lire (et donc de répondre à tes problèmes), mais je jette un coup d'oeil dès que possible (même si j'ai plus touché au C depuis belle lurette...)

_________________
C / C++ et la SDL (Comparaison et similarité avec le gml) Control_commentTous les icones de gm utilisables sur le cbna ICI C / C++ et la SDL (Comparaison et similarité avec le gml) Main1_change_sprite
Revenir en haut Aller en bas
http://www.lecbna.org
jo
*Excellent utilisateur*
jo

Messages : 4879
Localisation : CENSURE T_T
Projet Actuel : FAC

C / C++ et la SDL (Comparaison et similarité avec le gml) Empty
MessageSujet: Re: C / C++ et la SDL (Comparaison et similarité avec le gml)   C / C++ et la SDL (Comparaison et similarité avec le gml) EmptySam 1 Mai 2010 - 14:04

Le C n'est pas orienté objet, tu devra te démerder pour arranger en objet.
Niveau blend mode, il doit surement exister de bonnes librairies directX qui te feront bénéficier de pleins de shaders inexistants sous game maker.

_________________
http://viciousslugs.sup.fr/ <- Des imbéciles en action. Venez visiter, on recherche des lecteurs, des auteurs, et ça paye mal. En fait ça paye pas, mais ya moyen de se marrer.
Revenir en haut Aller en bas
http://psyckho.skyrock.com/
arthuro
Utilisateur confirmé: Rang ****
arthuro

Messages : 1472
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

C / C++ et la SDL (Comparaison et similarité avec le gml) Empty
MessageSujet: Re: C / C++ et la SDL (Comparaison et similarité avec le gml)   C / C++ et la SDL (Comparaison et similarité avec le gml) EmptySam 1 Mai 2010 - 14:26

J'ai toujours essayer de faire un système pour me rapprocher du fonctionnement de game maker.


Pour gérer les fps, il faudra utiliser les timer de la sdl.
Il y a un tuto sur le site du zéro (section C )

_________________
C / C++ et la SDL (Comparaison et similarité avec le gml) PochetteC / C++ et la SDL (Comparaison et similarité avec le gml) Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
blendman
Utilisateur confirmé: Rang **
blendman

Messages : 432
Projet Actuel : Crée des jeux, logiciels, BD, Romans et nouvelles.

C / C++ et la SDL (Comparaison et similarité avec le gml) Empty
MessageSujet: Re: C / C++ et la SDL (Comparaison et similarité avec le gml)   C / C++ et la SDL (Comparaison et similarité avec le gml) EmptySam 1 Mai 2010 - 16:00

jo a écrit:
Le C n'est pas orienté objet, tu devra te démerder pour arranger en objet.
et en c++, c'est peut être un peu plus facile (même si ce n'est pas orienté objet non plus Smile.
Sinon, comment je peux arranger en objet (quelques pistes :p) ?

Citation :
Niveau blend mode, il doit surement exister de bonnes librairies directX qui te feront bénéficier de pleins de shaders inexistants sous game maker.
OUi c'est clair.
Je me demande si avec la SDL on peut avoir ce genre de chose.


Code:
J'ai toujours essayer de faire un système pour me rapprocher du fonctionnement de game maker.
Ah et tu as réalisé quelques fonctions intéressantes ? Very Happy

Si oui, n'hésites pas à les poster ici Wink


Code:
Pour gérer les fps, il faudra utiliser les timer de la sdl.
Il y a un tuto sur le site du zéro (section C )
oui, j'avais vu un peu ça, je vais regarder de plus près Wink
Revenir en haut Aller en bas
http://blendman.blogspot.com/
arthuro
Utilisateur confirmé: Rang ****
arthuro

Messages : 1472
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

C / C++ et la SDL (Comparaison et similarité avec le gml) Empty
MessageSujet: Re: C / C++ et la SDL (Comparaison et similarité avec le gml)   C / C++ et la SDL (Comparaison et similarité avec le gml) EmptySam 1 Mai 2010 - 16:25

Pour géré les objets en C++ je ferais bien.

En gros une classe de base objet
On enregistrera les instances dans une liste.
Et a chaque step, on execute le step de chaque objets, le draw de chaque objets grace a la liste

_________________
C / C++ et la SDL (Comparaison et similarité avec le gml) PochetteC / C++ et la SDL (Comparaison et similarité avec le gml) Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
Gab666
Modérateur 'Zut'
Gab666

Messages : 5339
Localisation : **I move away from the mic to breathe in

C / C++ et la SDL (Comparaison et similarité avec le gml) Empty
MessageSujet: Re: C / C++ et la SDL (Comparaison et similarité avec le gml)   C / C++ et la SDL (Comparaison et similarité avec le gml) EmptySam 1 Mai 2010 - 16:31

Citation :
Code:
int random(const int MIN, const int MAX)
{
    int resultat = 0;
    srand(time(NULL));
    resultat = (rand() % (MAX - MIN + 1)) + MIN;
    return resultat;
};

Permets-moi de corriger cette fonction, tu initialises le RNG seulement une fois, avec un seed qui est la plupart du temps le timestamp actuel, là, à chaque appelle de random, il sera réinitialisé, ça ne sera pas très efficace, car les nombres sortis par le RNG seront les mêmes si tu appelles la fonction 2 fois consécutivement(et même, par la suite, il est "possible" de prédire le résultat de ta fonction en connaissant l'algorithme de rand pour générer un nombre aléatoire à partir d'un seed). De plus, le ; à la fin causera probablement une erreur de syntaxe. La fonction random devrait donc être:

Code:
int random(const int MIN, const int MAX)
{
    static int firstTime = 1;
    if(firstTime)
    {
        srand(time(NULL));
        firstTime = 0;
    }
    return (rand() % (MAX - MIN + 1)) + MIN;
}

Ça devrait être à peu près ça.


Citation :
Code:
void draw_text(int a, int b, char text[TAILLEMAX])
{
    SDL_Surface texte2;
    SDL_Rect positionText;
    positionText.x = a;
    positionText.y = b;
    TTF_Init();
    SDL_Color c_black = {0, 0, 0};
    TTF_Font *police = NULL;
    police = TTF_OpenFont("font/arial.ttf", 20);
    texte2 = TTF_RenderText_Solid(police, text, c_black);
    SDL_BlitSurface(texte2, NULL, ecran, &positionText);
};

Même problème qu'avec la fonction random, ; à la fin et tu initialises la librairie TTF à chaque appel de fonction. Utilises les variables statiques afin de l'initialiser qu'une fois, ou encore mieux, initialise-la au début du programme


Citation :
- Existe-t'il une méthode simple pour régler le fps du jeu (avec la SDL ou une autre librairie), comme on régle le fps d'une room ?

À la fin de tes calculs, juste avant l'affichage, tu récupères le temps depuis le dernier frame et tu fais "dormir" le programme le temps qu'il faut.

Citation :
- Enfin, avez-vous une idée de la façon dont il faudrait se prendre pour créer une sorte d'objet façon Gm.
En C++, ça se fait, les propriétés c'est pas très compliqué, ça se met directement dans une structure ou un objet et en plus t'as des trucs que t'auras même pas sous GM. Si tu parles de la possibilité par exemple d'avoir des sortes d'event je te conseilles d'aller lire sur les observers(c'est un design pattern très utilisé en programmation événementielle). Pour le reste, j'ai jamais approfondi, c'est le seul chemin que je peux te donner.

_________________
PIS MANIAC PREND DES BAINS !
Revenir en haut Aller en bas
http://www.dermanium-online.webou.net/
blendman
Utilisateur confirmé: Rang **
blendman

Messages : 432
Projet Actuel : Crée des jeux, logiciels, BD, Romans et nouvelles.

C / C++ et la SDL (Comparaison et similarité avec le gml) Empty
MessageSujet: Re: C / C++ et la SDL (Comparaison et similarité avec le gml)   C / C++ et la SDL (Comparaison et similarité avec le gml) EmptySam 1 Mai 2010 - 17:29

arthuro a écrit:
Pour géré les objets en C++ je ferais bien.

En gros une classe de base objet
On enregistrera les instances dans une liste.
Et a chaque step, on execute le step de chaque objets, le draw de chaque objets grace a la liste
OK, je verrais lorsque j'en serai là Smile.
A moins que tu n'aies un petit bout de code à proposer Wink.



Gab666 a écrit:
Permets-moi de corriger cette fonction,
Code:
int random(const int MIN, const int MAX)
{
    static int firstTime = 1;
    if(firstTime)
    {
        srand(time(NULL));
        firstTime = 0;
    }
    return (rand() % (MAX - MIN + 1)) + MIN;
}

Ça devrait être à peu près ça.
Merci pour ta correction Wink. Effectivement, c'est beaucoup, je n'avais pas vu que j'initialisé srand à chaque fois (je débute en C Smile).


Citation :

Même problème qu'avec la fonction random, ; à la fin et tu initialises la librairie TTF à chaque appel de fonction. Utilises les variables statiques afin de l'initialiser qu'une fois, ou encore mieux, initialise-la au début du programme
tout à fait.
D'ailleurs, ça ne servait à rien de l'initialiser à chaque fois, c'est une erreur de ma part.
Par contre, même en corrigeant le code, j'ai toujours l'erreur .

Code:
void draw_text(int a, int b, char text[TAILLEMAX])
{
    SDL_Surface texte2;
    SDL_Rect positionText;
    positionText.x = a;
    positionText.y = b;
    SDL_Color c_black = {0, 0, 0};
    TTF_Font *police = NULL;
    police = TTF_OpenFont("font/arial.ttf", 20);
    texte2 = TTF_RenderText_Solid(police, text, c_black);
    SDL_BlitSurface(texte2, NULL, ecran, &positionText);
}

Erreur :
Code:

D:\3Arks_Demo\general.c||In function `draw_text':|
D:\3Arks_Demo\general.c|37|error: incompatible types in assignment|
D:\3Arks_Demo\general.c|38|error: incompatible type for argument 1 of `SDL_UpperBlit'|
||=== Build finished: 2 errors, 0 warnings ===|

une idée du problème ?


Citation :

Citation :
- Existe-t'il une méthode simple pour régler le fps du jeu (avec la SDL ou une autre librairie), comme on régle le fps d'une room ?
À la fin de tes calculs, juste avant l'affichage, tu récupères le temps depuis le dernier frame et tu fais "dormir" le programme le temps qu'il faut.
je vais essayer de voir comment on fait ça.



Citation :
Citation :
- Enfin, avez-vous une idée de la façon dont il faudrait se prendre pour créer une sorte d'objet façon Gm.
En C++, ça se fait, les propriétés c'est pas très compliqué, ça se met directement dans une structure ou un objet et en plus t'as des trucs que t'auras même pas sous GM. Si tu parles de la possibilité par exemple d'avoir des sortes d'event je te conseilles d'aller lire sur les observers(c'est un design pattern très utilisé en programmation événementielle). Pour le reste, j'ai jamais approfondi, c'est le seul chemin que je peux te donner.
ok, ça a l'air déjà super intéressant. Je vais devoir me mettre au c++ dans pas longtemps Smile.

On peut commencer le c++ même si on n'a pas encore tout assimiler en C, ou il vaut mieux attendre d'avoir tout compris et assimiler en C pour se mettre au c++ ?
Revenir en haut Aller en bas
http://blendman.blogspot.com/
Gab666
Modérateur 'Zut'
Gab666

Messages : 5339
Localisation : **I move away from the mic to breathe in

C / C++ et la SDL (Comparaison et similarité avec le gml) Empty
MessageSujet: Re: C / C++ et la SDL (Comparaison et similarité avec le gml)   C / C++ et la SDL (Comparaison et similarité avec le gml) EmptySam 1 Mai 2010 - 17:41

blendman a écrit:
On peut commencer le c++ même si on n'a pas encore tout assimiler en C, ou il vaut mieux attendre d'avoir tout compris et assimiler en C pour se mettre au c++ ?
Ça dépend de comment tu apprends le C++, les concepts du C sont réutilisés mais dépendemment du tutoriel, ils ne seront pas nécessairement réenseignés.

_________________
PIS MANIAC PREND DES BAINS !
Revenir en haut Aller en bas
http://www.dermanium-online.webou.net/
CoDeAVE
Utilisateur confirmé: Rang **
CoDeAVE

Messages : 408
Localisation : Québec

C / C++ et la SDL (Comparaison et similarité avec le gml) Empty
MessageSujet: Re: C / C++ et la SDL (Comparaison et similarité avec le gml)   C / C++ et la SDL (Comparaison et similarité avec le gml) EmptySam 8 Mai 2010 - 8:25

C'est ce que j'essaie de faire avec mon moteur ou presque: un moteur qui gère les sprites, backgrounds, sounds etc... Mais il est orienté objet contrairement à Game Maker qui ne l'ai pas réellement. Je n'essaie pas non plus de faire une réplique mais plutôt un outil semblable à Game Maker et à d'autre Game Engine d'ailleur. Ainsi, il ne s'utilise pas d'une manière très semblable à Game Maker.

https://cbna.forumactif.com/vos-projets-f11/red-hammer-engine-t9214.htm

Vu qu'il est orienté objet ça me permet de faire:

son_saut->play();

au lieu de:

sound_play(son_saut);

ou encore en C la même chose:

sound_play(son_saut);

De plus le C++ offre l'héritage multiple. Ce qui permet d'avoir un objet qui a plusieurs classes mères ou objets parents (GM).

Les objets peuvent avoir des méthodes, concept totalement naturel et évidente dans le monde objet mais pourtant en GML cela n'existe pas. Par exemple:

en C++:

//obj_player, pointeur vers une instance de classe Player

obj_player->sauter(-10);

en C:

playerSaut(obj_player, -10);

En Gml faudrait écrire:

with(instPlayer) //ID d'une instance player, pas le nom de l'objet
{
//Code pour le saut
}

En ce sens, GML me semble un langage plus procédural que orienté objet.

Perso, moi j'utilise SDL+OpenGL parce que même si tu arrives à faire une réplique parfaite de Game Maker avec SDL seulement, Game Maker sera toujours plus performant pour la simple raison qu'il utilise DirectX en arrière qui lui utilise la carte graphique pour afficher les primitives de dessins contrairement à la SDL qui utilise le processeur pour dessiner. Tu n'as pas le choix d'utiliser DirectX, OpenGL ou un autre pour un moteur plus performant que Game Maker. Je dis cela avec expérience: mon premier moteur fonctionnait avec Allegro, un lib qui utilise le processeur pour l'affichage, et j'avais des moins bonne performance qu'avec Game Maker.
Revenir en haut Aller en bas
blendman
Utilisateur confirmé: Rang **
blendman

Messages : 432
Projet Actuel : Crée des jeux, logiciels, BD, Romans et nouvelles.

C / C++ et la SDL (Comparaison et similarité avec le gml) Empty
MessageSujet: Re: C / C++ et la SDL (Comparaison et similarité avec le gml)   C / C++ et la SDL (Comparaison et similarité avec le gml) EmptySam 8 Mai 2010 - 10:29

CoDeAVE a écrit:
C'est ce que j'essaie de faire avec mon moteur ou presque: un moteur qui gère les sprites, backgrounds, sounds etc... Mais il est orienté objet contrairement à Game Maker qui ne l'ai pas réellement. Je n'essaie pas non plus de faire une réplique mais plutôt un outil semblable à Game Maker et à d'autre Game Engine d'ailleur. Ainsi, il ne s'utilise pas d'une manière très semblable à Game Maker.

https://cbna.forumactif.com/vos-projets-f11/red-hammer-engine-t9214.htm
salut

Merci pour ton commentaire, ton moteur a l'air très intéressant, je vais suivre ça de très près, en espérant que tu ne laisse pas tomber comme c'est trop souvent le cas, hélas.
J'espère que tu continueras ton moteur jusqu'au bout, car il a vraiment l'air très prometteur Wink.

Citation :
Vu qu'il est orienté objet ça me permet de faire:
son_saut->play();

au lieu de:

sound_play(son_saut);

De plus le C++ offre l'héritage multiple. Ce qui permet d'avoir un objet qui a plusieurs classes mères ou objets parents (GM).

Les objets peuvent avoir des méthodes, concept totalement naturel et évidente dans le monde objet mais pourtant en GML cela n'existe pas. Par exemple:

en C++:

//obj_player, pointeur vers une instance de classe Player

obj_player->sauter(-10);

en C:

playerSaut(obj_player, -10);

En Gml faudrait écrire:

with(instPlayer) //ID d'une instance player, pas le nom de l'objet
{
//Code pour le saut
}

En ce sens, GML me semble un langage plus procédural que orienté objet.
Je vois tout à fait l'intérêt de tout ça, même si je ne suis pas encore du niveau pour le faire.
Mais il est clair que le c++ présente vraiment beaucoup d'intérêt ne serait-ce que d'un point de vue de la sécurité si on compare à GM qui est une passoire à ce niveau-là Sad (exécution de script externe par exemple).

Citation :
Perso, moi j'utilise SDL+OpenGL parce que même si tu arrives à faire une réplique parfaite de Game Maker avec SDL seulement, Game Maker sera toujours plus performant pour la simple raison qu'il utilise DirectX en arrière qui lui utilise la carte graphique pour afficher les primitives de dessins contrairement à la SDL qui utilise le processeur pour dessiner. Tu n'as pas le choix d'utiliser DirectX, OpenGL ou un autre pour un moteur plus performant que Game Maker. Je dis cela avec expérience: mon premier moteur fonctionnait avec Allegro, un lib qui utilise le processeur pour l'affichage, et j'avais des moins bonne performance qu'avec Game Maker.

Le gros soucis de GameMaker c'est qu'il est trop facilement décompilable (pour les gm6 et gm7). Et pour gm8, je crains que cela n'arrive bientôt (si ce n'est déjà le cas).
Du coup, le problème est de réaliser un jeu commercial en entier et de se rendre compte à la fin qu'on ne peut pas le sortir, car il existe un décompiler pour GM.
Bref, ça m'a assez refroidit par rapport à GM, et c'est la raison pour laquelle j'essaie de me mettre tout doucement au C/c++.

Cependant, mes 1ers tests avec la SDL ne m'ont pas du tout convaincu.
J'affiche juste un background et quelques sprites et ça rame déjà.. Pourtant j'ai un quadcore, donc, ça ne vient de ma machine, peut être de mon code.

Ainsi, j'ai testé LGM (excellent, mais pas encore de compilation possible), Enigma (trop limité pour le moment et en stand bye on dirait), je vais regarder du coté de "construct", ou d'autres softs (game creator..),.
Mais je me demande si tout cela n'est pas une perte de temps, s'il ne vaut mieux pas apprendre en profondeur le c++ et réaliser directement mon jeu (avec directX ou la SFML qui a l'air de tenir la route).

tu as testé un peu la SFML ?
Revenir en haut Aller en bas
http://blendman.blogspot.com/
CoDeAVE
Utilisateur confirmé: Rang **
CoDeAVE

Messages : 408
Localisation : Québec

C / C++ et la SDL (Comparaison et similarité avec le gml) Empty
MessageSujet: Re: C / C++ et la SDL (Comparaison et similarité avec le gml)   C / C++ et la SDL (Comparaison et similarité avec le gml) EmptySam 8 Mai 2010 - 19:03

Je n'ai pas testé la SFML mais selon moi il va falloir que tu développe quand même ton système de gestion des objets.. Mais, oui SFML tu n'y perdrais vraiment rien à l'apprendre! Tu peux toujours faire un petit moteur par dessus ce qui est déjà plus simple que faire un moteur par dessus SDL/GL.

Les problèmes de performance que tu a eus avec SDL sont totalement normals. Il te faut passer en contexte OpenGL sous SDL pour utiliser la carte graphique. Mais pour cela il te faut avoir des petites bases avec OpenGL. Du coup, en contexte OpenGL tu te sert de SDL juste pour les évènements clavier souris et fenêtre.

Citation :
Merci pour ton commentaire, ton moteur a l'air très intéressant, je vais suivre ça de très près, en espérant que tu ne laisse pas tomber comme c'est trop souvent le cas, hélas.
J'espère que tu continueras ton moteur jusqu'au bout, car il a vraiment l'air très prometteur Wink.

Après tant d'heures de travail, je ne compte vraiment mais vraiment pas lâcher surtout que j'achève!

Sinon pour apprendre OpenGL je peux te conseiller:
- http://www.amazon.fr/Open-GL-2-0-Guide-officiel/dp/2744020869/ref=sr_1_8?ie=UTF8&s=books&qid=1273337991&sr=8-8

Au fait, OpenGL c'est en C. De plus, les bases ne sont pas difficiles à comprendre.
Revenir en haut Aller en bas
Contenu sponsorisé




C / C++ et la SDL (Comparaison et similarité avec le gml) Empty
MessageSujet: Re: C / C++ et la SDL (Comparaison et similarité avec le gml)   C / C++ et la SDL (Comparaison et similarité avec le gml) Empty

Revenir en haut Aller en bas
 
C / C++ et la SDL (Comparaison et similarité avec le gml)
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Programmation-
Sauter vers: