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

Projets Discussion :

[C++][Qt][ODE][SFML] Utopia (MMOSTR de programmation)


Sujet :

Projets

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 141
    Points : 195
    Points
    195
    Par défaut [C++][Boost][Ogre][ODE][Lua] Utopia (MMOSTR de programmation)
    Bonjour,
    Je suis Lynix et je programme depuis 6 ans maintenant dans deux langages de programmations (C, C++), trois langages de scripts (PHP, Lua, javascript).
    Je programme également les sites web et je fais de la modélisation 3D.

    J'ai toujours eu un penchant pour la programmation et le développement de jeux vidéos.

    Il y a quelques mois j'ai commencé avec deux amis le jeu vidéo que je vais vous présenter : Utopia.

    Utopia, est un jeu de gestion spatial en 3D extrêmement poussé vers le côté stratégique, le but est qu'il ne suffit pas d'avoir la plus grosse pour gagner, c'est principalement l'intelligence et la finesse des joueurs qui détermine leur force.

    Le jeu est prévu pour être un MMOSTR étendu sur la voie lactée.

    Évidemment pour rendre le jeu jouable sur une aussi grande distance, tout est prévu comme des zooms sur des régions de l'espace, des amas d'étoiles, etc...

    Le jeu

    Le jeu met à l'épreuve l'intelligence des joueurs, il s'agit en effet d'un jeu de programmation, c'est-à-dire que le joueur programme dans ce jeu.

    L'action n'est pas directe, le joueur donne par exemple l'ordre à ses troupes d'attaquer une planète, et lorsque la flotte aura atteint la planète ennemie, les différents scripts réagiront.
    Les joueurs peuvent voir l'action en direct, ou bien regarder une "rediffusion" dans le cas où un combat à eu lieu pendant que le joueur n'était pas actif.
    Lors d'un combat, un environnement ODE est créé pour gérer la physique (collisions, tirs d'armes, déplacements des vaisseaux) pendant l'affrontement.

    Je m'excuse si je ne suis pas très clair dans mes explications, c'est assez difficile d'écrire cela.

    L'univers du jeu :

    Le jeu se déroule dans un univers post-apocalyptique après une guerre entre l'homme et l'IA, le jeu est d'ailleurs centré sur les IA.

    Je n'en dis pas plus, n'allez pas croire que rien n'est préparé, il y a un forum de développement contenant beaucoup d'informations sur le jeu, dont le scénario complet.

    Gameplay :

    Le jeu se déroulant dans l'espace, il est évident que le joueur contrôle des planètes, il n'y a pas presque pas de restriction quant à la colonisation des astres (Disons juste que coloniser une étoile est l'une des seule limite dans ce domaine).

    Comme je l'ai déjà dis, le jeu est tourné vers la stratégie pure, chaque action du joueur affecte sa défense, par exemple le placement des bâtiments.

    La carte du monde est un outil du joueur permettant d'avoir une vue sur toute la surface d'une planète (comme une sphère dépliée), lui permettant de placer ses bâtiments, ses défenses, etc...

    L'astuce est que des bâtiments ont leur importance, le centre de contrôle d'une planète peut être détruit, empêchant certaines fonctions dans les scripts, désactivant des défenses, etc...

    Une des perspectives en créant ce jeu, est de laisser le libre arbitre au joueur, il fait ce qu'il veut !

    Il existe différents niveaux de programmations dans le jeu, c'est le principe de la basse et de la haute programmation, une basse programmation est une programmation plus complexe que la haute programmation.

    Les possibilités restent à priori les mêmes, mais le joueur gagne en précision en programmant en basse programmation (Par exemple il peut donner l'ordre de tirer sur les moteurs du vaisseau ennemis, ou alors calculer un point bien précis, orienter les tourelles et donner l'impulsion énergétique)

    Des codes de base existeront dans le jeu, c'est d'ailleurs ça qui fait le niveau de programmation, le joueur fait vraiment ce qu'il veut, si il oriente une tourelle et qu'il tire sans vérifier si le rayon ne touchait son propre vaisseau, il est capable de s'endommager lui-même.

    Des vaisseaux de bases, des exemples, des tutoriels seront disponibles pour permettre au joueur d'apprendre le langage et de commencer directement l'action.

    De plus, un "générateur de code" permettra aux joueurs non-programmeurs d'être aussi de la partie (Mais programmer est mieux pour ce jeu, c'est un jeu de programmation après tout)

    Ressources :

    Les ressources sont divisées en ressources principales et secondaires.

    Les deux ressources principales sont l'énergie et la matière (Métal).
    Mais le jeu présente son lot de ressources secondaires, comme l'uranium, l'hydrogène, le deutérium, etc...

    Technologies utilisées :
    Le jeu utilise la librairie Boost comme base, qui est très puissante.

    Pour ce qui est des graphismes 3D, Ogre 3D sera utilisé

    Ensuite il y a ODE que j'ai déjà cité, je le trouve facile à utiliser et il servira principalement pour les combats spatiaux (collisions, déplacements, tirs d'armes via le RayTracing)

    Pour ce qui est de la programmation côté joueurs, le Lua sera utilisé.

    Afin de garder nos travaux en réseau, l'outil SVN sera utilisé.

    Postes disponibles :

    - Deux programmeurs (1/2)
    Nous sommes actuellements 3 programmeurs dans l'équipe, et nous cherchons à être 5, nous ne voulons pas être trop nombreux (Programmer à plusieurs n'offre pas que des avantages).

    Nous recherchons un minimum d'expérience avec le C++ et la 3D, il n'est pas indispensable de connaître les bibliothèques utilisées mais c'est un plus.
    Car en effet, Ogre 3D étant utilisé, il est préférable de le connaitre pour bien le manier.

    - Trois modeleurs (0/3)
    Le travail demandé sera de faire des vaisseaux spatiaux selon des indications précises, cependant rien ne vous empêchera d'y mettre une touche d'inspiration de votre part.

    Il sera aussi demandé de faire des satellites, des sondes. Des stations spatiales sont aussi prévues, mais il serait préférable de coordonner vos efforts pour ça.

    - Trois graphiques (0/3)
    Le rôle des graphistes sera se faire des textures pour le jeu, comme des textures de vaisseaux (Du métal brossé ferait l'affaire pour la plupart), une connaissance en Bump Mapping est préférable.

    Il est possible que ces graphistes doivent s'occuper d'une partie des planètes, mais il y en aura probablement plusieurs milliards, le jeu s'occupera d'en générer aléatoirement la texture, en utilisant peut-être des travaux de graphistes.

    - Un webmaster/designer (Place encore libre)
    Le jeu aura son site, je n'aurais pas le temps de vraiment m'en occuper par contre.

    Le travail demandé sera le suivant : faire un design, et faire le code PHP qui est derrière (Cependant, réinventer la roue n'ayant pas beaucoup d'utilité, utiliser un design/code déjà fait ne pose pas de problème, tant que ça reste du côté de la légalité).

    Il faudra aussi que cette personne soit capable de gérer un forum, avec sa propre organisation des modérateurs si elle le souhaite.

    L'équipe de développement du jeu et l'équipe du site web (webmaster + modo) sont deux équipes différentes, qui se réunissent pour parler des nouveautés, des annonces, etc...



    Le jeu aura son code source propriétaire.

    Alors voila, j'ai mis plus d'une heure pour écrire ceci donc je vous prie de prendre le temps de répondre, même si ce n'est que pour donner votre avis, cela peut nous permettre d'avancer.

    Merci d'avance pour vos réponses

  2. #2
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Points : 2 161
    Points
    2 161
    Par défaut
    salut,

    excellente présentation;
    J'ai personellement l'impression que tu as la tête sur les épaules et l'expérience en dév. pour mener ce projet à bien (pas tout seul, bien entendu ).

    Deux remarques:

    - tu parles d'un forum sur lequel sont compilées pas mal d'infos. Mais tu ne donnes aucun lien ; donner un lien permettra vraisemblablement aux candidats potentiels de mieux cerner le concept et l'intérêt du jeu, donc d'avoir plus de candidats

    - tu parles de te débarrasser de Qt, mais j'en vois mal l'intérêt. Au contraire: Qt propose pas mal de technos supplémentaires (threads, sockets, parseur XML, DB, portabilité inter OS, ...) qui pourraient t'être utile pour la suite des choses.

    Donc pourquoi vouloir s'en débarrasser si ce n'est pour perdre du temps à refaire la roue (en probablement moins bien, les ingés Qt étant très compétents dans leur domaine) ?
    Au contraire, Qt pourrait même te servir 'out of the box' pour tes besoins en interface 2D (avec beaucoup de possibilités, genre ça).

    La cerise sur le gâteau: Qt est maintenant en LGPL et permet donc de l'utiliser gratuitement en gardant ton code source fermé.

    Bonne continuation quoi qu'il en soit
    Mon projet du moment: BounceBox, un jeu multijoueurs sur Freebox, sur PC et depuis peu sur smartphone/tablette Android.

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 141
    Points : 195
    Points
    195
    Par défaut
    Merci de ta réponse,

    Pour ce qui est du forum, j'ai dû oublier de préciser qu'il n'était réservé qu'a l'équipe, certaines informations comme le scénario ne sont pas destinées à être pleinement diffusées (Le scénario devra être découvert par le joueur par exemple)

    Pour ce qui est de Qt, il est vrai que je n'utilise que le coeur et que la dll ne pèse que 2-3 mo, il faudra que j'y repense.

    Le désavantage de Qt est sa difficulté à être compilé, j'ai été obligé de passer sous CodeBlocks pour avoir un projet permettant de fonctionner sous toutes ces librairies, mais je ne veux surtout pas l'imposer aux autres membres du projet.

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Points : 969
    Points
    969
    Par défaut
    Le désavantage de Qt est sa difficulté à être compilé, j'ai été obligé de passer sous CodeBlocks pour avoir un projet permettant de fonctionner sous toutes ces librairies, mais je ne veux surtout pas l'imposer aux autres membres du projet.
    Qt est compatible avec tous les principaux IDE / compilateurs, étant donné qu'il repose sur les makefiles. Il existe même des versions Java et Python. Rares sont les frameworks qui peuvent se vanter d'être aussi "flexibles".

    Et je rejoins nounouk sur la "portée" des modules de Qt (threads, sockets, parseur XML, BDD, Webkit, OpenGL, etc...) et sur "la qualité" du framework (niveau optimisation, ils sont balèzes ! ).

    G.
    Un problème avec Qt ? Vous trouverez votre réponse ici : http://doc.trolltech.com/4.6/overviews.html
    En français (traduction réalisée par l'équipe Qt de DVP) : http://qt.developpez.com/doc/4.6/vues-d-ensemble/

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 141
    Points : 195
    Points
    195
    Par défaut
    Mise à jour des technologies utilisées.

    Je conçois que ce n'est pas très clair, mais si vous ne comprenez pas quelques chose, n'hésitez pas à me demander

    Comme je l'ai déjà dis, chaque commentaire est susceptible de faire avancer le projet.

  6. #6
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Salut,

    Juste une question ; tu dis compter utiliser Ogre3D comme moteur, mais tu parles pourtant d'utiliser OGL directement. Pourquoi ?

    Pour ce qui est de Qt, il y a autant de raisons de le garder que de l'écarter, donc je pense que tu verras le moment venu quand tu auras vraiment attaqué l'étape conception


    Edit: je viens de percuter pour une autre question
    Pourquoi utiliser la SFML pour le fenêtrage et non pas CEGUI utilisé conjointement à Ogre ?

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 141
    Points : 195
    Points
    195
    Par défaut
    Ah merde, j'ai pas mis le reste du topic à jour :/

    Je corrige ça, c'est bien Ogre et CEGUI qui sont utilisés, Qt est remplacé par boost (vu qu'on utilisait que le coeur de Qt)

    Si un modérateur pouvait modifier le titre pour remplacer les librairies par "[C++][Boost][Ogre][ODE][Lua]", merci

  8. #8
    Membre éprouvé Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    Février 2006
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : Février 2006
    Messages : 797
    Points : 1 087
    Points
    1 087
    Par défaut
    Adaptation de ogame en C++ ?

  9. #9
    Membre habitué
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 141
    Points : 195
    Points
    195
    Par défaut
    On peut programmer dans Ogame?

  10. #10
    Membre éprouvé Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    Février 2006
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : Février 2006
    Messages : 797
    Points : 1 087
    Points
    1 087
    Par défaut
    Je n'y est jamais joué mais j'ai vu des potes y jouer et il me semble y avoir pas mal de similarité mais je n'ai pas dis que c'était un clone ^^
    Bonne chance pour ton projet

  11. #11
    Membre habitué
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 141
    Points : 195
    Points
    195
    Par défaut
    Les similitudes sont les suivantes : On conquiert des planètes et on peut se battre contre d'autres joueurs, c'est la base de n'importe quel RTS spatial, donc n'allez pas dire que c'est une adaptation d'Ogame

  12. #12
    Membre éprouvé Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    Février 2006
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : Février 2006
    Messages : 797
    Points : 1 087
    Points
    1 087
    Par défaut
    C'est pas faux, et vu qu'il n'y a pas beaucoup de jeux de simulation spatial on fait vite l'amalgame. Par contre quel est le public visée car une grande majorité de gens n'essayent même pas les jeux un tant soi peu complexe.
    Utopia c'est aussi un très vieu jeu de simulation spatial même si c'est pas vraiment le même genre (ancien fan ?) : http://www.abandonware-paradise.fr/G...are/Utopia.png

  13. #13
    Membre habitué
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 141
    Points : 195
    Points
    195
    Par défaut
    Ah j'ignorais l'existence de ce jeu, le nom Utopia vient du fait que le jeu se déroule après un cataclysme survenu durant une "Utopie humaine", c'est également le nom d'une intelligence artificielle ayant une très grande importance dans le jeu.

    Je ne peux pas divulger le scénario du jeu car l'une des taches du joueur est de le découvrir (Le joueur découle immédiatement des évènements de l'histoire)

    Pour ce qui est du public visé, il est certain que les programmeurs seront privilégiés, cependant pour les personnes ne voulant pas programmer (Ou celles qui trouvent ça plus pratique tout simplement), elles peuvent utiliser un "générateur de script", sous la forme d'une interface Gui.

    C'est un peu le même principe que pour l'éditeur de déclencheur de Warcraft 3, l'interface Gui génère un script mais les joueurs qui le désirent peuvent programmer le script directement.

    Pour résumer, ce jeu ne vise pas une minorité comme on pourrait le penser (Beaucoup de gens utilisent l'éditeur de déclencheur de Warcraft par exemple)


    Edit : En me relisant, j'ai vu que certains pourraient penser que le scénario est un remake de celui de Terminator, il existe bien des similitudes mais le scénario possède une certaine originalité et quelques subtilités intéressantes.

Discussions similaires

  1. Diffusion d'un programme utilisant SFML sous Linux
    Par dreadtalk dans le forum Développement 2D, 3D et Jeux
    Réponses: 12
    Dernier message: 20/02/2014, 18h53
  2. [Projet en cours] Utopia [MMORTS de programmation]
    Par Lynix dans le forum Projets
    Réponses: 12
    Dernier message: 27/02/2011, 17h46
  3. Utiliser les solveurs ODE de MATLAB dans un programme en C++
    Par yanndublanche dans le forum MATLAB
    Réponses: 8
    Dernier message: 12/12/2007, 15h40
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

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