Skip to content

Commit

Permalink
October News
Browse files Browse the repository at this point in the history
  • Loading branch information
gtnardy committed Nov 15, 2023
1 parent 7cd30f5 commit 4892995
Show file tree
Hide file tree
Showing 4 changed files with 154 additions and 1 deletion.
142 changes: 142 additions & 0 deletions blog/2023-11-15-october.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
---
slug: october-2023
title: "2023 October: C Module Package & UE 5.3"
authors: gtnardy
tags: [updates]
image: /img/blog/2022-october/october-news.webp
---

import { Classes, MediaLegend, ReferenceLink } from '@site/src/components/_nanos';


**C Module Package & Unreal Engine 5.3 Update!**

![](/img/blog/2022-october/october-news.webp)

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

<!--truncate-->


## 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:

<ReferenceLink href="next/core-concepts/packages/c-module">C Module Package</ReferenceLink>


## Unreal Engine 5.3

![](/img/blog/2023-october/ue53.webp)

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 title="Lua Code"
Console.Log(NanosTable.Dump(Server.GetMaps()))
```

```lua title="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

![](/img/blog/2023-october/halloween.webp)

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!
13 changes: 12 additions & 1 deletion docs/core-concepts/packages/packages-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ https://github.com/nanos-world/nanos-world-server/blob/main/_meta.toml

## Package Types

We have 4 types of packages: [script](#script), [game-mode](#game-mode), [map](#map) and [loading-screen](#loading-screen), each one with with a specific functionality and an unique purpose:
We have 5 types of packages: [script](#script), [game-mode](#game-mode), [map](#map), [loading-screen](#loading-screen) and [c-module](#c-module), each one with with a specific functionality and an unique purpose:


### `script`
Expand Down Expand Up @@ -118,6 +118,17 @@ It is a recommended approach to implement all Props, Weapons and Vehicles spawn
:::


### `c-module`

C Module is another special Package that is capable of loading binary C modules in the Lua VM.

Please refer to [C Module](/docs/core-concepts/packages/c-module.md) for more information.

```toml title="Package.toml" reference
https://github.com/nanos-world/nanos-world-server/blob/main/_c_module.toml
```


## Settings Detailed

| Setting | Package Types | Description |
Expand Down
Binary file added static/img/blog/2023-october/halloween.webp
Binary file not shown.
Binary file added static/img/blog/2023-october/ue53.webp
Binary file not shown.

0 comments on commit 4892995

Please sign in to comment.