Salut. Je voudrais développer un PAC-MAN en C++ mais le plus portable
possible avec le moin de librarie possible. J'aimerais bien utiliser les
fonctions SYSTEM, mais ce n'est pas portable. Mon compilateur sous est
GCC 3.2 et sous Windows: Turbo C++ 2.01 de Borland. Merci d'avance !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
David
Salut. Je voudrais développer un PAC-MAN en C++ mais le plus portable possible avec le moin de librarie possible. J'aimerais bien utiliser les fonctions SYSTEM, mais ce n'est pas portable. Mon compilateur sous est GCC 3.2 et sous Windows: Turbo C++ 2.01 de Borland. Merci d'avance !
Bonjour, SDL ( http:://www.libsdl.org ) par exemple. Mais ton compilateur sous windows semble plutôt vieux.
Pourquoi ne récupères-tu pas un compilateur gratuit plus récent ? gcc 3.4, VC7, Borland 5.5, ...
Cordialement.
Salut. Je voudrais développer un PAC-MAN en C++ mais le plus portable
possible avec le moin de librarie possible. J'aimerais bien utiliser les
fonctions SYSTEM, mais ce n'est pas portable. Mon compilateur sous est
GCC 3.2 et sous Windows: Turbo C++ 2.01 de Borland. Merci d'avance !
Bonjour,
SDL ( http:://www.libsdl.org ) par exemple.
Mais ton compilateur sous windows semble plutôt vieux.
Pourquoi ne récupères-tu pas un compilateur gratuit plus récent ?
gcc 3.4, VC7, Borland 5.5, ...
Salut. Je voudrais développer un PAC-MAN en C++ mais le plus portable possible avec le moin de librarie possible. J'aimerais bien utiliser les fonctions SYSTEM, mais ce n'est pas portable. Mon compilateur sous est GCC 3.2 et sous Windows: Turbo C++ 2.01 de Borland. Merci d'avance !
Bonjour, SDL ( http:://www.libsdl.org ) par exemple. Mais ton compilateur sous windows semble plutôt vieux.
Pourquoi ne récupères-tu pas un compilateur gratuit plus récent ? gcc 3.4, VC7, Borland 5.5, ...
Cordialement.
Andre Heinen
On Thu, 30 Sep 2004 17:33:48 -0400, Penguin_X wrote:
Salut. Je voudrais développer un PAC-MAN en C++ mais le plus portable possible avec le moin de librarie possible. J'aimerais bien utiliser les fonctions SYSTEM, mais ce n'est pas portable. Mon compilateur sous est GCC 3.2 et sous Windows: Turbo C++ 2.01 de Borland. Merci d'avance !
Les bibliothèques Qt et wxWidgets sont portables et ne se limitent pas aux interfaces graphiques. Va voir http://www.wxwidgets.org/ http://www.trolltech.com/ Attention, Qt n'est gratuit que sous certaines conditions.
Tu seras peut-être également intéressé par Cygwin. Il s'agit d'une émulation pour Windows de l'API Linux. Cela devrait t'aider à écrire du code qui convienne à la fois à Windows, Linux et Unix. http://www.cygwin.com/
-- Andre Heinen My address, rot13-encoded: n qbg urvara ng rhebcrnayvax qbg pbz
On Thu, 30 Sep 2004 17:33:48 -0400, Penguin_X
<theshadowman21@hotmail.com> wrote:
Salut. Je voudrais développer un PAC-MAN en C++ mais le plus portable
possible avec le moin de librarie possible. J'aimerais bien utiliser les
fonctions SYSTEM, mais ce n'est pas portable. Mon compilateur sous est
GCC 3.2 et sous Windows: Turbo C++ 2.01 de Borland. Merci d'avance !
Les bibliothèques Qt et wxWidgets sont portables et ne se
limitent pas aux interfaces graphiques. Va voir
http://www.wxwidgets.org/
http://www.trolltech.com/
Attention, Qt n'est gratuit que sous certaines conditions.
Tu seras peut-être également intéressé par Cygwin. Il s'agit
d'une émulation pour Windows de l'API Linux. Cela devrait
t'aider à écrire du code qui convienne à la fois à Windows, Linux
et Unix.
http://www.cygwin.com/
--
Andre Heinen
My address, rot13-encoded: n qbg urvara ng rhebcrnayvax qbg pbz
On Thu, 30 Sep 2004 17:33:48 -0400, Penguin_X wrote:
Salut. Je voudrais développer un PAC-MAN en C++ mais le plus portable possible avec le moin de librarie possible. J'aimerais bien utiliser les fonctions SYSTEM, mais ce n'est pas portable. Mon compilateur sous est GCC 3.2 et sous Windows: Turbo C++ 2.01 de Borland. Merci d'avance !
Les bibliothèques Qt et wxWidgets sont portables et ne se limitent pas aux interfaces graphiques. Va voir http://www.wxwidgets.org/ http://www.trolltech.com/ Attention, Qt n'est gratuit que sous certaines conditions.
Tu seras peut-être également intéressé par Cygwin. Il s'agit d'une émulation pour Windows de l'API Linux. Cela devrait t'aider à écrire du code qui convienne à la fois à Windows, Linux et Unix. http://www.cygwin.com/
-- Andre Heinen My address, rot13-encoded: n qbg urvara ng rhebcrnayvax qbg pbz
Pierre Maurette
Penguin_X a écrit:
Salut. Je voudrais développer un PAC-MAN en C++ mais le plus portable possible avec le moin de librarie possible. J'aimerais bien utiliser les fonctions SYSTEM, mais ce n'est pas portable. Mon compilateur sous est GCC 3.2 et sous Windows: Turbo C++ 2.01 de Borland. Merci d'avance ! Si la portabilité envisagée est limitée à Windows et Linux, vous avez
avantage à utiliser gcc des deux cotés (TC 2.01 est vraiment trop ancien). Il existe des paquetage qui installent un EDI, le compilateur et wxWidget dans les deux OS. Par exemple http://www.parinya.ca/ http://wxdsgn.sourceforge.net/
Voyez également C++BuilderX (Borland).
Pour une portabilité plus étendue (PC de poche par exemple), pourquoi pas Java ? -- Pierre
Penguin_X <theshadowman21@hotmail.com> a écrit:
Salut. Je voudrais développer un PAC-MAN en C++ mais le plus portable
possible avec le moin de librarie possible. J'aimerais bien utiliser les
fonctions SYSTEM, mais ce n'est pas portable. Mon compilateur sous est
GCC 3.2 et sous Windows: Turbo C++ 2.01 de Borland. Merci d'avance !
Si la portabilité envisagée est limitée à Windows et Linux, vous avez
avantage à utiliser gcc des deux cotés (TC 2.01 est vraiment trop
ancien). Il existe des paquetage qui installent un EDI, le compilateur
et wxWidget dans les deux OS. Par exemple
http://www.parinya.ca/
http://wxdsgn.sourceforge.net/
Voyez également C++BuilderX (Borland).
Pour une portabilité plus étendue (PC de poche par exemple), pourquoi
pas Java ?
--
Pierre
Salut. Je voudrais développer un PAC-MAN en C++ mais le plus portable possible avec le moin de librarie possible. J'aimerais bien utiliser les fonctions SYSTEM, mais ce n'est pas portable. Mon compilateur sous est GCC 3.2 et sous Windows: Turbo C++ 2.01 de Borland. Merci d'avance ! Si la portabilité envisagée est limitée à Windows et Linux, vous avez
avantage à utiliser gcc des deux cotés (TC 2.01 est vraiment trop ancien). Il existe des paquetage qui installent un EDI, le compilateur et wxWidget dans les deux OS. Par exemple http://www.parinya.ca/ http://wxdsgn.sourceforge.net/
Voyez également C++BuilderX (Borland).
Pour une portabilité plus étendue (PC de poche par exemple), pourquoi pas Java ? -- Pierre
Andre Heinen
On Fri, 01 Oct 2004 00:08:43 +0200, David wrote:
Mon compilateur sous est GCC 3.2 et sous Windows: Turbo C++ 2.01 de Borland.
Mais ton compilateur sous windows semble plutôt vieux.
Oui, je voudrais insister là-dessus. Un compilateur récent, c'est vraiment important. Et ça aide à la portabilité. Tu dois upgrader. Note que si tu installes Cygwin, ce qui est très facile, tu auras d'office une version récente de gcc, que tu pourras utiliser sous Windows. Et en prime, tous les utilitaires Unix classiques.
-- Andre Heinen My address, rot13-encoded: n qbg urvara ng rhebcrnayvax qbg pbz
On Fri, 01 Oct 2004 00:08:43 +0200, David
<dfleury2@libertysurf.fr> wrote:
Mon compilateur sous est
GCC 3.2 et sous Windows: Turbo C++ 2.01 de Borland.
Mais ton compilateur sous windows semble plutôt vieux.
Oui, je voudrais insister là-dessus. Un compilateur récent,
c'est vraiment important. Et ça aide à la portabilité. Tu dois
upgrader. Note que si tu installes Cygwin, ce qui est très
facile, tu auras d'office une version récente de gcc, que tu
pourras utiliser sous Windows. Et en prime, tous les utilitaires
Unix classiques.
--
Andre Heinen
My address, rot13-encoded: n qbg urvara ng rhebcrnayvax qbg pbz
Mon compilateur sous est GCC 3.2 et sous Windows: Turbo C++ 2.01 de Borland.
Mais ton compilateur sous windows semble plutôt vieux.
Oui, je voudrais insister là-dessus. Un compilateur récent, c'est vraiment important. Et ça aide à la portabilité. Tu dois upgrader. Note que si tu installes Cygwin, ce qui est très facile, tu auras d'office une version récente de gcc, que tu pourras utiliser sous Windows. Et en prime, tous les utilitaires Unix classiques.
-- Andre Heinen My address, rot13-encoded: n qbg urvara ng rhebcrnayvax qbg pbz
Pierre Maurette
David a écrit:
Salut. Je voudrais développer un PAC-MAN en C++ mais le plus portable possible avec le moin de librarie possible. J'aimerais bien utiliser les fonctions SYSTEM, mais ce n'est pas portable. Mon compilateur sous est GCC 3.2 et sous Windows: Turbo C++ 2.01 de Borland. Merci d'avance !
Bonjour, SDL ( http:://www.libsdl.org ) par exemple. Mais ton compilateur sous windows semble plutôt vieux.
Pourquoi ne récupères-tu pas un compilateur gratuit plus récent ? gcc 3.4, VC7, Borland 5.5, ... Pour info, C++BuilderX Personnel contient (outre gcc 3.2) Borland 5.6
et est gratuit et à priori sans limitation de licence (applis distribuables). En revanche, éviter absolument la preview de 6.0 (C99). -- Pierre
David <dfleury2@libertysurf.fr> a écrit:
Salut. Je voudrais développer un PAC-MAN en C++ mais le plus portable
possible avec le moin de librarie possible. J'aimerais bien utiliser les
fonctions SYSTEM, mais ce n'est pas portable. Mon compilateur sous est
GCC 3.2 et sous Windows: Turbo C++ 2.01 de Borland. Merci d'avance !
Bonjour,
SDL ( http:://www.libsdl.org ) par exemple.
Mais ton compilateur sous windows semble plutôt vieux.
Pourquoi ne récupères-tu pas un compilateur gratuit plus récent ?
gcc 3.4, VC7, Borland 5.5, ...
Pour info, C++BuilderX Personnel contient (outre gcc 3.2) Borland 5.6
et est gratuit et à priori sans limitation de licence (applis
distribuables). En revanche, éviter absolument la preview de 6.0
(C99).
--
Pierre
Salut. Je voudrais développer un PAC-MAN en C++ mais le plus portable possible avec le moin de librarie possible. J'aimerais bien utiliser les fonctions SYSTEM, mais ce n'est pas portable. Mon compilateur sous est GCC 3.2 et sous Windows: Turbo C++ 2.01 de Borland. Merci d'avance !
Bonjour, SDL ( http:://www.libsdl.org ) par exemple. Mais ton compilateur sous windows semble plutôt vieux.
Pourquoi ne récupères-tu pas un compilateur gratuit plus récent ? gcc 3.4, VC7, Borland 5.5, ... Pour info, C++BuilderX Personnel contient (outre gcc 3.2) Borland 5.6
et est gratuit et à priori sans limitation de licence (applis distribuables). En revanche, éviter absolument la preview de 6.0 (C99). -- Pierre
Trognon Patrice
Penguin_X wrote:
Salut. Je voudrais développer un PAC-MAN en C++ mais le plus portable possible avec le moin de librarie possible. J'aimerais bien utiliser les fonctions SYSTEM, mais ce n'est pas portable. Mon compilateur sous est GCC 3.2 et sous Windows: Turbo C++ 2.01 de Borland. Merci d'avance !
Hi,
va voir sur mon site (http://www.javadevel.com) j'ai réalisé ce jeu entièrement en C++, un utilisant une librairie maison qui wrappe OpenGL. Le développement s'est fait sur windows , et j'ai fait le portage sur linux avec g++.
Le portage m'a demandé une seule journée de travail, parceque dès le début j'ai pensé mon code pour qu'il soit portable.
Bref, mon avis est le suivant :
Ton jeu va etre portable si : 1) ton code est portable. 2) tu t'appuie sur les librairies de plus bas niveau qui sont portables.
Exemple de problème que tu peux rencontrer pour le portage :
Q) Comment gérer la boucle d'evennement de ton jeu ? (c'est la boucle principale qui detecte les evt extérieurs souris, clavier, joystick, etc).
Pour etre clair, sous windows et sur mac tu peux la bypasser et faire ta propre boucle d'EVT, sur linux impossible de s'en passer, tu dois utiliser la boucle d'evt du systeme graphique. Donc si t'as par exemple une boucle d'EVT par type de panel du jeu, je t'explique pas le bordel a porter !!!
La solution ? simple : le polymorphisme. Tu créé une classes de base qui contient une méthode draw() méthode que tu surcharges dans chaque classe qui représente un panel du jeu, ainsi aucun soucis pour porter cela dans une boucle d'EVT sur linux.
(c'est seulement un exemple de ce que tu vas rencontrer).
Q) comment gérer les I/O Clavier Souris Joy
Q) Comment gérer le multimédia. Son Music Webcam
Tu vas trouver pleins de libs gérant tout cela, je te conseil fortement de valider leur portabilité AVANT d'attaquer le code de ton jeu, sinon tu risques de faire des choix qui te semblent portables et qui en fait ne le sont pas !
Surtout ne pas se fier a ce que disent les sites ou les docs sur la portabilité de telle ou telle librairie, a toi de faire ton sample code que tu vas tester sur linux sur windows sur mac et sur PocketPC.
Perso j'avais fait le choix de m'appuyer sur OpenGL et non sur une autre librairie, par exemple SDL dont on parle dans ton thread n'est qu'un wrapper d'opengl qui introduit plus de limites que de solutions. Par contre, tu vas avoir plus de code à écrire pour faire de l'opengl. Coté son et music j'ai utilisé une lib, qui est portable, mais qui a aussi ses problèmes, c'est payant donc je ne ferais pas de pub ici !
Je te conseil fortement aussi de commencer par faire une maquette que tu vas coder en meme temps sur tous les OS ciblés, ca va te permettre de tout valider.
Voila, et enfin, en effet, a toi de produire du code portable.
Crdlt,
Patrice.
Penguin_X wrote:
Salut. Je voudrais développer un PAC-MAN en C++ mais le plus portable
possible avec le moin de librarie possible. J'aimerais bien utiliser les
fonctions SYSTEM, mais ce n'est pas portable. Mon compilateur sous est
GCC 3.2 et sous Windows: Turbo C++ 2.01 de Borland. Merci d'avance !
Hi,
va voir sur mon site (http://www.javadevel.com) j'ai réalisé ce jeu
entièrement en C++, un utilisant une librairie maison qui wrappe
OpenGL.
Le développement s'est fait sur windows , et j'ai fait
le portage sur linux avec g++.
Le portage m'a demandé une seule journée de travail, parceque dès
le début j'ai pensé mon code pour qu'il soit portable.
Bref, mon avis est le suivant :
Ton jeu va etre portable si :
1) ton code est portable.
2) tu t'appuie sur les librairies de plus bas niveau
qui sont portables.
Exemple de problème que tu peux rencontrer pour le portage :
Q) Comment gérer la boucle d'evennement de ton jeu ?
(c'est la boucle principale qui detecte les evt extérieurs
souris, clavier, joystick, etc).
Pour etre clair, sous windows et sur mac tu peux la bypasser
et faire ta propre boucle d'EVT, sur linux impossible de
s'en passer, tu dois utiliser la boucle d'evt du systeme
graphique.
Donc si t'as par exemple une boucle d'EVT par type de panel
du jeu, je t'explique pas le bordel a porter !!!
La solution ? simple : le polymorphisme.
Tu créé une classes de base qui contient une méthode draw()
méthode que tu surcharges dans chaque classe qui représente
un panel du jeu, ainsi aucun soucis pour porter cela dans
une boucle d'EVT sur linux.
(c'est seulement un exemple de ce que tu vas rencontrer).
Q) comment gérer les I/O
Clavier
Souris
Joy
Q) Comment gérer le multimédia.
Son
Music
Webcam
Tu vas trouver pleins de libs gérant tout cela, je te conseil
fortement de valider leur portabilité AVANT d'attaquer le code
de ton jeu, sinon tu risques de faire des choix qui te semblent
portables et qui en fait ne le sont pas !
Surtout ne pas se fier a ce que disent les sites ou les docs sur
la portabilité de telle ou telle librairie, a toi de faire ton
sample code que tu vas tester sur linux sur windows sur mac
et sur PocketPC.
Perso j'avais fait le choix de m'appuyer sur OpenGL et non sur une
autre librairie, par exemple SDL dont on parle dans ton thread n'est
qu'un wrapper d'opengl qui introduit plus de limites que de solutions.
Par contre, tu vas avoir plus de code à écrire pour faire de l'opengl.
Coté son et music j'ai utilisé une lib, qui est portable, mais qui
a aussi ses problèmes, c'est payant donc je ne ferais pas de pub ici !
Je te conseil fortement aussi de commencer par faire une maquette que tu
vas coder en meme temps sur tous les OS ciblés, ca va te permettre
de tout valider.
Voila, et enfin, en effet, a toi de produire du code portable.
Salut. Je voudrais développer un PAC-MAN en C++ mais le plus portable possible avec le moin de librarie possible. J'aimerais bien utiliser les fonctions SYSTEM, mais ce n'est pas portable. Mon compilateur sous est GCC 3.2 et sous Windows: Turbo C++ 2.01 de Borland. Merci d'avance !
Hi,
va voir sur mon site (http://www.javadevel.com) j'ai réalisé ce jeu entièrement en C++, un utilisant une librairie maison qui wrappe OpenGL. Le développement s'est fait sur windows , et j'ai fait le portage sur linux avec g++.
Le portage m'a demandé une seule journée de travail, parceque dès le début j'ai pensé mon code pour qu'il soit portable.
Bref, mon avis est le suivant :
Ton jeu va etre portable si : 1) ton code est portable. 2) tu t'appuie sur les librairies de plus bas niveau qui sont portables.
Exemple de problème que tu peux rencontrer pour le portage :
Q) Comment gérer la boucle d'evennement de ton jeu ? (c'est la boucle principale qui detecte les evt extérieurs souris, clavier, joystick, etc).
Pour etre clair, sous windows et sur mac tu peux la bypasser et faire ta propre boucle d'EVT, sur linux impossible de s'en passer, tu dois utiliser la boucle d'evt du systeme graphique. Donc si t'as par exemple une boucle d'EVT par type de panel du jeu, je t'explique pas le bordel a porter !!!
La solution ? simple : le polymorphisme. Tu créé une classes de base qui contient une méthode draw() méthode que tu surcharges dans chaque classe qui représente un panel du jeu, ainsi aucun soucis pour porter cela dans une boucle d'EVT sur linux.
(c'est seulement un exemple de ce que tu vas rencontrer).
Q) comment gérer les I/O Clavier Souris Joy
Q) Comment gérer le multimédia. Son Music Webcam
Tu vas trouver pleins de libs gérant tout cela, je te conseil fortement de valider leur portabilité AVANT d'attaquer le code de ton jeu, sinon tu risques de faire des choix qui te semblent portables et qui en fait ne le sont pas !
Surtout ne pas se fier a ce que disent les sites ou les docs sur la portabilité de telle ou telle librairie, a toi de faire ton sample code que tu vas tester sur linux sur windows sur mac et sur PocketPC.
Perso j'avais fait le choix de m'appuyer sur OpenGL et non sur une autre librairie, par exemple SDL dont on parle dans ton thread n'est qu'un wrapper d'opengl qui introduit plus de limites que de solutions. Par contre, tu vas avoir plus de code à écrire pour faire de l'opengl. Coté son et music j'ai utilisé une lib, qui est portable, mais qui a aussi ses problèmes, c'est payant donc je ne ferais pas de pub ici !
Je te conseil fortement aussi de commencer par faire une maquette que tu vas coder en meme temps sur tous les OS ciblés, ca va te permettre de tout valider.
Voila, et enfin, en effet, a toi de produire du code portable.
Crdlt,
Patrice.
Penguin_X
Trognon Patrice wrote:
Penguin_X wrote:
Salut. Je voudrais développer un PAC-MAN en C++ mais le plus portable possible avec le moin de librarie possible. J'aimerais bien utiliser les fonctions SYSTEM, mais ce n'est pas portable. Mon compilateur sous est GCC 3.2 et sous Windows: Turbo C++ 2.01 de Borland. Merci d'avance !
Hi,
va voir sur mon site (http://www.javadevel.com) j'ai réalisé ce jeu entièrement en C++, un utilisant une librairie maison qui wrappe OpenGL. Le développement s'est fait sur windows , et j'ai fait le portage sur linux avec g++.
Le portage m'a demandé une seule journée de travail, parceque dès le début j'ai pensé mon code pour qu'il soit portable.
Bref, mon avis est le suivant :
Ton jeu va etre portable si : 1) ton code est portable. 2) tu t'appuie sur les librairies de plus bas niveau qui sont portables.
Exemple de problème que tu peux rencontrer pour le portage :
Q) Comment gérer la boucle d'evennement de ton jeu ? (c'est la boucle principale qui detecte les evt extérieurs souris, clavier, joystick, etc).
Pour etre clair, sous windows et sur mac tu peux la bypasser et faire ta propre boucle d'EVT, sur linux impossible de s'en passer, tu dois utiliser la boucle d'evt du systeme graphique. Donc si t'as par exemple une boucle d'EVT par type de panel du jeu, je t'explique pas le bordel a porter !!!
La solution ? simple : le polymorphisme. Tu créé une classes de base qui contient une méthode draw() méthode que tu surcharges dans chaque classe qui représente un panel du jeu, ainsi aucun soucis pour porter cela dans une boucle d'EVT sur linux.
(c'est seulement un exemple de ce que tu vas rencontrer).
Q) comment gérer les I/O Clavier Souris Joy
Q) Comment gérer le multimédia. Son Music Webcam
Tu vas trouver pleins de libs gérant tout cela, je te conseil fortement de valider leur portabilité AVANT d'attaquer le code de ton jeu, sinon tu risques de faire des choix qui te semblent portables et qui en fait ne le sont pas !
Surtout ne pas se fier a ce que disent les sites ou les docs sur la portabilité de telle ou telle librairie, a toi de faire ton sample code que tu vas tester sur linux sur windows sur mac et sur PocketPC.
Perso j'avais fait le choix de m'appuyer sur OpenGL et non sur une autre librairie, par exemple SDL dont on parle dans ton thread n'est qu'un wrapper d'opengl qui introduit plus de limites que de solutions. Par contre, tu vas avoir plus de code à écrire pour faire de l'opengl. Coté son et music j'ai utilisé une lib, qui est portable, mais qui a aussi ses problèmes, c'est payant donc je ne ferais pas de pub ici !
Je te conseil fortement aussi de commencer par faire une maquette que tu vas coder en meme temps sur tous les OS ciblés, ca va te permettre de tout valider.
Voila, et enfin, en effet, a toi de produire du code portable.
Crdlt,
Patrice.
Merci Beaucoup, mais j'ai presque résolut mon probleme: DJGPP. le "GCC"
de windows. Si j'utilise un vieux compilateur c'est parce que j'ai que 25 MO, dans mon répertoire personnel à l'école. Je peut travailler le source code chez nous en unix, mais pour l'école il me fallait un vieux compilateur qui entre dans 25 MegaOctets. Mais je ne sais pas comment installer DJGPP :S
Trognon Patrice wrote:
Penguin_X wrote:
Salut. Je voudrais développer un PAC-MAN en C++ mais le plus portable
possible avec le moin de librarie possible. J'aimerais bien utiliser les
fonctions SYSTEM, mais ce n'est pas portable. Mon compilateur sous est
GCC 3.2 et sous Windows: Turbo C++ 2.01 de Borland. Merci d'avance !
Hi,
va voir sur mon site (http://www.javadevel.com) j'ai réalisé ce jeu
entièrement en C++, un utilisant une librairie maison qui wrappe
OpenGL.
Le développement s'est fait sur windows , et j'ai fait
le portage sur linux avec g++.
Le portage m'a demandé une seule journée de travail, parceque dès
le début j'ai pensé mon code pour qu'il soit portable.
Bref, mon avis est le suivant :
Ton jeu va etre portable si :
1) ton code est portable.
2) tu t'appuie sur les librairies de plus bas niveau
qui sont portables.
Exemple de problème que tu peux rencontrer pour le portage :
Q) Comment gérer la boucle d'evennement de ton jeu ?
(c'est la boucle principale qui detecte les evt extérieurs
souris, clavier, joystick, etc).
Pour etre clair, sous windows et sur mac tu peux la bypasser
et faire ta propre boucle d'EVT, sur linux impossible de
s'en passer, tu dois utiliser la boucle d'evt du systeme
graphique.
Donc si t'as par exemple une boucle d'EVT par type de panel
du jeu, je t'explique pas le bordel a porter !!!
La solution ? simple : le polymorphisme.
Tu créé une classes de base qui contient une méthode draw()
méthode que tu surcharges dans chaque classe qui représente
un panel du jeu, ainsi aucun soucis pour porter cela dans
une boucle d'EVT sur linux.
(c'est seulement un exemple de ce que tu vas rencontrer).
Q) comment gérer les I/O
Clavier
Souris
Joy
Q) Comment gérer le multimédia.
Son
Music
Webcam
Tu vas trouver pleins de libs gérant tout cela, je te conseil
fortement de valider leur portabilité AVANT d'attaquer le code
de ton jeu, sinon tu risques de faire des choix qui te semblent
portables et qui en fait ne le sont pas !
Surtout ne pas se fier a ce que disent les sites ou les docs sur
la portabilité de telle ou telle librairie, a toi de faire ton
sample code que tu vas tester sur linux sur windows sur mac
et sur PocketPC.
Perso j'avais fait le choix de m'appuyer sur OpenGL et non sur une
autre librairie, par exemple SDL dont on parle dans ton thread n'est
qu'un wrapper d'opengl qui introduit plus de limites que de solutions.
Par contre, tu vas avoir plus de code à écrire pour faire de l'opengl.
Coté son et music j'ai utilisé une lib, qui est portable, mais qui
a aussi ses problèmes, c'est payant donc je ne ferais pas de pub ici !
Je te conseil fortement aussi de commencer par faire une maquette que tu
vas coder en meme temps sur tous les OS ciblés, ca va te permettre
de tout valider.
Voila, et enfin, en effet, a toi de produire du code portable.
Crdlt,
Patrice.
Merci Beaucoup, mais j'ai presque résolut mon probleme: DJGPP. le "GCC"
de windows. Si j'utilise un vieux compilateur c'est parce que j'ai que
25 MO, dans mon répertoire personnel à l'école. Je peut travailler le
source code chez nous en unix, mais pour l'école il me fallait un vieux
compilateur qui entre dans 25 MegaOctets. Mais je ne sais pas comment
installer DJGPP :S
Salut. Je voudrais développer un PAC-MAN en C++ mais le plus portable possible avec le moin de librarie possible. J'aimerais bien utiliser les fonctions SYSTEM, mais ce n'est pas portable. Mon compilateur sous est GCC 3.2 et sous Windows: Turbo C++ 2.01 de Borland. Merci d'avance !
Hi,
va voir sur mon site (http://www.javadevel.com) j'ai réalisé ce jeu entièrement en C++, un utilisant une librairie maison qui wrappe OpenGL. Le développement s'est fait sur windows , et j'ai fait le portage sur linux avec g++.
Le portage m'a demandé une seule journée de travail, parceque dès le début j'ai pensé mon code pour qu'il soit portable.
Bref, mon avis est le suivant :
Ton jeu va etre portable si : 1) ton code est portable. 2) tu t'appuie sur les librairies de plus bas niveau qui sont portables.
Exemple de problème que tu peux rencontrer pour le portage :
Q) Comment gérer la boucle d'evennement de ton jeu ? (c'est la boucle principale qui detecte les evt extérieurs souris, clavier, joystick, etc).
Pour etre clair, sous windows et sur mac tu peux la bypasser et faire ta propre boucle d'EVT, sur linux impossible de s'en passer, tu dois utiliser la boucle d'evt du systeme graphique. Donc si t'as par exemple une boucle d'EVT par type de panel du jeu, je t'explique pas le bordel a porter !!!
La solution ? simple : le polymorphisme. Tu créé une classes de base qui contient une méthode draw() méthode que tu surcharges dans chaque classe qui représente un panel du jeu, ainsi aucun soucis pour porter cela dans une boucle d'EVT sur linux.
(c'est seulement un exemple de ce que tu vas rencontrer).
Q) comment gérer les I/O Clavier Souris Joy
Q) Comment gérer le multimédia. Son Music Webcam
Tu vas trouver pleins de libs gérant tout cela, je te conseil fortement de valider leur portabilité AVANT d'attaquer le code de ton jeu, sinon tu risques de faire des choix qui te semblent portables et qui en fait ne le sont pas !
Surtout ne pas se fier a ce que disent les sites ou les docs sur la portabilité de telle ou telle librairie, a toi de faire ton sample code que tu vas tester sur linux sur windows sur mac et sur PocketPC.
Perso j'avais fait le choix de m'appuyer sur OpenGL et non sur une autre librairie, par exemple SDL dont on parle dans ton thread n'est qu'un wrapper d'opengl qui introduit plus de limites que de solutions. Par contre, tu vas avoir plus de code à écrire pour faire de l'opengl. Coté son et music j'ai utilisé une lib, qui est portable, mais qui a aussi ses problèmes, c'est payant donc je ne ferais pas de pub ici !
Je te conseil fortement aussi de commencer par faire une maquette que tu vas coder en meme temps sur tous les OS ciblés, ca va te permettre de tout valider.
Voila, et enfin, en effet, a toi de produire du code portable.
Crdlt,
Patrice.
Merci Beaucoup, mais j'ai presque résolut mon probleme: DJGPP. le "GCC"
de windows. Si j'utilise un vieux compilateur c'est parce que j'ai que 25 MO, dans mon répertoire personnel à l'école. Je peut travailler le source code chez nous en unix, mais pour l'école il me fallait un vieux compilateur qui entre dans 25 MegaOctets. Mais je ne sais pas comment installer DJGPP :S