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

C++ Discussion :

Demande de petits conseils sur une id�e de programme pour un jeu


Sujet :

C++

  1. #1
    Membre averti
    Inscrit en
    D�cembre 2010
    Messages
    13
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2010
    Messages : 13
    Par d�faut Demande de petits conseils sur une id�e de programme pour un jeu
    Tout d'abord, Bonjour !

    Voila, dans le cadre d'un entrainement au C++, j'ai d�cid� de cr�er une sorte de g�n�rateur de facture pour faire du role play dans un jeu.
    Basiquement, c'est un jeu dont il y a 4 ressources, dont les valeurs d�passent celle des long int.

    Le prix des objets ne varie pas et que malheureusement, la valeur du prix doit pouvoir �tre sup�rieure � 2^32, je pense donc utilis� la librairie GMP.

    Le prix �tant en plusieurs ressources, j'avais pens� faire une classe par objet du jeu qui est 'g�n�r�' lorsque la valeur de l'objet du jeu est sup�rieure � z�ro (afin d'�viter de cr�er une classe pour rien), avec une classe NbObjet contenant le nombre de chaque objets du jeu.
    Lors de la 'validation', le calcul se fait entre le nombre d'objet du jeu et les valeurs dans la classe correspondantes.

    L'id�e basique �tait de stocker les classes (d'objets du jeu) utilis�s dans un tableau. Mais je dois avouer que quelque chose me g�ne.

    Jusque la, est ce que mon principe est bon ?

    Il y a environ une trentaine d'objets.
    Les prix sont entre 500 et 30 Millions par objets (unit�s), on peux monter facilement � 100Millions d'objets (deja vu pour certains objets).
    Je pense que le tableau va me bouffer �norm�ment de m�moire pour pas grand chose finalement.

    Je vais essayer de poster un (pseudo)diagramme UML si ce n'est pas clair.

  2. #2
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut
    Pourquoi ne stockes tu pas les prix avec pour unit� le million ?
    Par exemple si ta variable "prix" contient 2 �a veut dire que le prix est de 2 millions.

  3. #3
    Expert confirm�

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Software Developer
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par d�faut
    unsigned long long, �a ne t'irait pas (entier non sign� cod� sur 64 bits).
    Sinon, pourquoi des prx si faramineux ? Combien tu gagnes dans ton jeu ?
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert � rien, mais qu'il est joli (des fois) : ProceduralGenerator (G�n�ration proc�durale d'images, et post-processing).

  4. #4
    Membre tr�s actif
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Janvier 2010
    Messages
    434
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 434
    Par d�faut
    Bonjour,

    Tout d'abord un double peu faire l'affaire en unsigned vu que tu as que des valeurs positives.

    Ensuite tu peux faire un classe Objet qui contient le nb d'objet, le prix et d'autres valeurs communes a tous tes objets.

    Ensuite tu fais des classes d�riv�es qui sont plus sp�cialis� a tes objets.

    Ta classe objets peux �tre une interface et ce qui te force a l�appeler via les classes sp�cialis�es. Et donc dans les constructeurs faire l'initialisations de toutes tes valeurs en fonction de l'objets.

    Ensuite ton tableau d'objet ne stocke qu'une classe par objets et le compteur interne te donne le nombre que tu as pour ce type d'objet.

    Ensuite pour les appel�s tu peut te plancher sur une factory method (design pattern).

    Et je crois que pour cette partie tu as le plus gros.

    Bonne journ�e

  5. #5
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    D�veloppeur de jeux vid�o
    Inscrit en
    Ao�t 2004
    Messages
    1 717
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur de jeux vid�o
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 1 717
    Par d�faut
    Citation Envoy� par jouana Voir le message
    Bonjour,

    Tout d'abord un double peu faire l'affaire en unsigned vu que tu as que des valeurs positives.
    Unsigned n'est pas applicable aux types flottants.

    Je pense que la suggestion de unsigned long long (qui est dispo dans VS et GCC il me semble) est la plus simple.

  6. #6
    Expert confirm�

    Inscrit en
    Ao�t 2006
    Messages
    3 967
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 3 967
    Par d�faut
    Lai,

    Je peine � comprendre pourquoi des prix si �lev�s.

    La seule explication que je trouve serait que quelque part dans le jeu, il y ait des prix ajust�s � quelques centimes, et l�, je me dis qu'une telle pr�cision par rapport � des prix > 10^6 ou 10^7 est ridicule (ram�ne cette pr�cision au prix d'un litre d'essence, et regarde la diff�rence sur un plein, et m�me sur le prix de l'essence pour l'ann�e !).

  7. #7
    Membre averti
    Inscrit en
    D�cembre 2010
    Messages
    13
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2010
    Messages : 13
    Par d�faut
    Re-bonjour,

    Les prix vont de 500 � environ 30 Millions, prendre comme base le million me posera quelques soucis au niveau du 500 (par exmple ^^)

    Pour l'unsigned long long, je dois avouer que cela m'�tait sortit de la t�te (comme quoi, demander des conseils, �a a du bon ^^ ).

    Pourquoi des prix �lev�s ? C'est une grande question: le fait est que le jeu existe depuis plusieurs ann�es, le d�veloppeur a fait en sorte qu'il y a 3 stades de d�veloppement (d�butant, moyen, joueur d�velopp� ): les d�butants et les joueurs exp�riment�s n'ont pas les m�mes armes ni la m�me puissance, pour l'exp�riment�, produire 500 Millions par exemple, cela se fera en une journ�e (voir moins), alors que pour le d�butant, il lui faudra au moins plusieurs semaines.
    (C'est un bon jeu, souvent mis-�-jour, avec une bonne ambiance et assez �quilibr� � mon avis.)

  8. #8
    Expert confirm�

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Software Developer
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par d�faut
    OK, donc tu ne maitrises pas les prix, en fait.
    Sinon, au niveau architecture, je dirais un classe m�re Objet, qui a pour membre les co�ts dans les diff�rentes ressources (donc 4 membres de co�t) et un nom. Chaque objet est donc une instance de cette classe, et si ces objets doivent exposer des comportements particuliers, il suffit de d�river cette classe m�re pour exposer ces comportements (si pas de comportement particulier, pas besoin de d�river et on garde l'empreinte m�moire minimale de la classe Objet).
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert � rien, mais qu'il est joli (des fois) : ProceduralGenerator (G�n�ration proc�durale d'images, et post-processing).

  9. #9
    Membre averti
    Inscrit en
    D�cembre 2010
    Messages
    13
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2010
    Messages : 13
    Par d�faut
    Merci, c'est pas b�te.

    J'ai toujours tendance � me compliquer la vie pour pas grand chose (ca c'est vu, je pense ^^').

  10. #10
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut
    Les prix vont de 500 � environ 30 Millions, prendre comme base le million me posera quelques soucis au niveau du 500 (par exmple ^^)
    tu dois te douter que j'avais compris que tes valeurs devaient �tre entre 500M et 30M ...
    Concernant ton probl�me tu n'as qu'� stocker ta valeur sur plusieurs variables afin de g�rer le d�passement.

  11. #11
    Membre tr�s actif
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Janvier 2010
    Messages
    434
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 434
    Par d�faut
    Si tu lis un peu plus haut ce que j'ai dit.
    J'expose l'id�e de dragonjoker59 en un peu plus pouss�

  12. #12
    Membre averti
    Inscrit en
    D�cembre 2010
    Messages
    13
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2010
    Messages : 13
    Par d�faut
    TheGzD, je me suis dout� que tu avais pens� �a, c'est pour �a que j'ai pr�cis� ^^ (je dois avouer qu'apr�s mettre relu, ca me semblait �vident... que c'�tait entre 500M et 30M xD)

    Jouana, je ne suis pas sp�cialement dou� en C++ alors tu sais les interfaces, designs paterns ect.. c'�tait un peu flou pour moi m�me si j'avais saisi le concept g�n�ral.

    Je pense que ca devrait aller un peu mieux maintenant. Merci en tout cas

  13. #13
    Membre averti
    Inscrit en
    D�cembre 2010
    Messages
    13
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2010
    Messages : 13
    Par d�faut
    Bonjour,

    J'ai bien r�fl�chis et j'ai quelques autres petites questions sur le m�me sujet, en esp�rant que vous pourrez continuer � m'aider.

    Tout d'abord, je code sous Windows (actuellement) avec QTCr�ator (pour l'IHM), par cons�quent, je me demande si il existe une biblioth�que qui g�re l'unsigned long long int (je sais que GCC est le compilateur linux et pour VS, c'est une bonne question ^^")


    Ma seconde question est plutot un doute en fait: si je multiplie un unsigned long long int par un float et que je met le r�sultat dans un long long int, je r�cup�rerais juste la partie enti�re mais bien le bon r�sultat, non ?


    Par avance, Merci encore

  14. #14
    Expert confirm�

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Software Developer
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par d�faut
    Visual Studio et gcc g�rent tous deux tr�s bien unsigned long long.
    Pour ta 2�me question, la r�ponse est oui, si tant est que le r�sultat ne d�passe pas les bornes d'un unsigned long long.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert � rien, mais qu'il est joli (des fois) : ProceduralGenerator (G�n�ration proc�durale d'images, et post-processing).

Discussions similaires

  1. R�ponses: 2
    Dernier message: 20/01/2012, 16h02
  2. Avis et conseils sur une id�e de projet
    Par betsprite dans le forum Qt
    R�ponses: 15
    Dernier message: 20/10/2010, 16h22
  3. Cherche avis sur une id�e d'IA pour un rpg...
    Par Neolander dans le forum Intelligence artificielle
    R�ponses: 12
    Dernier message: 31/03/2008, 07h19
  4. Conseils sur une demande d'emploi � temps partiel
    Par Pollux dans le forum Emploi
    R�ponses: 5
    Dernier message: 06/02/2006, 12h50
  5. copier une petite texture sur une grosse texture
    Par gaut dans le forum DirectX
    R�ponses: 5
    Dernier message: 15/10/2004, 22h12

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