Accueil Articles Tutoriels Forums
GameCorp Index du Forum -> Vos projets de jeux vidéo -> [RTS] [MMF2] Space Wars
Auteur
Message
eagle4 Message luPosté le : 20 Oct 2008 11:18
Avatar de eagle4
Explorateur

Inscrit le : 07 Fév 2008
Messages : 103
GCPoints : 326.2
Programmation - Artworking


Bonjour à tous !

Aujourd'hui je viens vous présenter une nouvelle démonstration technique. Cette fois ci encore, ce n'est pas un jeu, mais bel est bien un moteur Open source que je viens vous montrer. Toutefois, le moteur sera tellement évolué qu'il constituera un petit jeu à part entière.

Description :

Le RTS est un genre assez difficile à concevoir en général à cause des système de pathfinding et d'IA qui doivent être un minimum complexes. Avec MMF2, c'est encore plus difficile puisque le logiciel ayant beaucoup de fonctions avancés pour gérer les objets à également rendu plus difficile la séparation des unités permettant d'attribuer des actions à une seules unités dans la masse de celles sélectionnées.

Ce moteur est sans doute le plus compliqué que je ferais parmi mes démonstrations techniques.

Le moteur est assez simple mais efficace, je voudrais que la source puisse être compréhensible par le maximum de personne. Pour ça, je ne vais pas forcement faire une super source comme j'ai fais pour les autres démos techniques, mais je vais surement proposés pour chaque fonction une petite source commenté (LOS, Multipathfinding, etc) et la source du RTS comprenant les différentes petites sources en open source également ;)

Pour le moment, le jeu est du genre de la partie spatiale du jeu "Star Wars : Empire at War". C'est à dire, on a qu'une seule station spatiale, qui peut se défendre d'elle même et évoluer. Plus elle évolue et plus elle peut fabriquer de type différent d'unité. Les ressources se récoltent toutes seules, il suffit d'avoir conquis des astéroïdes pour que la récolte aille plus vite. Bien sur, on peut protéger les astéroïdes avec des tourelles et les astéroïdes qui rapportent le plus sont également les moins protégés ;)

Pour les moment les fonctions du jeu sont :

- Sélection au lasso (Terminé)
- Line Of Sight + recherche de distance (pour pouvoir tirer) (Terminé)
- Multipathfinding(En cours)
- Minimap (A faire)
- Interface intuitive (le menu de création d'unité s'ouvre en sélectionnant la station spatiale) (A faire)
- Fog of war (plus graphique que technique) (Terminé)

Ça avance bien, il n'y a pas de problème majeur pour le moment. Pour le moment, on a qu'une seul type d'unité, les destroyers, puissant mais lent. La partie graphique avance (J'ai fais les décors et les effets et une personne tierce me fais les unités).

Screen du jeu :

Effets d'explosions :
Image

