Jump to content

Gena Runtime does not work in build


TakeruGrima
 Share

Go to solution Solved by Tarmack,

Recommended Posts

Hello,

I have an issue with Gena when I build in dedicated Server, I can't spawn my objects and I have this error :

spacer.png

Do you know what causing the issue ?

Link to comment
Share on other sites

  • 3 weeks later...
On 8/7/2022 at 3:49 AM, TakeruGrima said:

Hello,

I have an issue with Gena when I build in dedicated Server, I can't spawn my objects and I have this error :

spacer.png

Do you know what causing the issue ?

Hey @TakeruGrima,

This issue is very well known as GeNa currently only works on machines that support graphics cards. If you are running on a dedicated server, your server is considered to be running as 'headless' which means that there is no front-end, ergo there is no graphics card loaded into your Unity instance running GeNa. 

We've actually prevented this error from showing up in the next upcoming version by checking if the instance is running a graphics card. 

That being said, there is a way you can load a graphics card if you really want to run GeNa in a server build. But you need to do a bit of research on what Unity Command Line arguments you can run. Here's a link to some resources from Unity directly:
https://docs.unity3d.com/Manual/CommandLineArguments.html

Link to comment
Share on other sites

Hello, thanks for your answer.

Does that mean that Gena really needs to have access to a graphic card to be able to spawn our objects ? Because our dedicated server has to spawn our objects in runtime.

Link to comment
Share on other sites

16 minutes ago, TakeruGrima said:

Hello, thanks for your answer.

Does that mean that Gena really needs to have access to a graphic card to be able to spawn our objects ? Because our dedicated server has to spawn our objects in runtime.

I forgot to mention that using the graphics card decreases our performance in our test.

Link to comment
Share on other sites

18 hours ago, Manny said:

Hey @TakeruGrima,

This issue is very well known as GeNa currently only works on machines that support graphics cards. If you are running on a dedicated server, your server is considered to be running as 'headless' which means that there is no front-end, ergo there is no graphics card loaded into your Unity instance running GeNa. 

We've actually prevented this error from showing up in the next upcoming version by checking if the instance is running a graphics card. 

That being said, there is a way you can load a graphics card if you really want to run GeNa in a server build. But you need to do a bit of research on what Unity Command Line arguments you can run. Here's a link to some resources from Unity directly:
https://docs.unity3d.com/Manual/CommandLineArguments.html


Hi, we might have then a missunderstanding, and a miss comunication on your side of the tools that you guys are selling.


Then what you are actually saying suggest that the tools you have are not ment to work for multiplayer games with a dedicated server?

we have actually designed our server and game around your technology for the spawning of the world, i feel a bit stunned that this is not supported.

We will see and try about running the server with argument in the command line to try to use the graphic card.


I would also like to know if you guys then recommend to use your tools for a survival type game where everything is supposed to be generated from the server then passed to the users so they can replicate.

I've been told by Adam 2 months ago that procedural runtime generation was one of your main goal, and since we had no news, is it still planned ?

Thanks for your time.
 

Link to comment
Share on other sites

18 hours ago, Manny said:

That being said, there is a way you can load a graphics card if you really want to run GeNa in a server build. But you need to do a bit of research on what Unity Command Line arguments you can run. Here's a link to some resources from Unity directly:
https://docs.unity3d.com/Manual/CommandLineArguments.html

I've been looking in the commandLineArgument for built application i haven't found anything like so

Link to comment
Share on other sites

We have been moving GeNa to runtime / realtime for over a year now, and on the client side this is fine.

 

As part of this process a bunch of the logic in GeNa has been moved onto the GPU as it is way faster than on the CPU.

 

But we never realized until right now, the impact on server side spawning. We are looking at adding an option to move a bunch of the collision logic back onto the CPU (as a switchable option), and that will get you most of the benefit of GeNa, on the CPU, so this will help on server builds. We will get back to you shortly as to how easy (or not) this is to do.

 

However, it is not feasible at the moment to move the carve back onto the CPU, as this is a significant job and would require quite a big re-write. It would also be slow compared to the GPU.

 

The fastest workaround right now is to send a spawn call from the server to the client, execute it on the client(s), and then if needed, to replicate the objects back to the server.

Link to comment
Share on other sites

Hi there @Tarmack & @TakeruGrima,

 

We have just released a new version of GeNa (v3.3.21) that provides a bunch of bug fixes and improvements. We've also added the ability to perform a lot of the Spawning logic on the CPU (experimental) instead of the GPU which it does by default. 

 

