#1 Le 29/05/2008, à 20:38
- DisSsha
[Projet Programmation] Jeu de la vie, simulation etc ...
Bonjour,
Pour cet été j'ai envie de me lancer dans un projet perso de programmation.:D
Pour ceux qui connaissent ça peut ressembler a "spore" un jeu actuellement développé par un des proches créateurs des sims bref passons...
J'ai eu a faire une fois un tp sur le jeu de la vie en java. J'avais fort bien aimé ce principe de "vie" simulée...
J'aimerais développer une sorte de programme qui simule une quantité d'agents (je ne sais si je peux employer ce terme) ou d'individus.
Ces objets seraient alors transposés dans un environement.
J'ai pas l'envie de creer le truc en 3D en fait une 2D tres simpliste (forme géométrique par exemple point pour un individu de base, carré pour une structure etc...)
Le projet reposerait surtout sur la creation d'un moteur de décision,comportemental, d'interaction, apprentissage automatique avec des arbres de décision par exemple. Pourquoi pas meme coder des traits de caracteres (plutot scientifique, dirigeant, etc) puis leurs donner une capacite et les voir se développer ensemble.
Le but final ?? avoir une sorte de peuplade qui 'vit' sur mon pc avec une évolution ...:cool:
J'ai pas encore definit s'il devait y avoir de conflits, besoins particuliers entre les objets (nourrir etc), mais il doit y avoir une envie de se développer...
J'en arrive a ma question... connaissez vous un langage plus apte a réaliser ce genre de programme ?
java -> j'ai vu qu'il y a des bons framework Jade, Zeus etc mais coté graphique je ne suis pas tres bon en java et je trouve que java est mal foutu de ce coté.
D'ailleurs je pose une question directement en rapport avec ce projet savez vous comment faire pour représenter les objets sur l'environnement (je ne connais qu'une méthode -> des cases et des coordonnées)
Merci d'avoir lu jusque la et laisser moi un message sur vos avis sur le sujet
DisSsha
Etudiant Lille 1 informatique (4ème année)
Blog : http://jaGrow.wordpress.com
Hors ligne
#2 Le 30/05/2008, à 08:08
- philou8237
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
Bon ça fait longtemps que je ne code plus trop... mais une chose est sure : il te faut un langage objet, donc Java, C++, OCaml, ruby etc....
Après pour le GUI, perso j'apprécie beaucoup QT. Je le trouve assez logique et bien pensé. En plus... il est multiplateforme.
Normalement tu devrais aussi t'en sortir avec Java, c'est un langage "lourd", mais très simple, y compris pour l'interface. A la fin de ma 1ere année d'ingénierie, on devait faire un "dazel" (comprendre zelda) en java, avec un editeur de map, à 4 et en 1 mois. On avait jusqu'alors jamais fait de java, et on sortait d'un compilateur en C++... Ce que je peux dire, c'est que ce langage est trèèès simple (comparativement bien sur) y compris pour le GUI. C'est aussi pour ça qu'il est tant apprécié.
Perso, je le ferai en C++/QT, mais ce n'est qu'une opinion.
Après, pour conseil de développement (peut etre le sais tu déjà), je te proposerai de bien penser tes diagrammes UML, et d'integrer pas mal de design patterns, qui dans ce genre de prog sont souvent très agréable à avoir.
Voilou,
Bon courage,
Hors ligne
#3 Le 30/05/2008, à 09:08
- Ultandir
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
Bonjour,
Les design patterns très important mais l'architecture aussi.
Si tu néglige ton architecture, tu ne t'en sortira pas,
Je te conseillerai aussi java ou C++/QT
Si tu est un fou, tu peut te lancer dans C/GTK+ mais alors tu sors de la POO et ce ne sera pas très adapté pour ton projet ( pour le résultat du programme non, pour l'apprentissage si ^^ )
Fedora Cambridge i386
Zenwalk 5.2
-------------
Il y a 10 types de personnes : celles qui connaissent le binaire, et celles qui ne le connaissent pas.
Hors ligne
#4 Le 30/05/2008, à 09:21
- guyver2
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
ton projet est tres interessant, ça rentre pile dans le champ d'action des multi-agents. Néanmoins, d'apres la présentation que j'en ai eu en cours, le framework JADE est assez complexe et sert plutot a decrire les interractions (messages, ...) entre les différents types d'agents.
Suivant ton niveau ça peut etre plus ou moins interessant de t'en servir.
Par exemple ton projet est idéale pour apprendre a te servir des threads (un agent <-> un thread), pour apprendre à créer des interfaces graphiques, ...
Si le fait d'y passer du temps ne te fait pas peur, tu peux apprendre vraiment beaucoup de choses. Choses a coté desquelles tu risques de passer si tu utilises directement JADE.
Je suis d'accord avec philou sur le langage, je le ferai aussi en C++ avec Qt pour la partie interface graphique (merveilleuse bibliothèque qui integre aussi une surcouche pour les thread). Ou alors j'en profiterais pour apprendre un nouveau langage (le ruby me fait de l'oeil depuis quelque temps)
Croire est le meilleur moyen de ne jamais rien savoir
Mes jeux en C/C++
Hors ligne
#5 Le 30/05/2008, à 10:40
- DisSsha
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
Merci pour vos informations, ce projet me hante de plus en plus maintenant que j'ai posté !! Je viens de finir mes examens, je n'ai jamais fais de C++, je suis attiré par les nouveaux langages (pourquoi pas Ruby) cependant j'ai peur de tomber sur des bibliothèques pas completes ou pas encore assez abouties ...
Pour le java c'est sur que l'utilisation d'éclipse, l'integration avec l'uml la gestion de projet integrée etc serait un avantage.
J'avais pensé a un systeme de tour par tour avec une liste de personne plutot qu'a un pool de thread.. a y repenser pourquoi pas ...
Je ne connais pas QT non plus mais je vais bien voir ce que ça donne.
actuellement en java, j'ai deja réalisé un jeu de la vie que j'ai modifié en sorte de jeu de récolte ou les agents on une maison et cherche de la nourriture, le tout est représenté par une grille de cases, niveau grahique il s'agit d'une JFrame avec une méthode display & paint qui affiche des points avec java.awt.color...
Ce systeme a ses limites (et plutot atteintes rapidement) la représentation est forcement un point (comment faire une structure sur plusieurs cases comme un triangles)
Et l'on est limité également par la taille et les couleurs.
Peut on agrandir dynamiquement une JFrame ?
ce projet me passionne vraiment !!! si vous avez des conseils n'hésiter pas !
DisSsha
Etudiant Lille 1 informatique (4ème année)
Blog : http://jaGrow.wordpress.com
Hors ligne
#6 Le 30/05/2008, à 12:46
- LittleWhite
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
C'est un projet qui m'interesse beaucoup ( énormément ).
Perso je l'aurai fais en C++ et comme couche graphique de la SDL et OpenGL ( mais je voulais pousser un peu l'aspect graphique aussi )
Par contre j'ai jamais fais de jeu de la vie.
Ça me rapelle un livre de Bernard Werber ( dans la trilogie des fourmis ) ou un des personnages à fais un simulateur de civilisation. Bon ok c'est de la science fiction mais poruquoi ne pas s'en approcher
Au sinon plus dans le sujet :
Peut on agrandir dynamiquement une JFrame ?
Oui, comme une JFrame herite de java.awt.Window , elle hérite aussi de setSize()
Comme par hasard setSize modifie la taille en prenant deux paramètres "width" et "height"
Donc c'est facile
Voir : http://java.sun.com/javase/6/docs/api/j … Frame.html et http://java.sun.com/javase/6/docs/api/j … nt,%20int)
Dernière modification par LittleWhite (Le 30/05/2008, à 12:48)
Linux ou mourir
Pour avoir des problemes : demarrer Windows
Script de compression multi archive : http://forum.ubuntu-fr.org/viewtopic.php?id=225297
Hors ligne
#7 Le 30/05/2008, à 14:48
- DisSsha
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
Ok eh bien je ne savais pas que ce projet aller avoir du succes, pourquoi pas partager nos savoirs alors ?
je vais donc vous reveler l'étape suivante que je me suis fixé, j'ai dans le but de rendre possible via le réseau d'agrandir l'espace de son environnement.
Une fois connectée sur l'application via un bus réseau (ORB, RMI si c'est en java) l'utilisateur a la possibilité de telecharger les mondes d'autres personnes et enrichi ainsi le sien.
Il faut donc rendre possible la sauvegarde mais aussi la creation d'objets sans quoi ça n'a guere d'interet.
je me disais qu'un systeme en asynchrone pourrait etre sympas.
Cette toile de liens entre les mondes pourrait vraiment avoir de la guele et la il y aurait tout interet a creer une bonne ia comportementale (reaction face a l'inconnu / étranger)
Je ne connais pas les bus réseaux C++.
Vous en pensez quoi ?
je déposerais bientot une version de l'application en java et en local
DisSsha
Etudiant Lille 1 informatique (4ème année)
Blog : http://jaGrow.wordpress.com
Hors ligne
#8 Le 30/05/2008, à 15:13
- guyver2
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
ORB est un protocole réseau qui est fait pour faire abstraction du langage utilisé.
En gros ça permet d'echanger des objets entre un programme en C++ et un autre en java (par exemple)
Ca complexifie un peu la programmation mais pas tant que ça. Il suffit de bien penser les echange et ça passe tout seul.
RMI est pratique car tout est transparent pour l'utilisateur mais c'est limité au langage Java.
Mon avis : t'embale pas.
Deja faire tout ce dont tu parlais plus haut va te prendre un bon bout de temps, il sera toujours temps de voir pour ajouter une composante réseau par dessus tout ça plus tard.
EDIT : c'est fou comme tu es renseigné pour quelqu'un qui semble etre assez débutant (un ou deux ans je dirais d'apres tes premies posts )en programmation. Tu connais JADE, RMI, ORB, ...
Dernière modification par guyver2 (Le 30/05/2008, à 15:15)
Croire est le meilleur moyen de ne jamais rien savoir
Mes jeux en C/C++
Hors ligne
#9 Le 30/05/2008, à 15:17
- LittleWhite
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
Deja faire tout ce dont tu parlais plus haut va te prendre un bon bout de temps, il sera toujours temps de voir pour ajouter une composante réseau par dessus tout ça plus tard.
C'est ce que je pense aussi, pour l'instant on a que l'idée est quelques connaissances, mais on n'a même pas un 'moteur' qui tourne en console, ni a peine un arbre décisionnel.
Je pense qu'il faut approfondir la partie analyse ( UML ), qui permettra de mettre de bonne base au projet.
Après on pourra choisir le langage de développement et les bibliothèques, et après c'est promis on code
Edit :
c'est fou comme tu es renseigné pour quelqu'un qui semble etre assez débutant (un ou deux ans je dirais d'apres tes premies posts )en programmation. Tu connais JADE, RMI, ORB, ...
C'est pour ça que moi je ne juge pas...
Dernière modification par LittleWhite (Le 30/05/2008, à 15:18)
Linux ou mourir
Pour avoir des problemes : demarrer Windows
Script de compression multi archive : http://forum.ubuntu-fr.org/viewtopic.php?id=225297
Hors ligne
#10 Le 30/05/2008, à 18:35
- DisSsha
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
EDIT : c'est fou comme tu es renseigné pour quelqu'un qui semble etre assez débutant (un ou deux ans je dirais d'apres tes premies posts )en programmation. Tu connais JADE, RMI, ORB, ...
Non en fait je viens de finir mon année de master 1 info (Lille), donc aucun mérite c'est mes cours.
Pour ce qui est du projet en lui meme j'ai deja commencer l'année derniere vite fait je vous laisse voir vite fait le code . http://lilleinfo.free.fr/Society.zip sous License GNU GPL
C'est rudimentaire mais ça tourne.
pour ce qui est du développement du projet vous pensez que le mieux est de faire genre un blog ou l'on continue sur ce post ? car je pense qu'il serait agréable d'avoir des avis de droite et gauche donc je veux continuer a poster le developpement.
Bonne soirée
DisSsha
Dernière modification par DisSsha (Le 30/05/2008, à 20:56)
DisSsha
Etudiant Lille 1 informatique (4ème année)
Blog : http://jaGrow.wordpress.com
Hors ligne
#11 Le 30/05/2008, à 19:30
- guyver2
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
un blog c'est utile si le projet démarre vraiment (ce qui vu ta motivation devrait pas tarder).
Ce forum est plutot un endroit d'entraide ponctuelle.
A la limite tu viens nous donner des nouvelles de temps en temps suivant l'avancement de ton projet.
Pour ton projet de l'an passé, si tu pouvais nous en dire plus. Comment il fonctionne, comment interagir... ?
Pour le moment j'ai juste des petit carrés verts qui courent dans tous les sens
Edit : Au fait, excuse moi. Je suis navré d'avoir sous-estimé ton niveau... Mes quelques posts doivent te sembler assez hors contexte.
Dernière modification par guyver2 (Le 30/05/2008, à 19:31)
Croire est le meilleur moyen de ne jamais rien savoir
Mes jeux en C/C++
Hors ligne
#12 Le 30/05/2008, à 20:46
- DisSsha
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
un blog c'est utile si le projet démarre vraiment (ce qui vu ta motivation devrait pas tarder).
Edit : Au fait, excuse moi. Je suis navré d'avoir sous-estimé ton niveau... Mes quelques posts doivent te sembler assez hors contexte.
Ce n'est absoluement rien j'ai pas la prétention de tout savoir a grace a la fac par exemple j'ai jamais fait de C++.
Pour le blog ok je vais me lancer la dessus.
Pour le projet (qui est le meme que cette année mais moins abouti) en fait le principe c'est :
/Des agents gris qui n'ont aucun but et qui errent sans but
/Des agents rouges qui sont une mutation des agents gris car ils ont marché sur une case contenant de la nourriture (point vert)
/un point marron = la maison pour la récolte
/Des points jaunes -> des mineurs qui rapportent du métal
Les agents meurent quand ils ne trouvent plus de nourriture (géré de maniere globale)
Si un agent rouge croise un autre agent rouge ils conversent et échange la position de leurs "spots" de nourriture ainsi les récolteurs trouvent vite le chemin le plus rapide
Quand un spot de nourriture disparait les récolteurs redeviennent des "errants"
Le probleme de se projet c'est que niveau graphique c'est trop limité, et que j'ai pas toutes les connaissances pour par exemple réduire la vitesse afin de liberer du cpu.
Voila
DisSsha
Etudiant Lille 1 informatique (4ème année)
Blog : http://jaGrow.wordpress.com
Hors ligne
#13 Le 30/05/2008, à 21:42
- LittleWhite
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
Le probleme de se projet c'est que niveau graphique c'est trop limité, et que j'ai pas toutes les connaissances pour par exemple réduire la vitesse afin de liberer du cpu.
La méthode que j'utilise habituellement ( pour la SDL et OpenGL ) et qui marche certainement pour Java.
Algorithme :
recupère temps
affichage
recupère temps2
if ( temps2 - temps < 10ms )
wait ( 10 - ( temps2 - temps ) )
fin Algorithme
( la fonction pour récupéré le temps existe en java je l'ai déjà utilisé ) ( souvent faut récupérer le temps en millisecondes ou dans une echelle plus précise mais pas en secondes )
Voila mais le problème c'est que tu ralenti la fonction de gestion de population ( si elle se fait en temps réel ; sans thread ( ce qui est pas très bien ))
Linux ou mourir
Pour avoir des problemes : demarrer Windows
Script de compression multi archive : http://forum.ubuntu-fr.org/viewtopic.php?id=225297
Hors ligne
#14 Le 30/05/2008, à 23:39
- DisSsha
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
si elle se fait en temps réel ; sans thread ( ce qui est pas très bien ))
Je ne suis pas un fan du Thread ici en particulier pour moi ça serait une bien mauvaise option car l'utilisation de thread va engendrer la necessité de faire des synchronized un peu partout (ramasse objet, conversation,etc) ce qui va fortement ralentir l'application.
En reflechissant dans l'autre sens, il n'y a pas vraiment de probleme a faire un seul thread dans lequel on traite chaque agent un par un car au final je ne vois pas ce que le multi-threading va apporter si ce n'est que autre probleme, l'on est fortement limité sur le nombre de thread et bcp moins sur une liste d'agents.
Tout cela dans le cas ou tu voulais un thread par agent
Si c'est une toute autre conception style un thread pour les individus au sens large un pour le graphisme etc je suis d'accord cette conception est envisageable est interessante.
Je remonte une question posée plus haut, dans le projet en ligne je me sert d'une grille avec des cases, ça pose un probleme pour la conception de structure sur plusieurs cases par exemple pour l'aspect graphique (en gros c'est moche de faire un style une construction = agent avec une liste de position )
Sinon j'ai vu une api pas trop moche en java pour réaliser le coté graphique elle s'appele NetLogo : http://ccl.northwestern.edu/netlogo/
Voila pour ce soir
DisSsha
Etudiant Lille 1 informatique (4ème année)
Blog : http://jaGrow.wordpress.com
Hors ligne
#15 Le 31/05/2008, à 01:31
- Lomendil
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
Salut !
Ca m'intéresserait assez de rejoindre le projet.
En effet je suis totalement novice en C++ et Java (je suis développeur LAMP) et je vais avoir besoin de m'y mettre pour des projets de robotique. Ca serait donc un excellent moyen de mettre les mains dans le camboui
Evidemment le côté intelligence artificielle et évolution me passionne, je suis également myrmécologue amateur, ce qui pourrait être une bonne source d'inspiration pour le projet.
A+
Hors ligne
#16 Le 31/05/2008, à 01:59
- LittleWhite
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
Si c'est une toute autre conception style un thread pour les individus au sens large un pour le graphisme etc je suis d'accord cette conception est envisageable est interessante.
Oui c'est que je voulais dire, un thread pour la gestion des graphismes ( 60 FPS par exemple soit le reste du temps il attend , voir mon algo ) et un autre thread pour les agents ( au sens general donc ).
En fait personnellement j'ai un problème avec les agents , c'est que je ne saisis pas trop le principe ( peut etre car je n'ai jamais fais de jeu de la vie ... )
De plus on parle plus pour le langage JAVA mais je ne connais pas la gestion des threads sous JAVA, donc c'est d'un point de vue très éloigné que je proposé ma solution
Dernière modification par LittleWhite (Le 31/05/2008, à 02:00)
Linux ou mourir
Pour avoir des problemes : demarrer Windows
Script de compression multi archive : http://forum.ubuntu-fr.org/viewtopic.php?id=225297
Hors ligne
#17 Le 31/05/2008, à 04:35
- DisSsha
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
En fait personnellement j'ai un problème avec les agents , c'est que je ne saisis pas trop le principe ( peut etre car je n'ai jamais fais de jeu de la vie ... )
Pas encore finit potasser le domaine pour en donner une definition fiable...
je suis également myrmécologue amateur, ce qui pourrait être une bonne source d'inspiration pour le projet.
Moi aussi !! j'ai eu une colonie de pheidole pallidula pendant 1 an
Pour ce qui est du projet libre a toi de te lancer mais ça me parait chaud de commencer par un projet comme ça direct. Car le coté conception on en a parlé a une partie importante du projet et ça va pas etre de la tarte !
bon aller je vais dodo
DisSsha
Etudiant Lille 1 informatique (4ème année)
Blog : http://jaGrow.wordpress.com
Hors ligne
#18 Le 02/06/2008, à 18:14
- DisSsha
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
Bonjour !
J'ai finis mes examens, je viens de passer une journée de réflexion sur le problème du language, l'idée de réaliser un programme accessible sur plusieurs plateforme me tiens a coeur, j'aimerais donc un langage dans ce sans.
le python me fait des yeux doux.
Le C++ pose un problème pour le multiplateforme.
j'ai également un soucis, j'ai envie de faire les choses bien, donc je recherche des solutions pour la gestion de projet (svn, controle de versions, etc).
please help me (blog bientot en place j'hésite encore avec worldpress ou un autre)
DisSsha
Etudiant Lille 1 informatique (4ème année)
Blog : http://jaGrow.wordpress.com
Hors ligne
#19 Le 03/06/2008, à 19:36
- DisSsha
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
Bonjour, toujours en phase de recherche, j'ai découvert les algorithmes génétiques, et je pense faire mon projet la dessus c'est je pense un moyen algorithmique tres sympas pour simuler de l'évolution.
quelqu'un en a deja fait ?
DisSsha
Etudiant Lille 1 informatique (4ème année)
Blog : http://jaGrow.wordpress.com
Hors ligne
#20 Le 03/06/2008, à 20:50
- LittleWhite
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
Oui, c'est mon stage de fin d'année de mon IUT, en JAVA en plus ( enfin le langage importe que très peu pour cette algorithme ). Donc normalement je suis au point les algos génétique.
Par contre il se peut que ce soit assez lent ... ( enfin cela dépend de beaucoup de choses )
Linux ou mourir
Pour avoir des problemes : demarrer Windows
Script de compression multi archive : http://forum.ubuntu-fr.org/viewtopic.php?id=225297
Hors ligne
#21 Le 07/06/2008, à 14:57
- Lomendil
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
@DisSsha : Le myrmécologue ubuntien serait-il une espèce répandue ?
De mon côté je vais me faire mon propre projet pour m'entrainer et il sera en C++.
Par contre ça serait chouette que vous ouvriez un espace quelque part sur le net pour que je (et d'autres) puisse suivre ce que vous faites, ça peut être instructif.
Question subsidiaire : Où est-ce qu'on peut trouver des ressources sur ces algos génétiques ? Ca m'intéresse !
Hors ligne
#22 Le 07/06/2008, à 15:26
- DisSsha
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
Bonjour, j'ai déposé un blog sur le développement de mon projet, voici l'url :
http://jagrow.wordpress.com
hésiter pas a laisser des commentaires .
bye
DisSsha
Etudiant Lille 1 informatique (4ème année)
Blog : http://jaGrow.wordpress.com
Hors ligne
#23 Le 08/06/2008, à 00:54
- :p
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
J'ai visité ton blog
Je vais suivre l'avancement de ton projet avec grand interet
#24 Le 08/06/2008, à 01:00
- manureva12
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
Salut,
J'avais bossé sur un programme (fait en python) d'algo génétiques pour faire de l'optimisation de fonctions mathématiques. On avait testé aussi au passage l'optimisation par recuit simulé.. C'est vraiment facile à coder le tout (environ une centaine de lignes)
Pour la doc, j'avais surtout lu cet article qui résume très bien le fonctionnement des AG.
http://magnin.plil.net/spip.php?rubrique8
Il y a également de la documentation très intéressante sur la réalisation pratique sur les techniques de l'ingénieur (si tu y a accès)
Bye
Hors ligne
#25 Le 08/06/2008, à 13:06
- DisSsha
Re : [Projet Programmation] Jeu de la vie, simulation etc ...
merci !! non je n'ai pas l'acces sur les techniques de l'ingénieur. Il faut payer pour accéder aux documents, j'ai jeté un œil et je n'ai trouvé que 2 dossiers en rapport avec ce que je fais, mais c'était tout de même assez éloigné.
En tout cas merci
DisSsha
Etudiant Lille 1 informatique (4ème année)
Blog : http://jaGrow.wordpress.com
Hors ligne