Jump to content

Will the BD Armory for DMP ever get updated?


SpaceVoid

Recommended Posts

There was a mod called BDDMP that made BDArmory compatible with DMP but it is for 1.0.5 and that version crashes with a lot of mods as there is no x64 executable.(and itd pretty old , also unity4)

Mod Link:

I wonder if the new BDArmoryContinued is compatible with the DMP mod. We really want to make dogfights and stuff. Any help would be appreciated.

 

I searched a lot for it on the internet but couldn't find anything.

Link to comment
Share on other sites

Hi,  while DMP  is great for basic multiplayer  games,  it is not able to deal with the extra calculations required in order to make dogfights or multiplayer combat  a reality.  The issue of compatibility is really the other way around,  and it's DMP that needs to improve or a new replacement be created that can deal with a shooter game level of interaction.

Link to comment
Share on other sites

Greetings; I noticed this post on my email pinging thing.

 

First things first:

3 hours ago, SpannerMonkey(smce) said:

Hi,  while DMP  is great for basic multiplayer  games,  it is not able to deal with the extra calculations required in order to make dogfights or multiplayer combat  a reality.  The issue of compatibility is really the other way around,  and it's DMP that needs to improve or a new replacement be created that can deal with a shooter game level of interaction.

No, it can. A combination of dsonbill's work and my own made it work. The problem had nothing to do with DMP, the problem came from BDA.

Allow me to explain, and as to how I am currently looking to update it.

Autopsy

BDArmoury lacks any sort of API for external interface. dsonbill put in a pull request that was rejected. See: https://github.com/BahamutoD/BDArmory/pull/2. This meant that whenever there was a BDA update, I would have to pull the entirety of BDA, re-add the necesary hooks, then re-engineer the additional code necesary to make this work.

This is what killed the project. The change from the old turret system to the new one (The same one that implemented radar and a tonne of other stuff) completely bricked. At that point, the stress of GCSE's, coupled with having to rewrite an entire codebase again for the N+1th time resulted in a ceasing of all support for the project, leaving it in its now dead state.

The potential solution

Code rewrites are what killed the project, this they are what must be removed to restart the project. My primary idea is to use C#'s ability to manipulate unsafe code (Basicly inject machine code in place of functions to branch to a replacement) to keep the rewriten function's outside of BDA, and hopefully remove them in entirety. It was inspired by rimworlds Comunity Core Library file HERE

As for why I haven't done this? It's because It involves a large amount of hacking around with an area of C# I'm not used to using; I'm a Java dev mostly, so while the majority of C# seems near identical, I haven't the first clue where to go when messing with C# unsafe/native code.

Edit: Obviously, there would need to be a basic level of security (make certain no network calls ever call unsafe code, etc.)

However, since there is still attention, I will see what I can do.

 

Thanks for reading

Edited by jediminer543
Link to comment
Share on other sites

6 hours ago, jediminer543 said:

Thanks for reading

Well in that case  i strongly suggest you contact the new team, you will find the BDArmory of today very different than  when that pull request was made ( to the legacy repo) AS for interest it's never gone away , and is always high on the wish lists of many BDA users.  If the situation arises and you need some discrete testing done, drop me a line.

Link to comment
Share on other sites

4 hours ago, SpannerMonkey(smce) said:

Well in that case  i strongly suggest you contact the new team, you will find the BDArmory of today very different than  when that pull request was made ( to the legacy repo) AS for interest it's never gone away , and is always high on the wish lists of many BDA users.  If the situation arises and you need some discrete testing done, drop me a line.

My goal is to make code that doesn't need me to modify much BDA code, and definatly not re-pull and modify it, and to modify the code on a per function level. as such, all the code I need is already there, as hitmanager is version agnostic, as is the sychroniser itself. See the github for the changes currently in effect (it currently replaces explosions with the word "bang" in the console, and doesn't need to completely rebuild BDA every time).

 

In this case, it was DMP's api changes that were a pig. but I worked them out. at 1 in the morning.

Link to comment
Share on other sites

4 hours ago, jediminer543 said:

My goal is to make code that doesn't need me to modify much BDA code, and definatly not re-pull and modify it, and to modify the code on a per function level. as such, all the code I need is already there, as hitmanager is version agnostic, as is the sychroniser itself. See the github for the changes currently in effect (it currently replaces explosions with the word "bang" in the console, and doesn't need to completely rebuild BDA every time).

 

In this case, it was DMP's api changes that were a pig. but I worked them out. at 1 in the morning.

Perhaps you can have a look at this library: https://github.com/pardeike/Harmony it was created for rimworld in the beginning

Changing the code that is already compiled is a hard task...

Link to comment
Share on other sites

12 hours ago, jediminer543 said:

My goal is to make code that doesn't need me to modify much BDA code, and definatly not re-pull and modify it, and to modify the code on a per function level. as such, all the code I need is already there, as hitmanager is version agnostic, as is the sychroniser itself. See the github for the changes currently in effect (it currently replaces explosions with the word "bang" in the console, and doesn't need to completely rebuild BDA every time).

 

In this case, it was DMP's api changes that were a pig. but I worked them out. at 1 in the morning.

So we could expect a new mod that adjust DMP + BDArmory and opens the door to multiplayer combat when you find the time?

Link to comment
Share on other sites

2 hours ago, SpaceVoid said:

So we could expect a new mod that adjust DMP + BDArmory and opens the door to multiplayer combat when you find the time?

I pushed a commit that syncs damage and explosions already.

That is all it does, but it does that.

To use:

  • Download the DLL from github Link
  • Create folder named zzBDDMP in GameData
  • Insure BDA and DMP are installed and up to date
  • ???
  • Profit

Where profit == real time damage sync.

Link to comment
Share on other sites

  • 1 month later...
On 15/11/2017 at 1:52 AM, jediminer543 said:

I pushed a commit that syncs damage and explosions already.

That is all it does, but it does that.

To use:

  • Download the DLL from github Link
  • Create folder named zzBDDMP in GameData
  • Insure BDA and DMP are installed and up to date
  • ???
  • Profit

Where profit == real time damage sync.

Sorry for my late response I had forgotten my password(silly me). Thanks for all your help and showing me that it IS possible to sync the games. 

Also the DLL is for 1.3.x right?

Link to comment
Share on other sites

On 15/11/2017 at 1:52 AM, jediminer543 said:

I pushed a commit that syncs damage and explosions already.

That is all it does, but it does that.

To use:

  • Download the DLL from github Link
  • Create folder named zzBDDMP in GameData
  • Insure BDA and DMP are installed and up to date
  • ???
  • Profit

Where profit == real time damage sync.

I just realised you have an actual modpage about this and it's even on CKAN. It's really nice to see a question of mine coming to life and expanding! :D

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...