Je m'appelle Jérôme, alias Lynix, j'approche de mes 17 ans et je programme depuis mes 10 ans. Je maitrise le C/C++/Lua/PHP et je manie le javascript/SQL. Je suis également modéliste 3D grâce à Blender et je mappe sous le moteur Source (HL²) et Warcraft 3.
Il y a un peu plus d'an, je voulais réaliser mon propre jeu basé sur un concept assez peu exploité, les jeux de programmations.
Pour ceux qui ne connaissent pas, il s'agit d'un jeu où le joueur est invité à programmer afin de contrôler une ou des entités, souvent lors d'une confrontation où le meilleur programme survit.
Je citerais comme exemple Robocode, un jeu où des robots contrôlés par un programme créé par les joueurs s'affrontent dans une arène.
Utopia est un jeu tout droit sorti de ce concept, à l'exception d'une chose, il s'agit d'un MMO doté d'un univers persistant, ce qui change complètement la donne.
Mais qu'est-ce qu'Utopia exactement?
Le jeu
Utopia est un MMORTS de programmation, basé sur la stratégie et la tactique réfléchie.
Le jeu se déroule dans l'espace, dans la voie lactée plus précisement, après un évènement tragique à l'échelle de la galaxie (jeu post-apocalyptique).
Pour comprendre, il faut lire le scénario, le joueur ne connait pas toute l'histoire à la base, des éléments dispersés dans la galaxie l'aideront à la découvrir, mais voici ce qu'il sait:
Scénario
Ses origines remontent directement à UTOPIA, la plus grande intelligence artificielle qui ait existé, cet immense programme fut démantelée, décomposée en fragments de programme laissés inactifs. Ces fragments furent réactivés par des évènements parfois aléatoires, parfois volontaires, ceux qui avaient, ne serait-ce qu'une minuscule partie du programme d'apprentissage d'UTOPIA pouvaient se développer et devenir des IA à part entière.
Dans ce jeu, le joueur incarne l'un de ces fragments, venant de se réactiver et reprenant le contrôle de la planète.
Hé oui, le joueur est une IA.
Gameplay
Le terrain de jeu du joueur s'étend à toute la galaxie, avec plusieurs milliards d'étoiles, il n'y aura pas de nombre fixe, plus la communauté du jeu grandira, plus le nombre d'étoiles augmentera.
Les contrôles du joueur sont divers, il contrôle sa/ses planète(s) à partir d'une vue orbitale de sa planète (Comme lorsque vous déroulez la Terre), il possède également une vue spatiale, il peut observer la galaxie, zoomer sur des régions.
Comme l'univers est assez vaste, il est évident que les joueurs doivent pouvoir se retrouver d'une façon ou d'une autre. C'est pour cela que la vue spatiale (galactique), permet d'afficher avec plus ou moins de précision la concentration des IA actives (joueurs) dans la voie lactée.
Le joueur s'étend donc sur sa planète, et évidemment peut en conquérir d'autres, mais rien ne l'empêche de s'étendre dans l'espace et d'y établir des stations spatiales.
Je vais aborder le sujet des technologies, c'est le nom donné à ce que les joueurs peuvent créer, comme les vaisseaux.
Il en existe actuellement 2 types :
Les vaisseaux (Reprenant les sondes automatisées et les stations spatiales)
Les satellites
Le joueur peut créer ses technologies comme il le souhaite, il commence par choisir la coque (l'apparence externe, le modèle 3D) dans une liste officielle, et une liste non-officielle (Les joueurs peuvent créer et utiliser leurs propres modèles 3D), il peut ensuite choisir les armes qu'il y ajoute (Disponibles selon le modèle 3D), décider le pourcentage de place libre du vaisseau qu'il alloue à la soute par exemple, et il peut surtout le programmer pour décider de son comportement selon la situation.
Le joueur pourrait donc créer théoriquement ce qu'il veut comme vaisseau et possède très peu de limites.
Combats
Utopia permet au joueur de faire ce qu'il veut, mais il y a évidemment les combats spatiaux que probablement personne ne pourra éviter.
Nous avons donc beaucoup misés sur les combats, car en effet, lors d'une attaque d'un joueur A sur un joueur B, les deux joueurs sont prévenus et peuvent assister au combat en temps réel, il n'y a pas de limite quant au nombre de vaisseaux qui peuvent combattre, et certains combats pourraient durer plusieurs dizaines de minutes, voire d'heures (On parle ici de combat épique concernant plusieurs joueurs bien évidemment)
Mais pour parler des combats, en n'oubliant pas la nature du jeu, les joueurs auraient une caméra libre leur permettant d'observer le combat comme s'ils y étaient. Et si ils y étaient? Car en effet Utopia va plus loin, il sera possible pour les joueurs de prendre le contrôle d'un vaisseau de leur choix pour participer directement.
Le joueur peut bien sûr interagir avec sa flotte durant le combat, en lui donnant des ordres comme "Battez en retraite", ou "Couvrez-moi" lorsqu'il contrôle un vaisseau.
Lorsque vous perdez un combat, vous n'avez pas tout perdu, car en effet le jeu vous permettra d'enregistrer les combats, pour les rejouer et voir où est-ce que votre tactique n'a pas fonctionné. Et en allant plus loin encore, vous pouvez faire des simulations à partir d'un enregistrement, le principe est le suivant : Vous prenez l'enregistrement, et vous le modifiez, en ajoutant des vaisseaux dans votre camps, en modifiant le programme de vos vaisseaux, l'enregistrement passe alors en mode simulation, qui vous permettra d'étudier les programmes ennemis via les réactions des vaisseaux, car les codes sources ne seront évidemment pas transmis avec l'enregistrement.
Rien ne vous empêche d'oublier les méthodes conventionnelles, de créer un énorme vaisseau avec de puissants moteurs, une grande soute, de la remplir d'explosifs et d'envoyer le vaisseau se crasher sur un vaisseau-mère ennemi, le but est de donner le plus de liberté au joueur.
Technologies utilisées
Le jeu est écrit en C++ et utilise un moteur de jeu spécialement créé pour lui : l'Ungine, lui-même utilisant d'autres moteurs :
Moteur audio: OpenAL
Moteur physique: Newton Game Dynamics
Moteur réseau: RakNet
(La liste n'est peut-être pas complète, l'Ungine évoluant chaque jour)
L'Ungine n'utilise pas de moteur externe pour les graphismes, cette partie du moteur est gérée en l'interne.
Je compte présenter l'Ungine en détail sur une autre discussion.
J'ai beaucoup parlé de la programmation dans ce topic, sans m'étendre dessus car c'est un long sujet, sachez juste que le langage Lua sera utilisé.
Pour ce qui est du serveur, nous aurons une machine aux environs de mai 2010.
Pour finir, un jeu d'une telle envergure se doit d'être fait en équipe.
Voici donc l'équipe du jeu :
Jérôme "Lynix" Leclercq : Moi-même, fondateur et dirigeant du projet, je programme l'Ungine et je m'occupe du site web.
Grégoire "Chidie" Rinolfi : Programmeur, conseille sur la création du jeu et aide à son élaboration.
Yannick "Shade Master" Copin : Programmeur/sounder, s'occupe des musiques du jeu ainsi que d'une partie du code du jeu.
Stéphane "R1kemwa" Feront : Graphiste 3D, se charge des bruitages ainsi que de faire des vaisseaux pour le jeu.
Damien "Angelis" Elsensohn : Graphiste 2D, s'est occupé du logo et de la charte graphique du site et du forum (Visibles en fin de topic).
Communauté
Le but de ce topic est d'essayer de démarrer une communauté autour du jeu, d'avoir des gens intéressés (Un MMO, c'est bien, des joueurs, c'est mieux).
Il faut savoir que le jeu sera gratuit et que tout le monde y aura accès, la programmation pouvant être remplacée par une interface GUI (Worldedit de Warcraft 3 utilise cette méthode, une interface GUI qui écrit du code en arrière-plan).
Pour l'instant le site web n'est pas ouvert, on travaille dessus. Sachez juste que nous faisons de notre mieux pour qu'il soit disponible dans les plus brefs délais.
Je n'ai pas écris tout ceci dans le but de recruter, nous ne voulons pas être trop nombreux à bosser sur le jeu.
Toutefois, pour les intéressés, nous sommes à la recherche d'un Sounder pour s'occuper des bruitages (Tirs d'armes, collisions entre vaisseaux, sons des propulseurs, etc), de modélistes 3D pour faire les modèles des vaisseaux (Et autres technologies) pour le jeu.
Nous sommes à la recherche de gens capables de faire des arts-works de vaisseaux spatiaux, de satellites ou de station spatiale. Ces arts-works serviront aux modélistes 3D afin de réaliser le dessin dans le jeu.
Le mot de la fin
Je vous demanderais s'il vous plait de bien donner votre avis sur le jeu, même s'il ne vous plait pas, dans le but de le faire progresser.
Bonjour,
Je suis Grégoire Rinolfi, je participe au projet Utopia depuis ses premiers jours et je suis enthousiasmé par l'énergie que Lynix met dans ce projet et sa détermination qu'il a de surmonter les obstacles.
Le jeu Utopia est intéressant par la liberté qui est offerte au joueur, tant dans les combats que dans l'exploration.
Par le biais de la programmation, nous donnons au joueur le moyen d'organiser ses défenses, d'automatiser certaines tâches pour se concentrer sur d'autres éléments du jeu.
Bien-sûr tout le monde ne sachant programmer, un wiki sera disponible pour apprendre comment scripter le jeu et pour permettre aux joueurs de proposer leur codes, voire même rédiger des tutos.
Il s'agit d'un script Lua dirigeant une technologie (vaisseau/etc...), analysant la situation et agissant en conséquence.
Voici un exemple (écrit il y a longtemps) :
function Radar:OnNewObject(obj) -- Quand le radar détecte un objet
if (obj:GetType() == TYPE_ASTEROID) then
if (obj:GetMass() <= 50 && obj:GetRadius() <= 100) then -- Masse en tonne, Rayon en kilomètre
local lasers = weapon:GetWeapons(TYPE_LASER) -- Accès aux armes de type laser
lasers:SetTarget(obj) -- On vise
lasers:Fire() -- On tire
else
local con = core.GetConnexion(CENTRAL_COMPUTER) -- Demande de connexion
if (con:IsValid()) then -- Si la connexion à été établie
con:Send(TYPE_ALERT,"Un astéroide ne pouvant être détruit est en approche de la planète !") -- On envoie une alerte
end
end
end
end
Je précise toutefois que le jeu est prévu pour être tout-public, donc pas un jeu uniquement joués par des programmeurs.
Cela sera rendu possible avec le GUI, un bon exemple est WorldEdit de Warcraft 3, l'éditeur de déclencheur utilise un langage de programmation qui est écrit automatiquement via une interface GUI simplifiée, ce principe sera repris dans Utopia.
Bonjour,
C'est un projet très intéressant, que je vais suivre avec grand plaisir Cependant, il y a une question qui subsiste après lecture et relecture du post, le développement en est où (à peu près, juste pour avoir un ordre d'idée :)) ?
Pour ce qui est de l'avancement du projet, nous avons une équipe stable et l'Ungine est en développement. Le moteur réseau et le moteur graphique sont fonctionnels.
Le moteur de scripting sera écrit avant la fin du mois et quant au moteur physique, il devrait être opérationnel assez tôt.
Nous travaillons sur le site, dont le forum ouvrira très bientôt.
Il y a aussi une démo du contrôle d'un vaisseau spatial qui fonctionne, il manque l'intégration du moteur physique et la mise en réseau de cette application.
Pour résumer, avant 2010 nous devrions avoir une simulation de combat spatial dont les vaisseaux sont dirigés par des scripts Lua, avec l'intégration du réseau permettant à plusieurs personnes d'assister au combat.
Ça semble très ambitieux comme projet, et ça donne furieusement envie d'en savoir plus. Une sorte d'ogame en 3D mélangée à de la prog...
Reste à voir l'évolution du projet, car non seulement c'est pas simple à réaliser, mais encore faut-il que cela fonctionne une fois terminé: au sens que le jeu soit intéressant à jouer, et que les possibilités offertes soient réellement exploitables.
Sur le papier en tout cas ça donne envie, faut voir la suite...
Je suis l'un des sounders du jeu, armé de 2 synthétiseurs, d'un pc, de fl studio 8, d'un bon micro, et d'un peu d'imagination, je vais travailler sur les bruitages, qui seront sans doutes nombreux !
Je travaille aussi sur le site avec Lynix, pour le rendre design, clair, beau tout en étant léger et rapide.
Je suis pour l'instant en train d'apprendre Blender, pour pouvoir participer au graphismes du jeu.
Ce projet d'envergure avance rapidement et je suis très impatient que le jeu sorte.
Utopia est développé dans le but d'être disponible sous Windows, Linux et Mac (32 et 64 bits).
Il sortira sous les trois OS le plus rapidement possible.
Le code est adapté et les bibliothèques multi-plateformes mais il n'est pas toujours aisé de compiler sur un autre OS.
Le forum d'Utopia devrait ouvrir entre la fin de cette semaine et la mi-décembre.
Vous avez ici un aperçu du design du site web, qui lui devrait ouvrir vers début 2010 (Je suis le seul qui puisse s'en occuper dans l'équipe, donc j'essaye de ne pas accumuler trop de tâches)
Quant au forum, il ouvrira comme prévu aux alentours d'aujourd'hui (Soit aujourd'hui, soit demain)
Pour ce qui est de la simulation de combat, je fais mon possible pour qu'elle n'aie aucun retard, mais comme nous avons du changer de moteur physique (ODE avait de petits problèmes).
oua c'est probablement un des projets les plus ambitieux que j'ai vu sur le Sdz, bonne chance !
pour ce qui est de la programation, y aura t il des tutos ou au moins une documentation car là tout vos objet on sait pas trop d'où ils sortent
Le combats seront en 3D pour la vision ou pour tout la stratégie ? je veux dire c'est modélisé en 3D pour faire beau mais poura-t-on réellement maneuvrer le vaisseau dans un univers 3D ?
Si debugger, c’est supprimer des bugs, alors programmer ne peut être que les ajouter - Edsger Dijkstra
Je pense que si le système de RTS de programmation n'est pas très exploité c'est parce que ça n'est pas très vendeur... Mais la communauté du site devrait être plus ouverte la dessus que le consommateur lambda.
Sinon où en est le code proprement dit?
Et y a-t-il quelques images in game de disponibles ou pas?
Si vous avez la moindre suggestion sur la façon dont les vaisseaux devraient être dirigés par le joueur, c'est le moment
En programation evidement ce doit etre des fonction : bouger( x, y, z, v) avec des valeur positive ou négative en x, y et z suivant le sens de déplacement et puis v pour la vitesse ... ou quelque chose comme ça ...
en interface, je pense que un bête contrôle avec les touche fleché + souris comme dans les fps devrait suffire
Si debugger, c’est supprimer des bugs, alors programmer ne peut être que les ajouter - Edsger Dijkstra
Je pense que si le système de RTS de programmation n'est pas très exploité c'est parce que ça n'est pas très vendeur...
Aucun RTS de programmation n'avait jamais été envisagé avant à ma connaissance, mais le concept de "jeu de programmation" est un peu partout, comme (encore une fois) l'éditeur de map de warcraft III (Éditeur de déclencheurs), qui cache de la programmation via le GUI, ce système est très populaire.
Citation : apprentimagicien
Sinon où en est le code proprement dit?
Et y a-t-il quelques images in game de disponibles ou pas?
Comme cité plus haut, les travaux se font surtout sur l'Ungine actuellement. Une démo de combats de vaisseaux est en préparation et une fois que cette démo aura des graphismes suffisant, je livrerais des screens, une vidéo ainsi que le programme lui-même.
Citation : damjuve
en interface, je pense que un bête contrôle avec les touche fleché + souris comme dans les fps devrait suffire
Cela pose problème car en 3D, le vaisseau ne reste pas droit (Aligné avec le "bas", qui n'existe d'ailleurs pas dans l'espace mais qui est défini quand même dans le jeu pour des questions de facilités)
Aucun RTS de programmation n'avait jamais été envisagé avant à ma connaissance
Ou alors ils ont eu tellement peu de succès que...
Citation : Lynix
mais le concept de "jeu de programmation" est un peu partout, comme (encore une fois) l'éditeur de map de warcraft III (Éditeur de déclencheurs), qui cache de la programmation via le GUI, ce système est très populaire.
Mais malgré tout, le nombre de gens qui jouent à war3 sans avoir jamais touché à l'éditeur est énorme je pense. Et on achète rarement un jeu uniquement pour son éditeur, enfin quand je dis ça je me mets à la place d'un joueur lambda parce que je serais bien le genre de gars à acheter un jeu uniquement pour l'éditeur.
Citation : Lynix
Comme cité plus haut, les travaux se font surtout sur l'Ungine actuellement. Une démo de combats de vaisseaux est en préparation et une fois que cette démo aura des graphismes suffisant, je livrerais des screens, une vidéo ainsi que le programme lui-même.
Pourrais tu réaliser un schéma (si ce n'est déjà fait) de l'architecture du moteur car je code quelques projets amateur en solo et j'ai tendance à ne connaître que ma façon de faire.
Citation : Lynix
Cela pose problème car en 3D, le vaisseau ne reste pas droit (Aligné avec le "bas", qui n'existe d'ailleurs pas dans l'espace mais qui est défini quand même dans le jeu pour des questions de facilités)
Bah si le fait de contrôler son vaisseau est juste fait pour être "fun" les flèches, un "géomètre" (indiquant la position et surtout l'axe selon lequel on est par rapport au "bas") et un viseur devrait suffire (plus des raccourcis pour les ordres). Après si ça doit être plus technique faudra adapter.
Citation : Lynix
Le joueur peut créer ses technologies comme il le souhaite, il commence par choisir la coque (l'apparence externe, le modèle 3D) dans une liste officielle, et une liste non-officielle (Les joueurs peuvent créer et utiliser leurs propres modèles 3D)
Concernant l'ajout de modèle 3D. Il y a quelques problèmes auxquels je pense que vous serez confrontés. Comment allez vous faire pour harmoniser le style graphique de votre jeu et pour éviter les modèles over-complexes si chacun peut créer les meshs qu'il veux?
Mais malgré tout, le nombre de gens qui jouent à war3 sans avoir jamais touché à l'éditeur est énorme je pense. Et on achète rarement un jeu uniquement pour son éditeur, enfin quand je dis ça je me mets à la place d'un joueur lambda parce que je serais bien le genre de gars à acheter un jeu uniquement pour l'éditeur.
Il y a beaucoup de mappeurs dans la communauté War3
Mais programmer n'est que l'une des 4 façons prévues pour faire un script, il y a l'utilisation d'un script de base (choix dans une liste), un générateur de comportement (Créé un script selon des questions posées au joueur), l'interface GUI (propose autant de possibilité que la programmation) et enfin la programmation.
Citation : apprentimagicien
Pourrais tu réaliser un schéma (si ce n'est déjà fait) de l'architecture du moteur car je code quelques projets amateur en solo et j'ai tendance à ne connaître que ma façon de faire.
Je le ferais, une fois l'Ungine plus abouti.
Citation : apprentimagicien
Bah si le fait de contrôler son vaisseau est juste fait pour être "fun" les flèches, un "géomètre" (indiquant la position et surtout l'axe selon lequel on est par rapport au "bas") et un viseur devrait suffire (plus des raccourcis pour les ordres). Après si ça doit être plus technique faudra adapter.
Je crains que le pilotage d'un vaisseau en 3D soit plus complexe qu'il n'y parait, surtout en ce qui concerne les axes, il faut que le joueur puisse s'orienter facilement sur les trois axes.
Citation : apprentimagicien
Concernant l'ajout de modèle 3D. Il y a quelques problèmes auxquels je pense que vous serez confrontés. Comment allez vous faire pour harmoniser le style graphique de votre jeu et pour éviter les modèles over-complexes si chacun peut créer les meshs qu'il veux?
Il faut voir cette option comme un bouton "Proposer un modèle à l'équipe"
Les meshs passeront par un groupe de personnes qui contrôleront les modèles proposés, refuseront ceux qui n'obéiraient pas à une certaine charte graphique.
Je crains que le pilotage d'un vaisseau en 3D soit plus complexe qu'il n'y parait, surtout en ce qui concerne les axes, il faut que le joueur puisse s'orienter facilement sur les trois axes.
Bah ça dépend. De nombreux jeux de simulation de vol le permette déjà. À moins que le déplacement se fasse sans poussée continue (poussée continue => comme un avion qui n'est jamais stationnaire et dont on ne contrôle que les changements de directions) dans ce cas tu rajoutes deux touches pour le changement de hauteur aux flèches et tu as bien les trois dimensions. À moins que le système envisagé soit différent de ce dont je parle.
Citation : Lynix
Il faut voir cette option comme un bouton "Proposer un modèle à l'équipe"
Ok je vois mais ça fera pas mal de boulot en "post-prod" et néscessitera un maintient constant.
Le moteur physique utilisera des méthodes de calculs rapides mais pas exactes, mais vu le type du jeu, on ne devrait pas avoir de problème vu le faible nombre de contacts physiques qui auront lieu.
Après la gravité (Combat proche d'une planète, un trou noir dans le champ de bataille, ...) est calculée avec la formule officielle.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)