Course low poly · jouez, puis construisez

Jeux de course low poly — Jouez-y dans votre navigateur (ou créez le vôtre)

Créez votre propre jeu de course low poly

Ce qui fait un grand jeu de course low poly, plus un monde low poly dans le navigateur que vous pouvez parcourir dès maintenant — et les outils pour construire votre propre circuit.

✦Jeu
Construisez un circuit low poly de une route côtière

Un jeu de course low poly est un jeu de course dont la géométrie est délibérément grossière : des triangles à ombrage plat, aucune normal map, aucun détail de texture à haute fréquence. Cette contrainte n'est pas une limitation que l'on tolère — c'est ce qui fait fonctionner le jeu à grande vitesse. Quand une voiture parcourt une ligne droite de 400 mètres en quelques secondes, votre œil ne distingue pas les rayons des roues. Il lit la silhouette, l'ombrage des facettes et la vitesse à laquelle le décor défile. Une géométrie low poly donne au moteur de rendu la marge nécessaire pour garder ces indices fluides.

Cette page explique ce qui sépare réellement un bon jeu de course low poly d'un mauvais, puis vous place devant un monde low poly que vous pouvez parcourir dans le navigateur dès maintenant. Ensuite, elle détaille la construction de votre propre circuit dans le 3D Game Builder : poser de la route sur une grille, placer des accessoires qui servent de repères de vitesse et fermer la boucle. Aucun téléchargement, aucune installation de moteur.

Pourquoi le low poly fonctionne pour la course

L'argument central est perceptif. À 200 km/h, une facette à ombrage plat qui traverse l'écran se lit comme du mouvement. Une surface texturée avec des détails fins se lit comme du bruit, car la texture se réduit plus vite que la chaîne de mipmaps ne peut la résoudre. Le low poly contourne entièrement ce problème : moins de facettes, plus grandes, signifie que le problème d'aliasing diminue en même temps que le budget de frame augmente. Vous cessez de lutter contre le scintillement et commencez à vendre de la vitesse.

Le second argument est arithmétique. Un segment de circuit modélisé à 2 000 triangles au lieu de 40 000 triangles ne se contente pas d'être rendu plus vite. Il vous permet de placer plus de segments, plus de décor et plus d'adversaires avant d'atteindre le plafond de frame. Dans un jeu de course, le temps de frame n'est pas un confort. C'est de la latence d'entrée. Chaque milliseconde de temps GPU est une milliseconde entre le moment où le joueur voit un virage et celui où la voiture répond à la correction.

C'est pourquoi les jeux de course low poly ont tendance à bien tourner sur du matériel modeste et dans un onglet de navigateur. Le coût de rendu est dominé par les draw calls et le fill rate plutôt que par le débit brut de triangles, si bien qu'une scène low poly avec un frustum culling agressif reste dans un budget de 16,6 ms à 60 fps sur une carte graphique intégrée. Ce style n'est pas un pis-aller pour matériel faible. C'est une décision qui met le matériel de côté.

Le flat shading et la lecture du mouvement

Le flat shading attribue une seule normale à chaque triangle, de sorte que chaque facette a une unique valeur de luminance. Quand la caméra pivote, ces valeurs changent par paliers discrets. L'œil interprète ces paliers comme un signal de vitesse, de la même manière qu'un stroboscope à faible fréquence d'images donne l'impression qu'une roue tourne. Sur une surface à ombrage lisse, ce signal est dilué dans un dégradé et la lecture du mouvement s'affaiblit.

Où va réellement le budget de triangles

Dans un jeu de course low poly, la voiture est rarement l'objet coûteux. C'est le circuit qui l'est. Un circuit de 5 km découpé en segments de 100 mètres avec culling a un ensemble visible borné, ce qui n'est pas le cas d'un maillage unique de 5 km. Budgétez le circuit en segments et laissez le culling faire le travail. La voiture peut se permettre 6 000 à 12 000 triangles ; un segment isolé ne le peut pas.

Ce qui fait un excellent jeu de course low poly

La première contrainte est la lisibilité du circuit à grande vitesse. Un virage doit être lisible avant que le joueur n'y arrive. Cela implique une séparation visuelle entre la route et le hors-route, un traitement cohérent des bords des deux côtés du ruban et un repère clair de la corde. Si la surface de la route et l'accotement partagent la même valeur et la même teinte, le joueur ne lira le virage qu'une fois dedans. Le contraste de valeur entre la route et les environs compte plus que le détail de texture de l'asphalte.

La deuxième contrainte est un horizon qui vend la vitesse. Un horizon plat et vide ne dit rien de la vitesse à laquelle vous allez. Il vous faut des objets à intervalles connus — barrières, panneaux, poteaux, facettes de crête — pour que le joueur dispose d'une référence de rythme. Dispersez-les à un espacement à peu près régulier le long de la ligne droite, puis laissez l'espacement se compresser dans le virage. L'œil lit la compression comme une décélération et l'expansion comme une accélération, même lorsque la valeur de vitesse n'a pas changé.

