Passer au contenu principal

· 7 minutes de lecture
Gabriel T. Nardy

Halloween Playtest, Big API Refactor and more!

Halloween Playtest

This month we had our annual Halloween 🎃 event! As always, it has always been a moment of great evolution for nanos world! I would like to thank everyone who participated playing and the testers who participated creating content and game-modes for this event!

This year we had 4x more registered Playtesters than last year, and we hit several records in simultaneous players. And best of all, the game server managed to handle them all with ease 🙏! (except by the Vault that we had to increase the download limit during the event 😜).

Due to the event, we halted the updates for two weeks to focus only on bug corrections and improvements. We pushed more than 10 small patches with many bug fixes and improvements we've found before the event to grant it's stability!

Améliorations des Véhicules

I did several improvements on the Vehicle class, allowing bigger customization on them.

New Default Vehicles

We've added a new Vehicle Pack to the default nanos world vehicles pack. 4 of them are from a Feature free Marketplace pack (from the same creator of our previous one), and the Offroad is from Epic Games.

Animation Blueprints

I've added the possibility of loading custom Animation Blueprints on Vehicles, allowing the opportunity to have custom suspension animations like this one of the new Offroad vehicle:

Dynamic Lights Texture

Now it is possible to configure your vehicle with custom Material Parameters to turn it's Lights ON or OFF dynamically. You can find more info on how to configure your vehicles materials here.

New Subtle SFX

Also, I've added new custom sounds effects to vehicles, such as pulling the handbrake, or wheels brake screeching for example which adds to the realism and immersion.

Vault Text HTML Parser

Previously, as Vault item descriptions and changelogs were generated with HTML, we had CEF Browsers (WebUI) rendering them, but it was too much overkill and also quite disconnected from the rest of the UI.

So I decided to implement a custom HTML Parser to convert the HTML into proper Unreal Rich Text, having then a native renderer for the descriptions and changelog, making everything pretty again.

Native JSON Parser

I am migrating our current built-in JSON library to a native more-efficient JSON parser. With this new parser, we've managed to reach 10x speed when parsing JSON strings! All methods will remain the same, just the implementation will change.

Benchmark comparison: (9.5 MB JSON file)
Benchmark 'Lua JSON Parser' (x10) took 9964ms.
Benchmark 'Native JSON Parser' (x10) took 1057ms.

Kill Z

I implemented a built-in system for Kill Z. This is a system to destroying entities automatically when they reach too low heights, preventing some problems such as value overloading.

Currently the Kill Z offset is hardcoded for testing.

Big API Refactoring

This refactoring update will come in a future update and it's not completely done yet, but I would like to advance some things that are planned to change. We know refactoring usually comes with several breaking changes, but this time I'm working harder to make this update with zero breaking changes, keeping backwards compatibilities until you update your packages.

If you have more ideas for dramatical changes (such as renaming methods to maintain standard for example), please let us know so we can include in this big update!

Package Compatibility

I will be introducing a new setting in the Package.toml for the "Compatibility Version", where you can configure the current version of the game that works with that package and if the game updates and any method that your package uses get modified, it will continue to work in a "compatibility mode" (with deprecated alerts).

This differs from the usual "deprecated warnings" because now in cases where the signature of a method changes the package will not stop working (as it happens today), and the old implementation/interface will still exist internally.


Currently events work by just subscribing and calling them local or remotely, but we cannot strict if we just want to receive them on a specific side. A new addition will be the subscription of remote-only events:


This way only events called with Events.CallRemote() on the other side will trigger it. And also events subscribed with Events.Subscribe() will not receive remote events anymore.


Modules (Lua external binaries) will be reformed to become a type of Package. This way they can be shared easily and used by other packages, including through Vault.

Configuration Files

Now different Packages types will have different configuration files format (toml).

For example, the loading-screen package configuration currently have a lot of configuration which is not used by it (dependencies, assets, lua settings, etc). I want to have specific configuration files for each kind of Package (Modules, Loading Screen, Game-Modes, Libraries and Scripts), as also they will be loaded in different ways internally.

Server, Package & Assets Image

I'm removing the image URL setting inside the configuration .toml files, instead the image should be placed besides the .toml with the name Package.jpg, Assets.jpg or Server.jpg. This will avoid some problems of the client accessing dangerous or bad external URLs.

Multiple Constructors

A feature that will be included is the possibility of multiple Constructors, a very good example is the Sound Class that has several parameters that depend if the sound is 2D or 3D:

-- Current Constructor
Sound(location, asset, is_2D_sound, auto_destroy, sound_type, volume, pitch, inner_radius, falloff_distance, attenuation_function, keep_playig_when_silent, loop_mode)

-- New 2D Sound Constructor
Sound(asset, auto_destroy, sound_type, volume, pitch, loop_mode)

-- New 3D Sound Constructor
Sound(location, asset, auto_destroy, sound_type, volume, pitch, inner_radius, falloff_distance, attenuation_function, keep_playig_when_silent, loop_mode)

This way you can spawn a 2D or 3D sound just by choosing the right constructor!

Static Classes Renames

This will be a big organizational change! With each new update, some of our Static Classes are starting to accumulate lots of methods, and many of these are unrelated to each other.

With this in mind, we will split some Static Classes into new Static Classes, aiming at the best organization and especially the easy search and understanding of scripting API functions, some of the following listed methods may be renamed to reduce redundancy (e.g. to Chat.SendMessage).

We will have several new Static Classes, to list a few:

Chat, Console, Trace, Navigation, Debug, Viewport, Steam, Discord and others.

The full list with all changes will be listed when the update is released. All of these changes, including it's Events will be warned as deprecated for use.

Class Renames

Some classes will also be renamed for better standardization. For example Character and Vehicle could become CharacterMannequin and VehicleWheeled, which allows new classes of other types e.g. VehicleWater or CharacterGeneric.


This was a month of several fixes, improvements and rethinking the API as a whole, refactor is always a challenge as I need to maintain everything working and still rearrange the new interfaces of it, I don't want to rush this change.

My main objective now is finishing the organization of the API refactoring (please give me feedback of the changes mentioned on this blog!). Once this get finished, I will get more comfortable on adding new things and classes into it, I have many new features being developed in parallel that have not yet been announced, several of them are from your suggestions from Canny (cof cof vote! cof cof).

The result of the PlayTest was awesome! We had very few crashes and the server managed to handle very well the large amount of players!

I'm sure these upcoming improvements, including some not announced, will raise nanos world to another level of robustness!

Finally, thank you for all the support!! See you next time!

· 9 minutes de lecture
Gabriel T. Nardy


Dimensions 🌌

J'annonce fièrement l'ajout d'une des fonctions les plus demandées à être intégrées dans nanos world: les dimensions ! 🥳


Dans cette version initiale, des bugs, des désynchronisations et des choses étranges peuvent arriver, merci de me le faire savoir immédiatement !

Les dimensions sont des mondes séparés dans le côté client, où les joueurs et les acteurs sont séparés. Par défaut, tous les joueurs et entités sont dans la dimension 1. En déplaçant un Joueur vers une autre dimension, toutes les entités qui ne sont pas de cette dimension seront détruites à ce joueur, et toutes les entités de la nouvelle dimension apparaîtront pour lui.

Cette API est vraiment simple:


En envoyant une entité, leurs "enfants" bougeront aussi, exemples :

  • Lors de l'envoi d'un Acteur, tous les autres Acteurs attachés se déplaceront également.
  • Lors de l'envoi d'un Joueur, le personnage se déplacera.
  • Lors de l'envoi d'un Personnage, le Joueur n'est pas déplacé avec. Les armes ou props (et attachées) se déplaceront.
  • Lors de l'envoi d'un véhicule, tous les passagers seront également envoyés.

J'ai également ajouté une nouvelle méthode pour faciliter l'utilisation d'événements:

Events.BroadcastRemoteDimension(dimension, event_name, params...)

Cet événement sera envoyé à tous les joueurs de cette dimension.

Si vous envoyez une entité par le biais d'événements distants qui ne sont pas dans la même dimension que le Joueur, l'argument sera remplacé par nil et une alerte s'affichera.

Nouvelles animations du bloc de ciblage

J'ai retravaillé la façon dont les armes sont bloquées quand elles sont confrontées à des obstacles. Avant, le passage entre la visée et non causait un effet vraiment mauvais et déplaçait le crosshair.

Maintenant, l'arme se pliera de manière procédurale et la visée ne changera pas améliorant beaucoup le game-play !

Valeurs de synchronisation du serveur

Il est maintenant possible d'avoir des valeurs globales synchronisées entre le serveur et le client en utilisant le serveur . méthode etValue() , avec un nouveau paramètre bool sync_on_clients. Ces valeurs existeront sur tous les clients via Client.GetValue() comme d'habitude.

Amélioration des scripts

Nos fonctionnalités de Plan ont été améliorées !

Répartiteurs d'événement

Il est maintenant possible de se lier aux Opérateurs d'Événements de Lua! Rendre la communication du Plan à Lua maintenant possible !

-- Faire apparaitre le plan
local blueprint = Blueprint(Vector(), Rotator(), "my-asset-pack::BP_AwesomeBlueprint",)

