Oui, toujours dans l'optique de ne pas être intrusif, l'objet lui-même ne véhicule pas d'information relative à l'introspection, tout lui est associé de manière externe.
Oui, toujours dans l'optique de ne pas être intrusif, l'objet lui-même ne véhicule pas d'information relative à l'introspection, tout lui est associé de manière externe.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
A part pour le binding de language de scripts, je vois aussi que ça pourrait grandement aider pour des outils d'edition de jeu (ou autre) par exemple. Ca semble du coup très facile d'exposer directement les classes représentant les entitées d'un jeu au code de l'outil d'edition et permettre au développeur de se concentrer sur cet outil.
Complètement, d'ailleurs dans le studio de jeux dans lequel je bossais avant, on avait un système similaire et il était impressionnant de voir à quel point ça décuplait les possibilités des game designers, et cela nous allégeait le travail.
Et cela concernait aussi le binding script, qui était très largement utilisé pour tout le code de gameplay.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Hello, CAMP m'intéresse beaucoup pour mon projet, mais je ne trouve plus de lien valide.
Le projet n'est plus libre ?![]()
Salut
CAMP est toujours libre et disponible, mais il y a eu quelques changements, je t'explique tout ça par MP![]()
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
"Never use brute force in fighting an exponential." (Andrei Alexandrescu)
Mes articles dont Conseils divers sur le C++
Une très bonne doc sur le C++ (en) Why linux is better (fr)
En fait ce qui concerne CAMP est en remaniement en ce moment, je posterai des explications quand tout aura été tiré au clair.
Pour le moment le site web n'a plus de page pour CAMP, mais je peux fournir les packages par e-mail, d'où le MP. Mais effectivement j'aurais peut-être dû dire tout ça tout à l'heure![]()
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Oui oui bien sûr, vous aurez des news dès demain, et un nouveau site web / espace développeur devrait être disponible d'ici quelques jours.
C'est quoi un SBD ? Tu voulais peut-être dire SGBD ?
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Oui, SGDB, sauf que le qualifier de "Général" est peut-être excessif.
Je pense d'ailleurs qu'aucun SGBD ne mérite ce qualificatif.
EDIT: bon, après vérification SGBD veut dire "système de gestion de base de données". Je pensais que c'était "système général de base de données".
Je vais dormir, c'est l'heure...
Comme promis voilà les news :
- Le code source de CAMP va très prochainement être hébergé publiquement sur www.github.com
- Un nouveau site dédié au projet fournira wiki, forum, task tracker, etc.
- La licence passera en LGPL
- Une version 0.7 sortira peu de temps après pour remettre tout au clair
- A partir de là je travaillerai activement sur la version 1.0 et sur le support / développement de la communauté
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Cool, CAMP risque de m'intéresser aussi à terme
A propos du fameux code déclaratif :
Je trouve que c'est bien car cela permet de choisir finement le niveau d'exposition de la classe aux méta-données.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 // Bind our Person class to CAMP camp::Class::declare<Person>("Person") .constructor1<std::string>() .property("name", &Person::name) .property("age", &Person::age, &Person::setAge) .function("speak", &Person::speak);
Par contre, ça serait bien si on avait aussi une macro pour le faire tout seul dans certain cas.
Du genre :
Ou quelque chose dans l'idée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 CAMP_TYPE(Person); CAMP_DECLARE_PUBLIC_METHODS(Person); CAMP_DECLARE_PRIVATE_FIELDS(Person);
Et comment cette macro connaîtrait-elle les fonctions et membres à déclarer ?
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
+1
Surtout qu'il y a des membres public ou privés sans getter que l'on se souhaite pas exposer...
Qui plus est, tu peux aussi documenter à la manière des docs_string de Boost.Python grâce au tag, genre :
Du coup, pas de miracle, il faut tout faire à la main !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 camp::Class::declare<CBlobMerging>("CBlobMerging") .tag("help", "test") .base<IVisionModule>() .constructor0() .property("orientation", &CBlobMerging::m_orientation).tag("property", "Orientation of the box") .property("distance", &CBlobMerging::m_distance).tag("property", "Distance between two boxes") .property("input", &CBlobMerging::m_input_name).tag("input", "List of Bounding Boxes") .property("output", &CBlobMerging::m_output_name).tag("output", "List of Bounding Boxes");![]()
Je suis d'accord, mais dans ce cas il suffit de ne pas utiliser la macro et de déclarer à la mano (je rejoins mon post précédent ou je dis que c'est bien pour gérer l'exposition finement).
Quant à comment une telle macro trouve les membres à déclarer, ça dépend de ta question :
- Si c'est quels membres choisir ? Ben par exemple, toutes les méthodes publiques (CAMP_DECLARE_PUBLIC_METHODS).
- Si c'est comment techniquement ? C'est le boulot de la libje dis pas que c'est facile.
Pour faire preuve de mauvaise foi, je dirais qu'on parle bien d'une macro, et donc qu'on est encore dans le précompilo, et pas dans C++. Mais vous avez raison, c'est sans doute en effet impossible sans génération de code.
On peut le faire avec de la génération, mais ça touche à la chaîne de compilation et on sort du cadre de camp.
Voilà l'adresse du nouveau dépôt sur github :
http://github.com/tegesoft/camp
Le code qui s'y trouve est déjà passé en LGPL, nous ferons aussi bientôt une nouvelle release toute propre.
Le site web avec wiki/forum/tracker sera mis en place un peu plus tard.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Partager