Passer au contenu principal

Jan: Store & Vault!

· 11 minutes de lecture
Gabriel • SyedMuhammad
lead developer™

Introducing Store, New Classes and all Retroactive Updates!

Ce blog résumera également les points forts de tout ce qui a été développé depuis le dernier blog en novembre ! Detailed Changelog is available in our Discord! Restez à l'écoute !

Introducing: Store & Vault!

It is with great joy that we finally announce the long-awaited Store! La boutique est un marketplace où chacun pourra télécharger ses assets, ses packages, sortir de nouvelles versions, créer des équipes et bien plus encore ! 100% intégré avec le Vault et le CLI !

tip

The store development is being headed by @MegaThorx! Il s'agit de la version initiale et plusieurs mises à jour sont à venir ! Tous les avis et commentaires sont appréciés !

Fonctionnalités

  • Creation of Asset Packs & Packages pages, including images and description.

  • Upload of new Versions, with ability to tag as Draft, Beta and Stable.

  • Create a Team and add Team members.

  • Tag & Category system.

tip

Check out the complete documentation here.

nanos world Store available now on https://store.nanos-world.com/

Token serveur

With the addition of the Store, we've got a new feature: Server Token.

This token is required when downloading any content from the Store using the CLI (and soon™ when using other integration features), you must set it in your Config.toml file as token setting.

To generate a token please refer to https://store.nanos-world.com/settings/tokens/.

New Class: Canvas

We've added a new class to completely replace our old Render Static Class: Canvas! Canvas est comme un cadre de peinture, vous pouvez dessiner n'importe quoi dessus, des Lignes, aux Carrés, aux Matériaux et Textures !

You can also use it as UI or paint any object with a Canvas using :SetMaterialFromCanvas()!

Maintenant il est plus facile de créer une interface utilisateur basique!

-- Créer un Canvas
local canvas = Canvas(true, Color.TRANSPARENT, 0, true)

-- S'abonnner aux mises à jour, nous pouvons seulement dessiner dans cet événement.
canvas:Subscribe("Update", function(self, width, height)
-- Dessiner un Texte au milieu de l'écran
self:DrawText("Hello World!", Vector2D(width / 2, height / 2))

-- Dessiner une ligne rouge horizontale
self:DrawLine(Vector2D(0, height / 2), Vector2D(width, height / 2), 10, Color.RED)
end)

The Basic HUD (Canvas) Tutorial has been updated as well!

Steam Input + Contrôleur

Nous avons réussi à intégrer Steam Input. Si vous n'êtes pas familier avec cela, Steam Input vous permet de configurer et de jouer avec n'importe quel contrôleur, et aussi le configurer via l’interface Steam.

C'est une belle intégration car c'est une implémentation relativement simple qui permet de jouer avec les contrôleurs dans nanos world, et il donne aux utilisateurs la possibilité de personnaliser les liaisons et de les partager avec la communauté.

Une version initiale a été publiée dans la dernière mise à jour, plus de liaisons et de configurations viendront ensuite.

Nouveaux Glyphes de touche intégrés

Nous avons ajouté une méthode utilitaire pour récupérer un Glyph/Image d'une touche donnée. Just use Input.GetKeyIcon(key_name) and it will return the path of the image which can be used as Texture or as an usual image <img> in the HTML!

You can use it combined with Input.GetMappedKey() to dynamically get the Key Glyph based on the user's key binding configuration.

Amélioration des traces de balles

Nous avons retravaillé nos particules de balle par défaut. Auparavant, selon le point de vue, vous pouviez voir une grande sphère passer à travers et aussi plusieurs bugs dans le ciel. Maintenant, elles ont été retravaillées pour être plus réalistes et sans artefact !

Nouvelle Configurations de Map

Il est maintenant possible de créer des fichiers de configuration individuels pour chaque Map, dans lequel vous pouvez définir tous les modes de jeu compatibles, les emplacements de spawn et ajouter des données personnalisées !

De plus, il est possible de configurer un package complet qui se chargera automatiquement lorsque cette Map sera chargée.

Map.toml
# map configurations
[map]
# compatible game-modes
compatible_game_modes = [
"sandbox",
"deathmatch"
]

# list of spawn points
spawn_points = [
{ location = "Vector(100, 200, 100)", rotation = "Rotator(0, 90, 0)" },
{ location = "Vector(200, 300, 100)", rotation = "Rotator(0, 90, 0)" },
]

[custom_data]
whatever = "anything"

Check the complete documentation at Map Script & Data.

tip

The following changes were added back in 1.1.0-1.3.0 update, we gonna highlight the best ones here!

CLI interactif

An amazing and extremely useful functionality that has been added to the CLI is the creation of Asset Packs & Packages interactively.

Use add [package|assets] NAME and it will create the Asset Pack or Package interactively, it will create the Configuration and Default files as well!

Tags d'acteur

At the request of our testers, we implemented a interface to access Unreal's Actor Tags, with Actor.SetActorTag() and Actor.GetActorTag() you can set/get unreal Actor Tags directly from Scripting (client side).

Les Actor Tags sont juste un tableau de chaînes de caractères qui peuvent être accédées depuis n'importe où, y compris à partir d'un Blueprint Unreal. Ce petit ajout augmente la gamme de possibilités d'intégration avec des Blueprints et des implémentations externes.

New Class: SceneCapture

This is a very cool feature released back in 1.1.0 update.

SceneCapture is a Camera Actor which captures the environment in real time, and we can get the outputted result with :SetMaterialFromSceneCapture() into any other Actor!

Il a plusieurs réglages de performance configurables qui le rendent plus efficace si vous ne regardez pas les acteurs et aussi réduit la vitesse de capture si vous êtes trop loin !

Cache des Assets