Le brouillard de guerre (l'unité est en haut à droite) :
Image

Plusieurs unités qui ont trouvés une cible :
Image

Les screens ont été fais sur des PC de bureau, ils sont pas trop mauvais mais la carte graphique est intégrée et ça reste du bureautique. Comme vous pouvez le constater, malgré quelques ralentissements quand il y a beaucoup d'unités à l'écran, globalement je tourne à 60 FPS (Fréquence max dû à la V-Sync)
Dernière édition le 25 Oct 2008 à 12:32
Luor
Darktib Message luPosté le : 20 Oct 2008 16:30
Avatar de Darktib
Membre Légendaire

Inscrit le : 24 Nov 2007
Messages : 2884
GCPoints : 560.1
Programmation - Scénario


Wow...

Le pathfinding dans ubn RTS n'est pas la partie la plus complexe - pour tout dire c'est assez simple (du moins en µC++, apres je ne sais pas sous MMF2). Par contre le reste de l'IA est autrement plus dur...

J'aimerais bien savoir comment tu fais ton fog of war... c'est une partie assez complexe.

Vivement la démo !
Dernière édition le 20 Oct 2008 à 16:31
Image

1 + 1 = OVERFLOW
eagle4 Message luPosté le : 20 Oct 2008 17:03
Avatar de eagle4
Explorateur

Inscrit le : 07 Fév 2008
Messages : 103
GCPoints : 326.2
Programmation - Artworking


Ben, ce qui est un peu plus dur, c'est de gérer un pathfinding multiple dans le sens où MMF2 n'est pas aussi rapide qu'un prog en C++ ni aussi facilement utilisable en ce qui concerne la gestion de plusieurs actions distinctes pour des objets identiques. Mais bon ça se fais relativement facilement ;)

Pour le Fog of war, le gameplay très basique du RTS me sert bien. En effet, le fog of war n'est gérer que pour le joueur, et est toujours de la forme d'un cercle autour des unités. Donc très facilement, je créer des objets de forme rondes, noires, qui sont toujours collés à mes unités et par un petit shaders que j'applique sur mon layer de fog, ca "trous" mes zones noires en laissant mes zones blanches, tout en mettant une transparence sur le résultat. J'aurais pu faire l'inverse, mais je trouve le résultat sympa ^^. D'accord c'est pas un vrai fog of war, mais il faut bien que ca soit rapide à comprendre ET que le résultat ne soit pas trop gourmand... là ça va...

Pour ce qui est de l'IA, on a le moteur de mouvement (pathfinding), le moteur de vision (FOW) le moteur de viseur (LOS), le moteur de tir est assez facile à faire... La seule chose un peu plus complexe, c'est la manière dont les unités adverses vont s'organiser. Mais il suffit de programmer des petits shémas à exécuter en fonction de tel ou tel événement... par exemple, tant que l'adversaire est trop pauvre, il exécute sa recherche de ressources, s'il est assez riches, il alterne entre progression technologique et création d'armée, s'il a beaucoup d'unité, il attaque, il regarde s'il y a eu désastre auquel cas il enverra plus d'unité la prochaine fois etc etc etc
Luor
Darktib Message luPosté le : 20 Oct 2008 19:09
Avatar de Darktib
Membre Légendaire

Inscrit le : 24 Nov 2007
Messages : 2884
GCPoints : 560.1
Programmation - Scénario


J'aime bien la méthode que tu utilise pour le fog of war... va falloir que je m'en inspire pour mon rts (sauf que le mien est en 3D...)
L'histoire du shader est a mon avis une bonne idée.
Image

1 + 1 = OVERFLOW
Mod Message luPosté le : 20 Oct 2008 21:28
Avatar de Mod
Webmaster

Inscrit le : 14 Oct 2007
Messages : 3755
GCPoints : 13077.2
Programmation - Spriting


C'est bien vrai que les RTS ne sont pas franchement le genre de jeu que l'on réalise en deux semaines... J'imagine bien que sous MMF, ça ne doit pas être du gâteau de réaliser ce genre de programme.

Graphiquement, c'est en tout cas déjà fort agréable à regarder :D.
eagle4 Message luPosté le : 26 Oct 2008 22:46
Avatar de eagle4
Explorateur

Inscrit le : 07 Fév 2008
Messages : 103
GCPoints : 326.2
Programmation - Artworking


Voilà un exemple des effets qui seront implémenté dans le jeu.

http://willay.clement.free.fr/demo/test_effets.rar

Dites moi ce que vous en pensez ! (Attention, le RTS est prévu pour un gameplay lent et les plus grosses explosions ne seront pas fréquente, donc je me suis lâché et bien sur, si vous vous acharnez sur le clic droit ça va ramer ^^)

Touches :
- Clic gauche, trainée de météore
- Clic milieu, petite explosion
- Clic droit, grosse explosion
Luor
Mod Message luPosté le : 26 Oct 2008 23:05
Avatar de Mod
Webmaster

Inscrit le : 14 Oct 2007
Messages : 3755
GCPoints : 13077.2
Programmation - Spriting


Tout simplement superbe. Ca c'est de l'explosion qui charme l'oeil :D.

Et il a vraiment fallut que je clique en continu sur le bouton gauche et le bouton central et le bouton droit pour que ça commence à ramer.
Darktib Message luPosté le : 03 Nov 2008 12:21
Avatar de Darktib
Membre Légendaire

Inscrit le : 24 Nov 2007
Messages : 2884
GCPoints : 560.1
Programmation - Scénario


Comme Mod.

Les nuances de bleu font vraiment tres joli...
Image

1 + 1 = OVERFLOW
eagle4 Message luPosté le : 03 Nov 2008 15:45
Avatar de eagle4
Explorateur

Inscrit le : 07 Fév 2008
Messages : 103
GCPoints : 326.2
Programmation - Artworking


Suite à plusieurs personnes qui ont vu les explosions, les nuances tourneront plus du coté des couleurs feu (du vrai hein genre jaune orange et rouge ^^)
Luor
Mod Message luPosté le : 05 Nov 2008 10:37
Avatar de Mod
Webmaster

Inscrit le : 14 Oct 2007
Messages : 3755
GCPoints : 13077.2
Programmation - Spriting


Dommage, avec le bleu, ça rendait plutôt bien, d'autant que ça collait avec l'arrière-plan et l'ambiance graphique. D'ailleurs, une flamme à combustion complète est bleue, et non jaune/orange/rouge ^^.
GameCorp Index du Forum -> Vos projets de jeux vidéo -> [RTS] [MMF2] Space Wars