Salutations,
Je travaille sur VariiSpace ce week end, et je souhaite voir avec vous un point de gameplay.
Dans ce jeu, tout bouge dans le temps: les étoiles tournent autour du centre de la galaxie, les planètes tournent autour des étoiles, les Lunes tournent autour des planètes, etc. Mais, dans le monde réel, la Lune fait le tour de la Terre en une trentaine de jours, la Terre fait le tour du Soleil en 1 an, et le Soleil fait le tour de la galaxie en 226.000.000 années (Wikipédia).
Du coup, si je veux que les joueurs puissent voir le Soleil tourner dans la galaxie (et qu'ils puissent donc voir que la galaxie est dynamique), alors je suis coincé:
Si je fais une échelle unique à tout le jeu, genre si 226.000.000 années dans le jeu = 1 an réel (donc les joueurs verront, sur une année réelle, que le Soleil bouge dans la galaxie), alors la Terre fait le tour du soleil en environ 0.4 secondes réelles, et la Lune fait le tour de la Terre en moins de 0.05 secondes réelles (je vous dis pas le mal de mer à l'affichage!)
Du coup, quelles solutions pourrai-je appliquer pour que les planètes, Lunes et étoiles fassent le tour de leur "parent céleste" en un temps réel raisonnable?
En causant avec Talus sur Skype, on a dégagé deux pistes possibles:
• Modifier les données réelles et prendre une galaxie fictive:
En alourdissant le trou noir au centre de la galaxie / en raccourcissant la distance Soleil-centre de la galaxie.
Ainsi, le jeu aurait une échelle de temps type "1 an dans le jeu = 5 minutes réelles", la Lune ferait donc le tour de la Terre en 20 secondes réelles et le Soleil serait plus proche du centre de la galaxie (ou ce centre serait plus lourd), de sorte à en faire le tour en 1 an réel (donc, en 105.000 ans dans le jeu soit 2000x plus vite). C'est une possibilité, mais l'impact sur la géométrie de la carte peut poser soucis: si le centre de la galaxie est plus lourd, alors les vaisseaux auront du mal à en sortir / le Soleil ne peut pas être trop proche du centre de la galaxie sinon les vaisseaux n'auront pas d'espace pour orbiter
Le problème est que cela contraint la géométrie de la carte de jeu (et pas sûr qu'il existera une géométrie convenant à mon problème, qui est d'avoir une galaxie qui bouge en un temps réel raisonnable sans que les planètes/lunes ne donnent le mal de mer).
• Doter chaque objet céleste de sa propre échelle de temps
Ainsi, si j'observe la Terre et sa Lune, j'ai une échelle de temps où 1 jour réel = 30 jours dans le jeu (et la Lune fait donc le tour de la Terre en 1 jour réel). Si j'observe le Soleil, je suis dans une autre échelle de temps où 1 jour réel = 1 an dans le jeu, et la Terre fait donc le tour du Soleil en 1 jour réel. Et si j'observe la galaxie, je suis dans une échelle de temps où 1 jour réel = 600.000 ans dans le jeu (et le Soleil fait le tour de la galaxie en environ 1 an réel).
Ce sera plus aisé à mettre en place (car chaque objet a sa propre échelle de temps indépendante, donc les objets célestes ne se "marchent" pas dessus), mais sera peut-être plus dur à "expliquer" aux joueurs. En revanche, cela résout un autre problème collatéral: le temps de voyage entre deux étoiles (si l'échelle de temps au "niveau" de la galaxie est 500.000x plus rapide qu'au niveau d'une planète, alors voyager entre deux étoiles ne prendra pas trop de temps en réel).
Avez-vous d'autres suggestions? Des questions sur l'une des deux solutions (si vous les avez comprises, sinon, n'hésitez pas à me le dire: cela me permettra de savoir comment les présenter aux joueurs)?
Je travaille sur VariiSpace ce week end, et je souhaite voir avec vous un point de gameplay.
Dans ce jeu, tout bouge dans le temps: les étoiles tournent autour du centre de la galaxie, les planètes tournent autour des étoiles, les Lunes tournent autour des planètes, etc. Mais, dans le monde réel, la Lune fait le tour de la Terre en une trentaine de jours, la Terre fait le tour du Soleil en 1 an, et le Soleil fait le tour de la galaxie en 226.000.000 années (Wikipédia).
Du coup, si je veux que les joueurs puissent voir le Soleil tourner dans la galaxie (et qu'ils puissent donc voir que la galaxie est dynamique), alors je suis coincé:
Si je fais une échelle unique à tout le jeu, genre si 226.000.000 années dans le jeu = 1 an réel (donc les joueurs verront, sur une année réelle, que le Soleil bouge dans la galaxie), alors la Terre fait le tour du soleil en environ 0.4 secondes réelles, et la Lune fait le tour de la Terre en moins de 0.05 secondes réelles (je vous dis pas le mal de mer à l'affichage!)
Du coup, quelles solutions pourrai-je appliquer pour que les planètes, Lunes et étoiles fassent le tour de leur "parent céleste" en un temps réel raisonnable?
En causant avec Talus sur Skype, on a dégagé deux pistes possibles:
• Modifier les données réelles et prendre une galaxie fictive:
En alourdissant le trou noir au centre de la galaxie / en raccourcissant la distance Soleil-centre de la galaxie.
Ainsi, le jeu aurait une échelle de temps type "1 an dans le jeu = 5 minutes réelles", la Lune ferait donc le tour de la Terre en 20 secondes réelles et le Soleil serait plus proche du centre de la galaxie (ou ce centre serait plus lourd), de sorte à en faire le tour en 1 an réel (donc, en 105.000 ans dans le jeu soit 2000x plus vite). C'est une possibilité, mais l'impact sur la géométrie de la carte peut poser soucis: si le centre de la galaxie est plus lourd, alors les vaisseaux auront du mal à en sortir / le Soleil ne peut pas être trop proche du centre de la galaxie sinon les vaisseaux n'auront pas d'espace pour orbiter
Le problème est que cela contraint la géométrie de la carte de jeu (et pas sûr qu'il existera une géométrie convenant à mon problème, qui est d'avoir une galaxie qui bouge en un temps réel raisonnable sans que les planètes/lunes ne donnent le mal de mer).
• Doter chaque objet céleste de sa propre échelle de temps
Ainsi, si j'observe la Terre et sa Lune, j'ai une échelle de temps où 1 jour réel = 30 jours dans le jeu (et la Lune fait donc le tour de la Terre en 1 jour réel). Si j'observe le Soleil, je suis dans une autre échelle de temps où 1 jour réel = 1 an dans le jeu, et la Terre fait donc le tour du Soleil en 1 jour réel. Et si j'observe la galaxie, je suis dans une échelle de temps où 1 jour réel = 600.000 ans dans le jeu (et le Soleil fait le tour de la galaxie en environ 1 an réel).
Ce sera plus aisé à mettre en place (car chaque objet a sa propre échelle de temps indépendante, donc les objets célestes ne se "marchent" pas dessus), mais sera peut-être plus dur à "expliquer" aux joueurs. En revanche, cela résout un autre problème collatéral: le temps de voyage entre deux étoiles (si l'échelle de temps au "niveau" de la galaxie est 500.000x plus rapide qu'au niveau d'une planète, alors voyager entre deux étoiles ne prendra pas trop de temps en réel).
Avez-vous d'autres suggestions? Des questions sur l'une des deux solutions (si vous les avez comprises, sinon, n'hésitez pas à me le dire: cela me permettra de savoir comment les présenter aux joueurs)?