Jump to content

[WIP, .24.2] Open Mission System


Recommended Posts

Hi guys!

I've been had an idea tumbling around my head the last few weeks, since .24 was released, and I think I'm going to have the time to start putting it together over the next week or two. I'm mostly in the design phase at the moment, but the success of the commnity-driven development of Karbonite has me thinking that emulating that approach might be extremely productive - and so I'm making this post to solicit feedback, ideas, and (very shortly) content. I know that RoverDude had some well-recieved mods under his belt already, and thus had significantly more 'street cred' than I do, I'm hoping that this mod can evolve into a community effort as well. That being said, I want to establish some overall direction before publishing code and opening it up to PRs.

The 'tl;dr' version of the overall goal is to implement 'legacy' MCE-style missions in the new contract system. I want the player to have access to (potentially) narrative-driven, manually created and paced contracts. I want the non-programmer to be able to create mission packs, either narrative or procedural. I want to reduce the amount of repeated coding effort required to create contract mods, in much the same way that ORS seeks to reduce the repeated effort required to create resource-based mods.

What OMS is:

Mission packs will be defined as XML documents, defining certain attributes which determine the nature of the missions. The primary dichotomy in types of missions will be between Narrative and Procedural. One mission definition document will only be allowed to define one type of mission, but may contain many (unlimited?) individual missions of that type.