Nous avons implémenté une excellente fonctionnalité qui améliore les performances et réduit le saccage lors du (re)chargement des Assets à l'exécution. Le saccage se produit généralement lors de l'utilisation du disque dur et lors du chargement de quelque chose à partir du disque. Now every loaded asset (including files from disk - .ogg and .jpg) is cached and reused when loading again automatically. Nous avons toujours l'intention d'ajouter quelques options pour charger automatiquement tous les assets de tous les packs d'assets chargés lors de l'entrée dans un serveur et aussi une option scriptable pour charger un asset avant son utilisation pour réduire encore plus le saccage et ajouter plus de liberté aux scripteurs.

Profils de Lumière

We've added a new cool setting for Lights: Light Profile, which allows changing the Light Profile Texture of a Light with Light:SetTextureLightProfile().

It is possible to set to one of our built-in Light Profiles. All built-in Light Profiles were imported from IES Light Profile Pack.

Cela peut ajouter un effet de lampe torche réaliste à vos lumières par exemple.

Améliorations des Véhicules

Now it is possible to manually control if the Vehicle Engine is started or not, also if it auto starts when a driver gets in with Vehicle:SetAutoStartEngine().

Also we added a small detail: Taillights, it gets Red when braking and White when going backwards, it is customizable with Vehicle:SetTaillightsSetup():

note

Les couleurs du maillage du véhicule ne sont toujours pas synchronisées avec les Feux de Stop ni avec les Feux, cela sera amélioré dans les prochaines mises à jour !

Personnalisation du Parachute

We've added an useful customization to the built-in parachute, now it's possible to change it's texture with Character:SetParachuteTexture(texture). Also, all built-in Textures can be found at nanos-world/NanosWorld/Content/NanosWorld/Textures/Parachute/ and used like assets://nanos-world/Textures/Parachute.

Spotlight de la Communauté

Notre communauté a travaillé dur sur plusieurs choses étonnantes, nous aimerions les partager avec vous!

T-Drones

by Timmy

Timmy a travaillé sur un packages de Drone très cool et entièrement fonctionnel. Entièrement intégré à le nouveau SceneCapture pour un "système de caméra 3D". Aussi, le Drone a une fonction pour rentrer à la maison tout seul! Incroyable!

T-Drones est un script conçu pour émuler le comportement des drones de loisir, et pensé pour fonctionner sur une grande majorité des modes de jeu.

Il a été conçu pour être le plus modulaire possible et pour s'adapter aux besoins de toute personne désireuse d'apporter des modifications ou des ajouts facilement.

KOTOR RP

by ERO Team (NegativeName, Mougel, False & Tark)

L'équipe ERO travaille dur sur un mode de jeu RP basé sur l'univers de Star Wars (KOTOR RP), ça va être incroyable! Voici quelques captures d'écran de leur monde et du système de Combo du Sabre Laser!

Star Wars KOTOR RP est un mode de jeu roleplay français dans l'univers de Star Wars.

Vous jouerez un personnage dans une galaxie lointaine. Votre rôle dépendra de vous. Allez-vous rejoindre l'Empire Sith pour asservir la galaxie, la protéger en rejoignant la République Galactique, ou ne pas prendre parti dans cette guerre?

Le choix vous appartient ! Devenez un Jedi, un Sith, un soldat, un mercenaire ou un simple marchand.

T-Bomber

by Timmy

Timmy est également en train de créer un mode de jeu Bomberman ! Bon travail, j'ai hâte de jouer !

T-Bomber est un mode de jeu basé sur Bomberman et fortement inspiré du célèbre jeu de labyrinthe.

Il vise à reproduire l'expérience originale de Bomberman avec quelques fonctionnalités supplémentaires, et à montrer certaines des possibilités de scripting de nanos world.

Les règles sont très simples, le dernier en vie gagne la partie!

VZombies

by Voltaism

Voltaism travaille sur son mode de jeu Zombies basé sur celui de COD. C'est incroyablement amusant et effrayant!

Le mode jeu est presque terminé, et est essentiellement un clone du mode classique Call Of Duty: Zombies où vous devez survivre contre des vagues de zombies le plus longtemps possible!

Ce mode de jeu a également des bots qui peuvent jouer avec vous.

nanos BattleField 2043

by LighterChu, Trevor & MemeFrug

Battlefield 2042 est sorti, nous nous attendions au meilleur. Pourquoi avons-nous fait nanos battlefield 2043, et bien ce n'est pas seulement Battlefield 2042 c'est aussi tous les champs de bataille mélangés dans le futur des titres qui sont combinés ici.

Conclusion

Merci encore pour vos commentaires et votre soutien, chaque suggestion et chaque bug trouvé fait avancer nanos world de plus en plus vite!

note

Ce blog contenait plusieurs mises en avant de nos progrès au cours du mois dernier. Note that countless improvements, bug fixes and some other new features are available in the changelog on our Discord and also in-game.

Nous sommes au courant de vos plus importantes demandes et nous voulons les implémenter dès que possible pour rendre l'API de nanos world de plus en plus complète. Nous avons encore une longue feuille de route à suivre, et nous avons de grands d'objectifs pour apporter de nouveaux types de véhicules (y compris aériens et maritimes), Personnages personnalisables (supportant n'importe quel squelette), supporter les Blueprints d'Unreal et plus encore!

Tout de suite, nous désirons retravailler notre page Steam Store, elle a été laissée à la traîne en raison de problèmes techniques et nous voulons la relancer, avec cela nous désirons faire une refonte de nanos world, nous savons que les logos et les miniatures qui se rapportent au thème du jeu sont d'une grande importance pour l'auto-marketing sur Steam et pour attirer de nouveaux joueurs !

A bientôt ! Merci!