Jump to content

[1.12.x] BetterBurnTime v1.10: Provides extra burn-time indicators on the navball for suicide burns & target rendezvous.


Snark

Recommended Posts

2 hours ago, Vingo said:

Maybe you should pre release the 1.2 version *wink wink nudge nudge*

Heh, yah, I hear ya.  :wink:

There are basically two reasons I'm waiting for pre-release to end before I release a BetterBurnTime update:

  • The selfish reason:  Until the KSP 1.2 release actually happens, it's possible something could change that would break BetterBurnTime again and require a further update.  I'd really prefer not to have to release it twice.
  • The "civic duty" reason:  The whole point of Squad doing a pre-release is to gather feedback from lots of users about the behavior of the stock game.  Someone who's running mods is in a worse position to help Squad by doing that (because if something goes squirrelly, it might be a mod causing the problem rather than the stock game).  Obviously all the players and mod authors out there can make their own choices :wink: and I'm certainly not criticizing anyone... but just speaking for myself, I've been amazed at how cool Squad has been through the whole pre-release process, and I'd like to return the favor by not releasing my mods yet and therefore not encouraging more pre-release mod use.  :)

So, not just yet.

Link to comment
Share on other sites

  • 2 weeks later...
16 hours ago, brusura said:

I found very odd that the guys at squad is letting this bug live for so long, I mean the wrong burn time calculation of course

It's not so surprising when you realize that it's not a bug:  what it is, is a missing feature, which is a different beast entirely.

This is not just a matter of twiddling a line or two of code and then it does what you want.  BetterBurnTime is a deceptively complex mod.  Sure, it looks simple, and conceptually what it does seems simple... but there's actually a lot of complexity under the hood.  Actually, when I first started out, I had no idea how hard it was going to be.  I figured, heck, just plug in a better equation and it'll be all better, right?  It wasn't until I really started diving into it that the full magnitude of the task unfolded.  Truth be told, if I had known when I started out just how much work it was going to be, I might not have had the gumption to write it in the first place.  :wink:

The issue is that what seems like a simple problem-- "just fix the burn time!"-- is actually a lot harder than that, once you start getting into all the details.  I discuss the issue a little bit in this post, earlier in this thread:

...Anyway, the point is, Squad could totally implement something like this if they were so inclined, but it wouldn't be a trivial piece of work.  And spending the time on this would mean not spending the time on something else (Squad's a small company, they only have a handful of developers).  I'm not at all surprised they haven't gotten around to something like this yet, given how busy they've been with other features.

 

16 hours ago, brusura said:

do you have any idea from the inside what this thing get never fixed?

Just to be clear-- I don't have a perspective from the "inside".  :wink: I don't work for Squad, I don't have any more visibility into their internal product decisions than you do.  (Like all the moderators-- except sal_vager, who's Squad staff-- I'm just a volunteer who helps keep the forum running.)  I do, however, have a pretty good perspective on software development in general (I've been a professional software engineer for a very long time), thus the discussion above.  But that's just based on my experience as a developer, not on any special knowledge of what's going on inside Squad.

Link to comment
Share on other sites

Thanks for the time and detailed answer @Snark very appreciated, anyway when I see a number that is not the reality I see it as a bug not as a missing feature, it's like saying the apoapsis is 100km while in reality is 80km, wrong number is wrong

 

Link to comment
Share on other sites

  • 2 weeks later...
5 hours ago, Jiraiyah said:

@Snark o~k sir 1.2 is out :D should we give the current version a try or do you think something was changed breaking it?

No, the current version of BetterBurnTime is broken in 1.2 and won't work.  You need an update.

And, curiously enough, I've got an update sitting right here, where it's been waiting for weeks, as I've hovered eagerly waiting to press the "publish" button just as soon as KSP 1.2 releases!