Narrative missionswill be presented to the player in an (optionally) defined order, will (optionally) reappear if declined, can be dependant on a previous mission being completed (ie, don't show this mission if preceding one was declined), and are exactly as procedural as the mission author wishes them to be. This type of mission could be used to define a 'grab bag' of standalone missions, such as challenge missions. (visit minmus and return a sample using a craft that masses less than 10T at launch as an example), or it could contain 'series' of missions meant to be completed sequentially (see the MCE 'bootstrap' missions as an example).

Procedural missions are very similar to the existing squad missions, except they are constructed out of pre-defined mission objectives in novel combinations. An example mission definition could be the equivalent of 'Land on <random planet>, retrieve sample from <random biome, if applicable>'.

Mission Objectives are the 'meat' of the plugin. I want to implement (and eventually provide a way for other plugins to implement) generic objectives which can be referenced by the mission definition documents to build new missions. This is the section that I'm particularly seeking feedback and suggestions about. The idea is to break any task down into the minimum 'units' so that they can be potentially reused as much as possible.

Currently planned objectives are

  • Orbit <Object>, with optionally defined parameters (inclination, ap, pe, eccentricity)
  • Flyby <Object>, with optionally defined pe
  • Land on <Object>, with optionally defined biome
  • Return sample from <Object>, with optionally defined biome
  • Vessel mass range, optional minimum or maximum.
  • Minimum or maximum crew.
  • Part or PartModule required on vessel.
  • Mission duration

What OMS is not:

OMS is not intended to be a replacement, or even a compeditor to such fine mods as MCE or Fine Print. All should be able to be used simultaneously, and I'm hoping that this project might even be of use to such efforts in the future.

OMS is not intended to contain mission content, per se. The point of initial development effort on my part will be to create the framework to create mission content, and while OMS may come with some mission content, no particular mission pack will be required to use the mod.

Anyway, I'm hoping to have a github up with some initial code in the next couple days. I'll admit that all of my previous mods have been 'my baby', and so I'm new to the idea of actually integrating other people's code, but I'll be open to PRs ASAP. For the time being, I'm very eager to hear ideas, requests, criticisms, or other feedback.

Edited by enneract
Link to post
Share on other sites

Hi,

good idea and wish you to succeed in it.

Does your <Object> thing include asteroids ? If not, you could add redirect/do something with them.

Also, XML may not be a good choice (as it usually carry less data than its own tags). Ini style file may be easier to deal with as you can do stuff like:

[summary]
a short story about the mission

[main plot]
blah blah blah

[primary]
main goal is...

[secondary]
optional ...

[victory]
condition1 = goal-1
condition2 = ...

[score]
science = +5
rep = +30

[failure]
rep = -50

compared to


<scenario ABC>
<summary>
short story ...
</summary>
...
<score>
<science>
+5
</science>
<rep>
+30
</rep>
</score>
</scenario ABC>

Link to post
Share on other sites

True, but xml files have the advantage that they can be validated against a scheme to ensure they are correct, while ini files (AFAIK) can't.

Edited by Ippo
grammar
Link to post
Share on other sites

YAML or JSON might be better alternatives to XML. They retain validation, but are much easier to edit for the average user with a high signal to noise ratio to boot.

This looks interesting, and I'll be following your efforts.

Link to post
Share on other sites
YAML or JSON might be better alternatives to XML. They retain validation, but are much easier to edit for the average user with a high signal to noise ratio to boot.

This looks interesting, and I'll be following your efforts.

I personally loathe parsing YAML and JSON, to be entirely honest. My mind went to XML because that is what I am familiar with.

Link to post
Share on other sites
I personally loathe parsing YAML and JSON, to be entirely honest. My mind went to XML because that is what I am familiar with.

Of course. The preference is entirely yours to make, and there are many a debate on the merits or otherwise of the various alternatives. I just thought I'd throw those suggestions into the mix with no preference of my own.

OMS could be used as a framework for a mission editor/generator, and could be particularly suited to setting challenges. Either an easily read and edited format, or the ability to create a third party editor would be a boon.

Link to post
Share on other sites
Of course. The preference is entirely yours to make, and there are many a debate on the merits or otherwise of the various alternatives. I just thought I'd throw those suggestions into the mix with no preference of my own.

OMS could be used as a framework for a mission editor/generator, and could be particularly suited to setting challenges. Either an easily read and edited format, or the ability to create a third party editor would be a boon.

Indeed! I'm probably going to stick with XML for now, though the input is appreciated. A standalone mission editor is definitely something to do once initial implementation of the plugin is done, which will make the choice of format relatively trivial.

Link to post
Share on other sites
Indeed! I'm probably going to stick with XML for now, though the input is appreciated. A standalone mission editor is definitely something to do once initial implementation of the plugin is done, which will make the choice of format relatively trivial.

would it be possible in the final version to include missions like:

"deliver 10.000.000 units of (insert ressource here) to the Orbital Station (insert name here) orbiting (planetary body)"

Link to post
Share on other sites

Regarding mission editor, I get back to what I suggest before:

anyone create a files (whatever the format is), with all data needed (story, goals, conditions for success and failure, rewards, parts allowed, ...), it may be even the 1st thing to work on, so all your missions could be done this way, by using the "translator" to contract API. One more need: to be comprehensive to add new items to the generator/translator (like mod's resources, mod's bodies, ...)

(a shame it was not like that in stock :( ).

Link to post
Share on other sites

this could be a good tool for creating tutorials for mods, for example if you wanted to teach someone to set up an MKS colony. A series of missions in which you gradually build your colony, and along the way learn enough to be able to do it again on your own. this method could teach someone far better than a wiki or walkthrough could

Link to post
Share on other sites
Regarding mission editor, I get back to what I suggest before:

anyone create a files (whatever the format is), with all data needed (story, goals, conditions for success and failure, rewards, parts allowed, ...), it may be even the 1st thing to work on, so all your missions could be done this way, by using the "translator" to contract API.

Yea, I'm actually working on the parser as we speak.

One more need: to be comprehensive to add new items to the generator/translator (like mod's resources, mod's bodies, ...)

(a shame it was not like that in stock :( ).

Can you run this one by me again? I'm not sure what you mean.

Link to post
Share on other sites

Suggestion: in addition to prerequisite contracts, also implement mutually exclusive contracts.

This would allow you to write story lines that bifurcate according to your choices.

Link to post
Share on other sites
this could be a good tool for creating tutorials for mods, for example if you wanted to teach someone to set up an MKS colony. A series of missions in which you gradually build your colony, and along the way learn enough to be able to do it again on your own. this method could teach someone far better than a wiki or walkthrough could

There is already the scenario for this, they also allow to create helpers like in the best stock scenarii.

Can you run this one by me again? I'm not sure what you mean.

:D

I mean think a lot more ahead even before coding too much, so some cases would be already covered. I have not precise idea out of the blue... :huh: some random examples depending on some mods: get a valuable part from a wreck (with chop mod), add a dish and/or a solar panel to a lost satellite (RT2/KAS), do some science somewhere with a special tool (ex: investigate those strange and big footprints left on Mun :P), resupply a vehicle in the middle of the badlands (KAS or claw if applicable), send an emergency air supply to Kendra in Khenzou space station before a given amount of time, ...

You see: a lot of situation where contract/mission API need to be extensible/pluggable as easy as possible.

Link to post
Share on other sites
Hi, this sounds fantastic, cant wait...will it be playable in just science career as well please, as i dont like the contract thing...thanks.

... you don't like career mode with contracts, so you want a mod to add contracts to the science mode that doesn't have contracts? :huh:

Link to post
Share on other sites

yes, well i can see you really just had to make a comment, and well done...its not actually the contracts, its the finance bit i dont like...and if the finance bit is included in this great idea, than unfortunatly not for me...ok...thank you

Link to post
Share on other sites

If you want to play contracts without having to worry about money, you can just edit your save file to have a huge amount of funds and just forget about them.

Open your persistent.cfg file, use a text editor to find "funds" and you can change the amount to whatever you see fit.

Link to post
Share on other sites

:D

I mean think a lot more ahead even before coding too much, so some cases would be already covered. I have not precise idea out of the blue... :huh: some random examples depending on some mods: get a valuable part from a wreck (with chop mod), add a dish and/or a solar panel to a lost satellite (RT2/KAS), do some science somewhere with a special tool (ex: investigate those strange and big footprints left on Mun :P), resupply a vehicle in the middle of the badlands (KAS or claw if applicable), send an emergency air supply to Kendra in Khenzou space station before a given amount of time, ...

You see: a lot of situation where contract/mission API need to be extensible/pluggable as easy as possible.

That is where the 'open' part comes in. Once the basic framework exists, anyone can add additionally objectives to the project. Additionally, as a future goal, an API for other mods to add objectives would be nice.

Hi, this sounds fantastic, cant wait...will it be playable in just science career as well please, as i dont like the contract thing...thanks.

Not going to happen. This will leverage the existing contract mechanics and UI elements, which are not available in 'science' mode.

Link to post
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...