Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [SFML2] Besoin d'un petit conseil thread/list.erase  (Lu 7755 fois)

0 Membres et 1 Invité sur ce sujet

Samuel Proulx

  • Full Member
  • ***
  • Messages: 118
    • Voir le profil
Re : [SFML2] Besoin d'un petit conseil thread/list.erase
« Réponse #15 le: Mai 17, 2012, 03:11:48 pm »
Petite question : j'ai finalement trouvé le foutu fichier des atomiques dans mon compilateur ;D (c'est dans les lib c++ bits/atomic_0.h ou atomic_2.h)

Je me pose donc la question : quelle est la différence ? dans les fichiers, c'est écrit que le _0.h est «never lock-free» et l'autre, atomic_2.h, et bien le contraire : «always lock-free».

Selon ce que tu m'as dit, s'ils sont lock-free, ça veut dire que ça ne bloquera pas les threads... Je devrais donc utiliser le _0 ou le _2 ? Puisque dans un cas, ça le bloque et c'est ce que je veux et dans l'autre, ça ne le bloquera pas et je devrai donc faire du spin-lock.. ?

Que me conseilles-tu ?

Merci et bonne journée :)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML2] Besoin d'un petit conseil thread/list.erase
« Réponse #16 le: Mai 18, 2012, 08:05:54 pm »
Moi je te conseillerait plutôt d'utiliser ton compilo en mode C++11 et les en-têtes standards qui vont avec. Ceux que tu as trouvés ne le sont pas.
Laurent Gomila - SFML developer

Samuel Proulx

  • Full Member
  • ***
  • Messages: 118
    • Voir le profil
Re : [SFML2] Besoin d'un petit conseil thread/list.erase
« Réponse #17 le: Mai 20, 2012, 03:47:06 am »
Petit problème : c'est GCC 4.4.1 qui est avec code::blocks semblerait-il puisque le nom du dossier de GCC dans mingw c'est 4.4.1....

Ça doit être possible de changer la version de GCC je suppose... Je cherche comment faire parce que j'ai téléchargé GCC 4.7.0, mais j'ai aucune idée comment le foutre dans mon compilo haha  ;D

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML2] Besoin d'un petit conseil thread/list.erase
« Réponse #18 le: Mai 20, 2012, 09:33:19 am »
C'est très simple : dans les options de compilateur, tu dois avoir un truc genre "toolchain", il suffit de changer les chemins pour mettre ceux de ton dossier 4.7.0.
Laurent Gomila - SFML developer

Samuel Proulx

  • Full Member
  • ***
  • Messages: 118
    • Voir le profil
Re : [SFML2] Besoin d'un petit conseil thread/list.erase
« Réponse #19 le: Mai 21, 2012, 02:04:16 am »
Merci j'ai trouvé c'est dans Settings/Compiler and Degugger/Toolchain executables pour ceux que ça intéresse.

Petite question comme ça : si je ne définie pas de selector et que je me contente de faire du socket.isReady sur la liste des sockets (puisqu'il faut les stocker à l'extérieur du selector maintenant), ça règle le problème qui vient de windows là ? (les 64 sockets dans le selector max)

Merci et bonne journée :)

Et je suis enfin revenue des compétitions haha :)

Sur tous nos ensembles (jazz 1, 2, 3, 4, 5, ensemble 1, 2, 3-4-5, 4-5, 2-3) seul le jazz 1 n'a pas eu une mention or :) (les chiffres représentent en fait l'année scolaire (secondaire au québec soit de 12 à 17 ans))

Si tu veux écouter les pièces qu'on a joué, j'te recommande notre meilleure :

EDIT

Petit problème : la méthode isReady vient du selector ! haha  ;D :P

As-tu une solution simple pour se problème sans pour autant passer toutes les sockets en mode non-bloquante ? ???
« Modifié: Mai 21, 2012, 03:42:37 am par neo007 »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML2] Besoin d'un petit conseil thread/list.erase
« Réponse #20 le: Mai 21, 2012, 07:59:55 am »
Je n'ai pas vraiment de solution non, les autres façons de faire impliquent soit des sockets non-bloquantes, soit des threads. Mais tu comptes vraiment avoir plus de 64 sockets ?
Laurent Gomila - SFML developer

Samuel Proulx

  • Full Member
  • ***
  • Messages: 118
    • Voir le profil
Re : [SFML2] Besoin d'un petit conseil thread/list.erase
« Réponse #21 le: Mai 21, 2012, 03:11:20 pm »
Ben il y a quelques jours, je t'ai demandé si le module pouvait supporter 1000 clients/sockets/connexions... Alors oui j'ai l'intention d'utiliser plusieurs centaines de sockets, mais pas plus de 1000 ;)

