s&box-france
Toutes les actualités s&box
Facepunch·

Mise à jour 26.09.08

s&box introduit la physique 2D avec Box2D et lance la Game Jam III avec un prix de 50 000 £. De nombreuses améliorations UI sont également présentes.

Mise à jour 26.09.08

Physique 2D

s&box dispose désormais de la physique 2D, propulsée par Box2D (oui, comme Box3D). Changez le mode physique dans les paramètres de votre scène et les corps simuleront dans le plan XY, en utilisant les mêmes composants et API physiques que vous connaissez déjà au lieu d'avoir une séparation entre les API 2D et 3D.

Ouvrir la vidéo

Game Jam

La Game Jam III a commencé avec un prize pool de 50 000 £. Le thème est UNE TOURNÉE DE PLUS et les soumissions se terminent le vendredi 25 septembre.

Nous l'avons intégré dans le menu de la plateforme où les participations sont jouables et votables par la communauté.

La structure est en place pour de futures game jams, nous pouvons laisser la communauté en organiser, nous pouvons récompenser des objets pour cela, etc.

Adieu Yoga

Nous avons utilisé Yoga comme notre moteur de mise en page UI depuis le début, ce qui fait qu'il prend tout votre HTML & CSS et décide où cela doit aller à l'écran, de la même manière que votre navigateur le fait sur cette page en ce moment.

Cependant, Yoga ne pouvait faire que des mises en page Flexbox et nous en voulions plus. Nous l'avons donc remplacé par notre propre moteur de mise en page C# open source Sandbox.Layout.

Avec cela, nous pouvons supporter plus de façons différentes de disposer les éléments UI tels que display: block, display: grid et display: inline

Les mises en page existantes devraient être exactement les mêmes, et les performances devraient être légèrement meilleures même en passant de C++ → C#.

Charge de travail de mise en pageYogaSandbox.Layout
10 001 nœuds arbre flex plat : première mise en page5,40 ms2,22 ms
10 001 nœuds arbre flex plat : feuille modifiée3,68 ms1,37 ms
10 101 nœuds arbre flex imbriqué : première mise en page4,99 ms3,54 ms
10 101 nœuds arbre flex imbriqué : redimensionnement de la racine1,92 ms2,22 ms

Mise en page CSS Grid

Nous supportons désormais la mise en page CSS grid, qui est comme Flex mais facilite la disposition de votre contenu dans une grille exacte.

Texte en ligne

Nous n'avons jamais vraiment eu de moyen complet pour faire du texte enrichi auparavant, des choses simples comme le texte stylisé s'étendant sur plusieurs lignes n'étaient tout simplement pas possibles, tout était un bloc de contenu.

Maintenant, vous pouvez faire display: inline pour le contenu et cela se comportera comme sur le web, vous permettant de styliser n'importe quel morceau de texte sans vous soucier de la mise en page.

Position Fixe

Nous avons ajouté position: fixed qui est comme le positionnement absolu mais le point d'ancrage est toujours l'écran. Cela est particulièrement utile pour les pop-ups de menu comme...

Menus

Il y a un nouveau système Sandbox.UI.Menu pour les barres de menus et les menus. Cela supporte tout ce que la version éditeur fait, mais vous pouvez l'utiliser dans vos jeux !

var file = new Menu( "Fichier" );
file.AddOption( "Nouveau", "note_add", New ).Shortcut = "Ctrl+N";
file.AddOption( "Ouvrir...", "folder_open", Open );
file.AddSeparator();
file.AddOption( "Sauvegarder", "save", Save ).Enabled = false;

L'objectif est de rendre ces éléments aussi natifs que possible... et pour l'instant, c'est le cas. Vous pouvez les restyler avec du CSS comme vous vous y attendez.

Barres de défilement

Barres de défilement, enfin ! Elles sont intégrées dans le système de panneaux et vous les activez avec scrollbar-width. Il est conseillé de faire scrollbar-width: auto si vous voulez qu'elles soient visibles.

Je suis assez militant sur le fait de ne pas inventer nos propres styles CSS, donc ils utilisent des styles CSS standards comme...

  • scrollbar-width - définit la largeur
  • scrollbar-color - définit la couleur de fond et de la poignée
  • scrollbar-gutter - superposition vs en ligne

Vue Arbre

Le système UI de panneaux a maintenant un TreeView, tout comme l'UI de l'éditeur. Cela fonctionne comme vous vous y attendez, comme un contrôle natif de Windows. C'est virtualisé, a une sélection, une navigation au clavier, un survol et un style de ligne, un renommage, des menus contextuels, un défilement vers l'élément... tout ce que vous attendez.

Aide contextuelle partout

Les aides contextuelles sont meilleures maintenant. Elles fonctionnent dans les PanelWindows (que le nouveau lanceur utilise).

