RTS Monde sphérique - 2 possibilités - Besoin de conseil

On parle de tout et de rien (vos jeux préférés, films, manifestations diverses, etc...)
EdLooping
Messages : 49
Inscription : 07 Juin 2017 01:53

RTS Monde sphérique - 2 possibilités - Besoin de conseil

Message par EdLooping » 16 Juin 2017 12:04

Bonjour à tous. J'ai pour projet de faire un RTS style Age of Empire sur une planète sphérique avec un cycle jour/nuit, les saisons, les précipitations etc...
J'ai pensé à 2 modèles pour faire ma scène.

1. Un modèle classique avec ma planète au centre de la scène, fixe, et une caméra qui tourne autour. C'est le modèle le plus simple, le plus logique. J'ai commencé par faire ce modèle. Mon monde et ma caméra fonctionne et mes unités se déplacent correctement dessus.
Le premier soucis que j'ai avec ce modèle c'est la skybox. Par défaut on a du ciel que vers le haut, mais si je la refais je peux avoir du ciel partout, ok. Mais je vais perdre à ce moment-là l'horizon et les lueurs qui vont avec. Pas très grave mais c'est un premier point négatif. De plus le rendu est pas top pcq l'angle des nuages n'est pas correct suivant où je me trouve sur ma planète. J'ai donc pensé à virer les nuages et faire une skysphere. C'est pas mal comme principe. Je peux faire une sphere avec des nuages, soit une grande tout autour de ma plète, soit une plus petite qui suit ma caméra. Le soucis de cette skyphere c'est que les seules qu'on trouve sur le store ce sont juste des nuages qui tournent. Il y a pas de gestion de beau temps ou de mauvais temps. Ce sera donc à moi de le scripter.
En fait le soucis géénéral de ce modèle c'est que tous les assets qu'on trouve sur le store sont conçus pour des mondes plans. Par exemple j'ai acheté Weather Maker pour gérer les précipitations et c'est simple on ne peut tout simplement pas appliquer de rotations sur les préfabs, les particules vont toujours vers le bas. Il faudrait là aussi refaire le code.

Donc vous l'aurez compris ce modèle est faisable mais faut tout faire soit-même. J'en suis capable mais bon, si je pouvais trouver un moyen d'utiliser ces assets, ce serait plus rapide... J'ai donc penser à un autre modèle, mais là j'ai besoin de vos avis et conseils pcq j'ai peur de me causer de gros soucis avec ce second modèle lorsque je voudrai aborder le multijoueurs. Pcq oui j'ai pas précisé, pour le moment je fais le mode solo mais j'aimerais bien faire un mode multi en ligne.

2. Ce second modèle c'est en fait de la même manière, de poser ma planète au centre de la scène, mais cette fois je dépose ma caméra au pôle nord et quand je vais bouger la caméra, c'est pas la caméra qui va bouger mais le monde qui va rouler dessous.
Ce modèle me permet tout simplement de toujours être sur une surface horizontale et de pouvoir ainsi appliquer tous mes assets.
Le premier soucis que j'ai eu avec ce modèle c'est concerant le déplacement de mes unités à la surface de ma planète.
Dans le premier modèle je leur donnait juste les coordonnées d'un Vecteur3 cible et ils y allaient. Dans mon 2ème modèle, comme ma planète tourne sur elle-même, la cible de mon unité s'est déplacée, mais l'unité ne l'a pas percue et n'est donc pas allée au bon endroit. Il faut donc que j'actualise la cible de toutes mes unités en ajoutant la rotation de ma planète. C'est pas très compliqué mais je me demandais si ça n'allait pas bouffer des fps de recalculer toutes ces cibles (1ère question importante).
Le gros soucis que j'me pose (2e question importante) c'est concernant le multijoueurs. Je vous demande conseil pcq j'y connais strictement rien.
Dans mon premier modèle, pas de soucis. Je peux mettre plusieurs joueurs avec leur caméra et chacun d'eux se ballade autour de ma planète. Ok.
Mais dans mon second modèle, comme un joueur est par rapport à ma scène forcément au pôle, toujours aux même coordonnées et qu'il bouge toute ma planète, comment ajouter un autre joueur dessus ? Est-ce que les coordonnées et les rotations sont forcément partagées ? Est-ce qu'y moyen de dessiner la planète pour chaque joueur ou ils doivent forcément partager la même planète ? Je sais pas si je m'exprime bien et si vous voyez le soucis de ce modèle.

Alors, quel modèle choisir ? Merci pour vos conseils.

Avatar de l’utilisateur
evereal
Messages : 109
Inscription : 06 Nov 2015 18:46

Re: RTS Monde sphérique - 2 possibilités - Besoin de conseil

Message par evereal » 16 Juin 2017 14:11

Salut,

