FEEDBACK REQUESTED: Documentation for Cesium Native / Cesium for Unreal

:wave: Hi all,

The Native Runtimes team is planning to develop + update our documentation so that developers can more easily contribute to Cesium for Unreal + Cesium Native. In particular, we’re looking at tasks like:

  • :computer: Publishing documentation for Cesium Native in an accessible place
  • :writing_hand: Creating contributor’s resources for Unreal / Native, similar to CesiumJS
  • :open_book: Creating guides for API design + best practices
  • :bulb: Developing high level explainers for various parts of the code, e.g.,
    • Explanation of the multi-threaded async system in Cesium Native
    • Explanation of the tile selection algorithm in Cesium Native
    • Architectural diagrams showing how Cesium for Unreal interfaces with Cesium Native

We would love to get input from our community on what YOU would like to see regarding documentation and contributor resources! Please be open and honest about any documentation areas that we can improve, or any guides we could create that would better help you understand
the workings of Cesium Native / Cesium for Unreal.

Thank you in advance for your input! :pray:

2 Likes

Hi,

I have experience working with cesium-for-unreall and osgEarth, both of which use cesium-native. While exploring the codebases for these implementations, I spent some time identifying the entry/common point(s) where cesium-native integrates with Unreal and osgEarth. The method I was looking for was updateView(). Once I understood how updateView() is called, understanding the responsibilities of cesium-native became clearer.

It may be helpful to provide some explanation of updateView() as part of:

  • Developing high-level overviews for different parts of the code

and

  • Creating architectural diagrams to show how Cesium for Unreal interfaces with Cesium Native.
1 Like

Hi @yunusyurtturk,

Thank you for your input, and for being the first to chime in on this thread! :smile:

That’s a good point – the updateView method is a key integration point with cesium-native, and we want users to more easily understand it. I’ve noted this internally so that we can improve our documentation for this function. If you think of anything else, don’t hesitate to let us know!

1 Like

Hi there, as the current developer of the Cesium For Godot extension I think it would have been amazing for me to have a couple of things.

  • More explicit and publicly available architecture design of the intended 3D tile loading system, i.e going from tileset to asset accessor and how individual tiles will be streamed, as this can vastly accelerate the learning curve of any future integration / implementation.

  • Explicit mention of the importance of the Cesium3DTilesContent::registerAllTileContentTypes(); method, as it was a source of minor frustration when we had all the setup done for receiving tiles, and they were not loaded in the tilesToRenderThisFrame collection.

  • More Geospatial learning resources, I feel like we all could benefit a lot from including more sources and recommended readings for the developers in Geospatial topics, this is not so much a topic that relates directly to documentation, but I believe many devs will be interested in learning more about the foundational principles of the technology they’re implementing and its use cases when these resources are available within the documentation.
    That’s all I have for now, all and all, you guys make a great product and I’ve been enjoying the integration!

2 Likes

Hi @Kyn21kx, welcome to the community! :smile:

Thank you for the detailed writeup – this is super helpful. Your first point sounds like an extension of the updateView point made by @yunusyurtturk, and I think it’s good to see this common thread. Our team should definitely focus on making the 3D Tile loading pipeline more accessible to the public. I also agree that geospatial concepts are another hurdle that we could lower with some dedicated materials.

I’m continuing to note all of these points down. Thanks again for your input, and as always let us know if anything else comes up – we’re here to help!

I would love to see more documentation on the current status of multiplayer server integration works.

I’ve found lots of posts over time with various problems – but all of these seem minor now, in comparison to the current state which is that you just fall through maps if the netmode is set to client in a project.

Would love to see examples of how Cesium could be used in various multiplayer setup modes.

Net Mode Client | ie, how does collision data get shared between client/server
Net Mode Server | ie, Does cesium load a component for each multiplayer actor? How do mobs not fall through the ground?

Is it possible to set client to be authoritative over it’s own collision/physics?

Hi @Trent_Brown,

Thanks for your input. I created this Github issue for us to investigate multiplayer behavior in Cesium for Unreal when we get the chance.

This post is asking for feedback about how we can help developers navigate the Cesium for Unreal / Cesium Native codebases. So definitely let us know if you have feedback there – otherwise, I suggest opening new threads about documentation that is more user-facing. Thank you!