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

Neck & Neck

Le Game Jam a vu l'élimination de Roundabout, tandis que Citizen 2.0 reçoit des mises à jour. De nouvelles fonctionnalités et optimisations sont également ajoutées.

Neck & Neck

Game Jam: Final Four

Vidéo Ouverte

Roundabout a été éliminé et termine à la 5ème place avec £5000.

Les finalistes restants sont :

  • GAMMA TEAM
  • RUN IT AGAIN
  • Catz VS Ratz
  • Keg Quest

Le prochain tour de votes est ouvert maintenant !

Citizen 2.0

J'ai mis à jour le citoyen. Il a maintenant un visage par défaut non renfrogné et peut avoir un cou.

Nous avons des curseurs pour modifier d'autres aspects du corps comme la taille de la poitrine, de la taille, du cou et du nez. Vous pouvez aussi choisir la couleur de leurs yeux. Donc, si vous aimiez ne pas avoir de cou, vous pouvez le rétablir avec un curseur.

Pour être honnête, j'adore le citoyen, j'adore son apparence, j'adore qu'il n'ait pas de cou. Mais les retours que nous avons reçus sont que les gens les détestent. Ils détestent tout chez eux. Donc, nous allons modifier et changer des choses pour voir si nous pouvons améliorer cela.

Nous allons continuer à essayer de le faire fonctionner un peu plus longtemps, nous allons continuer à peaufiner et à essayer de le rendre moins clivant, mais à un moment donné, nous devrons peut-être admettre que ça n'a pas fonctionné et le remplacer par un humanoïde générique.

Bien sûr, ce n'est pas ce qui "répare" s&box à lui seul, mais c'est quelque chose qui revient constamment dans nos nombreuses critiques négatives, donc c'est quelque chose que nous traitons avec tous les autres retours que nous recevons.

Model Deform


Vous pouvez maintenant remodeler un modèle avec un composant ModelDeformer. Ajoutez-en un comme enfant d'un modèle, utilisez son volume pour choisir la zone affectée, et gonflez, écrasez, étirez, transformez, tirez ou projetez cette partie du maillage. Les déformateurs peuvent être empilés avec une priorité explicite pour contrôler leur ordre.

Ce sont tous des GPU, ils sont très rapides, et peuvent s'appliquer à n'importe quel modèle. Ils sont purement visuels - ils ne vont pas changer les positions des os ou les données de collision.

Vidéo Ouverte

C'est ce qui donne à Citizen 2.0 son cou et ses nouveaux contrôles de forme corporelle, mais cela peut aussi être utilisé pour vos propres personnages et effets. 

Friends and Parties


Nous avons réorganisé certaines choses, et déplacé la liste d'amis pour qu'elle soit bien visible sur le côté droit du menu principal. Nous voulons rendre aussi simple que possible pour vous d'inviter vos amis et de voir ce qu'ils font.

Tous les contrôles de la fête apparaissent maintenant en bas à droite de votre écran. Il sera plus clair de savoir ce qui se passe, si tout le monde a téléchargé un jeu, ou si vous attendez l'hôte. Ces contrôles de fête restent affichés sur d'autres pages, y compris les superpositions !

Nous avons également ajouté une nouvelle carte de joueur, qui s'affiche lorsque vous cliquez sur l'un de vos amis. Elle montre aussi leur avatar !





Game Overview Refresh

Nous avons rafraîchi l'écran de présentation du jeu. Beaucoup d'infos que les joueurs ne trouvaient pas utiles ont été supprimées, mais nous avons également ajouté de nouvelles choses qui faciliteront la recherche de jeux adaptés à votre groupe.

La dernière mise à jour d'un jeu est également visible d'un coup d'œil. Nous encourageons les créateurs sur la plateforme à utiliser cette fonctionnalité, car elle est utile pour montrer aux joueurs ce qui est nouveau et ce à quoi ils peuvent s'attendre.

Loading Screen Refresh

L'écran de chargement avait l'air daté, donc nous l'avons également rafraîchi. Il affichera la dernière mise à jour d'un jeu pour que vous puissiez lire un résumé, ainsi que le nombre de succès que vous avez débloqués.

Lors de l'ouverture de l'écran de chargement, vous auriez remarqué que certaines choses restaient affichées à l'écran pendant que tout se réchauffait. Cela a également été corrigé, donc les choses sembleront plus fluides à l'avenir.