-- S'abonner à un plan de dispatcheur d'évènements
blueprint:BindBlueprintEventDispatcher("GorgeousDispatcher", function(self, arg1, arg2)
-- arg 1 is a string and arg2 is an integer
Package.Log("Called from Blueprint!", arg1, arg2)

Vous pouvez trouver plus d'exemples sur notre nouvelle page de documentation : Plan de communication!

Valeurs de retour de fonction

Il est maintenant également possible de récupérer des valeurs de retour dans Lua à partir des fonctions de Plan !

Passing Actors through

And we can pass actors through parameters into and from Blueprints calls, they will be properly parsed into the correct entity when receiving or sending from Lua! E.g. You can create a Blueprint event which receives a Character or Actor as parameter, and pass it through Lua, it will be automatically parsed and marshalled to the correct Blueprint variable type!

Scripting Events Variables

Now our internal variables use 8 bytes for passing floats and integers, allowing higher values from being passed through events (network ones too)!

Tick Performance Boost

I managed to improve a lot the performance when having thousands of entities spawned (most were caused by Level StaticMeshes. I implemented smart algorithms to improve when they will perform Tick calculations for certain entities based on distance and real need to tick an entity.

This improved the CPU usage in almost 10x in some cases!

Client Side Network Authority

An experimental feature which has been added is the ability to allow methods of being called in the client-side if the player is the network authority of that entity.

For example now it is possible to call TranslateTo, RotateTo, SetForce, AddImpulse, SetWeaponAimMode and SetViewMode from client side! Which can improve a lot of Sandbox Physics Gun behavior for example!

WebUI Native Tables

Now you don't need to JSON.stringify() tables to pass to WebUI events anymore! You can pass them directly as the arguments and it will be natively parsed, which means much more performance when passing big tables around, and also you don't need to worry about stringifying or parsing them anymore as they already come as native table as the parameter!

File JSON Parser

Our File entity got a new method to natively load a JSON file and get it's table into Lua:


And we've got a big performance improvement compared to reading it as raw string and using the Lua JSON library:

Benchmark comparison loadinga big JSON file (9.5 MB)
Parsing it with Lua JSON library: took 9964ms.
Parsing it with Native JSON parser: took 1057ms.

CEF Improvements

Écran de chargement

I finished integrating CEF into the Loading Screen and now Ultralight has been completely removed from nanos world.

Also we got a new feature for Loading Screen: the ability to stop the Main Menu music! For that you need to call an event from JS:


Better Error Handling

The error handling has been improved as well, before we didn't get feedback of errors when loading invalid files and now we have.

Character Blend Spaces

Now it is possible to import custom Locomotion Blend Spaces to your Characters. You can override Standing, Crouching and Proning animations. And also set the transition animation between them!

We've got new API methods for that:

Character.SetAnimationIdleWalkRunStanding(anim_path, enable_tip)
Character.SetAnimationIdleWalkRunCrouching(anim_path, enable_tip)

Character.SetAnimationsTransitionStandingCrouching(anim_standing_to_crouching, anim_crouching_to_standing)
Character.SetAnimationsTransitionCrouchingProning(anim_crouching_to_proning, anim_proning_to_crouching)

You can find more examples at our new documentation page: Character Locomotion Animations!

Precaching Assets

Now it is possible to precache assets to make them load in Loading Screen (avoiding FPS spikes during game), for that you can just call:


All Assets are already precached automatically once referenced, so this new method is useful when you need to precache Assets which will be used in the future or loaded dynamically.

Better Wallbang

Our firing wallbangs were not working properly and I decided to rework it. Now wallbanging water reaches 10x further and causes more damage (before it was not possible to penetrate Water with bullets).

We've also got a new Debug settings to draw Weapon's bullet traces in the world, very useful for debugging:


Our Main Menu got some improvements, we FPS limit has been hardcoded increased to 120 (was 60) and during loading to 60 (was 30), it is still not great as I want to limit it to monitor refresh rate automatically.


Our tabs got new labels to improve the User Experience, mainly when creating a New Game. Now it is possible to know how many dependencies you have selected without needing to enter that menus:

New Game

Also in the New Game menu, now all configuration (including dependencies) are loaded from disk's Config.toml file. So we don't need to keep reconfiguring it every time when starting a server!

Debug Settings

We got 3 new debug settings:

  • Visualize Bullet Traces
  • Visualize Vehicle Doors
  • Visualize Character Capsule

Miscellaneous Improvements

Some other improvements and small new features we've got during this month:

  • Vehicle now receives TakeDamage event!
  • It is now possible to toggle a bunch of SceneCapture rendering features with SetShowFlags() new method.
  • Our console got several improvements on client side.
  • It is now possible to draw Materials, WebUI and SceneCapture into Canvas (experimental)!
  • I implemented in the scripting API a way to have multiple return values, so some methods will start getting that!
  • Now Databases will return an error parameter if anything failed.
  • All Character interaction (grab Prop, pickup Weapons, enter vehicles) were reworked, and now the traces are 100% precise when interacting with big objects. Also I striped the extra components needed for that, which will improve performance with too many interactable objects spawned.


We had many significant advances this month! Blueprint improvements were a great achievement for me because I had to do a monstrous reverse engineering on Unreal and several memory magic to intercept events.

The addition of dimensions was a very much requested feature and greatly expands the limits for game creation!

Performance improvements are always very welcome and I love to make them, we still have a lot of room for further improvements!

Furthermore, I devoted some time to work on some big refactoring internally, some parts of the code were starting to get dumped and messy, and they are not using the most modern C++20 techniques. Sometimes these refactoring are great to take the control back over our own code. 😄

In the next updates, I plan to reorganize the API (as discussed in our last #poll), we added methods which started accumulating in Static Classes without much cohesion between them. I intend to separate them and create new static classes for each, making the understanding and search for methods in the API much easier.

Another improvement I started to implement is the possibility of multiple constructors for entities. Which will allow we to have smaller ways to spawn the entities. This will be very useful if we want to spawn a Sound 2D or 3D for example (2D sound does not need the location parameter).

This is all this month, I see you next month with many more improvements and news! Thank you so much! 💖

· 7 minutes de lecture
Gabriel T. Nardy

API Open Source, Documentation autogénérée & Et plus !

Un autre mois s'est écoulé, et voici un résumé des choses qui se sont passées pendant cela !

API Open Source

Ce mois-ci, avec l'aide de toute la communauté, nous avons créé l'API officielle nanos world, qui est un ensemble organisé de toutes les classes, classes statiques, classes utilitaires, structures, et toutes leurs fonctions et événements. Nous avons fait cela afin d'avoir un endroit officiel où tout le script de nanos world peut être obtenu.

Extension VSCode

Avec l'API, il était possible de professionnaliser l'extension de nanos world pour VSCode, créée par @Derpius. Maintenant il utilise l'API pour générer tous les talons de Lua !

De cette façon, toutes les mises à jour faites dans l'API reflètent directement sur l'extension pour VSCode, en étant toujours mis à jour !

N'oubliez pas de l'évaluer 😉.

Documentation intelligente

Nos docs passent par un refactoring complet sous le capot ! Maintenant, toutes les pages de Référence de script sont générées automatiquement en utilisant notre nouvelle API ! C'est un grand pas en avant car avant j'écrivais chaque fonction séparément dans chaque page. Maintenant, j'ai juste besoin de mettre à jour un seul JSON et la documentation est structurée correctement !

Non seulement l'automatisation, mais maintenant nous avons des fenêtres contextuelles interactives, qui affichent plus d'informations sur une classe/structure/fonction lorsque vous la survolez ! Cela aidera beaucoup de nouveaux arrivants à comprendre les bases de nanos world !

Nouvelle interface (Console & Chat)

J'ai mis à jour notre ancienne interface graphique pour la console et le chat ! Maintenant ils appartiennent au même style que les menus !

Nouvelles statistiques de profil

I've added a real time profiling view to display performance information of the game and scripting. It displays the accumulated time spent on an operation and the average in the frame in the last second.

It is really useful for debugging and finding bottlenecks in both core game and in your packages! It displays individual events for each packages and the time they are taking to execute.

Trigger Whitelist

Now Trigger can have a list passed in the constructor to only trigger for specific classes! This helps scripters to care more about performance and reduces the amount of validation needed in Lua side to check if an entity triggered is of the type we want!

-- Triggers only Characters and Vehicles
local trigger = Trigger(
Vector(), -- location
Rotator(), -- rotation
Vector(100), -- extent
TriggerType.Sphere, -- trigger_type
true, -- is_visible
Color(1, 0, 0), -- color
{ "Character", "Vehicle" } -- overlap_only_classes

SceneCapture Render Only

SceneCapture got new methods to render only actors set manually through parameters. This allow transparent backgrounds when rendering just a specific Entity (a Character for example).


Melee Improvements

The Melee class got several improvements including new methods and events to make it even more flexible. You can now set a list of Attack Animations and Impact Sounds depending on the surface it hits! Also it got a new event Attack when the attack happens. Not to mention several bug fixes and improvements have been made on Melees too!

Melee.AddAnimationCharacterUse(asset_path, play_rate, slot_Type)
Melee.SetImpactSound(surface_type, asset_path, volume, pitch)

New Traces

I added two new Trace methods Client.TraceLineSingle() and Client.TraceLineMulti() replacing the old Trace. Those new methods now receive a trace_mode parameter which supports several parameters being passed as bitwise flags, this new way of passing parameters is great for future updates as it doesn't add breaking changes and also reduces the amount of parameters needed in the method.

You can for example pass it like:

-- Traces complex collisions, returns the entity as the Entity table value and draws a debug line in the world.
TraceMode.TraceComplex | TraceMode.ReturnEntity | TraceMode.DrawDebug

Performance Improvements

I am constantly working on improving the performance, this is one of my main priorities. And now with the new profiling stats, we are being able to find the bottlenecks faster!

We've got great improvement on performance while Aiming and on Blood decals/particle spawns. Now Blood takes into consideration all levels of Effects Scalability settings to spawn more/less depending on that.

I am aware of a "problem" causing performance hit when spawning some dozens of thousands of entities (Entity Tick time) and I'm thinking on a solution to solve that. The problem comes because each entity is "ticked" every frame, so thousands of entities means thousands of more ticks per frame.

Native LoadPackage

I did an great improvement on Package.LoadPackage() method to make a native load of Lua code. So anything you return in the loaded file will be properly receiving in the loader side! Before it was doing an ugly and weird serialization/deserialization of the returned data, and now it behaves like the native operator!

CEF Improvements

I am still constantly improving and adjusting the edges of integration with CEF. This last month I fixed several bugs and crashes and worked on performance improvements, there are still some points to be improved and there is one bug in my concern to be corrected.

Also, I'm always going to keep our CEF version up-to-date, it was just updated to 104.4.26 so our version did to!

New Game Settings

Our Settings got new options which can be changed:

  • draw network debug in the world
  • display network stats in the screen
  • auto realign camera
  • fov can be altered by gameplay

Auth Website Redesign

@MegaThorx worked on big refactoring on our Auth website, it now supports Dark Mode and a new UI/UX for better usability!

Tons of Bug Fixes

It worth mentioning the tons of bug fixes and improvements we got this month, it's all written in the changelogs in our Discord.

Some examples are: a bug causing a Deadlock in the server when using Triggers (the server was freezing), a bug causing crashes when using coroutines, duplicating logs, UX problems, Server Cache not working (loading taking minutes), Main Menu crashes, and much more!

Community Highlights

A huge shoutout for the French 🇫🇷 community hich has grown a lot on the server! And especially to Mouloud that is creating amazing packages for nanos world!


A lot of things being improved and bugs being fixed, the creation of API and Docs's self-generation are life changing (especially for me as it's now much easier to update docs with new things) and also for all scripters that can rely on the VSCode extension which is 100% backed on the official API.

Once again I reinforce the importance of posting and voting for ideas in our Feedback Hub. E.g. it's clear that the greatest need for everyone at the moment are the Dimensions 😜.

And also don't be reluctant to post bugs in our Issue tracker. The chances of your bug being fixed increases by 10000% if you post it there.

That's it for this month, once again thank you all for the support!!!

· 7 minutes de lecture
Gabriel T. Nardy

CEF, Settings Menu & several Improvements!

After a long time and after innumerous requests (and death threats), I finally announce the big surprise of the integration with the Framework CEF (Chromium embedded framework)!

Chromium Embedded Framework

For those who are not familiar, CEF is a framework for embedding chromium-based browsers in other applications. Roughly our WebUI.

Until then we have been using our dear Ultralight, which at first was very promising, but as it is a proprietary library and unfortunately the dev ended up devoting less time to the project, we started to get harmed by missing features or unsolved bugs.

And since we can't be dependent on that, I made the decision to try to integrate the much consolidated framework CEF. But it was not an easy implementation at all. CEF uses various sub-processes to work, which I figured out I would have to implement on my own. I got several chills while remembering my Operating Systems classes from College. 😜

In the end, I managed to create a totally proper integration, including a build automation to always get the latest CEF safety updates on D+1!


But since not everything is flowers, there are advantages and disadvantages in using CEF. Due to its multi-process characteristics, on the one hand we have everything running in parallel (+++performance), on the other we have the drawback that rendering will always be 1 or 2 frames late, which may cause an "input lag" effect, but in practice it is not a big problem and is almost imperceptible.

CEF uses sub-processes, which means that each WebUI will run totally independent of the game and other WebUIs, making usage of 100% of computational power with great efficiency!

And that means now all communication is asynchronous. Thus, all the events between Lua <-> WebUI are also asynchronous and this is a paradigm that has changed, which should not be a problem in most cases. But this is an "effect" from having parallelism.

Another thing that changed is that we will have several sub-process starting and closing (like Chrome 😝) while playing nanos world. It depends on the amount of spawned WebUIs and is automatically managed by CEF.


Another thing we gained was the Sounds! I have added a new method to the WebUI class: WebUI:SpawnSound() that spawns a Sound object (100% customizable as usual). In other words, you can spawn as many 3D sound entities and even set up a 7:1 cinema with them! 😆


As said, we gained a lot of performance. Surely I will continue to improve the implementation and boost it even more over time, but we can already see great improvements! Watch this video of me spawning dozens of WebUIs at the same time and rendering them on 3D objects in the world without a single stutter:

How many videos can it handle at the same time? YES.

Debug Tools

It is now possible to inspect your WebUI directly by third party tools, such as Chrome Developer Tools for example! 🥳


Also, another good news: this migration will have 0% breaking changes! No script will need to be updated to keep working with CEF! 💃

Obviously some things have changed, especially in relation to CSS. In WebKit browsers (as it was before) some styles behaved differently from Chromium ones. Some layouts can appear ill-adjusted (e.g. different scroll bars) now.

Settings Menu

Finally our Settings Menu received the UI Update too! I recreated it from scratch adapting to the new interface style!

Video Settings:

KeyBinding Settings:

We got a new setting tab for House Keeping, where it will be possible to clean up cache files, logs and other files from your installation:

We also had the addition of a new setting: Force no Custom Loading Screen which disables server's custom Loading Screens.

Stats & Achievements

This month I devoted a time to adjust our stats and achievements. And the new Profile Stats tab have been implemented:

I created some new Stats such as swimming or driving, and also I created the concept of "Achievements Ranks", adding levels bronze, silver and gold to them. Let's see how this model stands out. 😉

A great improvement in the notifications of achievements has been made: now they are shown immediately when reached! (Before they were only synchronized once per minute, delaying the notifications).

New Achievements Ideas

I created a new page on Canny to receive suggestions of new Steam Achievements! Please take a look, vote and add new ones! I will always be integrating new ones into the game!

Vault Changelog

In Vault side, I implemented the Updates Tab for the items, where you can see all changes in their updates!

Caching and Loading

A great improvement I made was the refactoring of the caching system. We already had a cache system that cached the loaded assets in the client side, so then the file validation was instantaneous when re-connecting to a server.

I refactored this system, and now all cache files are in an external folder (inside Packages/ and Assets/ called .cache/), which even facilitates their cleaning.

In addition, when opening a server, every time the assets were loaded and cached in memory, which was really slow. And with this new system, they are still loaded but much faster, the system intelligently identifies changes and only re-caches the files that get dirty since the last load.

This will greatly improve the opening speed of the servers.

Docs Improvements

I took some time to update some pages here in the docs.

  • Quick Start is now even more quick and easy!
  • Server Installation was reworked and split and now is straight to the point.
  • Assets & Modding category got a rewrite so the guides are more linear and have less ambiguity.
  • Static Mesh was completely rewritten and now have lots of new information and tips!

I will continue to improve the docs aiming to reduce redundancy and to make it even more simple for modders and scripters to hop in! I see the docs was starting to get a little big confusing due some duplicities and some tutorials in weird places, that will be improved too!

Notable Changes

Some smaller but notable changes.

WebUI 3D Interaction

This is not totally related to CEF but I took the moment to integrate methods which allow injecting events into WebUI and create a Remote Control for it: 😜

It uses traces to retrieve the UV location from the hit on the TV mesh, then redirects it as WebUI events.

Packages Maps

I added a new setting to Packages: compatible_maps to make pair with the map settings: compatible_game_modes. Both settings are united to display compatible maps in the New Game popup when starting a new server.

Discord FAQ Channel

Our Discord got a new FAQ channel, which contains the most common question about the nanos world. More will be added as the time goes!

Unreal 5.0.3

I've updated the game Unreal Engine version to the last patch 5.0.3 containing lots of engine bug fixes. This update had no breaking change.


This was a month of great advances, several bug fixes and structural improvements in nanos world. We further evolved our IU and solved the WebUI problem that had been haunting us for a long time.

I emphasize the importance of creating and supporting ideas at It is very important to have them officialized that to know your most request demands! Here's July Feedback summary:

Thank you a lot! You are the best!

· 10 minutes de lecture
Gabriel T. Nardy

Birthday, Rebrand & UI Redesign!

nanos world Birthday 🥳

First of all, we would like to announce that this last week was the birthday of 3 years of nanos world under heavy development! Of course the idea of creating it is older than that.

It has been already a long time since we started working on it, and it has been a time of much learning for me and a lot of progress for nanos world!

I would like (again) to thank you all for the great support over all this time! I really love working on nanos world and love seeing you playing, using and creating on it! Making nanos world has become one of the great passions of my life 😍!


nanos world always has been about multiple worlds, more specifically YOUR worlds which you can express yourself and create the universe you always wanted to.

With the progress of the game development, it has become necessary to evolve in some aspects. When it comes to marketing, the main objective is to deliver nanos world to the right potential players and for this to be possible we had to rethink some things, and one of the things was to recreate our visual identity!

Our old identity lacked in some aspects regarding discoverability and professionalism, so we decided that it was time to make a new version of it! We know that it is possible that this is not yet the definitive version and it will be improved over time, however it's already a big step towards our short-medium term goals!

For the logos we aimed to have something more minimalistic yet professional.

Since nanos world represents a wide range of game-modes and diverse worlds, we decided to create a new version of our current logo, with:

  • 😮 A flat outlined style.
  • 🤯 New title and the subtitle design & fonts.
  • 😶‍🌫️ The ring became an infinity symbol bringing the sense of unlimited.

New Cover Art

To express the idea of diversity, we are creating a new cover art to be used as Capsule Arts on Steam and of course to contribute to the visual identity!

So we idealized the creation of a living planet with many things happening representing the variety of game-modes in nanos world, as a Sandbox game should be.

This will be a huge image (8-16K), which each time you zoom in you will find something new (the full size image will be available in-game and on the website™ 😉)!


The Cover Arts are not final and are still in development by the artist™, some adjusts will still be made for the final version!

Some WIP Capsule Art sketches:


Credits to Pablo (PG Ninja) for creating the Art.


A very important factor, even within Steam, is how your game promotes itself. And this happens due to two main factors: Capsule Arts & Steam Tags.

The Steam Tags determine whether or not your game will be displayed to the ones browsing Steam store. And the Capsule quality determines whether they will click on your game, Capsule Arts are the first thing seen by the shoppers, they appear in store browser list or when opening the game page.

Our current Capsule is this tedious screenshot with a simple text overlay 😅:

This is even extremely contraindicated because it shows amateurism and makes those who browse Steam unconsciously ignore it, in addition to the fact that the image does not convey the genre of the game, making those interested in sandbox games do not click on the page.

Then for this first version of our Cover Art we wanted to make it a little bit more professional and that at least minimally communicates the "Sandbox" genre.


Our idea was to create an image of a living planet with various things happening, representing the variety of a sandbox game, so we got some inspiration from game arts and images that represent this idea, like the game Universim and some found stock images:


Our creative process went through some sketches made in Paint, until reaching the current on-going version: 😜

In addition to the rebrand, we worked hard on redesigning the main menus of nanos world!

First of all, we would like to thank everyone who gave ideas and suggestions for the new design, especially Falaxir who created several threads of ideas related to it, which served as extreme inspiration for us to develop this new version!


The main menu is the gateway for all players and the first impression when playing, it needs to be intuitive and to encourage the right actions to be chosen.

We take into account the following pillars:

  • 🎮 Players First: It must take into consideration the common player as first, those who will choose a game-mode or just connect to a server to play and have fun.
  • 🐣 Noob Friendly: It should be extremely easy and intuitive to start a new game or adding custom addons to it. Even those who don't know anything about servers should be able to easily start a game to play with friends.
  • 🤏 Less is More: The User Experience must be the best possible. Buttons and Navigation must be intuitive without need of explicit tutorials or texts.
  • 🍃 Fluidity: New pages must open immediately, no stutters should happen, filters should apply changes instantly, no desync between pages and data should happen.
  • 🥰 Cozy Place: It must be welcoming, players must want to spend time inside the game, they must want to open the game to see what's going on.
  • 🤩 Motivates Modders & Scripters: It must encourage content creators to create and upload to the vault.
  • 📰 News should be exciting: Updates of vault items and even the game should be pleasant and exciting to read and to update.
  • 🔍 Facilitated Discovery: New game-modes and content should be found easily, as well as the best ones should be praised.
  • 🆕 Expand the Possibilities: The new menu should allow new horizons, it should be easy to integrate notification systems, lobby, favorites, etc.

Home Screen

In the old Home we had friends, achievements and news divided into separate tabs:

Before long we present the new Home page: a HUB where you can view a summary of your friends, your achievements, favorite servers, vault news and game updates!


Some buttons and features are not yet enabled and will be available soon™. This initial version was aimed to contain all old features and some more 😉.


Our Vault was basically just for downloading/managing additional content, where it was possible to browse the store/remote and your local content and see a brief information about them:

Now it has been redesigned for a completely new User Experience, providing filters and a new layout:

The new vault navigation, in addition to continuing to provide quick install/update/uninstall buttons, now also provides a quick Update All button, which updates all outdated items installed at once. Not to mention the improved performance and the interconnection with other pages and systems!


This new version has several optimization improvements, such as disk images caching or virtualized list visualization 😁!

Vault Details

We've completely rethought the Vault concept and created a new details screen, which will open when a Vault (or New Game) item is opened:

The purpose of this screen is to bring all possible information about the Package or Asset Pack: description, screenshots, updates, version, size, reviews, dependencies, and now the possibility of rating and soon™ configuring them through the interface.

You can manage your review, the installation and updates on the right side!

And when selecting a game-mode, a Host New Game button will appear in the lower right corner, this will be explained better below on this blog.

New Game Screen

On the old New Game page, game-modes were separated into two different lists: installed and local, where it was possible to select one of the game-modes (or the "none" one) to start a server.

In the new design, the flow of New Game -> Selecting game-mode -> Play remains. But now we've got a new interface and filters, also it is now possible to order by popular, recently updated or top rating game-modes, and it is possible to filter them by name or by the filter toggles.

Also, now this flow allows you to start a new game even without having the package installed, removing the need to browse and install from Vault before!

When selecting a game-mode, the same detail page will appear (just like Vault). And by pressing Host New Game, a Server Setup popup will appear:

We created the concept of "single-player" game, which actually under-the-hood is the same server but configured to allow only one person and not announced at Server List.

We also improved the selection of additional Packages/Assets Packs, making the choice more functional and intuitive, you are now able to select multiple at a time before closing the selection popup.

The main idea of this new flow is to allow a new game to be created quickly, with less information required right away.


Soon™ we have plans to integrate a new concept of "game-mode" config, which each game-mode can setup it's own configuration before starting!

Find Servers

Find Servers's old interface was quite simple:

The new version got some improvements aesthetically and now we got custom filters and improvement of the buttons display (they only appear when hovered):

And now it is possible to favorite ⭐ a server!

Écran de chargement

The loading screen was not left out! We reformulated it so you can have a real notion of the loading progress. Now besides the background color lightening as loading is near the end, there are 4 bars in the lower left corner showing every step needed for the loading to finish!


It is planned to have a further improvement on the loading screen, as now when starting a New Game we still don't have "much" information on the server startup progress.

Profile & Friends

We also got dedicated screens for your profile and to see your friends. In this screen you will be able to see information from someone or to follow him into a server.

By clicking on your own profile, you will™ have access to additional tabs like Achievements, Stats and soon Account Config as well!


And this was just the beginning! You know that our evolution always has been very organic, adopting and adapting suggestions and new ideas to make nanos world the best modern sandbox experience ever! And that's what matters most for us!

If you have ideas or suggestions for improvement for both Logos and UI, feel free to make them in our Discord, we will be all ears for you!

Also, if you have content uploaded to the nanos world Store, please update it's description, screenshots and also your Team (now it supports image 😉) so it get prettier in-game!

We will push this blog updates to the game and all official pages as soon as possible in the next days, stay tuned!

Thank you for the support and dedication for this month! 🥰

· 7 minutes de lecture
Gabriel T. Nardy

Bugs obliteration, P2P Servers, Better Sync & more!

Bugs shall not pass!

In this month, we proudly achieved the incredible mark of 666 issues closed (fixed and/or resolved) in our Issue Tracker!

You may say it doesn't count because some of them were just duplicated, invalid or even were closed to move to the Feedback Hub, that's okay. But we are not even mentioning our internal issue tracker which we already had another 500+ issues closed: 😁

Only in May we got 60 reported bugs fixed:

This is a special indicator that demonstrates that all your suggestions and ideas are read and given due attention and ALL bugs are fixed! Thank you all for contributing to that, in special @Voltaism and @Ayanokoji which really do the tap monkey job and find the most unnoticeable bugs! 😂


You can find the endless list of all the bug fixes in our Discord Changelog Channel:

New Feedback Page

Recently, we've launched a new feedback page to collect ideas & suggestions. Before we were doing it on the GitHub's Issue Tracker, but now we have a dedicated platform only for ideas and now the GitHub is not only for bugs.

This new platform is powered by Canny, where you can add a new suggestion and vote for others. Feel free to sign in and upvote the best ideas! It is extremely useful for us to know if a feature is something really required so we can give the right priority to that!

It also provides a roadmap tab which groups all accepted/planned and in-progress ideas! The old Trello board is not going to be used anymore.

Check it out! 👉

P2P Servers

Something that is fundamentally important is the ability to start a game from menu to play with friends, without worrying about dedicated servers or forwarding router ports stuff.

And now this is possible thanks to the new P2P servers option! This allows you to open a server in P2P mode, which relays all traffic through the Steam Relay Servers and establish a connection between the server and client with the security of none of those knowing each other IPs and so on! 🤯

For this to happen, we had to re-implement our file transfer system (when connecting to a server) which used an HTTP connection for this purpose, and now it can use the built-in connection system to to transfer them! (HTTP transfer is still faster than using the internal sockets, although on P2P connection this is the only possible approach).


Transferring files through HTTP is still faster than P2P. We're working to improve this performance as well!

When a server is opened as P2P all transferring are redirected to use the built-in transfer system. In the other hand, opening a server as Dedicated Server will use as it is today: small files through the built-in transfer system and big files through HTTP.

Finally, we are introducing two new "types" of servers: Dedicated Server and P2P, this is just a configuration you can set in the Config.toml or as a parameter --dedicated_server 0/1 to enable it or not. Starting a server through the menu will start it as P2P by default unless explicitly set in the advanced tab.

When starting a P2P server, the Steam Relay Server will generate a new temporary random "fake" IP address which will be used by others to connect to your server. Without the need to forward router ports!

As the connection is established through the Steam Relay Servers, even connecting to localhost all traffic will pass through the closest Steam Server of your computer, meaning even on localhost your ping will not be zero. If you want to test or play alone, we recommend start it as dedicated server.

New Sync Interpolation

Since UE 5.0, some interpolation started to get weird/flickering when syncing location/rotation with the clients. To fix and improve that, we managed to integrate all our network to the Unreal's build in Physics Replication system!

This system works by being fed by network snapshot packets and handling all interpolation, extrapolation, desyncs and high pings automatically! 😎 It greatly increased the quality of the physics sync!

Currently, all physics entities (Props, Weapons, Melee, Grenade and Vehicles) are simulated using this new system. Other entities (or non simulating physics) are still using the standard method of interpolation which is totally fine and suitable for that.

We are still looking to include Characters in the new system. As they use a separate movement system, it requires a different approach and special attention. 😉

New In-game Console

We've extended our in-game console to provide a new raw visualization. As Unreal Widgets don't provide a better approach to have both colored texts and the ability to select them, we've decided to add a new tab which converts the console into raw text, which you can freely copy them to the clipboard:

Also we added a button to open the log file directly! 😉

Noteworthy Changes

Network Debug Stats

In addition to the Network Debug drawings in the world, we've included a new screen debug tool which shows network stats information in the screen, it will be displayed if you enable Draw Network Debug in the settings -> debug.


Now you can also enable an Outline effect in actors by :SetOutlineEnabled() on it! It works like :SetHighlightEnabled, and you can customize it's color and thickness as well!

We've already replaced the Sandbox Physics Gun effect with this too!

Animation Settings

We started implementing a new interface for setting animations parameters on entities, it now supports a new parameter play_rate which you can define directly in the :SetAnimation...() of entities.


Currently this new interface is only available to Weapons. Soon it will come to all entities!

Sounds Settings

The same as Animation Settings, but for sounds as well! Now you can define per-entity-per-asset common sound settings on it, it supports volume and pitch parameters:


Currently this new interface is only available to Weapons. Soon it will come to all entities!

Internal Control Rigs

With our efforts to modularize and remove some internal dependencies (mainly related to animations and animation blueprint), we started creating some Control Rigs to replace our old approaches of procedural animations (before they were hardcoded in the Animation Blueprint, and now they are split into several Control Rigs), which also provides better performance and modularization!

We already created and are using Control Rigs for Driving and Aiming, which provides procedural animations for aiming with weapons and for driving wheels.

Améliorations du sandbox

The sandbox game-mode got some improvements as well, such as new icons for the tools:

As well improved PhysicsGun & Resizer linear scaling to have a better handling, a reworked system to attaching entities with the tools (before we were having wrong attach locations due the ping, now the client-side relative location is taken into account), and of course we've got several bugs fixes!

Also we got a PR from Voltaism which added the option to respawn and freeze the time through the Context Menu.

New Docs Tutorials

Custom Weapon Reload Animations

We've created a new tutorial page for adding Custom Weapon Reload Animations. This was possible due our efforts to modularizing more and more the game. Reload animations are special because they trigger gameplay actions during it's execution, which needs to be configured inside the Animation Montage!


With the achievement of implementing P2P servers, we managed to make immensely easier the ability to play and test with friends! Now everyone can start a server and play with friends immediately, without the need of port forwarding and so on! 🥳

Also, with the introduction of the new Roadmap & Suggestions, we are moving even more towards in the feedback-driven approach, so please put all your ideas in there, and vote for the ones you like! We really consider that to take the next steps!

Ah, it's worth mention we got a hit tweet 😁! If you don't follow us yet, please do that now!


Thank you for more this month, you're loved! 💝

· 9 minutes de lecture
Gabriel T. Nardy

Unreal Engine 5 est maintenant le moteur de jeu officiel de nanos world !

Unreal Engine 5

Nous sommes excités d'annoncer qu'Unreal Engine 5 est désormais le nouveau moteur de jeu de nanos world !!!

C'était un mois intense remplit de mises à jour, d'améliorations et de corrections de bugs pour atteindre une version assez stable de nanos world. Nous sommes très reconnaissants aux testeurs qui ont contribué à tester la stabilité, la migration des assets et la découverte de bugs !

Il convient de mentionner que même si UE5 "stable" a été officiellement publié par Epic Games, il y a encore quelques bugs et améliorations qui doivent êtres fait, à la fin de ce blog, nous allons lister tous les bugs connus que nous avons déjà trouvés sur UE5 et que nous attendons une correction officielle.

Avec cette version, nous visons à avoir la même expérience et la même stabilité qu'avant sur nanos world. Nous allons introduire de plus en plus de fonctionnalités Unreal Engine 5 dans les prochaines mises à jour à partir de maintenant, en leur accordant la stabilité et l'intégration appropriées.

Nouvelles fonctionnalités UE5 exceptionnelles

Voici quelques nouvelles fonctionnalités intéressantes d'Unreal Engine 5 qui seront très utiles pour les créateurs d'assets sur nanos world !

Nouvelle interface

Unreal Engine 5 apporte une suite d'améliorations à l'apparence, la sensation et l'efficacité de l'interface utilisateur, créant un espace de travail moderne et amélioré pour tous les utilisateurs.

C'est un espace de travail bien meilleur et agréable pour les créateurs de mods et d'assets !

Outils géométriques

La création de meshes et de maps a été encore plus facile grâce aux outils de modélisation et meshes intégrés dans l'UE5 !

Quixel Bridge

Le plugin Quixel Bridge pour Unreal Engine vous donne un accès complet à la bibliothèque Megascans à l'intérieur de l'Unreal Editor. Vous pouvez parcourir les collections, rechercher des assets spécifiques et facilement ajouter des assets à vos projets Unreal Engine.

C'est intégré avec UE5 ! Il suffit de glisser-déposer et vous avez l'asset !


We are actively looking for a way to improve the Quixel Bridge pipeline into nanos world.

Chaos Destruction

The Chaos Destruction system is a collection of tools that can be used to achieve cinematic-quality levels of destruction in real time.

We've managed to already integrate an initial version of it with nanos world, you can spawn any Geometry Collection as a StaticMesh, check it out!


We are actively working on improving even more the integration with Chaos Destruction entities!


Lumen is Unreal Engine 5's new fully dynamic global illumination and reflections system.

It provides a software-calculated Ray Tracing methods! This is a new very efficient technique for achieving Global Illumination, but it still has a cost. In our tests Lumen in Epic quality hit 50% of the FPS, and 25% on Medium. You can enable/disable it in the Game Settings.

Lumen also provides a Hardware Ray Tracing method for compatible GPUs, this is also now a setting in the Game Settings ;)

DirectX 12

Now nanos world comes with DX12 as the default RHI. Some new features such as Nanite, Lumen, and Virtual Shadow Maps run more efficiently in DX12 than in DX11.

You can switch from DX11 <-> DX12 in the Game Settings. *DX12 is required to use Hardware Ray Tracing.

Much More

You can see a list of all the new features in the Official UE5 Roadmap and also in the Official UE5 Release Notes.

It's worth mentioning other amazing features like MetaHumans, Nanite and Runtime Retargeting. Those (and many others) are still going to be tested to be actively supported on nanos world!

Reworked Water Physics

Also this month we managed to tweak a little bit our Water Physics settings. We use Unreal's Water System integrated into nanos world, and it uses a Pontoon system to make buoyancy on the objects. Props, Pickables and Vehicles have the pontoons spawned automatically in game, and since then the algorithm to calculate the size and it's force was quite primitive.

After several hours testing and doing several extremely hard math calculations we've managed to implement a new procedural algorithm which dynamically spawns pontoons through the object depending on it's size and mass. This makes rectangular objects to react properly for example (before we had only one sphere pontoon which made objects to keep rotating weirdly in water).

This new algorithm fixes the problem of having some Props being ejected and kicking infinitely over the water, and also normalizes their floating capabilities. Right now they all floats equally, we still intend to improve it by allowing custom pontoons to be set through scripting and also through the engine, and also to use Physical Materials to change the buoyancy force depending on it.

New Default Maps

We are shipping two new default maps to nanos world: OceanMap and BlankMap. The first contains a small island and a vast ocean (good for testing Water stuff), and the second is literally Empty and all black, good for dynamic scripting created maps!

We've also tweaked the size of BlankMap and it's surface texture to have a modern and UE5 look.

nanos world Migration

As we stated in the last blog we are moving to a new Store Page, the new nanos world version on UE5 will already be on this new game entry, and the old entry will be completely deactivated.


All the current testers will receive a new Steam Key to activate nanos world in your Steam accounts. Here's how to get the new nanos world game key:

  1. WISHLIST the new game entry first 😁
  1. optional: Launch the old game at least once to store your achievements to automatically import them when launching the new game (this is a built-in tool to automatically export and import your stats).
  2. optional: Make a backup of your Server/ folder (if you are developing Packages/Assets).
  3. optional: Uninstall the old game, although it is not obligatory, it's recommended because some problems may happen if you don't, as both games use the same folder name.
  4. You will receive the new Steam Key at the Auth Website. If you didn't, please reach us.

All old game keys will be revoked. You will receive an warning on Steam saying that the "Beta Test has ended".


The pipeline of exporting assets from Unreal Engine didn't change, all old tutorials are still valid but some are still using the old UE4 interface, we are constantly updating the docs to update the images and add more information to this workflow.

We've already updated the Importing Custom Assets and also the Assets Development Kit pages. There is a new workflow which has been updated to export assets, so now you don't need to package the project, just need to cook the assets - but the old way is still valid tho, the new is just easier.

The Assets Development Kit GitHub Project was updated as well, the only things that changed were the following files:

  • Config/DefaultEngine.ini
  • NanosWorldADK.uproject

You can pull into your current ADK downloaded project or just replace your project with the new files. If you get problems, try deleting the following folders in your project, so you have a clean project (without the old compiled stuff):

  • Binaries/
  • Saved/
  • Intermediate/

All Assets will need to be recooked in Unreal Engine 5 to work with the new nanos world version. This is needed as from time to time the shader code or the serialized binaries are changed when the Engine changes, so we need to get in the same version otherwise the game may crash expecting to load a newer version but the file is old.

We already managed to update the official asset packs.

New Testers

We are very sorry for making the recently players which registered to become a tester to wait that long, since we are moving to the new game entry, we didn't want to give you the old keys anymore, but now we are backing to our testing invitations!


We are still aiming to invite only Modders and Scripters, if you are just a player, keep the eye on the future open Playtest sessions!

Known Bugs

Some bugs are known and are listed below, most of them we don't have much to do and are much likely an internal UE5 bug, I am reporting them all to Epic, let's pray they accept the report and fix it.

  • Cables rendering not working sometimes (Epic accepted my report).
  • Balloons/Cables square constraint (Epic accepted my report and already fixed it for 5.1).
  • Hit events/sounds not always triggering (report not accepted yet).
  • SceneCapture not bounces anymore (report not accepted yet).
  • Chaos Physics sometimes freeze an object if he stands still for some small time, I did some workaround to fix it in certain cases on nanos world (when grabbing or dropping props).


This release of nanos world on UE5 represents our efforts to always bring the bleeding edge technology to the game. It is our main pillar to develop a platform with quality, efficiency and modularity. And by doing it right, these updates and new features become easy to integrate or make 😁.

We want to be the reference in sandbox games for the Unreal Engine (5), and we are moving in that direction!

We really appreciate everyone who has supported us so far! Every like, react, emoji or comment makes us much happier! Merci!

· 9 minutes de lecture
Gabriel T. Nardy

New Steam Store Page, Performance Optimization, Databases & Blueprint Integration!

Page de la boutique Steam

Recently we got a hitch in our Store Page which required us from getting a brand new one. And now we finally are re-releasing it! It got new screenshots, videos and a better description!


A downside of this whole situation is that the old store and the old game entry will be deactivated. Soonish everyone will receive a new Steam Key to activate the new nanos world in your library!

Also we embedded a tool to export (then import) your Achievements and Stats from the old game to the new one. You just need to launch the old game once before launching the new one and everything is imported automatically!

Performance Optimization

Everyone knows that one of the great aspects of nanos world is the performance and the optimization. And in the last month we had a significant advance in improving some internal critical points of our framework.


The first one to mention was a huge improvement in the memory usage of our spawned entities.

Internally, we use a special system to handle sending and syncing data through the network. Our approach is to have a similar system to Unreal's Replication system. But until then this system was responsible for most of part of the memory usage in each spawned Entity.

With that in mind we aimed to solve this problem, not to mention most of these memory usage was duplicated in all entities unnecessarily. And fortunately we succeeded on reducing up to 90% of the memory usage of the entities. Right now it occupies exactly the data which is strictly needed for it's existence!

We did a small test to compare, spawning 10.000 Characters through Scripting, check the memory usage difference:



Comparison of some Entities Memory Usage Before x After:

EntitéUtilisation de la mémoire avantUtilisation de la mémoire aprèsRéduction
Cable5.4 KB1.1 KB80%
Personnage13.1 KB1.8 KB86%
Light4.8 KB1.0 KB79%
Melee7.1 KB1.5 KB79%
Particle4.6 KB1.0 KB78%
Player3.1 KB0.3 KB90%
Prop4.8 KB1.0 KB79%
StaticMesh4.5 KB1.0 KB78%
TextRender5.3 KB1.1 KB79%
Trigger4.0 KB0.8 KB80%
Vehicle7.9 KB2.0 KB75%
Weapon11.1 KB2.0 KB82%

This usage was calculated on Server side. On Client side the values would be a little bit bigger, not to mention to the Assets which are loaded together.

This was achieved just by improving one single system, we didn't even start looking for active compression techniques or reducing some variables sizes which are unnecessarily bigger than it needs. 🙏


Another great optimization was in our network packets, each data sent through the network has a common "header" to identify some operations. This is a constant "cost" for the network which we managed to reduce up to 75% of it's size, making all data being sent through the network statically lower!

Coté client

We started advancing into optimizing the game in the client side. Which normally is trickier than on Server side because it concerns to dealing to Unreal Engine subsystems. But we managed to add some optimizations based on the Quality Settings selected. For example on the Blood or Bullet Holes particles, now depending on the distance and on the Effects Quality selected, they will be less or not spawned at all.

We've also tweaked the Vehicle System to do similar optimizations using this system. There is still a lot which we can improve! 😀

Nouvelle classe: Blueprint

A very required class is being introduced: Blueprint! Now it is possible to spawn any Blueprint Actor in nanos world!

We've managed to implement the method: CallBlueprintEvent() which you can create any Event or Function with any number of parameters in your Blueprint and call it from Scripting! This expands many possibilities!

Also, you can spawn it on server and it will follow the same rules as any other Actor Entity, and it will be synchronized with other players using the Network Authority system as well!

Nouvelle classe: Database

Something that is extremely fundamental for some game-modes such as roleplay is the Database. Until then we were providing a MySQL Module to be used as a third-party Lua library, but due it's complexity to integrate with your server and also because it wasn't possible to make async queries we dug into a more robust solution.

For that, we present the new class: Database. A all-in-one solution for connecting to a database, it supports MySQL, PostgreSQL and SQLite out of the box! Not to mention the async and thread-safe queries!

Check it's page for complete documentation and examples!

Marque de dérapage sur les véhicules

A small but cool addition we did for vehicles was adding Tire marks when it skids:

Also, an awesome detail was added: the wheels get smeared with blood!

It is 100% dynamic and procedural!

Améliorations du sandbox

We got several improvements regarding the sandbox game-mode! The first one is the sandbox "API": we listed all functions and events it exports so you can integrate your own entities/tools or use it's features.

Also we've modularized the menu, categories and tabs, and you can add your own from your external package!

Check it out the sandbox API in the GitHub page:

Finally, we've improved our Physics Gun tool, now you can control it using the mouse and also have a 'snap-to-grid' movement!

Several other adjustments and bug fixes were made on Sandbox as well.

Nouvelles méthodes pour les particules

We've expanded the possibilities for Particles! Now it's possible to set Material parameters on it, and also use any Texture, WebUI and Canvas as parameters as well!

For example you can spawn a Canvas, draw on it and use as a Material Particle parameter!

The following video shows using the WebUI as a Material parameter into the Particle! Rendering in runtime!

Améliorations notables

Suppression musicale

We finally managed to fix the Music problem, which was making Sounds of type Music from stopping when too many sounds were spawned.

Côté client Props

Props can now be spawned on Client side as well! This allows having "unnetworked" dynamic meshes spawned on client, intended for use as visual effects and non-gameplay features.

We've already updated the Sandbox's Destructable entities to use client-side debris!

Mesh statiques du niveau

Now all StaticMeshActors from a Map are automatically loaded as StaticMesh entity on Client Side! It is possible to paint, destroy, move and everything else on them on client-side!

Chargement asynchrone des textures

We've improved our Client loading system and now textures (e.g. .jpg) are asynchronously loaded and the texture is applied in a deferred way. This system currently is implemented under SetMaterialTextureParameter() for testing, soon we can use it in other methods as well.

Chargement asynchrone pour File

In addition to the above, we've expanded our Async implementation into File class, which now have the :ReadAsync() method!

Nouvelles méthodes pour Light

We've added a bunch of missing Light setters and getters methods, also the ability to toggle it on/off with SetVisibility().

Changements pour Assets.toml

The Asset.toml got a new category: unreal, where we must specify a new setting unreal_version (the unreal version this Asset Pack was compiled on), this will be an important feature to prevent old Assets versions from crashing the game.

Also it got the new blueprints category for listing Blueprints 😉.

Collisions de véhicules

We've tweaked and improved our Collision configurations and now Vehicles interact better when colliding with other objects, including Networked Characters, Props and other Vehicles.

Before other Networked Characters were desyncing when colliding with vehicles (they started to fly and weird things happened when objects hit the Vehicles wheels), and also the hit between two vehicles were extremely rigid, which has been fixed too and will be more organic now.

Améliorations du soleil

The Default Sun light and shadows has been improved, specially during sunrise/sunset which we had some artifacts and shadows disappearing, now it must be smoother and prettier (and hopefully more efficient).


Thank you for another month of support! There were incredible advances with Blueprint and Database Classes, and also to finally lining up our Steam Page again!

Our north is to continue advancing performance and memory optimizations, as well as bringing essential new features to nanos world!

We also have some important challenges of bringing distance based culling and dimensions system for entities, which is essential for creating special environments.

There are some essential Classes that we want to implement as well, like custom Characters (e.g. for Animals) and other types of Vehicles (Air, Sea).

Finally, we are very excited with the release of Unreal Engine 5 (yesterday 05 April), as with it comes with several solutions to important questions in nanos world (such as Runtime Retargetting which promises solving several animations compatibility issues) and tons of new features to be used! We gonna have good news soon™ for you!

See you next month! 🥳

· 10 minutes de lecture
Gabriel T. Nardy

Aperçu Unreal Engine 5, nouveau système d'autorité réseau, API magasin et plus encore

Autorité Réseau

Comme tout le monde le sait, nanos world repose sur une solution "sans serveur" pour la physique et d'autres opérations dans le monde. Toute la synchronisation repose sur le partage de données entre les joueurs et la réplication dans chaque client. Cette approche apporte plusieurs avantages et bien sûr quelques inconvénients, dans les avantages que nous pouvons inclure un serveur très léger, où nous avons tout le contrôle dessus, sans avoir besoin de compter sur l'exécutable du serveur d'Unreal ou la façon dont il gère le réseau.

D'un autre côté, nous avons eu quelques défis sur la façon de distribuer des informations sur la physique et d'autres choses. Ensuite, au début, nous avons créé notre premier système d'Autorité de Réseau dans lequel chaque joueur est responsable du partage d'un ensemble spécifique d'entités du serveur à d'autres, similaire à Roblox.

Cependant, tout comme dans Roblox, certains problèmes deviennent plus visibles quand nous avons beaucoup de joueurs connectés avec de nombreux pings différents. Comme certains joueurs recevront l'"autorité réseau" sur les entités plus rapidement que d'autres, ils vont commencer à partager leur emplacement/rotation à d'autres joueurs alors que la "vieille" autorité du réseau a toujours l'autorité dessus parce qu'elle n'a pas encore reçu le message "perte d'autorité réseau".

Nous avons créé ce diagramme pour illustrer le problème :

Comme vous pouvez le constater, il y a un "vide" et un "chevauchement" lors du changement d'autorité de réseau si nous avons des différences entre les joueurs, provoquant plusieurs comportements bizarres sur des objets physiques.

Compte tenu de cela et après beaucoup d'études, nous avons amélioré notre système d'autorité de réseau pour le rendre plus robuste, cette nouvelle façon vise à combler les lacunes et à ignorer les chevauchements :

Bien que toujours dans une version "beta", avec ce nouveau système, nous avons l'intention d'améliorer tous les "avertissements" et les glitchs qui se produisaient depuis, tous les commentaires sont appréciés!

Nouveaux Modes de Débogage

Avec l'ajout du nouveau système d'autorité de réseau, nous ajoutons une nouvelle section Debug dans les paramètres.

Un paramètre cool est le Draw Network Debug qui utilise toutes les informations sur le réseau dans le monde:

Vous pouvez trouver plus d'informations sur la page Autorité Réseau.

Vous pouvez également faire une fausse "perte de paquets" qui simulera des données de synchronisation qui seront ignorées.

API du Magasin

Le mois dernier, nous avons publié notre Magasin, un endroit où partager et télécharger des assets de la communauté & Packages, intégrés au jeu.

Maintenant nous libérons l'API duMagasin: Vous pouvez télécharger, envoyer et éditer vos ressources via des requêtes HTTP, consultez la documentation de Swagger sur https://api. Plus de tutoriels à venir bientôt™.

Modifications de la Documentation


Nous avons ajouté un nouveau tutoriel pour la création de votre propre module C. Vous pouvez le consulter à la page Modules.

Unreal Engine 5 : Aperçu

Il y a une semaine, Epic Games nous a donné la merveilleuse nouvelle qu'ils sortaient Unreal Engine 5: Preview. Une version Preview signifie que la plupart des fonctionnalités sont déjà présentes et presque prêtes pour une version finale de production.

Et nous, en tant que bons enthousiastes, et en plus de nos autres nouvelles blog (Novembre: Unreal Engine 5 ?) avons décidés de donner un autre essai de conversion de nanos world vers Unreal Engine 5. Et passons à nos impressions :

Migration de nanos world

Cette fois-ci la migration du monde nanos vers Unreal Engine 5 : Preview était plus difficile, nous avons encore plus de méthodes obsolètes et certaines fonctionnalités ont été modifiées et/ou supprimées, ce qui a nécessité un travail plus dur pour convertir et déboguer ce qui a changé.

Nous avons dû mettre à jour beaucoup plus de code et de fichiers que la version "Early Access" pour pouvoir simplement lancer le projet. Les véhicules ont également dû être désactivés en raison du nouveau moteur Chaos, qui change complètement la façon dont les véhicules doivent être implémentés et nous ne voulions pas nous soucier de les convertir dès maintenant.


Unreal Engine 5 introduit Lumen, une nouvelle méthode dynamique d'éclairage global, et jouer avec est très cool, et impressionnant. Voici quelques captures d'écran tirées de notre carte Testing Map:


Vous pouvez voir comment les couleurs de l'objet peuvent se refléter dynamiquement dans les lumières d'environnement.


Ici, nous pouvons voir la contribution des matériaux émissifs à l'environnement.

Une fonctionnalité cool est que nous pouvons activer l'accélération matérielle pour le calcul de Lumen (qui remplace Hardware Ray Tracing), et testé avec une RTX 3070 le rend encore plus beau à un coût GPU vraiment bas.


Sur le plan technique, les plus grands changements qu'Unreal 5 apporte sont :

  • Lumen (Illumination globale dynamique)
  • Nanite (Virtualisation du maillage)
  • Chaos (nouveau moteur physique)
  • et pas moins important, les nouvelles fonctionnalités concernant la création du monde/niveau (One File Per Actor et World Partition)

Alors que les fonctionnalités de Lumen, Nanite et World peuvent être activées ou désactivées (nous pouvons choisir de l'utiliser ou pas), la même vérité n'est pas valable pour Chaos. Unreal enlève complètement PhysX et le remplace par son nouveau moteur physique : Chaos. Bien que nous soyons ouverts à de nouvelles choses, Chaos ne semble malheureusement pas être totalement en bon état, ni au moins au même niveau/stabilité que PhysX.

Nous pourrions faire l'expérience de plusieurs bugs de collision, tels que des glitchs d'objets, de mauvaises "boîtes de collision", vols à travers les murs, bugs avec Rope (Cable), objets dormant aléatoirement, appels d'événements de mauvais coups et ainsi de suite.

Pour la plupart des problèmes nous avons pu trouver une solution (comme appliquer une force à certains objets pour qu'ils ne dorment pas, ou trouver un contournement dans les paramètres des câbles), mais le problème principal que nous avons trouvé en utilisant Chaos sont les événements de retours de "Hit" qui sont totalement incohérents, parfois déclenchés avec la force 0, ce qui peut perturber les sons de succès et aussi les événements Hit de nanos world peuvent ne pas être déclenchés, et cela peut casser les fonctionnalités de gameplay/scripting.

Sans parler des objets qui glitch / disparaissent / perdent leurs collisions, ce qui donne une très mauvaise impression sur la qualité du jeu.

Et on n'a même pas commencé à implémenter les nouveaux véhicules de Chaos, on attend de voir ce qu'on va y trouver 😅.


En fait, cette version d'Unreal nous a surpris positivement, elle avait moins de crashes que dans un accès anticipé, mais en avait quand même quand nous stressions le jeu de manière importante en utilisant énormément de ballons, câbles et accessoires volants. Bien que j'ai été un peu déçue car la plupart des bogues que j'ai trouvés dans l'accès anticipé étaient toujours là dans cet aperçu et n'ont pas encore été corrigés.

Aussi quelques bugs rares pourraient être remarqués, comme celui d'être soudainement téléporté à l'emplacement 0, 0, 0, et auquel nous n'avons pas encore trouvé la raison.

L'UE5 en vaut la peine maintenant ?

Résumé: nous avons créé une liste de points positifs et négatifs selon notre point de vue concernant la migration vers Unreal 5 "maintenant":

En outre, un autre point à considérer : nous allons migrer vers Unreal Engine 5 bientôt ou plus tard, la décision est "quand". 😉

Points négatifs 👎

  • Bugs de Gameplay liés à la physique, les objets qui ont des glitchs/sauts, de mauvaises collisions se produisent, les objets passant à travers le plancher/murs en raison de Chaos.
  • Artefacts visuels, non seulement liés à Lumen, mais aussi aux méthodes standard de rendu.
  • Crashes d'Unreal aléatoires, que nous ne pouvons pas réparer nous-mêmes.
  • Mises à jour Unreal plus fréquentes, nous allons probablement avoir une autre version d'aperçu, et après la sortie de l'UE5, nous allons obtenir plusieurs correctifs, et chacun de nous devra très probablement reconstruire tous ses Assets et publier une nouvelle version de ceux-ci, sinon ils ne fonctionneront pas dans les nouvelles versions. Cela signifie que les Asset Packs ne fonctionneront pas dans les nouvelles versions Unreal.
  • L'utilisation de Lumen a ses inconvénients, comme la performance, qui peut toucher de 25% à 50% des FPS (mais peut être activé/désactivé).

Points positifs 👍

  • Nous allons être les premiers à explorer Unreal Engine 5 (qui peut être mauvais parce que certains problèmes n'ont encore été identifiés par personne, mais personnellement, j'aime explorer de nouvelles fonctionnalités et utiliser de nouveaux outils).
  • nanos world aura un grand potentiel d'auto-marketing, et peut aussi amener de nombreux nouveaux enthousiastes sur UE5 à connaître, jouer et créer avec le jeu.
  • Lumen est amusant et magnifique.
  • Les nouveaux outils World/Level qui permettent de créer de grandes cartes et aussi d'améliorer beaucoup les pipelines de co-création en utilisant le système One File Per Actor et World Partition!
  • Le nouvel éditeur d'Unreal a un look plus moderne et agréable.
  • De nombreux nouveaux outils et technologies à utiliser, y compris Nanite, Chaos Destructions, Des outils d'animation (qui peuvent nous aider à relier dynamiquement votre Animation Blueprint personnalisé) et le nouveau MetaSounds.
  • Il est vraiment difficile de convertir nanos world de zéro à chaque mise à jour pour tester sa stabilité, Je ne peux pas réutiliser la conversion précédente parce que de nombreux changements sont faits en Blueprints (UI) que je ne peux pas fusionner et beaucoup ont changé depuis. Donc en commençant la conversion maintenant nous pouvons déjà commencer à creuser, corriger des choses et les prochaines mises à jour d'Unreal seront plus faciles et plus rapides à tester et à maintenir.

Contrairement à l'accès anticipé, cette version semble avoir plus de points positifs que des points négatifs, et cela semble être une meilleure occasion qu'avant de migrer officiellement nanos world. Venez sur notre Discord pour discuter de cette idée avec nous ! Nous allons faire un sondage afin de prendre en compte tous les commentaires de la communauté!

Spotlight de la Communauté

Ici, nous aimerions partager toutes les choses incroyables que notre communauté fait ces dernières semaines!

Timmy fait un travail incroyable, et partage son nouveau système d'inventaire :

Timmy a également créé un système de météo avec des transitions fluides :

MegaThorx a publié sa toute nouvelle bibliothèque EGUI. Un package pour créer des interfaces à partir de scripting! Il contient également sa propre documentation complète!

Voltaism a partagé une implémentation très cool de Bots jouant à son mode de jeu VZombies entre eux, sans joueurs :

· 11 minutes de lecture
Gabriel T. Nardy

Introduction de la boutique, des nouvelles classes et de toutes les mises à jour rétroactives !

Ce blog résumera également les points forts de tout ce qui a été développé depuis le dernier blog en novembre ! Un Changelog détaillé est disponible dans notre Discord ! Restez à l'écoute !

Boutique & Vault !

C'est avec une grande joie que nous annonçons enfin la Boutique tant attendu ! 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 !


Le développement de la boutique est dirigé par @MegaThorx ! Il s'agit de la version initiale et plusieurs mises à jour sont à venir ! Tous les avis et commentaires sont appréciés !


  • Création des pages Asset Packs & Packages, contenant des images et une description.

  • Téléchargement de nouvelles Versions, avec possibilité de définir des labels comme brouillon, bêta et stable.

  • Créez une équipe et ajoutez des membres de l'équipe.

  • Système de Tag & Categories.


Consultez la documentation complète ici.

la boutique de Nanos World disponible dès maintenant sur

Token serveur

Avec l'ajout du magasin, nous avons une nouvelle fonctionnalité: Token serveur.

Ce token est requis lors du téléchargement de tout contenu du magasin à l'aide de la CLI (et bientôt lors de l'utilisation d'autres fonctionnalités d'intégration), vous devez le définir dans votre . Config.toml comme paramètre token.

Pour générer un token, veuillez consulter le site

Nouvelle classe: Canvas

Nous avons ajouté une nouvelle classe pour remplacer complètement notre ancienne classe statique Render : 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 !

Vous pouvez également l'utiliser comme interface utilisateur ou peindre n'importe quel objet avec un Canvas en utilisant :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)

Le Tutoriel HUD basique (Canvas) a également été mis à jour !

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. Utilisez simplement Input.GetKeyIcon(key_name) et il retournera le chemin de l'image qui peut être utilisé comme Texture ou comme image habituelle <img> dans le HTML !

Vous pouvez l'utiliser combiné avec Input.GetMappedKey() pour obtenir dynamiquement le glyphe clé en fonction de la configuration de la liaison de touche de l'utilisateur.

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.

# configurations de la map
# gamemodes compatibles
compatible_game_modes = [

# liste des emplacements de spawn
spawn_points = [
{ location = "Vector(100, 200, 100)", rotation = "Rotator(0, 90, 0)" },
{ location = "Vector(200, 300, 100)", rotation = "Rotator(0, 90, 0)" },

whatever = "anything"

Consultez la documentation complète à Map Script & Data.


Les modifications suivantes ont été ajoutées dans la mise à jour 1.1.0-1.3.0 , nous allons mettre en avant les meilleures ici !

CLI interactif

Une fonctionnalité étonnante et extrêmement utile qui a été ajoutée au CLI est la création de Packs d'Assets & de Packages de manière interactive.

Utilisez add [package|assets] NOM et il créera le Pack d'Assets ou le Package de manière interactive, il va aussi créer les fichiers de configuration et ceux par défaut !

Tags d'acteur

A la demande de nos testeurs, nous avons implémenté une interface pour accéder aux Actor Tags d'Unreal avec Actor.SetActorTag() et Actor.GetActorTag(), vous pouvez donc définir/récupérer des Actor Tags d'Unreal directement à partir de l'Api de Scripting (côté client).

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.

Nouvelle classe : SceneCapture

C'est une fonctionnalité très cool publiée depuis la mise à jour 1.1.0.

SceneCapture est un acteur de caméra qui capture l'environnement en temps réel et nous pouvons obtenir le résultat affiché avec :SetMaterialFromSceneCapture() sur n'importe quel autre Acteur!

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. Maintenant, chaque asset chargé (y compris les fichiers du disque - .ogg et .jpg) est mis en cache et réutilisé de nouveau lors du chargement automatique. 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

Nous avons ajouté un nouveau paramètre cool pour les lumières : Light Profile, qui permet de changer la texture du profil lumineux d'une lumière avec Light:SetTextureLightProfile().

Il est possible de le définir avec l'un de nos Light Profiles intégrés. Tous les profils lumineux intégrés ont été importés depuis le Pack IES Light Profile Pack.

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

Améliorations des Véhicules

Il est maintenant possible de contrôler manuellement si le moteur du véhicule est démarré ou non, ainsi que s'il démarre automatiquement lorsqu'un conducteur s'installe avec Vehicle:SetAutoStartEngine().

Nous avons également ajouté un petit détail : Feux de Stop, ils deviennent rouge lors du freinage, et blanc ensuite. Ils sont personnalisables avec Vehicle:SetTaillightsSetup():


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

Nous avons ajouté une personnalisation utile au parachute intégré, maintenant il est possible de changer sa texture avec 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!


par 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.


par l'équipe ERO (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.


par 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!


par 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

par 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.


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


Ce blog contenait plusieurs mises en avant de nos progrès au cours du mois dernier. Notez que d'innombrables améliorations, corrections de bugs et quelques autres nouvelles fonctionnalités sont disponibles dans le changelog sur notre Discord et aussi en jeu.

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!