gothboiclique Posted March 30, 2021 Share Posted March 30, 2021 Hello again, Would it be possible to run Leadwerks without a GPU in a server environment to simulate physics? Edit: Just for some more information, I've been working on a multiplayer game in Leadwerks for the past few months, it's very basic right now. I've written a client and a server using the engine. The clients simulate all information with interpolation and the server validates movement to prevent teleporting, etc. The server needs to be able to determine if a weapon was fired without obstruction, etc. Edit #2: Removing context->sync and world->render brings my GPU down to 0% for the application and still allows physics (at least I believe) to operate functionally. My clients were still receiving the velocity and position updates that are done through physics. My fear, however, is that OpenGL will still be required to run the app even if it doesn't open any window. Thanks! Quote Link to comment Share on other sites More sharing options...
reepblue Posted March 31, 2021 Share Posted March 31, 2021 All dlls are loaded at start up but I don't think OpenGL is initialized until the context is created. You sadly need a context class to create a world class with Leadwerks. If you have the C++ dlc, you can look into calculating physics with the newton api directly. Not a network guy or a physics guy but that's what I got. Quote Cyclone - Ultra Game System - Component Preprocessor - Tex2TGA - Darkness Awaits Template (Leadwerks) If you like my work, consider supporting me on Patreon! Link to comment Share on other sites More sharing options...
gothboiclique Posted March 31, 2021 Author Share Posted March 31, 2021 That's what I feared. I haven't really looked at the Newton API but frankly, I don't feel like converting every object in the map to Newton. I hope that Josh perhaps has an answer. I have found this: https://github.com/jamesbrink/docker-opengl and https://github.com/thewtex/docker-opengl. Both projects appear to allow OpenGL from inside Docker which would be perfect for a server environment with no GPU. I will try to test it tomorrow and see if it will work for me. The main goal of my project would be to simulate hitboxes, collisions, ray casting, etc. I have some pretty high goals including snapshot interpolation for clients and server side lag compensation. After messing around with Leadwerks built in networking for just some basic stuff, I decided I wanted to go for the heavy stuff. Quote Link to comment Share on other sites More sharing options...
Solution Josh Posted March 31, 2021 Solution Share Posted March 31, 2021 OpenGL 4.0 is required for Leadwerks to initialize. in Ultra Engine all rendering code lives on the rendering thread, so if you never call World::Render Vulcan will never get used. Quote My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
gothboiclique Posted March 31, 2021 Author Share Posted March 31, 2021 Okay, sounds good. I haven’t seen anything about it yet but will Ultra Engine have any more advanced built in networking? Like replication? Or will this still be up to developers to implement. thanks! Quote Link to comment Share on other sites More sharing options...
Josh Posted March 31, 2021 Share Posted March 31, 2021 54 minutes ago, gothboiclique said: Okay, sounds good. I haven’t seen anything about it yet but will Ultra Engine have any more advanced built in networking? Like replication? Or will this still be up to developers to implement. thanks! The networking will be mostly the same. For most uses, Steam P2P networking is the best choice. If you are making a relay server then you can use Enet. You can try to implement NAT punch-through, but you will still need a relay server because that will fail 10% of the time. Regarding replication, we actually do have a general state serialization feature that works right now with C++ and Lua (and I don't think C# will be hard to implement). This can be used for both game state saves and probably can be useful for sharing data over a network. The video below shows me saving the game state and reloading it as I play. Quote My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.