Main Menu Music

Le menu principal a une nouvelle piste musicale de Carson. Et si vous n'aimez pas ça, j'ai également ajouté un réglage de volume séparé pour la musique du menu, afin que vous puissiez le baisser ou l'éteindre indépendamment du reste de l'audio.

Voice Chat Settings


Le chat vocal utilise maintenant SDL pour la capture du microphone et Opus pour la compression. Vous pouvez sélectionner votre microphone directement dans les paramètres audio du jeu, avec un indicateur en direct pour aider à définir le seuil d'activation vocale.

Cela corrige également les voix brouillées lors de l'exécution de plusieurs instances du jeu. Chaque flux de lecture possède maintenant son propre décodeur, et la lecture vocale personnalisée peut utiliser SoundStream.WriteVoiceData.

New Startup Screen


Nouvel écran de démarrage pour le jeu avec une barre de progression.

GPU Profiling Scopes for Command Lists

Vous pouvez maintenant ajouter vos propres portées de profilage à l'intérieur des listes de commandes. Elles seront visibles depuis le profileur GPU en jeu (overlay_gpu 1) et des outils externes. Cela devrait être utile pour mesurer le coût de performance de sections spécifiques de votre code de rendu.

Voici comment vous pouvez ajouter une portée de profilage :

static readonly ProfilingSampler MyProfilingScope = new( "My Profiling Scope" );

// à l'intérieur du code d'exécution de la liste de commandes :
using ( _commandList.ProfileScope( MyProfilingScope ) )
{
    // faire quelque chose ici...
}

 Les portées imbriquées fonctionnent également, comme sur la capture d'écran ci-dessus. Voici un exemple de configuration pour cela :

using ( _commandList.ProfileScope( ParentScope ) )
{
	using ( _commandList.ProfileScope( NestedScopeA ) )
	{
		// quelque chose ici...
	}

	using ( _commandList.ProfileScope( NestedScopeB ) )
	{
		// quelque chose ici....
	}
}

 Ces extraits de code sont également disponibles dans la documentation s&box. 

Clutter Optimizations

Nous avons beaucoup optimisé le dispersoir de désordre pour utiliser moins de mémoire, moins de saccades et améliorer les performances globales.

Dans notre scène de référence, nous avons réduit les allocations de mémoire de 58 % et réduit le temps de téléchargement par lot de 97 %.




Scene Compilation


Vous pouvez maintenant compiler des maillages et des modèles de scène en géométrie statique combinée et collision en utilisant Scene > Compile Scene. Cela est similaire à la compilation de cartes dans Hammer, un pas de plus vers l'édition de cartes dans l'éditeur de scène.

Vous devriez voir une bonne réduction des appels de dessin si votre scène a beaucoup de maillages.



Depth of Field Improvements


La profondeur de champ a maintenant un sélecteur de mise au point : cliquez sur un objet dans la scène pour définir la mise au point au lieu de trouver la distance par essais et erreurs. Les contrôles de distance de mise au point et de plage ont également été élargis pour des scènes plus grandes.

Vidéo Ouverte

La taille du flou est maintenant mise à l'échelle par rapport à une cible de rendu 1080p, donc changer de résolution garde l'effet d'une taille cohérente. Nous avons également corrigé des pixels HDR brillants qui fuyaient à travers des échantillons de profondeur de champ rejetés.

Faster Game Loading

Plus il faut de temps pour entrer dans un jeu, plus les joueurs abandonnent avant de le voir, donc nous avons passé du temps à les faire entrer plus rapidement.

Téléchargements

Les téléchargements passaient par le fil principal, donc sur une connexion rapide, ils étaient partiellement limités par le taux de rafraîchissement. Ils fonctionnent maintenant sur le pool de threads, et les dépendances se téléchargent en parallèle au lieu d'une à la fois.

Voici quelques chiffres de nos benchmarks :

  • Sur du matériel moyen avec une connexion de 200 Mbit/s, un jeu avec beaucoup de petits fichiers se télécharge environ 50 % plus vite
  • Les jeux avec beaucoup d'autres dépendances de paquets en bénéficient le plus, un est passé de 19,4 s à 6,6 s
  • Plus votre connexion est rapide, plus le gain est important, les connexions lentes étaient déjà principalement limitées par le réseau

