Jump to content

gothboiclique

Members
  • Posts

    24
  • Joined

  • Last visited

Posts posted by gothboiclique

  1. What am I missing here, I'm trying to install UltraEngine on a fresh Windows VM through a Cloud VM provider because I only have a Mac laptop.

    I installed Vulkan SDK and Nvidia Quadro drivers, the VM has a Quadro P4000. 

    "The procedure entry point vkCmdBeginRendering could not be located in the dynamic link library C\Program Files\UitraEngine\UltraEngineClient.exe."

     

    Any ideas on what I am missing?

     

  2. I'm excited for Ultra Engine! Having owned Leadwerks for over a year now, I like it, especially the fact that it's easy to pick up and not bogged with hundreds of pages of outdated documentation. Last summer, I spent a month and a half trying to implement my own networking system. I've dabbled with Unreal, Unity, and Cryengine as well trying to experiment with multiplayer games. Obviously, these engines have much more backing support but I am really hoping we can see some updates to multiplayer gaming in Ultra Engine.

    1. Leadwerks multiplayer is too barebones. It's understandable and expected that games implement their own multiplayer architectures due to different constraints, clients, playstyles, etc. However, some basic networking stuff built in would make the engine so much more enjoyable to use.
    2. State synchronization, replication, interpolation, extrapolation, etc. would be super helpful to have these added with attributes in classes so that every multiplayer game does not have to implement their own state synchronization method.
    3. Adding on to the above point, support for a server authoritative networking model built in.
    4. Leadwerks does not support (as far as I could find) a headless mode for running server authoritative game. It would be great if Ultra engine could support running headless with no GPU and only physics caluclations.
    5. Windows only support hampers cloud deployment, it increases the cost of VMs substantially. If Ultra Engine could support some sort of mode where it could run on Linux with physics, this would help.
    6. Support for multiple debug/game windows at the same time so I could run a server and client (or multiple) to test their behavior. This would really help improve the dev flow for multiplayer.
    7. Bink video support! This would be awesome if it was built in.

    Understandably, this is a lot to ask, let me know your thoughts. Curious if anyone else attempting multiplayer has anything to add.

    • Upvote 1
  3. This kind of sucks for people who bought Ultra App Kit to help support you, I got it last fall and would appreciate access to the original docs that were online. I understand the licensing model isn't working out for you but we should still have access to what we got when we purchased.

     

    Edit: I realize they are "still there" but I can't even remember what classes were there, etc.

    • Like 1
  4. Hi, I'm not too familiar with C++ development but I recently purchased Ultra App Kit and installed it on my M1 MacBook. When attempting to build with cmake (using CLion), I get the following error:

    Undefined symbols for architecture arm64:
      "_CFArrayGetCount", referenced from:
          CocoaInterface_GetDisplayInfo(std::__1::vector<CocoaInterface_DisplayInfo, std::__1::allocator<CocoaInterface_DisplayInfo> >&) in libAppKit.a(CocoaInterface.o)
          
    ...
    ld: symbol(s) not found for architecture arm64

    and more.

    I added the library like this:

    include_directories("/users/Jack/Library/Application Support/Steam/steamapps/common/Ultra App Kit/Include")
    target_link_libraries(GUI_Demo "/users/Jack/Library/Application Support/Steam/steamapps/common/Ultra App Kit/Library/MacOS/arm64/Debug/libAppKit.a")

    Any ideas?

     

    Thanks!

    • Like 1
  5. Any idea on why my floats aren't reading correctly? Writing float 1 for example produces:
    1.1754944E-38

    Writing float 9 produces:

    1.469368E-39

     

    Here's my code: 

    float f1 = BitConverter.ToSingle(bytes2, 0);

     

    Seems like the bytes are in a different order possibly? 

  6. int i = 0;
    
    byte[] bytes = new byte[4];
    
    foreach (var element in Event.Packet.Data)
    {
      if (i < 4)
      {
        bytes[i] = element;
      }
    
      i++;
    }
    
    int eventId = BitConverter.ToInt32(bytes, 0);

    Really quick example that I'm going to turn into a BankStream class for C# but I'm able to get the Event ID and next int. Floats seem to use a different size and for strings, I'm not sure what the separation you use is.

  7. Hi again. Messing around with the built in networking (ENet), I wrote a C# app for testing with an ENet Library wrapper. I'm able to connect and send messages but I'm not quite sure how to parse a bank stream on my server's end. Any ideas from C#?

    For example if I send a string "this is a test" using Client:Send in Leadwerks, my server will see "? This is a test" the question mark being a wrongly parsed symbol which I assume is the message ID from Leadwerks. 

    var dataString = Encoding.ASCII.GetString(Event.Packet.Data);

     

  8. 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.

  9. In the documentation for Map::Load() it is stated:

    Quote

    Map: Map::LoadScripts: if included, scripts and flowgraph information contained in the map will be loaded.

    However, this appears to be the default behavior and after looking through Map, I do not see any integer representing a way to disable script loading. The main reason I need this is for my server implementation, which will not be using any of the scripting but will still be using the map itself.

    I suppose the alternative could be to just delete every script file but preferably I would just like to guarantee that scripts will not be loaded.

  10. 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!

  11. 17 hours ago, Josh said:

    The way Lua works is it only performs a garbage collection sweep once a certain threshold is reached. To test memory usage you can add a collectgarbage() call in your main loop so it gets collected each frame and run the game in debug mode. (This will result in slower execution speed so it is not recommended to use this all the time.)

    (In Ultra Engine the game logic is all running on its own thread and has a full 16 milliseconds to execute, so continual garbage collection could be an option to use there without affecting the framerate.)

    Yes, however, after leaving the program running for a few hours I got Lua Error: Out of Memory.

    Also, how can I apply to get access to the Ultra Engine beta?

     

    EDIT: I was referring to my own project, my apologies, it's an issue I'm currently solving. Thank you Josh for the response, I am still interested in the beta. Let me know, thanks!

  12. Using the default FPS template in LUA, I have noticed an excessive amount of memory being used. In debug mode, standing perfectly still, memory usage continues to increase. There are times where it may fall slightly, but overall, after leaving the default FPS project on the pickup items map, the usage went from ~45 MB to 400MB or so over an hour.

    Is there any solution to this or is this expected behavior?

    Also, I believe the issue lies in the FPSController UpdatePhysics function, after deleting the code inside that function, memory usage stays still. It seems the objects like Vec3 are not being cleared from memory but this is just a guess.

×
×
  • Create New...