Il faudrait que la méthode isReady existe pour les sockets, mais je sais pas si c'est possible (j'ai jamais regarder le code interne d'un selector).

Je vais alors me contenter de mettre les sockets non bloquantes, ça sera plus simple ainsi :)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML2] Besoin d'un petit conseil thread/list.erase
« Réponse #22 le: Mai 21, 2012, 03:25:32 pm »
Citer
Alors oui j'ai l'intention d'utiliser plusieurs centaines de sockets
Juste par curiosité, tu codes quoi en fait ?

Citer
Il faudrait que la méthode isReady existe pour les sockets, mais je sais pas si c'est possible (j'ai jamais regarder le code interne d'un selector).
Non ce n'est pas possible. Sinon c'est carrément toute la classe sf::SocketSelector qui n'aurait aucun intérêt.

Citer
Je vais alors me contenter de mettre les sockets non bloquantes, ça sera plus simple ainsi
Je pense aussi :)
Laurent Gomila - SFML developer

Samuel Proulx

  • Full Member
  • ***
  • Messages: 118
    • Voir le profil
Re : [SFML2] Besoin d'un petit conseil thread/list.erase
« Réponse #23 le: Mai 21, 2012, 04:31:52 pm »
Si tu me juges pas, alors tu peux lire la suite... ;D

Je suis en train de faire un MMOG similaire à DarkOrbit


La différence entre ce projet et un MMORPG, tu le comprends bien, est le fait que l'équipement est très limité (par exemple, dans FLYFF, il y a plus de 4 000 items existants tandis que DarkOrbit en a à peine quoi... 150 ? En plus, lorsque ce jeu est sortie au tout début, on pouvait compter exactement 37 items en incluant les vaisseaux.

Tu peux donc comprendre qu'au niveau graphique, créer 37 items voire moins en 2D, c'est pas la fin du monde selon moi :)

En ce qui concerne le réseau/serveur, c'est sûrement la partie la plus dur à faire (le client c'est long, mais pas si compliqué, on s'entend). Et dans un sens, je n'ai pas vraiment le choix d'utiliser la SFML sur le serveur puisque c'est sûr que je vais l'utiliser pour le client là... (je vais pas commencer à formater les Packet que je veux envoyer, tu l'as déjà fait pour moi ! ;D ;)).

Si ça t'intéresse, voici une petite image qui explique rapidement comment je compte m'y prendre :


Bien sûr, chaque ZONE et serveur de connexion a un accès local à chacun d'entre eux : une ZONE doit pouvoir communiquer avec n'importe quelle ZONE pour transférer le client et le serveur de connexion a un accès à toutes les ZONE pour la redirection du client.

Donc s'il y a des trucs importants que je dois savoir sur le module réseau de la SFML.... ;)

Il n'y a aucun jeu que je n'aime plus que celui-ci. Malheureusement, BigPoint ont vu qu'ils avaient le monopole et ont commencé à sortir plein de trucs super cher et que seuls ceux qui payent beaucoup (100$+ par semaine) peuvent avoir.

Depuis, j'ai arrêté de jouer et c'est ça qui me pousse à tenter mon coup en créant ma propre version de ce jeu. J'aimerais que les anciens joueurs de ce jeu puissent rejouer gratuitement. C'est ce que je veux faire.

Il faudra payer un abonnement super cher par année pour pouvoir jouer  :P : 5$ ;D

Bien sûr, le prix reste à vérifier... Je pourrais tout aussi bien offrir 1 mois pour 5$, 6 mois pour 10$ et 1 an pour 15$. Peu importe, c'est une somme maudite à côté de ce qu'il faut investir dans DO pour être fort.
« Modifié: Mai 21, 2012, 04:49:08 pm par neo007 »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML2] Besoin d'un petit conseil thread/list.erase
« Réponse #24 le: Mai 21, 2012, 04:55:02 pm »
Merci pour les détails. C'est assez ambitieux, surtout comme tu l'as remarqué pour la partie réseau. Donc bon courage :)

En ce qui concerne le module réseau de SFML, il est assez rudimentaire (et bas niveau) comparé à ce qu'on trouve sur le marché. Je souhaite qu'il te soit suffisant, mais si tu vois que ce n'est pas le cas alors ne t'acharne pas, et utilise une vraie bibliothèque (voire un moteur) dédiée au réseau.
Laurent Gomila - SFML developer