Gotong - Pong en GOTO++

Venez présenter vos projets et en donner des nouvelles. Pas de recrutement dans ce forum, merci.

Gotong - Pong en GOTO++

Messagepar Gavos » 01 Aoû 2009, 05:34

« Gotong royong, is a conception of sociality familiar to large parts of Indonesia and Malaysia. The phrase has been translated into English in many ways, most of which harken to the conception of reciprocity or mutual aid. » (Wikipedia)

Vous l'aurez compris, c'est bien dans cet esprit de de réciprocité et d'entraide mutuelle ( :confused: ) que je vous présente Gotong, mon premier jeu terminé !

Je suis parti d'un cahier des charges assez ambitieux : faire Pong en mieux. J'en entends déjà certains rire à cette annonce : « Pauvre fou, Pong a nécessité 2 ans de développement à une équipe de 35 développeurs professionels à plein temps ! ». Sachez que j'étais bien conscient de tous les risques d'un projet de cette envergure et c'est la raison pour laquelle j'ai décidé de m'épauler d'un langage alliant puissance, élégance, et simplicité : le GOTO++

Et le résultat est à la hauteur ! J'ai réussi à développer une version améliorée de Pong, avec des graphismes dernier cri (nécessite une carte supportant les Ascii Shaders 4.0), un moteur physique réaliste, et une intelligence artificielle très convaincante. L'ensemble a été rendu possible grâce aux possibilités étonnantes du GOTO++, dont voici une courte liste :
  • programmation orientée objet avec les troupeaux de pingouins et leurs machines à pingouins
  • une gestion haut niveau du multithreading via des instructions telles que GOTOUNIVERSPARALLELEouizzz et BigCrunch
  • support natif de l'exécution aléatoire d'instructions, afin de simplifier le développements d'IA grâce au GOTOGOTO et au GOTOCHEPA
  • couche réseau directement utilisable par les chaussettes et les chaussures (cette fonctionnalité n'a cependant pas été utilisée dans Gotong)
  • expressions rationnelles (Rxmplacxr, OUQUILESTLETEXTE), gestion puissante des exceptions (boum, encasderreurGOTO), etc.
  • et des GOTO partout, bien entendou


En avant première, voilà deux screenshots pour vous mettre l'eau à la bouche.

Image

Image


J'ai essayé de développer ce Pong dans les règles de l'art; j'ai privilégié l'utilisation massive des GOTO pour permettre une grande réutilisabilité et j'ai accordé une importance particulière au nommage de mes variables et labels. Je considère cette version comme finale, il n'y aura pas de nouvelles fonctionnalités dans le futur, seuls les bugs vraiment gênants seront corrigés.

Pour le lancer il vous faut un écran 2 couleurs supportant la résolution 25x80, un système son 0:0 (encore introuvable en France, vous ne pourrez donc pas avoir de son pour le moment) et un clavier 3 touches. Le jeu tourne sous Windows XP mais n'a pas été testé sous Linux; vous pouvez toutefois (vous casser les dents à) compiler la dernière version de GOTO++ sur votre distribution préférée. Pour y jouer sous Windows vous pouvez installer GOTO++ puis double-cliquer sur gotong.gpp. Alternativement vous pouvez aussi ouvrir un terminal et taper "gotopp gotong.gpp".

N'hésitez pas à poster vos remarques ou vos possibilités d'amélioration ! On ne sait jamais, peut-être que je trouverai un jour le courage de réaliser une suite à succès...
Gavos
 
Messages: 1089
Inscription: 19 Mar 2005, 13:00

Messagepar Mokona » 01 Aoû 2009, 10:14

Eheh, message bien dans l'esprit Goto++, dès que j'ai le temps, je vais voir la source.

Bravo :)

(euh, par contre, le lien sur le gotong.cpp ?
Mokona
Hello World, I'm new !
 
Messages: 1686
Inscription: 13 Mar 2005, 13:00

Code source de GPP.

Messagepar Cygal » 01 Aoû 2009, 13:23

Mokona, http://gavos.free.fr/gotong/gotong.gpp

Rigolo, je teste de ce pas. :)
Cygal
Hello World, I'm new !
 
Messages: 41
Inscription: 22 Juil 2009, 18:05

Messagepar Mokona » 01 Aoû 2009, 20:18

Lien corrigé.
Mokona
Hello World, I'm new !
 
Messages: 1686
Inscription: 13 Mar 2005, 13:00

Messagepar Kristof » 02 Aoû 2009, 18:11

Sympa le code source :00000013:
Avatar de l’utilisateur
Kristof
Hello World, I'm new !
 
Messages: 645
Inscription: 14 Avr 2005, 11:56
Localisation: Montigny le Bretonneux (78)

Messagepar NicoL3AS » 09 Aoû 2009, 18:12

Tout à fait excellent. De plus je ne connaissait pas le GOTO++ et cela m'a fait beaucoup rire.
A l'occasion je l'utiliserais !
La Destinée du Feu
Action-RPG 2D gratuit
Avatar de l’utilisateur
NicoL3AS
Hello World, I'm new !
 