La troisième contrainte est une caméra qui ne perd jamais la route. Une caméra poursuite a besoin d'une distance d'anticipation proportionnelle à la vitesse, d'une hauteur qui garde le ruban de route visible sous la voiture et d'un lacet qui suit l'orientation de la voiture plutôt que de s'y accrocher brutalement. Si le lacet de la caméra s'accroche, le monde fouette et le joueur perd son orientation spatiale. Un lacet amorti avec une courte constante de temps — juste assez pour sembler réactif sans être instantané — garde la route ancrée dans le cadre.

  • Séparation de valeur route/hors-routeLe ruban de route et le terrain environnant doivent différer suffisamment en luminance pour que le bord se lise d'un coup d'œil. En cas de doute, assombrissez le terrain plutôt que d'éclaircir la route.
  • Repères de vitesse basés sur l'intervalleDes accessoires espacés à intervalles réguliers donnent au joueur une référence de rythme. Leur compression apparente dans un virage constitue la lecture de vitesse.
  • Anticipation de caméra proportionnelle à la vitesseLa distance d'anticipation doit croître avec la vitesse ; sinon, le joueur dépasse le cadre à grande vitesse.
  • Lacet de caméra amortiUn lacet qui suit garde la route ancrée. Un lacet qui s'accroche est le moyen le plus rapide de rendre un bon circuit illisible.

Parcourez-en un ici même

Le monde jouable intégré à cette page est ce qui se rapproche le plus d'un circuit que nous pouvons mettre dans un navigateur aujourd'hui. Il est low poly, en flat shading, et conçu pour être parcouru plutôt que regardé. Utilisez les commandes de déplacement pour voyager dans l'espace ; la géométrie est grossière à dessein pour que la fréquence d'images reste assez élevée pour lire le mouvement et pas seulement voir une scène.

Ce qu'il faut observer pendant que vous vous déplacez : les facettes du plan au sol captent la lumière sous différents angles à votre passage, et ces changements d'angle constituent l'indice de mouvement. L'horizon est peuplé plutôt que vide, vous avez donc quelque chose à suivre. Essayez une longue ligne droite puis un virage et remarquez comment votre sensation de vitesse change alors que la vitesse de déplacement ne change pas. C'est l'horizon qui fait son travail.

Ce monde est un espace de démonstration, pas un circuit achevé. Il n'a ni chronomètre au tour ni adversaire. Son but est de montrer comment la lecture low poly se comporte dans une session de navigateur en direct sur votre matériel réel, le seul benchmark qui compte pour un jeu dans le navigateur.

Construisez votre propre circuit

Construire un circuit dans le 3D Game Builder signifie placer de la géométrie sur une grille, pas sculpter un maillage. Vous travaillez en unités de monde, et la grille vous donne une échelle cohérente : une cellule de grille équivaut à une distance connue, donc une ligne droite de 20 cellules a une longueur fixe quel que soit celui qui la construit. Commencez par le ruban de route, puis placez les accessoires, puis définissez le point d'apparition et fermez la boucle.

Le mode d'échec à surveiller est un circuit lisible dans l'éditeur mais pas à grande vitesse. Construisez une ligne droite, placez la caméra à hauteur des yeux du pilote et parcourez-la avant de construire le reste. Si le virage au bout de la ligne droite n'est pas lisible depuis son début, corrigez le contraste de valeur ou le placement des accessoires avant d'ajouter du circuit. Il est moins coûteux de corriger un segment que vingt.

1

01

Posez la route sur la grille : placez les segments de route cellule par cellule, en gardant la largeur du ruban constante en unités de monde. Faites varier le rayon des virages, pas la largeur.

2

02

Définissez le contraste de valeur route/hors-route : attribuez à la route un matériau et au terrain environnant une valeur nettement différente pour que le bord se lise à grande vitesse.

3

03

Placez des accessoires repères de vitesse à intervalles réguliers le long de chaque ligne droite : barrières, poteaux ou marqueurs à espacement constant pour que le joueur dispose d'une référence de rythme.

4

04

Compressez l'espacement des accessoires dans les virages : un espacement plus serré dans le virage signale une décélération et donne à la corde un ancrage visuel.

5

05

Définissez le point d'apparition et l'orientation : placez le point d'apparition sur l'axe central de la route, tourné dans le sens de la marche, et vérifiez que la caméra a une anticipation dégagée au départ.

6

06

Fermez la boucle : reliez le dernier segment au premier pour que le circuit soit continu, puis parcourez un tour complet à grande vitesse et corrigez tout ce qui cesse d'être lisible.

Voitures et ressources low poly

Les voitures et les accessoires peuvent venir de deux directions : importez un ensemble de ressources low poly existant, ou générez-en un qui correspond au style de votre circuit. La contrainte qui compte est la cohérence de la densité de facettes. Une voiture modélisée à 12 000 triangles déposée sur un circuit construit à partir de segments de 200 triangles paraîtra incorrecte, car les deux objets résolvent le détail à des échelles différentes. Faites correspondre les densités ou l'ombrage, et de préférence les deux.

