Jump to content


  • Posts

  • Joined

  • Last visited

Everything posted by gothboiclique

  1. 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. 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. 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. Adding on to the above point, support for a server authoritative networking model built in. 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. 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. 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. 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.
  2. 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.
  3. 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!
  4. Alright, so the float bytes are reversed, I'm not sure what the technical explanation is but I am sure there is one. Floats are working properly now.
  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. By the way, your suggestion was correct, I was able to take the first 4 bytes and convert them to the message ID. I will still need a way to handle the other types afterwards though like WriteFloat and WriteInt.
  8. How about like floats and ints? If I use a bankstream to write a float and integer is there a certain length I can except so I can parse it?
  9. 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);
  10. 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!
  11. 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.
  12. Okay, that's useful information. Thanks!
  13. Both of these appear to be good ideas, I will try to implement them soon! Thank you for your help.
  14. In the documentation for Map::Load() it is stated: 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.
  15. 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!
  16. Hi, say I have a barrel (just using the built in prefab). I want the object to fall on the ground when it is in the air but I don't want the barrel to fall on its side. How can I prevent rotation of this object from physics? Thanks!
  17. 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!
  18. 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.
  19. I've been testing networking on LeadWerks using the built in Enet library, Server:Send() works fine when you specify the peer, however, Server:Broadcast() seems to function but the stream is nil on the client side. I saw a post back from 2017, the user has the same problem as me I believe. Using Lua with Leadwerks Editor 4.6 on Steam.
  • Create New...