1. This forum is obsolete and read-only. Feel free to contact us at support.keenswh.com

Stable branch, Modding

Discussion in 'Modding' started by Drui, Jul 15, 2016.

Thread Status:
Not open for further replies.
This last post in this thread was made more than 31 days old.
  1. Drui

    Drui Keen Update Guy Staff

    Messages:
    1,415
    Thank you to everyone and especially all modders for your feedback on Thursday's update to the stable and dev branches. We couldn't make the game without you, and we want to support you as much as possible. This is why we've been improving ModAPI.
    Having both a stable and dev branch allows us to make some significant changes to Space Engineers without breaking the game every week. The development branch will typically contain several work-in-progress features and improvements that are not ready to be moved to the stable branch. At the moment, this includes ModAPI.

    Please remember that as Marek stated originally in his blog, the stable branch "will receive very important hot fixes", and will provide players with a more comfortable game play experience. Every couple weeks, we will update the stable branch with new stuff from the dev branch.
    Because we cannot merge anything potentially risky to the stable branch, often we will not be able to merge everything from the dev branch for the monthly stable branch update. Given that we released the new ModAPI only two weeks ago, it is still considered a risky feature, and we will merge it only when we are certain it has been thoroughly tested.

    [​IMG]

    Picture explanation:
    When we switched from the old way of releasing weekly updates, we had to create several things. First, we had to release a new development branch, along with the stable branch, and we prepared a place for us to work on updates for the new stable. After that, we started working on dev, as usual, releasing new features and changes every week.
    The diagram shows more clearly the process we went through. As you can see, the 1.144 dev branch will be the basis for the new stable release, coming in a few short weeks, depending on when we are happy with its stability.
    Please note that we previously misnumbered the stable branch release and that this has been corrected. It is now release 1.140 Stable, to reflect the fact that it was taken from 1.140 Dev. The next stable branch release will be 1.144 Stable, taken from release 1.144 Dev.
     
    Last edited: Jul 15, 2016
    • Like Like x 3
    • Informative Informative x 2
    • Friendly Friendly x 2
  2. Gwindalmir

    Gwindalmir Senior Engineer

    Messages:
    1,006
    I appreciate the explanation.
    I think the biggest frustration is that we didn't really know what to expect. Given the information we had, we expected that stable would just be a month behind dev.
    You may have implied it, but it wasn't, to my knowledge, explicitly stated that features will only be moved to stable when they are deemed stable enough. This may be the next update, or the one after.
    With the ModAPI changes now potentially 2 updates separate (and future changes as well), it creates an issue with the community being split over which game branch to support, since there's no way to support both in the same mod.
    It also seems odd to support this type of development system so early in development. I could see this if the game moved to beta.

    EDIT: I noticed you mentioned the stable updates could potentially be every few weeks. This is good news!
    I feel a lot better about stable if there's a chance of more than once a month updates (that aren't just fixes).
     
    Last edited: Jul 15, 2016
    • Agree Agree x 1
  3. joemorin73

    joemorin73 Junior Engineer

    Messages:
    949
    This would only help the scripting side of mods, but what if C# Preprocessor Directives were supported? This would let the mod authors only support one mod in the library.

    #IF DEVBRANCH
    USE Modapi.Ingame
    #ELIF STABLEBRANCH
    USE Modapi
    #ENDIF

    Longterm, branch naming in the defines may not be effective. Maybe MODAPI versions:

    #IF MODAPI2
    USE Modapi
    #ELSE
    USE Modapi.Ingame
    #ENDIF

    The development tag could still remain and only be used to note mods that use new features that do not exist in the stable branch.
     
    • Agree Agree x 1
  4. Gwindalmir

    Gwindalmir Senior Engineer

    Messages:
    1,006
    I will be working on a PR myself this weekend to do exactly that. We need something in there, even if it's just for scripts. It should also be trivial to do.
     
    • Like Like x 1
  5. Geneticus

    Geneticus Senior Engineer

    Messages:
    1,618
    I realize that Keen had some internal difficulties
    Wouldn't it be better to Use both the branch name and the Client Version? Almost like a compound primary key.

    Then you could go a step further and define conditions where the script might break on one build. Halt execution of the script and throw up a message before potentially doing something that crashes the game.
     
  6. Anach

    Anach Trainee Engineer

    Messages:
    77
    Well at least I now know I'm not going mental and there were some version numbering changes. I'm hoping once the API changes go to stable, modders may remain on that branch. It really doesn't make sense for live mods to be made for dev, when dev could change each week. If they happen to work on both branches OK, but keeping mods on Stable will help keep the community on the more stable branch. A few more unplayable breakages like last dev DS issues might help convince some people to go back to stable.
     
  7. Vanguard

    Vanguard Trainee Engineer

    Messages:
    21
    Perhaps it's just short-term pain on adopting a new system, but I'm a little confused about why folks are asking for more frequent updates to the stable branch outside of bugfixes. That kinda breaks the paradigm of stable doesn't it? And in my mind, aside from reliability, the one thing that makes something "stable" is the stability in the ModAPI so that mods don't break.

    That said, instead of all of the versioning and pre-processor directives, for this to be effective, if done right, shouldn't this be as easy as:
    Just update the dev flavor of the mod.
    Whenever Dev and Stable merge (i.e. 144), replace stable mod with dev mod
    Continue to update just the dev flavor until next merge

    If I understand what Drui is saying, this should work, and it didn't in the last few due to growing pains?
     
  8. Geneticus

    Geneticus Senior Engineer

    Messages:
    1,618
    It's not that people want more frequent stable changes, it's this specific script support that is causing a lot of problems for modders.
    --- Automerge ---
    @Drui there are two definitions for Stable.
    First is the code is going to crash less, the second is that the version will change less often. We have been led to believe that what we were going to see was less frequent updates on the stable branch. This came from devs on discord. It appears that now we're being told that it's the other definition and we will see more frequent updates that have less crash potential.

    My understanding of the main reasons for the split is the expectation that players won't try to play over the weekend and run into a bunch of new bugs or incomplete features. Personally I think that is the way it should be handled. More frequent updates will lead to unexpected changes on stable. Even if they aren't bugs they can cause problems for people.

    I don't mind that the 2 branches are so different, but the mod tools right now are making simple art and block mods difficult on either branch. Will there be a stable and a dev SDK for when models and textures are only compatible with a single branch? Will the model builder ever work again? Will we ever be able to see what is causing errors in our mods?

    These things are compounding the problem, in my opinion, of separate branches even existing.
     
  9. Anach

    Anach Trainee Engineer

    Messages:
    77
    I believe it's a short-term pain, and things will change once people learn how the version system works. There are already people using the update system you describe.

    The only problem for me, is that I can't run both dev and stable clients, due to how steam handles beta selection.
     
  10. joemorin73

    joemorin73 Junior Engineer

    Messages:
    949
    You could attempt it, but #IF is very limited. No Greater Than/Less Than support.
     
  11. Gwindalmir

    Gwindalmir Senior Engineer

    Messages:
    1,006
    Yes, but it's better than what we have now, which is squat.
     
  12. joemorin73

    joemorin73 Junior Engineer

    Messages:
    949
    Agreed. It's why I thought the #IF with DEFINEs might me sufficient. MODAPI1, MODAPI2, etc.
     
  13. Geneticus

    Geneticus Senior Engineer

    Messages:
    1,618
    I was thinking more of booleans IF X and (Y OR Z). I don't know what the support is for macros like that, so I might be talking out of my ass here....
     
  14. Carlosmaid

    Carlosmaid Apprentice Engineer

    Messages:
    177
    At the moment the dev branch works much more stable than the "stable" branch (the stable has become unplayable) in my dedicated server (vainilla).
    There is constant lag, simspeed peaks all the time. Problems with ships that are flying when disconnected, or rotate , things that explode , etc. In the dev none of this happens, the simspeed goes like silk in 1.0... I hope this fix soon in next stable update. Otherwise it will be forced to migrate to dev , but i fear it becomes more difficult to maintain the server in that branch. It is that the idea of separating the branchs was to have stable servers in the stable branch. If i can help with anything (logs, world files or whatever) here we are.
     
  15. Geneticus

    Geneticus Senior Engineer

    Messages:
    1,618
    The stable branch was not done just for servers. It was an option for people to have changes less often. There should be more servers running on development so that bugs get squished before they make it to stable and sit there broken for a month.
     
  16. Carlosmaid

    Carlosmaid Apprentice Engineer

    Messages:
    177
    Sorry, my English is not so good. I mean that the stable branch is designed to be more "stable " in any case (single player or servers) and not break the game every week. At least i interpret it was the intention of dividing the development in two branches. At the moment in my case happens to be the "dev" branch is much more stable and with lot of fewer errors than "stable " branch . I interpret that is very new division and keen still " adjusting " certain things for stable to be truly stable or at least more stable than the dev and not the other way around.
     
  17. Geneticus

    Geneticus Senior Engineer

    Messages:
    1,618
    There are to ways to define stable:
    1. Doesn't change often
    2. Less buggy

    So far we have only seen the first one being used ;)
     
Thread Status:
Not open for further replies.
This last post in this thread was made more than 31 days old.