Messages: 490
Inscription: 12 Aoû 2005, 17:46

Messagepar Gavos » 21 Jan 2010, 03:43

Hej hej,

D'abord je vous remercie (avec beaucoup de retard) pour vos réactions. Je suis particulièrement content de voir que vous avez apprécié le code source, j'y ai mis beaucoup d'efforts !

Pour la petite histoire, j'avais décidé que mon premier jeu terminé serait un Pong, mais comme ça s'annonçait relativement facile j'en ai profité pour utiliser un langage un peu exotique (ce que je n'aurai peut-être plus jamais l'occasion de faire). Je pensais d'abord utiliser le module Tortue pour la partie graphique mais il s'est révélé assez bugué, du coup je suis parti sur de l'ascii art. Bon, par la suite je me suis rendu compte qu'en fait c'était tout le langage qui était bugué ! Au bout d'un moment j'ai tenté de corriger le code du compilateur/interpréteur GOTO++, mais quelques commentaires du style :

Voici le fameux compilateur, qui vous domine du haut de ses je ne sais
combien de lignes. Bon courage pour comprendre tout ça.


Ceci est un gros switch. C'est la machine virtuelle du GOTO++.
Préparez vous à avoir les cheveux qui se dressent sur la tête.


Point d_T('entrée de l')interpréteur. Affiche des tas de messages marrants.
Bref, des heures d'amusement en perspective.


Des bidules que j'ai eu la flemme de classer. Faut dire que c'est
l'horreur ce programme, avec ces deux classes tellement énorme
qu'on peut pas décemment tout faire rentrer dans deux fichiers.
Il y a essentiellement des machins pour sauver et charger des
programmes.


ont eu raison de moi... Mais le GOTO++ est avant tout un délire (je vous conseille d'ailleurs la lecture de la documentation) alors j'ai quand-même insisté. Au début j'ai essayé de ne pas monter le niveaugourou mais après ma première "boucle for" à coup de goto j'ai abandonné cette idée... Du coup j'ai décidé d'utiliser un maximum de fonctions du langage; il y a d'ailleurs pas mal de bouts de codes qui ne servent à rien ou qui pourraient être énormément simplifiés :D Au final, j'y aurai passé une dizaine de jours, soit beaucoup plus longtemps que prévu, mais je me suis bien amusé :)


Je vous annonce aussi que Gotong jeu tourne maintenant comme une horloge suisse sous Linux ! A quelques accents et plantages près. Bon, il y a aussi des plantages volontaires dans le jeu, mais ce n'est pas de ceux-là que je parlais :p. Pour essayer il suffit de récupérer la version 0.30 patchée et de suivre les instructions du lisezmoi.html. Attention, il vous faudra avoir préalablement intallé g++, cmake et la version de développement de ncurses (libncurses5-dev sous Debian/Ubuntu). Un grand merci à gabriel pour m'avoir aidé à faire ce patch (en gros il a presque tout fait ^^). Je vous donne juste un cheatcode : éviter de taper sur la touche "Entrée" entre les manches, appuyez plutôt sur une flèche, c'est plus sûr :D

Bon, c'est pas tout ça mais j'ai un tétris à finir, moi...
Gavos
 
Messages: 1089
Inscription: 19 Mar 2005, 13:00

Enfin

Messagepar florianc » 11 Mai 2010, 11:55

Enfin un jeu digne de ce nom sous Linux*! Je ne sais pas si la version que j’ai est la toute dernière, mais je trouve que les personnages sont vraiment bien modélisés, surtout la Raquette de droite. Et merci pour l’indice concernant la touche à appuyer en cas de fin de manche.

Tu devrais publier une soluce un jour…
florianc
Hello World, I'm new !
 
Messages: 1
Inscription: 11 Mai 2010, 11:49

Messagepar Spoke » 12 Mai 2010, 00:07

Ha j'ai bien rigolé en parcourant le manuel ! En tout cas, sacré mental que tu as eu là Gavos !
Jolie Pong ! =)

http://www.gotopp.org/doc/html/Divers+mots~2Dclefs.html
Spoke
Hello World, I'm new !
 
Messages: 191
Inscription: 29 Oct 2009, 14:14

Messagepar Gavos » 12 Mai 2010, 19:03

Ah florianc, ça fait plaisir de voir quelqu'un qui sait reconnaître un travail de qualité jusque dans ses détails, tu es le premier à avoir remarqué la différence de la raquette droite ! C'est effectivement celle que j'ai modélisée en dernier donc elle a pu profiter des dernières évolutions du logiciel AsciiSMax...

En revanche si tu veux la soluce intégrale il suffit de regarder le code source, c'est tout en français et avec l'excellente documentation qu'à pointé Spoke tu devrais pouvoir le lire comme dans un livre.

Et effectivement, rien que la documentation en elle-même vaut le coup d'oeil :D
Gavos
 
Messages: 1089
Inscription: 19 Mar 2005, 13:00


Retourner vers Présentations et suivis

Qui est en ligne

Utilisateurs parcourant ce forum: Yahoo [Bot] et 1 invité

cron