What can I even do with the SDK at this point?



  • Checking back with chivalry after a long hiatus, I wanted to redo my server mod with the new SDK. I figured it should be easily doable at this point in time but I’ve yet to find any information regarding the issue. I’ve checked the public SDK docs and these forums to no avail.

    Can I create a server mod for server owners to use in the live version of chivalry? Also how do custom maps work? There’s no autodownload so do custom maps show on the live server browser and it just requires you to have the map installed?



  • @Slight:

    I figured it should be easily doable at this point in time but I’ve yet to find any information regarding the issue. I’ve checked the public SDK docs and these forums to no avail.

    There are quite a lot of information around here, certainly about this subject.

    @Slight:

    Can I create a server mod for server owners to use in the live version of chivalry? Also how do custom maps work? There’s no autodownload so do custom maps show on the live server browser and it just requires you to have the map installed?

    No, you can’t.
    And yes, autodownload is on, it simply uses UDK’s DownloadableContentManager class to perform that. It’s embedded within the engine, so it’s significantly slower than an actual HTTP mirror.
    Autodownloading a new map will take some time and also consumes a significant portion of one’s server bandwidth.



  • @Cthulhu:

    There are quite a lot of information around here, certainly about this subject.

    I’ll take your word for it. I’d rather not spend an hour digging for it.
    @Cthulhu:

    No, you can’t.
    And yes, autodownload is on, it simply uses UDK’s DownloadableContentManager class to perform that. It’s embedded within the engine, so it’s significantly slower than an actual HTTP mirror.
    Autodownloading a new map will take some time and also consumes a significant portion of one’s server bandwidth.

    Thanks for the info. Unfortunate.

    I joined a server recently that had a little yellow chat message that read something like “type !register to register an account on our server” which would come up when you joined. This made me think some sort of server mod was in use. Are you certain you can’t compile a dedicated server that normal clients can join?



  • @Slight:

    I joined a server recently that had a little yellow chat message that read something like “type !register to register an account on our server” which would come up when you joined. This made me think some sort of server mod was in use. Are you certain you can’t compile a dedicated server that normal clients can join?

    99% chance of it being Rcon, 1% chance of it being injection.
    Rcon sends you chat messages aswell as SteamIDs, so something like that is easily done. Take a look at Development/Src/AOC/classes/AOCRCon.uc.

    function GameEvent_BroadcastMessage(PlayerReplicationInfo PRI, string Message, int Team)
    {
    	local AOCRConPacket Packet;
    	Packet = new class'AOCRConPacket';
    
    	Packet.SetMessageType(MessageType.PLAYER_CHAT);
    	Packet.AddQWord(PRI.UniqueId.Uid);
    	Packet.AddString(Message);
    	Packet.AddInt(Team);
    	SendPacket(Packet);
    }
    

    You can’t compile at all. When you compile your script you are merely compiling it to a bytecode order interpreted by UDK, not a real set of machine code instructions.
    You’ve no access to native C++ code within the SDK, and the only way to hook C++ code into it is through DLLBind, which is pretty limited by itself.
    In my opinion, you should only bother using DLLBind within the SDK for when you need to hook wrappers from C/C++ libraries that aren’t available within UnrealScript.

    In terms of programming, the SDK only allows you to write Unreal Scripts, you’ve no direct access to the engine, nor its component.



  • @Cthulhu:

    99% chance of it being Rcon, 1% chance of it being injection.
    Rcon sends you chat messages aswell as SteamIDs, so something like that is easily done. Take a look at Development/Src/AOC/classes/AOCRCon.uc.

    function GameEvent_BroadcastMessage(PlayerReplicationInfo PRI, string Message, int Team)
    {
    	local AOCRConPacket Packet;
    	Packet = new class'AOCRConPacket';
    
    	Packet.SetMessageType(MessageType.PLAYER_CHAT);
    	Packet.AddQWord(PRI.UniqueId.Uid);
    	Packet.AddString(Message);
    	Packet.AddInt(Team);
    	SendPacket(Packet);
    }
    

    You can’t compile at all. When you compile your script you are merely compiling it to a bytecode order interpreted by UDK, not a real set of machine code instructions.
    You’ve no access to native C++ code within the SDK, and the only way to hook C++ code into it is through DLLBind, which is pretty limited by itself.
    In my opinion, you should only bother using DLLBind within the SDK for when you need to hook wrappers from C/C++ libraries that aren’t available within UnrealScript.

    In terms of programming, the SDK only allows you to write Unreal Scripts, you’ve no direct access to the engine, nor its component.

    Gotchya. I used injection in my previous valiance admin mod to add functionality to the server using my own UE3 SDK. I made an external launcher which handled injecting, no DLLBind or anything.

    Sounds like they may be intercepting rcon messages then, oh well.

    Very disappointed with TBS that, even after many months, the SDK is still totally unusable for anything other than prototyping mods that might be usable at some unspecified point in the future.



  • Well, here is the thing though, it’s totally unusable in LIVE.
    I’ve two mods with no known issues at the moment working in Beta, even with the current autodownload as both of them are small once cooked (< 1 MB).

    To be honest, I could even understand TBS for not releasing the SDK to Live until they’ve got everything in, like the Workshop. Mind you, I don’t agree with this logic as I don’t need the Workshop at all, but I can understand it.
    However, like many others around these forums, I was truly disappointed to see that they were putting more effort into a new project instead of actually finishing their current one.
    How many news or reports do you get on the SDK? It’s been a while since I last saw one.
    Now, if TBS feels like they really need to move to another project, why not just finish the SDK first and let the community build upon it and then move on, like most companies do?

    Mods have kept revenue alive for many older games, look at Source SDK for example.
    Or look at mods that have generated great revenue to their parent games, DayZ for example.
    Hell, Chivalry comes from a modding background, you would assume the developers would be taking great care of their modding community.

    The worst thing about this situation is how it’s actually being drawn.
    If this was happening back then at the beginning of the century, fine, but now they’ve access to Steam, a platform that makes patching your game a breeze compared to the old manual download and install procedure.
    Why aren’t smaller patches that are known to work (internally tested) and optional “working but not yet finished” content such as the SDK not pushed directly into Live, and leave Beta for gameplay, controversial changes, large deployment tests, etc.

    Really, why in 2013 and with access to platforms such as Steam are companies not adopting the “release early, release often” philosophy? WHY?
    It’s a philosophy that has proven to be very successful with smaller development groups, as you allow your customers to test and feedback your own product, free of cost, and with a constant influx of updates to appease your customers.

    Take a look at Natural Selection 2.
    Unknown Worlds is also a small studio, they are constantly pushing updates to Steam and they already have mod support.

    Honestly, the brazilian community is dying quite fast. We used to have 6/7 servers populated most of the time, now it’s usually just 1 or 2.
    I’m afraid by the time we have the SDK pushed to Live, all my work on those mods will be in vain, at least for me to enjoy them.

    This is of course just my opinion, which I tend to keep to myself.
    I just wanted for once to express it as I’ve been a programmer for a decade now, it’s not the ramblings of a guy who just learned how to code.



  • You are preaching to the choir my friend.

    Indeed, the source engine was kept alive for nearly a decade solely because of how it supported modding from the get-go and was so open to work with. I really loved that engine.

    When you bring up Natural Selection II it just makes me think of a really good indie company of talented people. I mean that whole engine was built from the ground up, though it certainly wasn’t without its problems. You can see the passion in what Unknown Worlds does, because they keep going and constantly make their product what it was promised to be and beyond.

    TBS? There is no passion; no throughput. There’s this really good idea and all the tools they need to make it better, but no directed effort at making it happen. Even at a purely financial/logistical level modding would be a high priority. The UDK supports distributing the editor and modding the engine already so that indie companies can pass on the modding scene to their communities. Sure they tried to get it out, but its still not working. They’re sitting on broken promises, passing any reasonable deadline that could be set, leaving glaring flaws in their game (never mind competitive balance or anything), and they have the nerve to direct their attention to some overpriced DLC? Hat cashshop? Too many bad decisions are being made here for me to think TBS is a competent group of individuals let alone a good indie studio.



  • So much truth spoken here :(


Log in to reply