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

Développement 2D, 3D et Jeux Discussion :

Quelle API pour le clavier et / ou les threads?


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    940
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 940
    Points : 1 817
    Points
    1 817
    Par défaut Quelle API pour le clavier et / ou les threads?
    Bonjour à tous,

    J'ai trouvé beaucoup de discussions comparant les mérites des librairies / moteurs 3d, physique, réseau, etc... mais aucune sur les entrées clavier / souris / manette, ou les threads.

    Je conçois que ces apects peuvent paraître triviaux. Pourtant, une mauvaise gestion des entrées ou des threads peut donner des applications peu réactives, c'est mauvais pour un jeu. D'autres critères sont à envisager : portabilité et commodité d'emploi par exemple. Certains sont liés à d'autres outils; par exemple Glut est lié à OpenGL, et si je veux utiliser Ogre3D?

    Quels outils recommandez vous donc?

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Tu as quels exigences par rapport aux threads et aux entrées / sorties ? Tu utilises quelles autres bibliothèques ? C'est pour quel genre de projet ?

  3. #3
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Citation Envoyé par BugFactory
    mais aucune sur les entrées clavier / souris / manette, ou les threads.
    Direct Input ça sert à quoi et c'est fait pour quoi ?
    Pour les threads sous Windows il faut voir les API win32 et le MSDN...
    par contre ça ne sera pas portable

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 271
    Points : 329
    Points
    329
    Par défaut
    Tu peux utiliser OIS :
    http://www.ogre3d.org/wiki/index.php/Using_OIS

    C'est intégré à Ogre depuis la nouvelle version (1.4)

    (Je n'ai pas eu encore le temps de tester)

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    940
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 940
    Points : 1 817
    Points
    1 817
    Par défaut
    Je me suis mal exprimé. Je ne cherche pas une solution pour un projet précis, mais des renseignements génériques sur les API existentes, les forces et faiblesses de chacune. C'est un débat ouvert.

    On trouve ce type de renseignements pour la 3D, la physique, etc... sur Developpez mais pas pour les entrées.

    Par exemple, Direct Input est efficace mais lié à Windows.

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Que ce soit au niveau des entrées ou des threads, en programmation de jeux on a rarement besoin de fonctionnalités avancées. Au pire on peut trouver que certaines interfaces sont mal pensées, mais après du moment qu'on peut d'un côté créer des threads / mutex, de l'autre récupérer les états clavier / souris, c'est dans 95% des cas suffisant.

    Ceux qui ont besoin de trucs vraiment poussés s'orienteront généralement vers des bibliothèques moins généralistes et plus précises (boost, ACE, pour les threads -- voir forum C++).

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    940
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 940
    Points : 1 817
    Points
    1 817
    Par défaut
    Merci pour ces informations. OIS et Boost ont l'air particulièrement intéressant, bien le port de OIS sur MAC soit encore en chantier, ACE un peu moins en raison de son copyright. Je m'étonne en revanche que le sujet n'intéresse pas plus de monde.

  8. #8
    Membre actif Avatar de Sixissor
    Étudiant
    Inscrit en
    Février 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 206
    Points : 242
    Points
    242
    Par défaut
    Perso je dirai Boost (C++).
    Très efficace, biblio presque indispensable pour tout prog C++ évolué.

    En plus elle touche à tout... Que demande le peuple ?
    • Awesome dude ! R0FLC0PT3R !!!!11!ONE!!!
    • There's no place like 127.0.0.1

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    940
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 940
    Points : 1 817
    Points
    1 817
    Par défaut
    Plus je lis les documentations de boost et plus je m'étonne de ne pas en avoir entendu parler avant.

  10. #10
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Plus je lis les documentations de boost et plus je m'étonne de ne pas en avoir entendu parler avant
    C'est que tu n'es pas assez venu traîner sur le forum C++

    Boost c'est tellement bien que la plupart de ses bibliothèques seront intégrées au prochain standard du C++.

  11. #11
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    940
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 940
    Points : 1 817
    Points
    1 817
    Par défaut
    C'est une bonne nouvelle! Et oui, je ne viens pas souvent sur le forum C++ car j'utilise Java au boulot. J'ai commencé un casse brique en C++ rien que parce qu'à force j'oubliais le C++. (Je viens de lire le tutoriel sur la métaprogrammation. Ouille ma tête!)

    Toujours est-il que l'utilisation de Java en entreprise m'a appris un chose. 50% de la maîtrise d'un langage n'est pas la connaissance de sa syntaxe, mais la connaissance des APIs / librairies disponibles. Par exemple, un débutant qui utilise boost uBLAS aura probablement des matrices plus rapides (et en travaillant moins) qu'un développeur plus expérimenté qui utiliserait sa propre implémentation.

    Or si Developpez a plein de tutoriaux sur la 3D, on a un peu de mal à trouver des infos sur les choses triviales. Je déteste les jeux qui mettent deux secondes à réagir à une pression sur le clavier alors que les FPS sont à 40...

    D'où ce thread au sujet des APIs de thread (boost a l'air très bien) et d'entrée.

    Mes impressions jusqu'ici : OIS a l'air bien, mais est en développement sur MAC. SDL inclut des tas d'éléments qu'on ne veut pas forcément tous utiliser. WinApi, Direct Input : Windows seulement. WxWidgets est orienté bureautique : j'ignore si la vitesse est au rendez-vous, mais même si c'est le cas ce ne sera pas forcément une priorité dans les versions ultérieures. GLUT est entièrement intégré à Open GL. Aucune ne permet à ma connaissance à la fois un grande vitesse d'exécution et la prise en charge d'UTF8. En revanche, toutes sont gratuites y compris dans le cadre d'une utilisation commerciale.

    J'aimerai beacoup l'avis de gens qui les ont utilisées. Je ne pense pas qu'un casse-brique soit un excellent benchmark...

Discussions similaires

  1. quelle api pour analyser les logs
    Par aljeje dans le forum Logging
    Réponses: 5
    Dernier message: 20/09/2007, 11h48
  2. [Runtime]Quelle API pour ne pas impacter le client?
    Par Jean_Benoit dans le forum C++Builder
    Réponses: 1
    Dernier message: 28/11/2006, 10h38
  3. Quelle API pour la 3D?
    Par babarpapa dans le forum 3D
    Réponses: 3
    Dernier message: 05/10/2006, 09h33
  4. Quelle API pour detecter un Exe qui s'execute.
    Par caviar dans le forum MFC
    Réponses: 3
    Dernier message: 20/04/2006, 13h26
  5. [J2EE] quelle API pour Excel choisir ?
    Par vallica dans le forum Documents
    Réponses: 4
    Dernier message: 19/04/2006, 14h24

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