Chargement

La plupart du temps de chargement était passé sur la surcharge plutôt que sur le chargement réel :

  • Les fichiers étaient montés un par un
  • Les dll de paquets étaient téléchargées à nouveau à chaque chargement
  • Les appels de backend attendaient les uns les autres au lieu de s'exécuter en parallèle


Chargement du sandbox sur flatgrass :

  • Chargement à froid (premier chargement après le démarrage de s&box) : ~20s à ~9s
  • Chargement à chaud (le rechargement dans la même session) : ~7s à ~5,5s

Faster Painter Drawing

J'ai optimisé le système Painter. Maintenant, dessiner des Polygones et des Polylignes est beaucoup plus rapide et ne crée aucun déchet.

Rendering Stability

Nous avons corrigé plusieurs causes de plantages GPU, y compris le travail de profondeur-normale sur certaines cartes AMD, le filtrage de cubemap, les mises en page d'entrée de rendu, et le nettoyage lors du déchargement des cartes ou de l'arrêt du moteur de rendu.

Il y a également des corrections pour remplacer les upscalers DLSS et initialiser ou partager les upscalers FSR3. Lorsque la VRAM est dépassée, le pool de textures se rétrécit du montant qu'il est dépassé, y compris dans les outils. Les rapports de plantage GPU incluent plus d'informations sur l'appel échoué, le shader et le budget mémoire pour aider à identifier les problèmes restants.

Database Service

Nous avons eu un service de base de données sur le backend pendant un certain temps mais ne l'avons pas vraiment exposé. Eh bien, maintenant il est exposé via Sandbox.Services.Database. Il y a un million de façons de l'utiliser et je suis sûr que nous allons l'étendre à l'avenir.

Cela vous permet de sauvegarder des données dans une base de données pour votre package, sur le backend. Les données persistent entre les sessions, évidemment, et peuvent être publiques ou privées. Vous pouvez obtenir toutes les entrées pour un groupe particulier, etc.

var messages = Database.GetTable( "player-messages" );

// Le message et sa position dans le monde.
var data = Json.Serialize( new
{
    Text = "Ce coffre a des dents.",
    Position = new Vector3( 120, 450, 32 )
} );

await messages.Create( Guid.NewGuid().ToString(), data, "dungeon-01", true );


var records = await messages.List( "dungeon-01" );

Player Insights for Game Creators

Il y a une nouvelle page d'aperçus des joueurs sous les métriques de votre jeu, à sbox.game/<your-org>/<your-game>/metrics/player-insights.
Seuls les membres de l'organisation du jeu peuvent la voir.

Elle se concentre sur deux sujets :

Rétention des Joueurs

  • Combien de temps les joueurs restent pendant leur première session
  • Combien reviennent le lendemain, une semaine plus tard et un mois plus tard
  • Si cela s'améliore ou se dégrade au fil du temps


Découverte & Intégration

  • Où le menu a montré votre jeu et comment les joueurs y sont entrés
  • Si la miniature, la description et la vidéo les convainquent de lancer le jeu
  • Si les 5 premières minutes les maintiennent engagés


Il y a aussi une petite section sur le chargement, car un gros téléchargement ou un démarrage lent est l'endroit où les joueurs abandonnent avant d'avoir vu quoi que ce soit.

Tout est comparé à des jeux similaires, donc vous pouvez savoir si vos chiffres sont vraiment bons.

Game Metadata Moved from the Web to the Editor

Le nombre de joueurs, le mode coop/versus et les paramètres de carte ont été déplacés du site Web vers les paramètres du projet et l'assistant de publication.
Les joueurs devraient voir quels jeux ils peuvent jouer seuls ou avec leur groupe, et cela ne fonctionne que si chaque jeu a cette information définie. Donc, l'assistant de publication demande maintenant cela.

Terrain Rendering Fixes

Les trous de terrain et les bords extérieurs sont maintenant découpés avant le shading des pixels. Cela restaure le rejet de profondeur précoce et permet à la MSAA de lisser les bords coupés, tout en évitant le travail de shader sur le terrain qui sera rejeté.

Nous avons également corrigé l'écriture de données de surface incorrectes lors du prépassage de profondeur du terrain. Il produit maintenant les normales et la rugosité appropriées, restaurant l'occlusion ambiante sur le terrain.