Bonjour à tous, je suis nouveau sur ce forumje programme en langage C depuis plusieurs années et je crée depuis plus d'un an un jeu en 3D grâce à la SDL et OpenGL, ce jeu est censé être un jeu de voiture de type course libre mais avec des modes comme chauffeur de bus ou ambulancier.
Je viens de passer de XP 32 bits à Windows 8 64 bits et après avoir compilé mon jeu sous Code::Blocks (J'utilisais Dev-C++ jusqu'à présent mais je n'arrive pas à compiler sous Windows 8), je l'execute et constate que celui-ci est très lent. Si je désactive l'affichage de la plupart du décor (Pour ne garder que le sol par exemple), le jeu ne rame plus et est même trop rapide, au fur et à mesure que je réactive l'affichage des éléments du décor, le jeu rame de plus en plus.
Pour info j'avais jusqu'à présent un PC fixe avec carte mère Asus, processeur Intel Pentium 4 2,8 GHz, 1Go de RAM et carte graphique NVidia GeForce ; je suis désormais sur un HP Pavilion G6 avec processeur AMD E2-1800 APU 1,7GHz, 4Go de RAM et carte graphique AMD Radeon HD 7340G, donc bien plus performant
Ce serait trop long de poster mon code mais en gros j'utilise une boucle principale qui gère les évènements SDL et appelle une fonction Dessiner(), cette fonction appelle glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT), glMatrixMode(GL_MODELVIEW) et glLoadIdentity(), place la caméra et dessine les éléments du décor grâce à des fonctions ayant chacune son rôle. Par exemple la fonction Route() va dessiner les routes en parcourant un tableau de structures de type défini contenant entre autres les coordonnées de la route, son orientation, ses dimensions, sa texture ... J'ai donc des while dans des while et c'est sans doute ce qui contribue à ralentir le jeu.
Merci de m'avoir lu et si quelqu'un a une idée pour palier à ce problème je suis preneur car j'aurais du mal à admettre que mon jeu est trop lourd pour un PC flambant neuf équipé d'un processeur double coeur et de 4 fois plus de RAM que son prédécesseur
Partager