Si je devais faire ce genre de projet, je partirais sur une planète fixe avec une skysphere entourant toute la planète car comme tu le dis, c'est la plus logique.
mettre la skysphere sur la camera voudrait dire soit que le temps dépend de la caméra et pas du lieu ou l'on se trouve (dans le jeu, quel que soit la position, on verra la pluie, quelque soit la position, on verra la nuit). Après ces données de temps devront naviguer entre les joueurs pour synchroniser leur skysphere pour qu'ils voient la même chose).
Ensuite pour revenir à ta frayeur :
On ne peut tout simplement pas appliquer de rotations sur les préfabs, les particules vont toujours vers le bas
Je suis sur qu'on px faire des rotations, par contre tes émissions de particules sont surement calculée sur le world plutot que le local, je ne serai plus te dire ou l'on change ça.

Ta solution 2 semble possible sur papier, mais comme tu le dis, ça risque d'être très lourd à gérer, bcq de recalcul et tu perd complètement la synchronisation de position entre les joueurs (il faudra sans doute la réécrire pour traduire la position entre les joueurs en fonction de leur rotation actuel de la planète). Et encore une fois il faut repenser un système pour synchroniser le temps pour que chaque joueurs voie la même chose.
“La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !”

EdLooping
Messages : 49
Inscription : 07 Juin 2017 01:53

Re: RTS Monde sphérique - 2 possibilités - Besoin de conseil

Message par EdLooping » 16 Juin 2017 16:55

Bah dans la théorie c'est prbablement faisable mais en fait le systeme de weather maker c'est une superposition entre une skysphere et la skybox. Sur la skysphere y a juste des nuages de bases. Quand il va faire moche, les nuages vont apparaître sur la skybox, pas sur la skyspherre. En fait c'est la skybox qui fait tout. Donc il faudrait pouvoir faire une rotation de la skybox. Est-ce que qq'un sait si c'est possible ?

J'ai trouvé ce sujet en anglais mais j'arrive pas pour le moment à l'appliquer.

https://forum.unity3d.com/threads/rotat ... ox.130639/

Si je comprends bien, c'est pas possible de faire une rotation à la skybox, donc une des solutions qui présentent et celle que je vais prendre je pense c'est de faire une superposition entre 2 caméras. La première filme juste la skybox et l'autre le monde. En faisant pivoter la caméra gérant la skybox on va voir la skybox tourner sur notre caméra filmant le monde. Si je peux faire ça, je pourrai faire mon premier modèle.
Qq'un a des infos sur comment faire une rotation à la skybox ?

L'autre solution ce serait de recréer une skybox dans la scene mais je pense que la gestion des couleurs par rapport à l'heure ne sera pas d'aussi bonne qualité que la skybox par défaut. Vous pensez pas ?

EdLooping
Messages : 49
Inscription : 07 Juin 2017 01:53

Re: RTS Monde sphérique - 2 possibilités - Besoin de conseil

Message par EdLooping » 16 Juin 2017 17:13

C'est bon j'ai réussi. Y a pas plus simple !
Du cou je peux partir sur mon premier modèle !! :)
Donnez moi encore vos avis, les idées m'intéressent toujours.

Avatar de l’utilisateur
Max
Messages : 8772
Inscription : 30 Juil 2011 13:57
Contact :

Re: RTS Monde sphérique - 2 possibilités - Besoin de conseil

Message par Max » 16 Juin 2017 17:16

EdLooping a écrit :C'est bon j'ai réussi. Y a pas plus simple !
certes, et donc .... :mrgreen:
( si c'est pour la rotation de la skybox, on peut penser que tu as trouvé: RenderSettings.skybox.SetFloat("_Rotation", valeur);)
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

EdLooping
Messages : 49
Inscription : 07 Juin 2017 01:53

Re: RTS Monde sphérique - 2 possibilités - Besoin de conseil

Message par EdLooping » 17 Juin 2017 11:51

Ok maintenant j'ai un autre gros soucis sur la modélisation de mon terrain. Puisqu'on ne peut pas appliquer de rotation sur un terrain, comment puis-je faire pour faire un terrain sphérique ? Je parle pas d'une vielle planète pour un jeu dans l'espace.
A la limite faire les mesh dans blender c'est pas trop un soucis mais comment le texturer puisque unity ne va pas le reconnaître comme terrain.
Est-ce que y aurait pas moyen de faire un terrain normal (plat) sur unity, de le texturer, de l'exporter dans blender où je vais assembler plusieurs de ces terrains pour former une sphère et le réimporter dans unity avec toutes les textures ? Bien entendu je parle juste de la surface de la planète, pour les arbres et les plantes, je peux les disposer manuellement et les faire pivoter donc pas de soucis.
Merci pour votre aide.

zugsoft
Messages : 386
Inscription : 26 Juin 2014 23:43
Localisation : Swiss
Contact :

Re: RTS Monde sphérique - 2 possibilités - Besoin de conseil

Message par zugsoft » 18 Juin 2017 07:03

Juste texturer en rvb avec blender puis appliquer un shader splatmap, puis tu appliques tes 4 textures en fonction du rvb dans unity.
Moon RTS

Répondre

Revenir vers « Discussion générale »