Agent Sprite Forge génère des ensembles de sprites et de ressources, ce qui est utile lorsque vous avez besoin d'un ensemble cohérent de voitures et d'accessoires partageant le même langage visuel, plutôt que d'un tas de modèles téléchargés individuellement. Si vous générez un ensemble, générez les voitures et les accessoires de bord de piste ensemble en une seule passe pour que la palette et la densité de facettes restent alignées. Des passes de génération disparates sont la cause la plus fréquente d'un circuit qui semble assemblé plutôt que conçu.

The Cyclops' Island est un exemple concret de monde low poly dans les ressources du studio : il montre comment un environnement low poly cohérent tient ensemble lorsque chaque objet partage la même décision d'ombrage. Utilisez-le comme référence pour la palette et la densité de facettes avant de construire votre propre ensemble.

  • Correspondance de densité de facettesGardez le nombre de triangles de la voiture dans le même ordre de grandeur par surface visible que les segments de circuit. Des densités très divergentes se lisent comme une rupture stylistique.
  • Palette unique par ensembleGénérez les voitures et les accessoires à partir d'une seule palette. Ajouter une seconde palette plus tard est la source habituelle de circuits qui semblent mal assortis.
  • Flat shading partoutAppliquez le flat shading à chaque objet de l'ensemble. Un objet à ombrage lisse dans une scène en flat shading est immédiatement visible et nuit à la lecture du mouvement.
  • Réutilisez avant de modéliserUn seul modèle de barrière pivoté et recoloré couvre la majeure partie d'un circuit. Moins de maillages uniques signifie moins de draw calls et un meilleur temps de frame.
Four Seasons Courtyard — l'échelle low poly à laquelle vit un circuit de course.
Gaga Little World — le low poly à l'échelle d'un jouet.

Entrez dans le monde auquel il appartient

Un sprite est un personnage sans endroit où se tenir. La dernière étape est celle que personne d'autre n'offre : prenez la planche que vous venez de créer et placez-la dans un monde où l'on peut se promener — une petite île, une planète, un coin de rue pluvieux. Chaque monde de ce site a été créé à partir d'une seule description écrite et publié comme une page jouable.

FAQ

Peut-on vraiment faire la course dans un navigateur ? +

Oui. Le monde jouable de cette page tourne dans l'onglet du navigateur et vous pouvez le parcourir sans rien installer. La fréquence d'images dépend de votre matériel et du nombre de draw calls de la scène, mais une scène low poly aux segments visibles bornés reste dans un budget de 60 fps sur une carte graphique intégrée typique.

Dois-je écrire du code pour créer un jeu de course low poly ? +

Non. Dans le 3D Game Builder, vous posez des segments de route sur une grille, placez des accessoires, définissez le point d'apparition et fermez la boucle à l'aide des outils de placement du constructeur. Le code ne devient pertinent que si vous voulez un comportement personnalisé au-delà de ce que le constructeur expose.

D'où viennent les voitures et accessoires low poly ? +

Vous importez un ensemble low poly existant ou vous en générez un avec Agent Sprite Forge. Ce qui compte, c'est la cohérence : générez les voitures et les accessoires de bord de piste en une seule passe pour qu'ils partagent une palette et une densité de facettes.

Comment créer un circuit qui se lit bien à grande vitesse ? +

Commencez par un contraste de valeur route/hors-route pour que le bord soit lisible, placez des accessoires à intervalles réguliers le long de chaque ligne droite comme repères de vitesse, et compressez leur espacement dans les virages. Réglez ensuite le point d'apparition sur l'axe central avec une anticipation dégagée et parcourez un tour complet à grande vitesse avant d'ajouter du circuit.

Qu'est-ce qui limite les performances dans un jeu de course low poly dans le navigateur ? +

Les draw calls et le fill rate, pas le nombre brut de triangles. Un segment de 2 000 triangles rendu comme un maillage distinct coûte plus cher que la même géométrie fusionnée. Gardez l'ensemble des segments visibles borné grâce au culling et réutilisez les maillages plutôt que de multiplier les maillages uniques.

Peut-on exporter un circuit vers un moteur complet plus tard ? +

Oui. La scène peut être exportée pour être transférée dans un moteur complet lorsque l'environnement d'exécution du navigateur ne suffit plus. C'est la voie habituelle si vous avez ensuite besoin de physique personnalisée ou d'un plus grand nombre d'adversaires que ce que gère l'environnement d'exécution du navigateur.

Retour au 3D Game Builder

Les 31 mondes, jeux et scènes 3D terminés sont réunis sur une seule page — tous jouables.

Plateforme : Neta StudioPage : Jeux de course low polyÀ lire ensuite : /use-cases/en/low-poly-3d-assets · /explore/tool/ai-voxel-game-maker · /use-cases/en/isometric-pixel-art
×