Alas, SpaceDock (the site where I host my mods) appears to be behind the times.  They have yet to update their site to allow marking a mod as "KSP 1.2" (i.e. they haven't updated to include the latest version) of KSP). Believe me, I'm just as eager as you are to get this update out the door, but I (and other frustrated modders) just have to wait until SpaceDock updates.

Thank you for your patience, hopefully it won't be too much longer.

(Just to forestall helpful suggestions:  Yes, I know it's possible to publish it on other sites, including github.  I have various reasons for preferring not to do that.)

 

[EDIT]  I see that SpaceDock has finally updated to allow 1.2!  :D  ...now that it's impractical for me to update things on my end. ;.;  So it'll be a few hours, yet, before I can update (no, I won't define "a few", other than "a lot less than 24"; please be patient).  But I promise that it'll be out as soon as I can.

Link to comment
Share on other sites

30 minutes ago, Jiraiyah said:

@Snark sit i think space dock is up to date now, take a look at this mod's ksp version : http://spacedock.info/mod/980/AntennaSleep

  1. I don't need to look at AntennaSleep's KSP version, since I happen to have written that mod myself...
  2. Yes, SpaceDock is updated now, but it's impractical for me to update BBT for the next few hours.  Please see my comment that I tacked on to the end of my last post in this thread, just a few messages above, and thank you for your patience. :wink:

 

Link to comment
Share on other sites

Hi all,

I'm happy to announce that I have released BetterBurnTime v1.5, for KSP 1.2 compatibility.  Please see the download link in the OP for this thread.

No new functionality in this release; it's a compatibility update only.

The only other noteworthy change is that the license has changed to CC-BY-NC-ND 4.0 (it was previously MIT).  It's a more restrictive license than MIT, but I don't expect that the change of license will affect users of this mod.  The most noteworthy changes in licensing are:

  1. you can't make money off it
  2. if you modify it in any way, you can't distribute the modified version

Enjoy!

Link to comment
Share on other sites

Not to start a license discussion, but since I do pay attention...  Could I convince you to change to a license that would allow someone to pick up the mod if you were hit by a bus tomorrow? :wink:   (I'm not going to ask in every thread of yours - just consider it a blanket request.)  'All Rights Reserved' licenses make it very hard to keep things going if someone disappears or leaves the community.  (And your current license is basically 'All Rights Reserved' with the exception that we can keep circulating the zips.)

Link to comment
Share on other sites

I'm looking for a way to export the values this mod generates to an external device, using another mod.

I'm pretty new to coding, but I'm building an instrument panel to play KSP with. It'll have real analog gauges, a navball, joysticks, toggle switches, etc. I am curious though... Your mod produces a number of values that would be very useful to have outputted over the KSP Serial IO plugin, to my panel. A few people have even created their own forks of the KSP Serial IO plugin to handle custom data sets, and do things like connect with Action Groups Extended, for example. I'm going to need to ask that person how they did it, but I'd be VERY interested in outputting some of the values of this mod. Having the accurate burn time, countdown to burn, time to closest approach, distance at closest approach, and time to impact would be VERY nice values to display on my instrument panel! (**EDIT** I realize time to burn is a simple division of the burn time by 2, and then subtracting that from the time to node... So it's not actually necessary to actually transmit the data, as It's redundant... The important thing is having the accurate burn time, and more importantly than that, NOT having n/a, like the stock burn time does)

Again... I really don't have the expertise to do this (yet), so I'm not even sure what I need to make this happen, but I suppose the variable names for the values that this mod produces would be as good a place to start as any. I'll ask the guy that integrated AGE how he got the serial plugin to interact with that mod, and go from there.

Edited by richfiles
Link to comment
Share on other sites

7 hours ago, DStaal said:

Not to start a license discussion, but since I do pay attention...  Could I convince you to change to a license that would allow someone to pick up the mod if you were hit by a bus tomorrow? ... your current license is basically 'All Rights Reserved' with the exception that we can keep circulating the zips.

Alas, no, I can't be convinced.  And yes, that is basically what my current license is; that's pretty much what I was aiming for.  The current license was chosen deliberately to prevent anyone other than me from being able to "pick up" the mod.

I try to be reasonable about most things, but I'm prepared to be mulishly stubborn about this one.  Lengthy, spittle-flecked explanatory rant in spoiler section, in case anyone's interested, but feel free to skip it; the only important information is that I've got a restrictive license and it's gonna stay that way for as long as I'm around.

Spoiler

Basically, it's a "nice guy becomes jaded at cruel world" story.  Go ahead, laugh, I deserve it. :wink:

So, yeah, I do take your point about the hit-by-a-bus factor.  In general I'm a friendly, want-to-be-helpful-to-the-community sort of guy, which is why all my mods were originally licensed MIT, which is a very permissive license.

That's how things stood up until a week or so ago, when I had a nasty wake-up call, of the "this is why we can't have nice things" variety.  Here's what happened:

The KSP 1.2 pre-release was out, and of course I went and updated my (private, unpublished) BetterBurnTime code so it would be ready for the 1.2 release, just like I did with all my mods.  I deliberately did not release it, for various reasons which I explain above in this thread.  I was deliberately withholding it until the KSP 1.2 official release.

Then, an eager beaver who really wants mods RIGHT NOW, and who just couldn't wait, took it upon himself to:

  1. fork my code
  2. set up his own git repository to host it
  3. patch the code himself
  4. and release it, with a post on reddit to announce doing so.

(He also did a few other mods this way, too.)

I was immediately horrified, when someone let me know.  That's a nightmare scenario for mod authors.  Someone else, tinkering with my code, perhaps introducing bugs for all I know, and releasing it into the wild where unsuspecting users will download and use it and then come to me for support if there's a problem with it, except that neither they nor I realize that they're not using an official release of BBT that I wrote myself... nope.  Nuh-uh. Not gonna happen.  Do. Not. Want.

And what if something like CKAN picks it up for syndication and screws up the metadata, and starts distributing someone else's version rather than mine?  I gather from reading various horror stories that the folks running CKAN turn a deaf ear to pleas from mod authors to fix things when this sort of fiasco happens.  Let the mod authors eat cake, about sums it up.  True, I don't know that something like that would happen, so perhaps I'm just jumping at shadows... but I don't know that it wouldn't, either, and the prospect gives me the slithering creeps, even as a remote possibility.

As it turned out, I appear to have dodged a bullet:  specifically, I got lucky in that the person who did this actually does seem to be a decent sort of person who meant well, was trying to help people, and honestly had no idea of how his actions would make life a living hell for mod authors.  He actually said (when called out on it by someone in the thread) that he'd happily take down the fork if the mod authors object; and when I said "hi it's me, please take down BetterBurnTime", he proved himself to be a man of his word, and actually went and did it.  So, crisis averted (I think).

However... that's only because I got lucky and the person actually was a decent guy who was willing to take down the fork when asked.  Legally, he didn't have to.  Since I was dumb enough to put an MIT license on it, he would have been perfectly within his rights to tell me to get lost.

I don't like being in a position where only thing saving me from a nightmare is dumb luck.  It's clear that having a license that allows people to distribute modified copies of my work is just begging for trouble. Heck, it gets into trouble even from well-meaning people, and there's really no way to prevent that:  in this case, I actually posted very clearly in my mod thread "I'm deliberately not releasing until 1.2 ships and this is why", and it still didn't prevent someone from doing this, simply because they didn't bother to read my thread.

So, there it is.  I want people to be able to enjoy my mods.  I want them to be able to share them freely.  But I do not want anyone to be making money off my mods, and I especially do not want anyone to be modifying my mods and redistributing the modified version.  I am the author of my mod, and versions come from me, for as long as I happen to own it.  If someone wants it to do something different, they're welcome to ask me, and if I like the idea and it seems reasonably straightforward, I'll add it.  But it'll be my work, and my released version.

And so now I've cranked up the license on nearly all my mods to the very restrictive CC-BY-NC-ND.  (The chief exception is IndicatorLights, which I left as the somewhat more permissive CC-BY-NC-SA, mainly because I wanted to make it easier for modders to base their stuff on it.  I'm simply hoping and praying that my decision to leave IndicatorLights somewhat open doesn't come back to bite me.)

Yes, that kinda sucks for the community.  I'm sorry about that.  Can't be helped.  Because the only alternative would be for it to suck for me, instead, which would make me unhappy.  Which in turn would quickly kill my motivation to the point that I'd stop working on my mods.  I mean, it's not like I get paid for this; having fun is the only thing that keeps me going.  Kill the fun, kill the mods.  Then everyone loses.

FWIW:  Yes, it means that anyone who likes my mods and wants to keep using them is now in a position where they have to just trust that I don't get hit by a bus.  If I vanish, my mods die as soon as a KSP update breaks them.  I'm sorry that circumstances have made that necessary.

However, FWIW, I can assure you that "getting hit by a bus" (or similar) is literally what it would take, and the probability of that is pretty darn low.  Far more of a risk factor for most restricted-license mods is not that the mod author dies, but rather that the author simply gets bored with KSP or modding and wanders away, leaving the mods to languish.  That, at least, I can promise you will not happen.

Why won't it happen?  Well, for one thing, I'm still happily engaged in KSP and don't expect that to change any time soon.  More importantly, though: if by some chance it ever does come to pass that I don't want to maintain my mods any more, and decide that I'm done with them... in that case, I would change them over to a permissive license again (like MIT) before casting them adrift, so that the community will be able to do with them as they will.

However, until that day-- may it never come!-- I'm in the driver's seat for my mods and intend to stay there.

 

3 hours ago, richfiles said:

I'm looking for a way to export the values this mod generates to an external device, using another mod.

I'm pretty new to coding, but I'm building an instrument panel to play KSP with. It'll have real analog gauges, a navball, joysticks, toggle switches, etc.

Oh cool, that's awesome!  You're gonna share pics when it's done, right?  :)

Anyway:  As things currently stand, I'm guessing it would be difficult-if-not-impossible to get what you want out of BetterBurnTime.  It calculates a small set of really nifty, useful numbers (e.g. burn time, time to impact, etc.)... but, as numbers, they're just internal variables that aren't exposed anywhere.  The only "public interface" where it outputs anything to KSP is a set of text objects on the navball, and you really don't want to be trying to scrape info out of that.

That said:  I expect it would be really easy for me to make the numbers usefully exposed, even though they currently aren't (it's not that I was trying to hide them, it's just that there wasn't any reason to expose them, before).  I'd love for BBT to be able to support projects like yours, so I'd happily tinker with it to enable your scenario, if it's reasonably practical to do so.

The main thing I'd need to know is, just how can I give you the numbers?  What exactly are you doing, in technical terms?  Are you writing a KSP mod that reads stuff out of the game, and then outputs it to hardware devices-- something like that?

If so... maybe the thing to do would be for me to add a VesselModule class for BetterBurnTime, which has a set of useful bits of information such as these numbers, exposed as KSPField values.  Then I could have BetterBurnTime just update those numbers on the VesselModule for the current vessel.  If you're writing a mod, then all you'd need to do is get the current vessel, ask it for its VesselModule list, iterate until you find one whose name is BetterBurnTimeVesselModule (or whatever I call it), and then just ask it for the field values.  Would something like that get you what you need?

Link to comment
Share on other sites

Well, sorry to hear that the license is not permissive anymore, but I read the wall of text and sympathize with your position.

As a safeguard against the bus, could you appoint someone "heir" of the code in case you disappear? And I don't mean just "would you want to", but actually "could": I am a total license noob :P

Link to comment
Share on other sites

1 minute ago, monstah said:

As a safeguard against the bus, could you appoint someone "heir" of the code in case you disappear? And I don't mean just "would you want to", but actually "could": I am a total license noob :P

Well, I don't have the patience to try to manually muck around with a license and make it complex to take that into account or something; I want an off-the shelf one.  But it's certainly easy for me to make offline arrangements about all my stuff, online and otherwise.  Look, it's not something I prefer to go into here.  Let's just say "trust Snark not to leave a mess behind himself" and leave it at that, shall we?  Would love to move the discussion back to the mod itself, rather than licensing, because I'm not gonna budge on this one, folks.

Link to comment
Share on other sites

2 hours ago, Snark said:

Alas, no, I can't be convinced.  And yes, that is basically what my current license is; that's pretty much what I was aiming for.  The current license was chosen deliberately to prevent anyone other than me from being able to "pick up" the mod.

No problem, and thanks for the detailed explanation why.  (Honestly more than I expected.)  I'm a bit on the idealistic side on this issue I'm aware - I'm not going to press someone usually.  I just thought since you'd switched from a very permissive license to a very restrictive one I could at least ask once.  :wink:  (I may also take a fork of your last MIT code and save a copy as a backup measure, just because.  Not planning on working on your code - if I get into modding, I've got a stack of ideas of my own already.)

Link to comment
Share on other sites

35 minutes ago, DStaal said:

No problem, and thanks for the detailed explanation why.  (Honestly more than I expected.)

Well, I go into all the detail mainly as a cautionary tale:  to prospective mod authors ("think very carefully about the implications of your license, first) and to prospective mod forkers ("think very carefully about the implications of your action on the modder, and by extension on the mod-using community, and don't be the 'this is why we can't have nice things' guy").

Anyway, 'nuff said. :)

Link to comment
Share on other sites

3 hours ago, Snark said:

Look, it's not something I prefer to go into here.  Let's just say "trust Snark not to leave a mess behind himself" and leave it at that, shall we?

Oh, sure, I was just asking. The mod is awesome as-is, and I'm perfectly happy it just keeps working.

Besides... a bus? Kill a tardigrade? Really? :wink: 

Link to comment
Share on other sites

4 hours ago, Snark said:

Well, I go into all the detail mainly as a cautionary tale:  to prospective mod authors ("think very carefully about the implications of your license, first) and to prospective mod forkers ("think very carefully about the implications of your action on the modder, and by extension on the mod-using community, and don't be the 'this is why we can't have nice things' guy").

Anyway, 'nuff said. :)

Those modder forkers... I tell ya! :cool:

Link to comment
Share on other sites

10 hours ago, Snark said:

The main thing I'd need to know is, just how can I give you the numbers?  What exactly are you doing, in technical terms?  Are you writing a KSP mod that reads stuff out of the game, and then outputs it to hardware devices-- something like that?

The mod in question is KSPSerialIO and, yes, that's precisely what it does. It populates a data packet with various bits of information gathered from the game, then fires it down a serial connection.

10 hours ago, Snark said:

If so... maybe the thing to do would be for me to add a VesselModule class for BetterBurnTime, which has a set of useful bits of information such as these numbers, exposed as KSPField values.

A few more public getters on your existing BetterBurnTime class would probably be workable. But that sounds fantastic. :)

Link to comment
Share on other sites

7 minutes ago, stibbons said:

The mod in question is KSPSerialIO and, yes, that's precisely what it does. It populates a data packet with various bits of information gathered from the game, then fires it down a serial connection.

A few more public getters on your existing BetterBurnTime class would probably be workable. But that sounds fantastic. :)

Okay, that sounds pretty reasonable, I expect I can slip that in to an update.

Basically, I've got a set of numbers to expose, along with a boolean "is / isn't valid" flag-- e.g. "time to impact" is only valid if I actually have a time to impact, and so forth.  Perhaps I could just pick a convention that any one that's not applicable will have a value of NaN.  Makes things simple.

Link to comment
Share on other sites

My 2 cents worth - please don't take it as me telling anyone what to do, but accept it as an answer I found handy and am putting out here for you to see as an alternative.

As far as licensing go, for things like this I like public licenses, like GPL2, BSD, CC, etc.  As a user, all I ask is any author, no matter the license, please give some assurances to your users - as long as you aren't engaged in profit (which requires a lot of legal things and far different licensing) - and do consider adding an abandonment clause. I recall something like this: "This software is considered to be abandoned only if the author posts a PGP signed message to FORUM-X stating it, or posts a from his development account a file in the project folder named "ABANDONED" containing a such a statement statement and incorporating it to the source code repository, or the author has not posted a message or accessed his repository in 6 months, or the author has not posted a message or made a file update in 90 days after a it becomes broken by an upgrade to the game , then this software becomes governed by [more permissive] license [that allows someone else to pick up development] for the purpose of continuing development freely.

I used to have my old WOW addons with an "all rights reserved" clause (because I didn't trust Curse) that basically says: if I state I'm abandoning it, or I don't develop an update within 3 months of a major game upgrade, or I don't touch it within 6 months of time, then it becomes governed by GPL2.  This way I could just walk away from it, and the community (the 12 people who were using it, hah)  knows that if nobody replaces it, then they will eventually be able to take the code and run with it.  It was my "hit by a bus" (or coder gets bored/burnedout) promise to my users.

Edited by Murdabenne
clarification
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...