|
Page : 1 2 Page Précédente | |
Auteur | Sujet : [C] [Résolu] Tetris -> SDL ? Réseaux ? |
Publicité | Posté le 17-04-2013 à 11:38:00 |
theshockwave I work at a firm named Koslow | Déjà, tu peux utiliser l'extention dédiée au réseau de SDL, ca te facilitera un peu la vie.
--------------- last.fm |
Profil supprimé | Posté le 17-04-2013 à 12:53:57 Merci de ta réponse rapide.
|
theshockwave I work at a firm named Koslow | Ah non, mais se servir du côté déterministe, synchroniser les frames et ne transmettre que les actions de l'utilisateur, c'est pas de la ruse, c'est simplement ce qui se fait dans des jeux tout à fait respectable (c'est une pratique très courante dans jeux de stratégie, mais c'est aussi sur ce genre de principe que repose la transmission des niveaux dans un diablo ou ce genre de chose)
--------------- last.fm |
Terminapor I'll see you rise. | Envoyer toute l'image c'est hyper dégueu comme technique, mettons tu as simplement ta fenêtre en 800x600/RGB8, bah ça te fait 1.7Mo à envoyer à chaque maj du screen Bref, j'pense que l'idéal c'est effectivement une synchronisation des tableaux en faisant la maj des parties modifiées (pas beaucoup d'octets à envoyer), après tout dépend de comment ton jeu est implémenté. edit : Et +1 pour le thread, c'est ce que j'avais fait pour un jeu sur internet, un thread récupérait en boucle tout les paquets, les empilaient dans une liste et ensuite à chaque début de maj de ton jeu, tu traites les paquets. Même chose dans l'autre sens, lorsque tu veux envoyer tu remplis une liste et tu envois à la fin des majs. Message édité par Terminapor le 19-04-2013 à 11:45:14 --------------- Perhaps you don't deserve to breathe |
Profil supprimé | Posté le 20-04-2013 à 04:57:36 Salut salut, je viens donner des nouvelles !
Message édité par Profil supprimé le 22-04-2013 à 19:22:28 |
theshockwave I work at a firm named Koslow | Je vois difficilement le rapport entre double buffering et volume de données à envoyer sur le réseau ...
--------------- last.fm |
Profil supprimé | Posté le 23-04-2013 à 13:44:04 Haha, en 3 jours seulement ?
|
theshockwave I work at a firm named Koslow | Ton problème de perfs vient très probablement du remplissage de tes surfaces SDL qui doit être fait en soft. Si tu veux te soucier de performance, sors un profiler. Ca ne sert pas à grand chose d'optimiser sans, vu que tu vas perdre ton temps à améliorer des trucs négligeables. --------------- last.fm |
Profil supprimé | Posté le 23-04-2013 à 16:02:27 |
Publicité | Posté le 23-04-2013 à 16:02:27 |
theshockwave I work at a firm named Koslow | Peut-être que tu pourrais simplement stocker tes carrés pré-remplis à coup de fill rect. Si ton buffer de rendu est en mémoire vidéo et tes carrés aussi, le blit de tes carrés pour composer ton image sera peut-être plus rapide. Edit : d'ailleurs, je ne suis pas sur de bien voir. display_actual, ca utilise SDL_FillRect pour quel motif ? Ton do_square est bien appelé pour chaque carré pour raffraichir l'intégralité de ton écran, j'ai bien compris ? Message cité 1 fois Message édité par theshockwave le 23-04-2013 à 18:02:22 --------------- last.fm |
Profil supprimé | Posté le 23-04-2013 à 18:12:11
|
theshockwave I work at a firm named Koslow | Ah vu ton code, oui, tu as tout intérêt à te faire un ensemble de carrés de chaque couleur stockés dans une surface dédiée (ou chacun dans sa propre surface, mais ca parait overkill) et à blitter depuis cette (ces) surface(s) plutôt que de redessiner les carrés à chaque fois. C'est probablement ce que tu veux dire quand tu parles de sprite.
--------------- last.fm |
Profil supprimé | Posté le 23-04-2013 à 19:32:02 Non, quand je parle de sprite, je veux vraiment dire une image que je fais avec photoshop, par exemple.
Message cité 1 fois Message édité par Profil supprimé le 23-04-2013 à 19:33:28 |
theshockwave I work at a firm named Koslow |
--------------- last.fm |
Profil supprimé | Posté le 24-04-2013 à 12:33:54
Message édité par Profil supprimé le 24-04-2013 à 12:49:35 |
theshockwave I work at a firm named Koslow | essaye avec le flag SDL_HWSURFACE quand tu crées tes surfaces. Pour celle qui contient tes carrés comme pour celle que tu remplis à coups de blit --------------- last.fm |
Profil supprimé | Posté le 24-04-2013 à 14:58:26 Fait, et au lieu d'utiliser 69,39 il utilise 73 dans la colonne "Self". C'est identiquement pareil.... |
theshockwave I work at a firm named Koslow | hmmm, c'est surprenant. Tu initialises ton mode vidéo avec les flags SDL_HWSURFACE|SDL_DOUBLEBUF ? --------------- last.fm |
Profil supprimé | Posté le 24-04-2013 à 18:14:06 J'initialise avec : SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_ANYFORMAT |
theshockwave I work at a firm named Koslow | bon, ben ca devrait rouler, alors ... Au pire, tu peux aussi vérifier que les formats collent bien, mais je doute que le problème soit de là. Edit : d'après le graph qu'on trouve là il semblerait que ce soit pourtant ce qui doit aller le mieux quand ta surface de rendu est intialisée avec du SDL_HARDWARE Message édité par theshockwave le 24-04-2013 à 19:19:14 --------------- last.fm |
Terminapor I'll see you rise. | Corrigez-moi si je me trompe, mais il me semble que la SDL ne se sert pas du tout de la CG --------------- Perhaps you don't deserve to breathe |
theshockwave I work at a firm named Koslow |
--------------- last.fm |
Profil supprimé | Posté le 25-04-2013 à 00:01:51
Message édité par Profil supprimé le 25-04-2013 à 00:57:24 |
theshockwave I work at a firm named Koslow | l'autre solution, c'est de pousser un peu plus l'effort et de faire un peu d'OpenGl (SDL te permet d'initialiser ton mode vidéo pour) pour rendre tes carrés sous forme de quelques primitives dans l'espace de ton écran.
--------------- last.fm |
Profil supprimé | Posté le 25-04-2013 à 13:04:24 J'en avais presque oublié la taille de l'écran de jeu. Effectivement, ça se trouve c'est plutot performant pour jouer sur sur 1900 * 1200.
|
theshockwave I work at a firm named Koslow |
--------------- last.fm |
Profil supprimé | Posté le 25-04-2013 à 13:56:33 Mais ça veut pas dire que je ferai des BlitSurface moins souvent! Donc à voir si ça va améliorer la consomation? |
theshockwave I work at a firm named Koslow |
--------------- last.fm |
Profil supprimé | Posté le 25-04-2013 à 18:32:10
|
theshockwave I work at a firm named Koslow | ton "71 à 45", c'est en quelle unité ?
--------------- last.fm |
Profil supprimé | Posté le 25-04-2013 à 19:17:26 71 c'est le nombre qu'il y avait dans "Self" je pense que c'est le pourcentage à la seconde d'énergie du processeur que ça bouffe.
|
theshockwave I work at a firm named Koslow | Ok, alors visiblement, ton 71 ou 45, c'est un pourcentage du temps de l'appli. En ajoutant un usleep quelque part, tu minimises la proportion de temps passé dans le FillRect, mais tu n'accélères en rien le traitement qu'elle fait. C'est donc une fausse optim. --------------- last.fm |
Profil supprimé | Posté le 25-04-2013 à 19:58:50 C'est pas une fausse optimisation.
|
theshockwave I work at a firm named Koslow |
--------------- last.fm |
Terminapor I'll see you rise. |
--------------- Perhaps you don't deserve to breathe |
Profil supprimé | Posté le 25-04-2013 à 21:48:31
Message cité 1 fois Message édité par Profil supprimé le 25-04-2013 à 21:52:37 |
Terminapor I'll see you rise. | Si tu comptes utiliser la SFML (C++ only par contre), le module réseau est vraiment cool. Après, pour Linux en C je sais pas. --------------- Perhaps you don't deserve to breathe |
Profil supprimé | Posté le 26-04-2013 à 08:35:39
|
theshockwave I work at a firm named Koslow |
--------------- last.fm |
Publicité | Posté le |
Page : 1 2 Page Précédente |
Sujets relatifs | |
---|---|
Implimenter Un Menu En C Avec Allegro | mysql C++ code blocks |
[C] Pointer de pointer de pointer | [C#] Utilisation de Google Calendar |
Créer un dossier avec la date sous forme jj-mm-aaaa avec C# | [C] A l'aide je ne comprends rien a ce programme |
[C] Remplacer un char dans une chaine de caractère | langage C - PB unsigned char |
langage C | |
Plus de sujets relatifs à : [C] [Résolu] Tetris -> SDL ? Réseaux ? |