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

Smalltalk Discussion :

Smalltalk : un choix adapté pour le jeu en 2D ? [Débat]


Sujet :

Smalltalk

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Smalltalk : un choix adapté pour le jeu en 2D ?
    Bonjour à tous!

    J'ai 18 ans et suis actuellement nouveau dans le monde du développement informatique. Un monde dans lequel je suis rentré en passant par la porte de l'algorithmique, dont j'ai appris les bases à l'aide du livre S'Initier à la Programmation (je ne sais plus l'auteur).
    Après cela j'ai décidé de mettre en pratique mes connaissances sur un vrai langage de programmation et, ayant entendu beaucoup de choses bénéfiques sur Smalltalk, j'ai donc décidé de m'y essayer (mon anglais me permet d'assumer le fait qu'il n'y ai que peu de documentation sur le sujet).
    Logiquement, j'ai entamé la lecture du très gratuit et généreux Pharo par l'Exemple de Stéphane Ducasse, qui m'a permis de comprendre rapidement les aspects novateurs et agréables de ce langage de programmation.

    Seulement, étant donné que j'aimerais à l'avenir programmer et designer mes propres jeux, je comptais bifurquer sur l'ActionScript3, afin de pouvoir utiliser des librairies Flash populaires (telles que Flixel ou FlashPunk, si cela vous parle) et spécialement conçus pour le développement de jeux (couplées à FlashDevelop et Flex). A noter que je compte ne réaliser que des jeux en 2D.

    Rebuté par l'illisibilité d'une telle syntaxe comparée à celle de Smalltalk, je voulais savoir si créer des jeux vidéo en Smalltalk était possible, aussi facile qu'en Flash. Si oui, avec quelle implémentation? (j'ai lu que Smalltalk MT semblait la plus adaptée). Que me conseillez-vous?

    Par contre, je n'ai pas encore assimilé toutes les notions concernant les IDEs/librairies, etc... (le vocabulaire des logiciels de développement) et serais peut-être amener à vous demander quelques précisions.

    En espérant que vous prendrez le temps de me répondre.

    Cordialement.

    P.-S.: Je tourne sous Linux.

  2. #2
    Membre éprouvé

    Homme Profil pro
    non
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : non

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 1 116
    Points
    1 116
    Par défaut
    Salut !

    C'est génial =) il reste des jeunes qui se mettent à Smalltalk ! L'avenir de l'humanité a peut-être... un avenir ? Je plaisante bien sûr, il n'y a pas que Smalltalk comme "vrai" langage (y'a Caml aussi... =p).

    Alors, peut-on faire des jeux vidéos avec Smalltalk ? Oui !

    J'ai moi même fait une tentative (avortée) d'un jeu de type mario (2D), qui sur le plan technique marchait très bien avec Visual Works, mis à part une erreur windows fatale provoquée via l'utilisation d'une dll externe (du coup on s'est arrêté parce que ça venait de l'affichage et que la personne qui l'avait fait avait développé à l'arrache et n'avait pas pris le soin de commenter son code pour qu'il puisse être repris).

    Maintenant je pense qu'il faut préciser :

    Avec quasi n'importe quel Smalltalk (disons au moins VisualWorks, Pharo, Squeak, Dolphin et GNU Smalltalk), tu peux faire un jeu vidéo.

    En terme de modèle et de mécanismes de jeu (physique, règles, ce que tu veux), c'est comme dans un autre langage, je trouve ça d'ailleurs super agréable à développer au vu de la puissance des EDI et de la simplicité du langage.

    Par contre, en terme de librairies (par exemple pour l'affichage), il faut passer par des librairies externes (opengl, stl...) ou des frameworks (cairo...).

    Alors ça marche très très bien, seul souci : il n'existe pas de moteurs de jeu pré-fait. Autant pour de la 2D, il est possible de créer son moteur d'affichage perso optimisé, autant pour de la 3D,c'est plus compliqué.

    Il faut rajouter à cela les problèmes de performances : en terme de vitesse d'exécution c'est comparable à Java je pense - donc 3D possible mais obligation de créer un moteur très performant. Pour la 2D par contre ça passe comme un marteau piqueur dans du beurre mou (zéro ralentissements dans ma démo de mario-like avec opengl, alors que le moteur d'affichage et le moteur physique étaient codés "vite fait mal fait").


    D'autre part, contextuellement là, tu parles de Flash, c'est à dire que tu veux faire du jeu pour intégrer ça dans un navigateur web ?

    Si c'est le cas, oublie Smalltalk, à ma connaissance on ne peut pas encore efficacement faire passer directement une application Smalltalk dans un navigateur (ce qui sous entendrait de faire tourner directement un code dans le navigateur).

    Bientôt avec JTalk cela sera possible - mais comme la machine virtuelle est en javascript, il faudrait se renseigner sur les perfs de js pour du jeu 2d dans un navigateur web.

    Pour un exécutable classique à faire tourner en local (ou en réseau), oui, c'est très possible, et avec élégance et performance - quelle que soit la plateforme.

    En ce qui concerne les librairies, il y en a beaucoup, et beaucoup de frameworks, mais on est pas du tout au niveau de Java en terme de diversité de librairies.

    Voilà, j'oublie certainement des choses... Il existe aussi beaucoup de livres gratuits sur Smalltalk, indépendants des implémentations (voir par exemple http://stephane.ducasse.free.fr/FreeBooks.html).

    Personnellement j'aimerai beaucoup retenter l'expérience d'un jeu 2D en Smalltalk, mais je n'ai pas de projet suffisamment court (ou simple) sous la main, ni forcément le temps (d'autant plus qu'il faut souvent réussir à mobiliser des artistes pour avoir du contenu, et ça c'est dur et chiant).

    Surtout, n'hésites pas à poser toute question (même les plus simples, ça servira à tout le monde comme ça =)).

    N'hésites pas non plus à montrer tes travaux et à rejoindre les nombreuses mailing lists Smalltalk qui existent (dont le groupe Smalltalk dvp.com, même s'il n'est absolument pas actif...).
    [|]

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Merci!
    Ah, ça fait plaisir d'avoir une réponse, en plus de vous.
    Car j'avais suivi un peu votre petit projet au même titre qu'un bel autre: DalekTron... que je n'arrive malheureusement pas à faire marcher.
    J'ai le source code et pourrait peut-être, un de ces jours, le disséquer...

    En tout cas, j'ai fait de nombreuses recherches depuis mon message. ET je vais pourvoir répondre également à vos interrogations:
    Par contre, en terme de librairies (par exemple pour l'affichage), il faut passer par des librairies externes (opengl, stl...) ou des frameworks (cairo...).
    Justement, j'ai longuement couru après le mythe de ce fameux binding Smalltalk de SDL (qui est, dans le milieu diu jeu indépendant, une des librairies les plus utilisées). En fait, le projet a été abandonné (en tout cas je crois). Cependant, SDL étant écrit en C, il est naturellement présent dans les builds de base de GNU Smalltalk. Problème: même si la philosophie du tout-au-clavier de GNU me plaît, je n'arrive pas à l'installer (du moins pas encore...) car il est nécessaire de le compiler avant et MinGW ne marche pas (je suis en train d'installer Cygwin...).
    GST dispose également de Cairo, ce qui devrait le faire comme disent les jeunes de ma génération...
    Par contre, 2 questions me viennent à l'esprit:
    • -une seule librairie (ici SDL) sera-t-elle suffisante?
    • -comment s'utilise une librairie externe?


    Alors ça marche très très bien, seul souci : il n'existe pas de moteurs de jeu pré-fait. Autant pour de la 2D, il est possible de créer son moteur d'affichage perso optimisé, autant pour de la 3D,c'est plus compliqué.

    Il faut rajouter à cela les problèmes de performances : en terme de vitesse d'exécution c'est comparable à Java je pense - donc 3D possible mais obligation de créer un moteur très performant. Pour la 2D par contre ça passe comme un marteau piqueur dans du beurre mou (zéro ralentissements dans ma démo de mario-like avec opengl, alors que le moteur d'affichage et le moteur physique étaient codés "vite fait mal fait").
    Aucun soucis, je ne compte pas (ou pas avant de longues années) me mettre à la 3D.

    D'autre part, contextuellement là, tu parles de Flash, c'est à dire que tu veux faire du jeu pour intégrer ça dans un navigateur web ?
    En fait non, justement. Je n'apprécierai pas le traitement que l'on pourrait faire d'un browser game que j'ai conçu. J'aimerais dépasser le divertissement et intégrer une vrai profondeur dans mes jeux, à l'image des Art Games si vous vaez entendu parler... Je trouve que ça dénature l'expérience que d'y jouer à la volée, donc pas de soucis.
    A vrai dire, le principal tremplin des développeurs indé de jeux actuellement, c'est clairement le Flash, avec des outils comme Stencyl, FlashPunk, Flixel, etc...

    Voilà, j'oublie certainement des choses... Il existe aussi beaucoup de livres gratuits sur Smalltalk, indépendants des implémentations (voir par exemple http://stephane.ducasse.free.fr/FreeBooks.html).
    Merci, je connais déjà ce lien depuis longtemps et suis allé y piocher le magnifique Computer Programming Using GNU Smalltalk qui me va très bien... bien que l'installation de GST n'est, pour l'instant, toujours pas faite...

    Surtout, n'hésites pas à poser toute question (même les plus simples, ça servira à tout le monde comme ça =)).

    N'hésites pas non plus à montrer tes travaux et à rejoindre les nombreuses mailing lists Smalltalk qui existent (dont le groupe Smalltalk dvp.com, même s'il n'est absolument pas actif...).
    Merci beaucoup et c'est vrai que, étant donné mon jeune âge et ma totale inexpérience, j'ai toujours peur de déranger tous les pros que l'on peut lire sur les autres mailing-lists...
    Pour ce qui est de "mes travaux", je me concentre en ce moment surtout sur l'apprentissage et, surtout, depuis quelques jours, j'épluche le web car le contenu sur Smalltalk est très maigre. J'ai déjà réalisé un jeu (abandonné mais qui marchait) sur Construct 2, un logiciel de création de jeu assez impressionnant, mais spécifique à Windows et que j'ai donc abandonné pour passer sous Linux sur mon ordinateur portable.

    Encore merci pour tout!

    J'attends votre réponse!

    PS: Pardonnez mon roman

  4. #4
    Membre éprouvé

    Homme Profil pro
    non
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : non

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 1 116
    Points
    1 116
    Par défaut
    Citation Envoyé par Phen0m Voir le message
    Ah, ça fait plaisir d'avoir une réponse, en plus de vous.
    Car j'avais suivi un peu votre petit projet au même titre qu'un bel autre: DalekTron... que je n'arrive malheureusement pas à faire marcher.
    J'ai le source code et pourrait peut-être, un de ces jours, le disséquer...
    Ouai d'ailleurs j'aimerai bien finir mon machin un jour - j'ai recommencé une version C++ pour les facilités liées à l'affichage mais ça traine toujours autant. Je devrais comprendre comment faire marcher un affichage avec cairo et développer un moteur graphique avec ma version smalltalk, ça serait plus judicieux. Je garde ça sous le coude.

    Je ne connais pas le projet DalekTron, c'est du smalltalk ?

    Citation Envoyé par Phen0m Voir le message
    GST dispose également de Cairo, ce qui devrait le faire comme disent les jeunes de ma génération...
    Par contre, 2 questions me viennent à l'esprit:
    • -une seule librairie (ici SDL) sera-t-elle suffisante?
    • -comment s'utilise une librairie externe?
    SDL te permet de gérer du son, de l'affichage, des entrées clavier/souris et possiblement d'autres trucs. Donc oui ça suffit, mais il faudra que tu développes des petits moteurs (affichage, gestion des entrées/sorties, moteur sonore...).

    Cela dit, cairographics permet de faire pas mal de truc en utilisant opengl, donc ça serait plus intéressant je pense d'utiliser les librairies fournies par cairo pour gérer un affichage. Il faudrait se renseigner pour voir ce que ça peut faire exactement.

    L'utilisation d'une librairie externe peut se faire de deux manières. Soit quelqu'un a déjà implémenté un binding vers la librairie (dll ou .so), soit tu dois le faire toi même - mais partons sur le cas d'une librairie déjà interfacée (comme opengl ou sdl) : dans ce cas il te suffit simplement de charger les sources de l'interface smalltalk et d'utiliser directement les méthodes d'interface en smalltalk.


    Citation Envoyé par Phen0m Voir le message
    A vrai dire, le principal tremplin des développeurs indé de jeux actuellement, c'est clairement le Flash, avec des outils comme Stencyl, FlashPunk, Flixel, etc...
    Tu veux dire que les jeux indépendants, et pas uniquement les jeux par navigateurs, sont développés en Flash principalement ?

    Citation Envoyé par Phen0m Voir le message
    Merci beaucoup et c'est vrai que, étant donné mon jeune âge et ma totale inexpérience, j'ai toujours peur de déranger tous les pros que l'on peut lire sur les autres mailing-lists...
    Moi aussi je suis jeune et inexpérimenté =p ça n'est pas une raison, justement il faut se frotter aux durs pour avancer ! En plus souvent les gens sont contents d'aider un débutant, la communauté smalltalk est vraiment sympa, ouverte et prête à aider. Par exemple pour tes problèmes d'installation de GST, pourquoi ne pas demander sur une mailing list GST (francophone si tu ne parles pas anglais, mais c'est conseillé de lire et parler anglais pour le smalltalk) ?

    Citation Envoyé par Phen0m Voir le message
    Pour ce qui est de "mes travaux", je me concentre en ce moment surtout sur l'apprentissage et, surtout, depuis quelques jours, j'épluche le web car le contenu sur Smalltalk est très maigre. J'ai déjà réalisé un jeu (abandonné mais qui marchait) sur Construct 2, un logiciel de création de jeu assez impressionnant, mais spécifique à Windows et que j'ai donc abandonné pour passer sous Linux sur mon ordinateur portable.
    Les vidéos de l'ESUG sont très intéressantes à regarder. On peut quand même, en cherchant bien, trouver des quantités non négligeables de documentation sur le web. Il faut principalement aller taper dans de l'anglais par contre.

    D'autre part j'essaie de travailler sur des ressources smalltalk pour développez.com (tutoriels, etc...), mais ça n'est pas évident de trouver du temps :/

    Ton logiciel était fait en Smalltalk ?


    Citation Envoyé par Phen0m Voir le message
    PS: Pardonnez mon roman
    Non mais y'a pas de soucis =) hésites pas, surtout si je suis pas clair sur certaines explications.

    PS: tu peux tutoyer hein =p
    [|]

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Ce n'est pas mon jour...
    Je ne connais pas le projet DalekTron, c'est du smalltalk ?
    Oui entièrement! Et il parait que c'est vraiment bien!
    |-> http://forum.world.st/DALEKTRON-Game...td3374740.html

    Meric pour tes réponses. Donc c'est bon pour GST normalement. D'ailleurs, j'ai réussi à l'installer... enfin presque (). J'ai réussi à compiler qu'un seul des 3 fichiers que je dois compiler... Bref.

    Tu veux dire que les jeux indépendants, et pas uniquement les jeux par navigateurs, sont développés en Flash principalement ?
    En fait oui, une bonne partie sinon la majorité. Quand je parle de jeu indé, je parle de vrais jeux indé, c'est-à-dire de titres de qualité, pas de petits browser games. Ceux que l'on voit à l'IGF.

    pourquoi ne pas demander sur une mailing list GST (francophone si tu ne parles pas anglais, mais c'est conseillé de lire et parler anglais pour le smalltalk) ?
    Et, sur ce point, je t'ai devancé!... ... Sans succès puisque j'ai aussi/encore le droit à une erreur me disant que mon adresse email n'est pas valide...
    Pour l'anglais, aucun soucis: j'adore ça et le pratique régulièrement depuis des années.

    Ton logiciel était fait en Smalltalk ?
    Non.

    [HS]Au fait, où change-t-on notre signature?
    [/HS]


    EDIT: Finalement j'ai réussi à m'inscrire au mailing list en passant par un autre site!

  6. #6
    Membre éprouvé

    Homme Profil pro
    non
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : non

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 1 116
    Points
    1 116
    Par défaut
    Et donc tu as un projet en particulier pour un jeu en Smalltalk ?

    Je suis curieux =)

    Sinon la raison de l'utilisation du flash, est-ce que ça ne serait pas à cause de la "facilité" d'utiliser le langage pour les graphistes qui font des jeux ?

    C'est un gros souci dans un jeu vidéo, obtenir l'aide de personnes compétentes artistiquement :/ Car même si on peut coder un petit jeu en Smalltalk, pour le faire connaître il faut des graphismes qui se tiennent (cela dit ça ferait une super pub pour Smalltalk).


    (Pour changer ta signature il faut régler ton profil dans le forum.)
    [|]

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Impatient que je suis...
    En effet, j'ai beaucoup de game designs et d'idées qui n'attendent qu'un bon IDE pour se concrétiser. Je vise à faire des jeux plutôt "court" pour des jeux, de la durée d'un film environ. Des jeux indé quoi! Pour ce qui est des graphismes, j'ai pas mal dessiné dans ma vie et j'aimerais assurer cette partie moi-même de même pour la musique. Et puis, tout comme avec la musique, les logiciels d'aujourd'hui permettent de faire de belles choses sans compétences particulières. J'aimerais réaliser des oeuvres tres personelles.

    Pour Flash, tu as parfaitement résumé la situation. C'est une IDE très graphique et l'AS3 est plutot orienté objet, il me semble (je peux me tromper).

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Des projets?
    Et, au fait, maske: quels sont tes projets à toi? Sur quel implémentation travailles-tu?

  9. #9
    Membre éprouvé

    Homme Profil pro
    non
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : non

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 1 116
    Points
    1 116
    Par défaut
    Citation Envoyé par Phen0m Voir le message
    Et, au fait, maske: quels sont tes projets à toi? Sur quel implémentation travailles-tu?
    Avant je travaillais beaucoup sous Visual Works (et j'y reviendrais dans quelques mois dans mon nouveau boulot), pour faire principalement des jeux - échecs avec IA, morpion et mon petit projet de mario like (c'est aussi le Smalltalk qui est enseigné à l'Université de Bretagne Occidentale où j'ai suivi toute ma formation). Je pense reprendre mon jeu de plateforme en refaisant un affichage avec Cairo, si j'y arrive (je ne connais pas du tout Cairo).

    J'utilises aussi Visual Works pour les tutoriels dvp.com.

    Sinon j'utilise Pharo pour tout ce qui est application web dynamique, avec le framework Iliad (d'ailleurs j'ai un article prévu à ce sujet pour développez.com mais je ne trouve pas le temps en ce moment : retour de vacances). Je travaille sur un projet de galerie d'images et de blog.

    Après j'avoue être en manque de projets, et aussi en manque de temps.
    [|]

Discussions similaires

  1. choix technos pour jeu multijoueur par navigateur
    Par lludol dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 19/01/2015, 17h18
  2. Choix d'un type intelligence artificiel pour un jeu de carte
    Par acia78 dans le forum Intelligence artificielle
    Réponses: 0
    Dernier message: 13/12/2012, 18h36
  3. Choix d'API pour un jeu de tarot
    Par adundev dans le forum API graphiques
    Réponses: 4
    Dernier message: 16/04/2010, 09h36
  4. Choix du Serveur pour un jeu flash
    Par Velvounet dans le forum Jeux web
    Réponses: 5
    Dernier message: 08/08/2008, 22h26
  5. Choix important pour développement d'un jeu
    Par thecyril dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 13/02/2006, 19h32

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