Nous avons ajouté Panel.OnTooltip - que vous pouvez utiliser pour construire le panneau d'aide contextuelle. Cela signifie que vous pouvez créer de belles aides contextuelles riches, au lieu d'être limité à une ligne de texte comme avant.

Sélecteur de couleur

J'ai revu le sélecteur de couleur avec plusieurs mises en page différentes : carré, anneau de teinte, disque de teinte, HSV et RGB.

Keyframes de Movie Maker

Movie Maker obtient un montage de timeline plus rapide. Shift-click-drag peut peindre des blocs de keyframes dans une plage ou les supprimer, rendant le travail de timing répété beaucoup moins fastidieux.

Ouvrir la vidéo

Les aperçus d'exportation utilisent également moins de ressources, laissant plus de marge pour la scène en cours de rendu et le reste de l'éditeur.

Une primitive de porte

Les outils de cartographie ont une nouvelle primitive de porte. Cela crée une porte en une seule opération modifiable au lieu de vous faire couper et reconstruire une porte de base à la main.

Ouvrir la vidéo

Nouveau format de compression des normales de maillage

Les normales et tangentes des modèles utilisent désormais l'encodage signé-octaédrique et diamant, ce qui signifie que cela a l'air mieux.

TL;DR est que notre ancien format d'encodage avait une erreur de précision allant jusqu'à 1-2 degrés, ce qui a entraîné divers artefacts ennuyeux que les artistes compensaient en activant des tangentes coûteuses dans ModelDoc. (ce qui est mauvais en raison d'une utilisation mémoire plus élevée)

J'ai remplacé cet encodage par un nouveau format, tangent signé-octaédrique + diamant, qui offre une bien meilleure précision (environ ~0,2 degré d'erreur de précision) tout en gardant le même budget mémoire.

Que devez-vous faire en tant qu'artiste/développeur :

  • Recompilez simplement tous vos modèles. Jusqu'à ce que les modèles soient recompilés, ils continueront à utiliser l'ancien format de compression.
  • Je pense que vos shaders personnalisés se recompilent automatiquement lors du prochain lancement de l'éditeur, mais assurez-vous qu'ils sont à jour de toute façon.
  • Les anciens actifs cloud avec des modèles et shaders obsolètes resteront fonctionnels, mais au prix d'une bande passante mémoire plus élevée. Si vous avez des modèles téléchargés sur le cloud, veuillez les recompresser et les re-télécharger si vous le pouvez !

C'est un changement assez majeur mais cela ne devrait pas affecter les actifs existants, donc même si vous ne faites rien, tout devrait rester normal. N'hésitez pas à me faire savoir si j'ai cassé l'un de vos actifs, joindre des journaux/actifs/projets de reproduction sera utile.

Ouvrir la vidéo

Ouvrir la vidéo

Meilleur rythme de trame

Certains utilisateurs ont signalé de fortes saccades même lorsque leur FPS semblait bon. Cela était particulièrement perceptible pour les utilisateurs qui avaient désactivé la planification GPU accélérée par matériel de Windows (HAGS). Nous avons retravaillé le rythme de trame afin que les images atteignent l'écran de manière plus uniforme, rendant le mouvement plus fluide.

Si vous rencontrez toujours des problèmes de rythme, faites-le nous savoir, car le problème peut persister sur certaines configurations matérielles.

Le mode plein écran exclusif a également été corrigé et est maintenant demandé correctement au pilote.

Navigation

Nous avons remplacé le reste de la simulation de pathfinding et de foule DotRecast par notre propre implémentation.

Dans des tests synthétiques, la mise à jour de la file d'attente de pathfinding était 8,4 fois plus rapide, et créer et planifier des chemins pour 100 agents utilisait 63 % de mémoire en moins sur le thread d'appel. Les mises à jour des agents peuvent également s'exécuter sur plusieurs cœurs.

Il y a aussi une nouvelle API CalculatePathAsync, ainsi que des corrections pour les agents bloqués, la traversée de liens et la génération de navmesh.

Améliorations de l'édition de Prefab

De petites modifications apportées à de grands prefabs copiaient beaucoup plus de données que nécessaire. Nous avons accéléré le calcul des remplacements et l'enregistrement des annulations, rendant la capture d'annulation des propriétés/composants environ 4 à 5 fois plus rapide, avec environ 75 % d'allocations en moins dans des tests synthétiques.

Pour un prefab avec 500 objets et 1 500 composants, l'enregistrement d'une modification de composant pour annulation est passé de 383 ms à 78 ms.

Nous avons également corrigé des problèmes avec des maillages de scène disparaissant lors de l'application ou de la sauvegarde de prefabs, ainsi que des problèmes avec des instances imbriquées et l'ordre des objets.

Docs

Et enfin, la documentation a reçu un coup de jeune bien mérité pour rendre l'information plus découvrable et lisible. La barre latérale a maintenant un filtre rapide, le contenu a une table des matières et des tailles de police plus cohérentes avec un contraste de couleur de texte global.