Skip to main content

2023 Oct: C Module Package & UE 5.3!

· 4 min read
Gabriel T. Nardy
nanos world developer (SyedMuhammad)

C Module Package & Unreal Engine 5.3 Update!

Tune in for a roundup of the latest updates from October!

New Package Type: C Module

We are introducing a new Package type: C Module!

In the last Blog News I talked about the refactoring I was making in the Modules and the DLLs loading system, so far we had the Modules/ root folder we could load .dlls and .so pre-compiled binaries to be executed by the Lua, as they could then be loaded with Package.Require().

In that blog I talked about an improvement that I made that allowed binary libraries to be loaded not by Lua's require() anymore, but now by my own loading system, then allowing the Package.Require() to be used for it (improving the sandboxing and the safety when loading these custom libraries).

Now we have a totally dedicated Package type for this, so it is no longer necessary to explicitly use Package.Require to load the DLLs, we can now just load the Module's Package, which will be configured with the list of DLLs, being automatically loaded when the package load.

Also, so it is possible to upload those Module packages to the Vault, integrating everything!

See more information in the dedicated C Module page:

C Module Packagecore-concepts/packages/c-module

Unreal Engine 5.3

We finally updated nanos world Unreal Engine version to the latest 5.3! We also are already on the latest hotfix 5.3.2.

This version brought many many improvements overall, but also we are still figuring some issues related to our native maps which are not working properly with some certain video settings.

Misc

Here it goes a digest of minor features and improvements made throughout this month:

GetAllValuesKeys

Now all entities, the Static Server and Client class has a new method GetAllValuesKeys, which returns a list with all the keys of the sets of values

Restart & ChangeMap Events

We got two new events to Server: Restart and ChangeMap, those are triggered when the server is restarted and when the map is changed (by console or through scripting).

note

Note that when the map changes, the server also restarts, triggering both events.

Improved Table.Dump

I have made some improvements in our Table.Dump, now it generates a Lua compatible format, which can be easily copy and pasted in the code. Example:

Lua Code
Console.Log(NanosTable.Dump(Server.GetMaps()))
Output
{
[1] = {
["author"] = "nanos™",
["compatible_game_modes"] = {
[1] = "sandbox",
},
["key"] = "nanos-world::BlankMap",
},
[2] = {
["author"] = "nanos™",
["compatible_game_modes"] = {},
["key"] = "nanos-world::EmptyMap",
},
[3] = {
["author"] = "nanos™",
["compatible_game_modes"] = {
[1] = "sandbox",
},
["key"] = "nanos-world::OceanMap",
},
[4] = {
["author"] = "nanos™",
["compatible_game_modes"] = {
[1] = "sandbox",
},
["key"] = "nanos-world::TestingMap",
}
}

Zip Cleanup

Now all downloaded .zip files from Asset Packs that are downloaded from Vault are deleted automatically, freeing up a lot of disk space! (This should be done way before 😜).

note

Note that existing .zip files in the Asset's .download/ folder will still remain, you need to cleanup manually or use the House Keeping tab to do so.

Halloween Event

Last month we got our Halloween event, in which we feature Halloween themed game-modes and make the game available to be played by the whole Steam community through it's Playtest system.

This year Steam made it quite differently, not promoting games with Halloween events, but only Halloween (horror) games itself, which unfortunately didn't promote nanos world as well as it did last year.

But we would like to thank everyone that participated in creating new game-modes for nanos world, those new game-mode are always a great addition to our Vault!

We will be highlighting Halloween created content in your Vault with special tags and badges!

Conclusion

Last month we didn't get a news blog (for the first time since the beginning), but now we are back to the routine!

This month I wanted to give a definitive solution to our Module system, which is now much more consolidated to be used more widely and better integrated with the rest of the core systems!

The Unreal 5.3 update was also a big step we've been patiently waiting to make, as we didn't update to Unreal 5.2, we've been almost a year without updating our Unreal version. It is always good to be updated with the last versions!

All other miscellaneous improvements were made thanks to your suggestions and bug reports! Once again thank you for keeping doing so and supporting nanos world!

See you next month!