image.png
To enable this, simply select which spawners you'd like to run on the CPU, open the Advanced Settings Panel and for the 'Current Processor' select 'CPU' to give it a try. 

 

image.png
It's worth noting that this feature has some limitations. Currently you can't perform Spawn Criteria checks that are specific to Terrains, i.e Check Mask and Check Texture. But everything else in a Spawn Criteria is supported.

 

Basically everything that GeNa does to Terrains is not supported on the CPU because these are all done on the GPU. There are no plans in the short term to support Terrain operations on the CPU.

 

 

Link to comment
Share on other sites

  • Solution
On 9/1/2022 at 2:11 AM, Manny said:

Hi there @Tarmack & @TakeruGrima,

 

We have just released a new version of GeNa (v3.3.21) that provides a bunch of bug fixes and improvements. We've also added the ability to perform a lot of the Spawning logic on the CPU (experimental) instead of the GPU which it does by default. 

 

image.png
To enable this, simply select which spawners you'd like to run on the CPU, open the Advanced Settings Panel and for the 'Current Processor' select 'CPU' to give it a try. 

 

image.png
It's worth noting that this feature has some limitations. Currently you can't perform Spawn Criteria checks that are specific to Terrains, i.e Check Mask and Check Texture. But everything else in a Spawn Criteria is supported.

 

Basically everything that GeNa does to Terrains is not supported on the CPU because these are all done on the GPU. There are no plans in the short term to support Terrain operations on the CPU.

 

 

I'm pleased to know that headless builds are going to work, but also really disapointed about the Check Texture, wich is the basic logic to implement biomes on our game.

So the questions is the following should we consider not using gaia and gena for our game ?
Or is something is planned to have full dedicated server build support ?


Thanks

Link to comment
Share on other sites

10 hours ago, Tarmack said:

So the questions is the following should we consider not using gaia and gena for our game ?
Or is something is planned to have full dedicated server build support ?


Check texture has nothing to do with Gaia, as Gaia is 100% build time product.
 

If this is a deal breaker, then unfortunately yes. We have no timeline for when this could happen as it is not a trivial change.

Link to comment
Share on other sites

@Manny Thanks for this update. I just tried it, we can build in dedicated server and spawn the objects as wanted.

But there is some issues :

  • The type "RoadCrossSectionOverride" is not found in the Gena source files so I get this error :"Assets\Procedural Worlds\GeNa\Scripts\Runtime\Extensions\GeNaRoadExtension.cs(31,36): error CS0246: The type or namespace name 'RoadCrossSectionOverride' could not be found (are you missing a using directive or an assembly reference?)" .We don't need this feature for now so I just commented it.
  • It seems like the feature "Get Sea Level" doesn't work anymore with this update (shown in the screenshots bellow)spacer.png

 

 

spacer.pngspacer.png

This issue just appear when we use the CPU and work fine with GPU. The spawner can't just read the sea value from the WaterShader without using GPU ?

Link to comment
Share on other sites

33 minutes ago, TakeruGrima said:

@Manny Thanks for this update. I just tried it, we can build in dedicated server and spawn the objects as wanted.

But there is some issues :

  • The type "RoadCrossSectionOverride" is not found in the Gena source files so I get this error :"Assets\Procedural Worlds\GeNa\Scripts\Runtime\Extensions\GeNaRoadExtension.cs(31,36): error CS0246: The type or namespace name 'RoadCrossSectionOverride' could not be found (are you missing a using directive or an assembly reference?)" .We don't need this feature for now so I just commented it.
  • It seems like the feature "Get Sea Level" doesn't work anymore with this update (shown in the screenshots bellow)spacer.png

 

 

spacer.pngspacer.png

This issue just appear when we use the CPU and work fine with GPU. The spawner can't just read the sea value from the WaterShader without using GPU ?

[EDIT] The RoadCrossSectionOverride error comes from my project this file wasn't added.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Tell a friend

    Love Canopy - Procedural Worlds? Tell a friend!
  • Need help?

    We work with some of the biggest brands in global gaming, automotive, technology, and government to create environments, games, simulations, and product launches for desktop, mobile, and VR.

    Our unique expertise and technology enable us to deliver solutions that look and run better at a fraction of the time and cost of a typical project.

    Check out some of our non-NDA work in the Gallery, and then Contact Us to accelerate your next project!

×
×
  • Create New...