Jump to content

Help needed - question about file mission serialization (for MP dynamic campaign)


Recommended Posts

=GEMINI=IngegnerTommy
Posted

Hello Everybody,

 

As GEMINI squadron we’re working to create a new Dynamic Campaign engine for Multiplayer. Having found no existing tool, we decided to create that from zero.

 

We experienced no difficulties on the log file read/decode (parsing) in order to be able to capture the events happening on the mission (inspired by the ploggy library created by the Coconut MP server guys), however now we’re at the stage where we need to adjust the following map based on the events of the previous one. We must then read the mission file, modify it and re-save it.

 

So here are the question we hope you can help us with:

1)      In which format is the file mission serialized?

2)      Is it a standard serialization, or a custom one? We tried with YAML (which seems to be the closest one) but it does not seem to work

 

Any info could be of great help.

 

Note: we are programming in C# language.

 

Thank you in advance!


=GEMINI= squadron

  • Upvote 2
Posted (edited)

That's a great project. It could also be used for scripted campaigns.

Good luck. 

 

However you may hit some limits as internal information is not disclosed by Jason. 

Recent tries to modify and improve existing maps hit a warning sign from him.

Between understanding how things works and retro-engineering there is a grey area.

Maybe you should contact him. He may be interested in the project and then provide all the needed information.

And if he is not, he may let you know what you can do or not do.

 

There may be also another issue. As you know from time to time we get an update which makes some internal changes that make what you have done incompatible. For Mission that we build or scripted campaigns we need to resave all the mission so that they become compatible with the new released update. That is part of the normal foreseen process and the only way to keep your published campaigns or missions continue to work. But the internal changes are not communicated. Recently the internal working of an MCU that we discovered (by trial and error) was changed. It very useful and I used it, as it allowed to do some logic that was otherwise impossible. But with updates that MCU internal working has changed which made the functioning of that logic not working anymore, and we did not get any info on it and in fact we even do not know when the change was made. It is only when the part of the code or the logic that uses it behaves wrongly that you start looking where is the problem. After loosing time to understand you finally see that that undocumented feature has changed. And I have no solution to it. So now I have some code not working properly and no easy solution to replace. We work at our own risk, no guarantee here, so before you commit an enormous amount of work beware of these little details.

 

 

Edited by IckyATLAS
  • Like 1
  • Upvote 1
Posted
3 hours ago, =GEMINI=IngegnerTommy said:

the ploggy library created by the Coconut MP server guys

Coconut MP server guys here. We just wanted to say that ploggy is not by us, but originally by taleks:

 

3 hours ago, =GEMINI=IngegnerTommy said:

In which format is the file mission serialized?

I don't think it conforms to a known standard, but it's not too hard to figure out. I've written a tool that extracts a schema from an example mission, and generates F# type definitions for all MCUs, and also generates a parser, and a dumper. It could probably be adapted to generate code in C#. Or just put the generated F# file in a small project, compile and consume from C#.

 

 

  • Like 1
  • Upvote 1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...