| | La façon dont vous aimeriez coder un jeu en C++ | |
| | Auteur | Message |
---|
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: La façon dont vous aimeriez coder un jeu en C++ Jeu 13 Sep 2012 - 17:36 | |
| Bonjour, je propose un thread ou vous écrirez un code C++ qui selon vous serais le plus élégant, pratique et puissant. Vous pouvez inventer les fonctions que vous voulez, indiquer les outils utilisés en dehors du code, etc. Le but étant de faire un code contenant le plus d'outils utilisés dans le jv: images, animations, maps, audio, etc. Et tant qu'a faire, vous pouvez aussi modifier/améliorer les codes des autres, histoire d'avoir la meilleur structure possible. Un petit exemple : - Code:
-
#include <xxxxxx>
namespace Obj {
class Link : public GameObject { public: Link(); void step(); void draw(); };
} // namespace
int main() { xx::Window win(640, 480, "My Game"); // Images normales, contenant les planches de sprites xx::StringList resImg[] = { "Images/link_sprite.png", "Link", "Images/monster_sprite.png", "Monster", "Images/gui_sprite.png", "Gui", "Images/menu_sprite", "Menu" }; // Animations éditées sous un logiciel externe // (comparables aux sprites de GM, mais groupés dans un seul fichier) xx::StringList resAnim[] = { "link.anm", "Link", "monster.anm", "Monster" }; xx::StringList resSnd[] = { "link_hurt.wav", "Link Hurt", "link_sword.wav", "Link Sword", "menu_open.wav", "Menu Open", "menu_close.wav", "Menu Close" }; xx::StringList resMusic[] = { "title.ogg", "Title", "world.ogg", "World" }; // Rooms éditables dans un logiciel externe // Contiennent des liens vers les fichiers de tiles, instances xx::StrinList resRooms[] = { "village.rm", "Village", "plain.rm", "Plain", "ruins.rm", "Ruins", "castel.rm", "Castle" }; //xx::RessourcesAdd(ressource type, path, filenames & id_names, number); xx::ressourcesAdd(xx::rc_image, "", resImg, 4); // Le dossier de chargement a déjà été indiqué xx::ressourcesAdd(xx::rc_anim, "Animations", resAnim, 2); // On prend les ressources dans le dossier Animations xx::ressourcesAdd(xx::rc_sound, "Sounds", resSnd, 4); xx::ressourcesAdd(xx::rc_music, "Musics", resMusic, 2); xx::ressourcesAdd(xx::rc_room, "Rooms", resSnd, 4); // charges toutes les ressources xx::ressourcesLoad(xx::rc_anim); // ou une a une xx::ressourceLoad(xx::rc_image, "Link"); xx::ressourceLoad(xx::rc_image, "Menu"); xx::ressourceLoad(xx::rc_room, "Village"); xx::roomLoad("Village"); while(win.isOpened()) { win.updateEvents(); win.clearScren(xx::c_black); if(xx::keyPressed(xx::vk_escape)) xx::gameEnd(); xx::engineStep(); /* Cette fonction affiche les instances des objets dérivés de GameObject, les tiles de la room courrante, gère les collisions et les vues. */ win.display(); } return win.close(); // ferme la fenetre et libère les ressources }
// GameObject(object_name, id_sprite, id_anim) Obj::Link::Link() : GameObject("Link", "Link", "Link") { setMaskAABB(0, 0, 16, 16); setObjectFollowing(); }
void Obj::Link::step() { if(xx::keyCheck(xx::vk_left)) { animIndex = "Walk Left"; animSpeed = 0.2; if(placeFree(x-1, y)) x--; } // etc }
void Obj::Link::draw() { drawSprite(spriteIndex, animIndex, x, y); }
|
| | | Qual Utilisateur confirmé: Rang ****
Messages : 1450 Projet Actuel : Tower Defence
| Sujet: Re: La façon dont vous aimeriez coder un jeu en C++ Jeu 13 Sep 2012 - 21:08 | |
| draw_spr(spr_car1,0,x,y) _________________ |
| | | D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: La façon dont vous aimeriez coder un jeu en C++ Jeu 13 Sep 2012 - 21:39 | |
| C'est un poco le bordel. _________________ Home is not a place, it's a feeling.
|
| | | onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: La façon dont vous aimeriez coder un jeu en C++ Jeu 13 Sep 2012 - 23:51 | |
| Bah justement, a toi de modifier ce qui va pas x) Edit: D'ailleurs pour les ressources, ce serais mieux un truc du genre nan? - Code:
-
<images path="Images"> "link_sprite.png" > "Link" > 1 "monster_sprite.png" > "Monster" > 0 "gui_sprite.png" > "Gui" > 0 "menu_sprite" > "Menu" > 1 </images>
<anims path="Animations"> "link.anm" > "Link" > 1 "monster.anm" > "Monster" > 1 </anims>
<sounds path="Sounds"> "link_hurt.wav" > "Link Hurt" > 0 "link_sword.wav", "Link Sword" > 0 "menu_open.wav", "Menu Open" > 0 "menu_close.wav", "Menu Close" > 0 </sounds>
<musics path="Musics"> "title.ogg" > "Title" "world.ogg" > "World" </musics>
<rooms path="Rooms"> "title.rm" > "Title" > 1 "village.rm" > "Village" > 1 "plain.rm" > "Plain" > 0 "ruins.rm" > "Ruins" > 0 "castel.rm" > "Castle" > 0 </rooms>
- Code:
-
#include <xxxxxx>
namespace Obj {
class Link : public GameObject { public: Link(); void step(); void draw(); };
} // namespace
int main() { xx::Window win(640, 480, "My Game"); xx::loadRessources("ressources.xml"); xx::roomGoto("Title"); xx::musicPlay("Title"); while(win.isOpened()) { win.updateEvents(); win.clearScren(xx::c_black); if(xx::keyPressed(xx::vk_escape)) xx::gameEnd(); xx::engineStep(); /* Cette fonction affiche les instances des objets dérivés de GameObject, les tiles de la room courante, gère les collisions et les vues. */ win.display(); } return win.close(); // ferme la fenetre et libère les ressources }
// GameObject(object_name, id_sprite, id_anim) Obj::Link::Link() : GameObject("Link", "Link", "Link") { setMaskAABB(0, 0, 16, 16); // le masque de collision (Axis Aligned Bounding Box) setObjectFollowing(); // la vue doit suivre cet objet }
void Obj::Link::step() { if(xx::keyCheck(xx::vk_left)) // si on appuie sur la touche flèche gauche { animIndex = "Walk Left"; // on choisis l'animation animSpeed = 0.2; // et sa vitesse if(placeFree(x-1, y)) // et si la gauche est libre on se déplace x--; } // etc }
void Obj::Link::draw() { drawSprite(spriteIndex, animIndex, x, y); // affiche le sprite, en fonction de l'animation } |
| | | arthuro Utilisateur confirmé: Rang ****
Messages : 1482 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: La façon dont vous aimeriez coder un jeu en C++ Ven 14 Sep 2012 - 19:40 | |
| Un problème que je me suis poser. C'est à propos de l’itération entre les différents objets (dérivant de l'objet Objet par exemple)
J'aurais tendance à vouloir mettre ces interactions dans la classe des objets eux-même. Mais tout les objets n'ont pas les même interactions avec les autres. Et on est souvent forcé de mettre le code dans le gestionnaire d'objet. Avec une liste d'objet (pointeur ou référence ) , il est difficile de traiter ces éléments en temps que qu'enfant d'objet. On à tendance à faire une liste de chaque type d'objet mais c'est la pagaille ensuite. |
| | | onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: La façon dont vous aimeriez coder un jeu en C++ Ven 14 Sep 2012 - 20:06 | |
| J'ai pas bien suivis la. Quand tu parle d'interaction, tu parle de quoi? Collisions? T'aurais un exemple? Sinon pour la liste bah tu fait une liste du type Object* et tu met toutes les adresses des instances dedans. C'est sensé marcher, juste que tu peut pas accéder aux attributs et méthodes des objets dérivés sans cast. (après je sais pas si c'est très propre de cette manière, mais je vois pas vraiment mieux la) |
| | | D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: La façon dont vous aimeriez coder un jeu en C++ Sam 15 Sep 2012 - 0:23 | |
| Non, il ne faudrait jamais avoir à accéder à une méthode d'une classe dérivée dans la boucle principale. Sinon c'est que la collection hétérogène est mal foutue. En fait il suffit d'une méthode update(delta_temps) et d'une affiche(contexte_graphique) dans la classe Object, qui seront surchargée par les objets. Pour un système à la GM, rajouter des membres héritables tels que x, y, depth (auquel cas il faudrait trier la liste par depth pour l'affichage), et une fonction template collision. - Code:
-
class Object { // ... protected: // ... Hitbox getHitbox(); template<class O> void collision(O other, Hitbox hitZone); void update(int dt); void draw(/* ? */); } Note : ces fonctions sont protected car elles ne devraient pas être appelées ailleurs que par la boucle principale du programme, qui sera elle dans le ticker, déclaré friend. Idée très flexible mais pas nécessairement optimisée : une interface Hitbox permettant de manipuler des masques de collision génériques. On aura par exemple des PointHitbox, des RectHitbox, des RasterHitbox, des EllipseHitbox, et surtout un CompositeHitbox. Chacune de ces classes étant capable de retourner si oui ou non elle est en collision avec une autre Hitbox. Ainsi, on peut avoir un truc de ce genre : - Code:
-
class MonBonhomme : public Object { // ... private: Hitbox tete, brasG, brasD, torse, jambeG, jambeD, corps; }
Et dans le .cpp :
MonBonhomme::MonBonhomme() { // ... corps = new CompositeHitbox(tete, brasG, brasD, torse, jambeG, jambeD); }
Hitbox MonBonhomme::getHitbox() { return corps; } Ce qui fait que Bidulon fournit son masque composite complet au moteur de jeu lors de l'étape "résolution des collisions", et si un (ou plusieurs) bout(s) de son corps sont en contact avec un autre objet, on lui dit lequel ainsi que la Hitbox concernée. Si je me trompe pas, il suffit de surcharger la fonction template, et si Bidulon n'est pas prévu pour réagir à un certain objet il se rabattra sur la fonction d'Object (qui elle ne fait rien). _________________ Home is not a place, it's a feeling.
|
| | | onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: La façon dont vous aimeriez coder un jeu en C++ Sam 15 Sep 2012 - 13:25 | |
| Tu pourrais expliquer vite fait en quoi consiste une 'collection hétérogène' ? J'ai regardé sur le net mais j'ai pas trop trouvé de réponses. Sinon pour la ligne template<class O> void collision(O other, Hitbox hitZone); je vois pas pourquoi tu fait une fonction template. En principe la collision se ferais entre deux objets dérivés de Object non? En tout cas l'idée des 'composite hitbox' est vraiment sympa. Juste qu'a implémenter (et optimiser surtout) c'est une autre histoire Pour un engine qui gère les animations a la rayanim ça pourrais être super pratique. Et le top pour les jeux de combats. Par contre corps = new CompositeHitbox(tete, brasG, brasD, torse, jambeG, jambeD); C'est possible de faire ça en C++? On a le droit d'utiliser un nombre de paramètres variable? Ou ce serais encore un truc a coup de template (jamais utilisé pour ma part, je connais vite fait le fonctionnement. Ouai je code comme un codeur C ) |
| | | arthuro Utilisateur confirmé: Rang ****
Messages : 1482 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: La façon dont vous aimeriez coder un jeu en C++ Sam 15 Sep 2012 - 15:09 | |
| Un collection hétérogène, c'est un conteneur d'instance de différents objet. Avec une list<objet*> ont peux y poser toute instance dérivant de l'objet objet. Une solution à mon problème, c'est de donner à chaque élement de la list une référence (ou pointeur) du manager d'objet. Et ainsi chaque objet à accès au manager qui à accès au objets, la boucle est bouclé. ( mais moyen je trouve) Dz, j'utilise la même chose que toi. Seulement, je voudrais n'effectuer que les tests de collisions nécessaire. Et de plus, lorsqu'il y a une collision, accéder directement à l'objet enfant. Mais j'ai maintenant une idée qui ferait l'affaire. Tous les objets ont une fonctions - Code:
-
collisionWith(Objet& obj)
Cette fonction est surchargé par les enfant - Code:
-
collisionWith(Vaisseau& v); collisionWith(Missille& m);
Quand il y a collision entre deux objets a et b, le manager d'objet appelle - Code:
-
a.CollisionWith(b) // objet::CollisionWith(Objet&)
mais si a est un Vaisseau, la définition de Vaisseau::CollisionWith(Objet& b) est : - Code:
-
b.CollisionWith(*this);
Par exemple, il se trouve que b est un Missille. On a donc appellé la dernière fois la fonction Missille::CollisionWith(Vaisseau& ); qui est la bonne. ----------------------------------- Je ne sais pas si je me suis fait comprendre. Dans l'ordre voici les fonctions appelé: Objet::CollisionWith(Objet&) Vaisseau::CollisionWith(Objet&) Missile::CollisionWith(Vaisseau&); ----------------------- ( le même mais avec nos deux objet a et b a(objet) . CollisionWith( b(objet)) b(vaisseau) . CollisionWith (a(objet)) a(missile) . CollisionWith( b(vaisseau)) C'est pas très long à implémenter, juste 3 fonctions: - Code:
-
Objet::CollisionWith(Objet& obj) { obj.CollisionWith(*this); } Vaisseau::CollisionWith(Objet& obj) { obj.CollisionWith(*this); } Missile::CollisionWith(Objet& obj); { obj.CollisionWith(*this); } Vaisseau::CollisionWith(Missile& missile) { // ici le code pour gérer les collision entre vaisseau <-> missile } Missile::CollisionWith(Vaisseau& vaisseau) { vaisseau.CollisionWith(*this) // on applique la fonction du dessus entre les deux }
Quand dite vous? |
| | | D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: La façon dont vous aimeriez coder un jeu en C++ Sam 15 Sep 2012 - 23:45 | |
| Une collection hétérogène, c'est une collection d'instances qui ne sont pas de la même classe. Donc en général (et faire le contraire serait une très, très mauvaise idée) on y stocke des objets implémentant la même interface (donc héritant de la même classe mère en C++).
Le template permet de "surcharger" la méthode dans les fils avec des références sur des descendants d'Object, plutôt que sur Object. Pourquoi ? Parce qu'il faut une méthode par objet rencontré, on ne réagit pas pareil à un bonus ou à un tir en pleine tête. Et tout bourrer dans une fonction avec un *Object en paramètre, mauvaise idée. D'autant que le phénomène de masquage de méthodes sera beaucoup plus simple à gérer avec un template : la méthode sera appelée uniquement avec la classe pour laquelle tu as défini le comportement, point. Et, au début je voulais faire un équivalent du <O extends Object> de Java, mais apparemment le C++ le gère carrément tout seul à la compil' : en fait la méthode accepte tout objet, mais si ensuite ça génère une erreur (donc si l'objet n'implémente pas une des méthodes que tu appelles), alors le compilo gueule et tu ne peux pas utiliser cet objet. En gros l'interface est implicite et devinée par le compilo en regardant le corps de ta fonction.
Pour les varargs... ben je me suis dit qu'un truc aussi basique et pratique existe forcément en C++, non ? Après je dis pas que mon code est compilable direct, c'est plus un squelette conceptuel qu'autre chose.
Implémenter les Hitbox, ça ne devrait pas être si dur. Au mieux tu auras C(2, n) fonctions à définir avec n le nombre de Hitbox différentes (il faut déterminer une fonction pour chaque paire de Hitbox). CompositeHitbox c'est juste un alien (proprement caché par l'encapsulation) qui se contente d'appeler les méthodes de ses parties (une LinkedList fera très bien l'affaire). À nouveau une méthode template dans la classe mère. C'est bien les template.
Arthuro, sauf erreur de ma part, collisionWith(Vaisseau& v) et collisionWith(Missile& m) ne surchargent PAS collisionWith(Object& obj) ! Du coup si tu envoies une Object& muette venue de la collection du ticker, il me semble que ça appelle systématiquement celle avec Object&. Par contre le template force la résolution dynamique de la référence. _________________ Home is not a place, it's a feeling.
|
| | | Mass *Excellent utilisateur*
Messages : 3351 Localisation : Dans une canonnière wookie. Projet Actuel : Monter des trucs et des machins
| Sujet: Re: La façon dont vous aimeriez coder un jeu en C++ Sam 15 Sep 2012 - 23:48 | |
| Moi j'aimerais bien un système de stockage/chargement de ressources performant et optimisé. J'avais pensé faire ceci (sous gm) : - Les ressources sont stockées en "bibliothèques" (qui sont des archives 7z) - Chaque bibliothèque possède un index (couple [identifiant,nom de fichier]) - Pour charger une ressource, load_ressource(bibliothèque,identifiant) Pour les ressources externes ce serait plus simple, et ça éviterait de faire 36 000 fichiers. Tout en ne se préoccupant pas de l'arborescence. |
| | | D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: La façon dont vous aimeriez coder un jeu en C++ Sam 15 Sep 2012 - 23:57 | |
| Boh, une arborescence de répertoires c'est pas si mal ? Avec la possibilité de l'inclure dans le .exe et de l'extraire avant exécution. _________________ Home is not a place, it's a feeling.
|
| | | arthuro Utilisateur confirmé: Rang ****
Messages : 1482 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: La façon dont vous aimeriez coder un jeu en C++ Dim 16 Sep 2012 - 1:02 | |
| - Code:
-
Arthuro, sauf erreur de ma part, collisionWith(Vaisseau& v) et collisionWith(Missile& m) ne surchargent PAS collisionWith(Object& obj) ! Du coup si tu envoies une Object& muette venue de la collection du ticker, il me semble que ça appelle systématiquement celle avec Object&. Par contre le template force la résolution dynamique de la référence.
Il y a bien surcharge mais pas masquage(ou plutôt choix dynamique de la bonne version de la fonction). C'est surtout un masquage que j'utilise. je fais un récap: On a: Objet::CollisionWith(Objet& a) // fonction vide Vaisseau::CollisionWith(Objet& a) masquage de la précédente // a.CollisionWith(*this) // on appelle: Objet::CollisionWith(Vaisseau) Missile:CollisionWith(Objet& a) masquage de la sur précédente // a.CollisionWith(*this) // on appelle Objet::CollisionWith(Missile) Objet::CollisionWith(Vaisseau& v) // v.CollisionWith(*this) // on appelle Objet::CollisionWith(Vaisseau) Objet::CollisionWith(Missille& m) // m.CollisionWith(*this) // on appelle Objet::CollisionWith(ùissile) On à l'impression qu'on tourne en rond. Sauf qu'on masque Objet::CollisionWith(Vaisseau&) par missille::CollisionWith(Vaisseau&) { .... } Bon c'est un peu particulier, je m'y perd aussi un peu. Ceci à un seul défault, c'est qu'il faut définir les fonctions vide : Objet::CollisionWith(Vaisseau&) et Objet::CollisionWith(Missile&) Sinon pour rester dans le sujet. Il faudrait quelque chose de portable pour lister les fichiers dans un dossier. Il y a Boost::FileSystem mais c'est tellement ****** à installer. Il y a les inclusion <dirent.h> <sys/types.h> <sys/stat.h> sous un système Unix. Cela marche sous windows avec un compilateur GNU qui implémente ces fonctions pour que ça marche Un truc qui gérerait cela serait pas mal (vu le temps que j'ai perdu à cela ^^) |
| | | D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: La façon dont vous aimeriez coder un jeu en C++ Dim 16 Sep 2012 - 11:08 | |
| Wow arthuro x)
Je suppose que ça marche, mais quel bricolage :p _________________ Home is not a place, it's a feeling.
|
| | | Morwenn Très bonne participation
Messages : 151 Projet Actuel : Icare
| Sujet: Re: La façon dont vous aimeriez coder un jeu en C++ Dim 16 Sep 2012 - 17:05 | |
| @arthuro : Boost::FileSystem devrait bientôt être admise dans le standard (enfin, d'ici 3 à 5 ans). Comme ça, tu n'auras plus à installer Boost pour l'avoir ; ce sera fourni avec n'importe quel compilateur décent. D'ailleurs, il me semble que la dernière version de Microsoft Visual C++11 ( référence) l'inclut via le header filesystem. Rien pour le moment du côté de GCC ou Clang ceci dit^^ _________________ Dur Dabla, pour qui voudrait écouter un brin de metal celtique. |
| | | daminetreg Administrateur
Messages : 16998 Localisation : Siege du CBNA! Projet Actuel : Site Web du CBNA, version beta :
| Sujet: Re: La façon dont vous aimeriez coder un jeu en C++ Lun 17 Sep 2012 - 13:14 | |
| Et puis boost_filesystem, c'est pas très compliqué à installer, tu télécharges boost, tu démarres bjam. Tu laisse builder le tout et ensuite il suffit de linker vers boost_filesystem. Je ne vois rien de compliquer en cela, par exemple dans CMake pour linker boost_filesystem : - Code:
-
find_package(Boost 1.51 REQUIRED) link_directories ( ${Boost_LIBRARY_DIRS} ) include_directories ( ${Boost_INCLUDE_DIRS} )
# Source files to compile with executable file(GLOB_RECURSE TONAPPLICATION_SOURCE_FILES *.cpp)
ADD_EXECUTABLE(tonApplication ${TONAPPLICATION_SOURCE_FILES}) TARGET_LINK_LIBRARIES(tonApplication boost_filesystem)
Et à partir de cela tu peux générer un Makefile, un projet Visual Studio, un projet eclipse... avec cmake -G "Unix Makefiles" / cmake -G "Visual Studio"... _________________ Mon CV : fr - de - en Tous Ensemble! Réalisons! |
| | | arthuro Utilisateur confirmé: Rang ****
Messages : 1482 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: La façon dont vous aimeriez coder un jeu en C++ Lun 17 Sep 2012 - 22:45 | |
| Mouais, j'ai déjà essayer, j'ai souffert pendant un après midi. Mais bon quand on l'à déjà fait une fois, après ça roule c'est sur. Je vous fait confiance. A l'époque j'avais pas réussit à utiliser bjam. (ou Cmake après), ils me renvoyaient des erreurs, j'ai pas du bien m'y prendre. |
| | | daminetreg Administrateur
Messages : 16998 Localisation : Siege du CBNA! Projet Actuel : Site Web du CBNA, version beta :
| Sujet: Re: La façon dont vous aimeriez coder un jeu en C++ Mar 18 Sep 2012 - 10:05 | |
| - arthuro a écrit:
- Mouais, j'ai déjà essayer, j'ai souffert pendant un après midi.
Mais bon quand on l'à déjà fait une fois, après ça roule c'est sur. Je vous fait confiance.
A l'époque j'avais pas réussit à utiliser bjam. (ou Cmake après), ils me renvoyaient des erreurs, j'ai pas du bien m'y prendre. Sinon si tu es sur linux tu peux simplement faire un apt-get install libboost-filesystem-dev, le seul truc gênant c'est qu'ils ne sont pas nécessairement autant à jour que boost.org, il sont pour le moment à la 1.48 alors que boost.org propose la 1.51. Et il y a eu du changement entre temps. _________________ Mon CV : fr - de - en Tous Ensemble! Réalisons! |
| | | arthuro Utilisateur confirmé: Rang ****
Messages : 1482 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: La façon dont vous aimeriez coder un jeu en C++ Mar 18 Sep 2012 - 16:38 | |
| Merci. C'est vrai qu'avec un paquet qui fait tout à ma place, j'ai plus raison de dire que c'est difficile. Quoique, j'utilise boost seulement pour obtenir quelque chose de portable, l'installer pour un environnement qui cross-compile de linux->windows, ça risque d'être plus compliqué. ( un petit tuto pour plus tard) |
| | | Contenu sponsorisé
| Sujet: Re: La façon dont vous aimeriez coder un jeu en C++ | |
| |
| | | | La façon dont vous aimeriez coder un jeu en C++ | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |