Clockwork13

Can't harvester just remove the kraken?

Recommended Posts

Kraken's aren't only exclusive to KSP, they're in a game called Robot Arena 2, under the name of Havok Spikes.

Don't believe me? Watch this video.

Share this post


Link to post
Share on other sites

The only way to mitigate various "Kraken" bugs would be for Squad to write their own game engine, and probably a physics engine, too. While I won't say they shouldn't do this at some point (they're so hugely successful they probably could afford this), this would mean essentially making another game. Maybe in the future, for KSP2.0 or something. Then they could do a real-scale solar system, n-body simulation (not that they can't do the latter in KSP, though...), photorealistic graphics and relatively Krakenless physics. If they did it right, and had an actual physicist on the team, that is. All this is possible to do, if only done before in professional simulation software (and you don't need a supercomputer for this anymore - remember, we've had those simulations for quite a while, and today's supercomputers are tommorow's PCs). You don't see NASA simulators run into Kraken, despite much larger scale. Squad needs to use similar techniques, because their software is, at this point, doing something very similar. They're not doing anything really new, just applying to entertainment what was previously restricted to mission control centers and astrophysics institutes. As such, mathematical apparatus and programming solution already exist, probably for a quite long time. They just need to be adopted for the game.

That's not to say there won't be bugs, but they should be garden variety glitches, not very "unphysical" things happening because of the inherent flaws and inaccuracies in the works of the game. For example, there is such thing as "quadruple precision float" and "infinite precision number". They are by no means as fast as doubles (the latter are particularly bad about this), but when precision counts, they're here to use.

Edited by Dragon01

Share this post


Link to post
Share on other sites
99 little bugs in the code,

99 little bugs!

You take one down, patch it around,

127 little bugs in the code!

ROFL! Well done. :)

Share this post


Link to post
Share on other sites

Good on you for finding that. Now, since this is not a trivial application, if they claim it is 100% bug-free rule 2 of my previous post applies - They're lying.

I can't see anywhere where they claim it's 100% bug-free though, so they might be honest.

Share this post


Link to post
Share on other sites
The only way to mitigate various "Kraken" bugs would be for Squad to write their own game engine, and probably a physics engine, too.
Well, the other way would be if Unity made changes to better support the kind of very large worlds KSP uses. While I wouldn't say it's likely, I don't think it's out of the question: space games in general aren't unpopular and being able to claim the engine will handle worlds THIS big would be something Unity could promote as a feature.

Share this post


Link to post
Share on other sites

But, at best, you move bugs (krakens) from 'KSP' to 'Unity' - the problem is still one of software reliability and verifiability, which not even Ada managed.

Share this post


Link to post
Share on other sites

Come on, everyone. This thread has lived far longer than it needed to, didn't it? It's obvious that OP either is trolling or lacks a lot of knowledge about coding, and either way, the message has been sent, over 50 times.

Share this post


Link to post
Share on other sites
Come on, everyone. This thread has lived far longer than it needed to, didn't it? It's obvious that OP either is trolling or lacks a lot of knowledge about coding, and either way, the message has been sent, over 50 times.

If people are bumping it, then people are clearly still discussing stuff. If you don't want to look at the thread, then just don't. Even worse, don't make a response like yours.

Share this post


Link to post
Share on other sites

"just a bug" - ha! Famous last words. That's like saying "it's just a murder! How hard can it be to solve it?"

Share this post


Link to post
Share on other sites
Good on you for finding that. Now, since this is not a trivial application, if they claim it is 100% bug-free rule 2 of my previous post applies - They're lying.

I can't see anywhere where they claim it's 100% bug-free though, so they might be honest.

I never said it's 100% bug free. It's free of krakens, but theres quite a few little bugs.

Share this post


Link to post
Share on other sites
If people are bumping it, then people are clearly still discussing stuff. If you don't want to look at the thread, then just don't. Even worse, don't make a response like yours.

It might just be me, but I'm fairly sure this discussion is actually just people making fun of what OP said or explaining the difficulties of coding.

Also, just because people keep bumping a thread doesn't mean they're discussing. There are some troll threads - which I'm not saying this is one, by the way - that are so well-planned that they maintain a steady income of angry replies for hours without going anywhere except for giving a big supply of joy to OP until a moderator or higher locks it.

By the way, what exactly do you mean by "Even worse, don't make a response like yours"? I'm not scrutinizing anyone here, I'm just saying that this thread isn't really going anywhere. Yes, it has some posts actually discussing things, but the bulk of the thread consists of people explaining repeteadly why the Kraken cannot be simply deleted to a seemingly ignorant user.

Share this post


Link to post
Share on other sites
I never said it's 100% bug free. It's free of krakens, but theres quite a few little bugs.

Aye, and therein lies the rub ;-)

Those little bugs do bite big, for some people. A 'Kraken', as you will have read, is only the name we give to the biggest biters in KSP.

Well done again for still being active in this thread, despite the 'troll' calls. As you can tell there's a fair few of us that have spent a lot of time bug-hunting and it exercises us mightily.

If you would care to proof-read my tutorial (link in signature) I'd be very pleased. There are still a lot of typographical and grammatical errors in it, despite my best efforts. It's about 40,000 words - so a decent computer application would be about 100 times larger. The major difference is in the fact that you are intelligent and can cope with the mistakes in the text - computers are stupid and at 'only' 1% errors (a normal quality-assurance assumption) things can go wildly wrong.

Worse than that, most of the errors that cause problems are not 'mistakes' at all, they are more 'unforeseen consequences' in that everything works exactly as it was intended to but might not, exactly, work in the way something else thought it might. That's where you get the trouble with mods - the people who write them don't know what Squad might do next and Squad don't know what the modders are assuming. And none of the modders know quite how the others are doing things (unless they read ALL the source code, in detail, which would be more or less impossible).

So a 'little' change in one part can bite another part to death, even if not a bug because it does exactly what was wanted.

Real-life Bug Hunt case study:

The Orwell is a largish river in Eastern England. Microwave transmission towers carry a significant proportion of the UK's telephone conversations across this river (or did when this story happened), partly because British Telecom (BT, monopoly 'phone supplier at the time) has a big centre nearby.

'Sometimes' - once every several months - the communications would stop for up to a minute. Why?

Just that. There was a history to it; starting about a year previously all communications - and therefore every 'phone connection - would simply be cut, suddenly and without warning, for between 40s and one minute.

There was NO pattern that anyone could see and no hardware or software fault they could find.

Well, almost no pattern. Every time it had happened had been at high tide - just not every high-tide (so it took a while, and some desperation, to make this connection).

Next high tide BT stuck an engineer on one of the towers all night to see what happened (no idea who, he must have got good for overtime but a rotten duty for everything else ^^).

Nothing happened.

Next high tide they did again, because they had nothing else to go on.

...

EVENTUALLY, a ship came along and the transmission was interrupted.

It turned out a company with local docks had bought a new ship a while ago. It was 2ft taller than others on the river. IF that ship came along the river (every few months) AND it was high tide (specifically SPRING tide, every fortnight) its funnel was high enough to block the microwave signal.

Solution - raise the towers 2ft.

Small bug, big bite.

Share this post


Link to post
Share on other sites
Aye, and therein lies the rub ;-)

Those little bugs do bite big, for some people. A 'Kraken', as you will have read, is only the name we give to the biggest biters in KSP.

Well done again for still being active in this thread, despite the 'troll' calls. As you can tell there's a fair few of us that have spent a lot of time bug-hunting and it exercises us mightily.

If you would care to proof-read my tutorial (link in signat....*snip*.....n others on the river. IF that ship came along the river (every few months) AND it was high tide (specifically SPRING tide, every fortnight) its funnel was high enough to block the microwave signal.

Solution - raise the towers 2ft.

Small bug, big bite.

This is the kind of thing that annoys me about people in general. "Hey, we only need to raise it 2 feet? Let's do that." instead of raising it 15 feet and being done with it. 2 feet only protects you from that ship and not the next one that happens to be even taller.

The same thing applies to coding. If something isn't working, and you just fiddle with it for a while until it gives a result, instead of actively figuring out what the issue was, the bug will come back and nip you once again. I know this as a programmer, and really have to start taking my own advice. (A good majority of my supposedly "modular" file reading functions in Python often malfunction because I forgot a case that would have taken me 30 seconds to account for... :rolleyes:)

Share this post


Link to post
Share on other sites
This is the kind of thing that annoys me about people in general. "Hey, we only need to raise it 2 feet? Let's do that." instead of raising it 15 feet and being done with it. 2 feet only protects you from that ship and not the next one that happens to be even taller.

Exactly the same conversation happened in fact and the towers were raised by more - the trouble is, how much more would be 'enough'? Can't tell you what the final answer was exactly but once they'd FOUND the real problem the rest was easy :-) Part of my point there was that finding - and fixing - the underlying reason may be very difficult, however big and obvious the effects might be.

You may also like to know that in medical circles the same thing you're describing is known as treating the symptoms and not the disease. Sometimes it's the only option - we don't KNOW what the real problem is (or can't treat it if we do) - but sometimes it's just simpler/cheaper to control rather than cure. That's not as harsh as it may sound, the symptom-treatment might be 30 minutes on a sun bed every week whereas the disease-cure might be invasive surgery with 5% chance of death. Yes, I am making this up just to make the point ^^.

Share this post


Link to post
Share on other sites
It might just be me, but I'm fairly sure this discussion is actually just people making fun of what OP said or explaining the difficulties of coding.

Also, just because people keep bumping a thread doesn't mean they're discussing. There are some troll threads - which I'm not saying this is one, by the way - that are so well-planned that they maintain a steady income of angry replies for hours without going anywhere except for giving a big supply of joy to OP until a moderator or higher locks it.

By the way, what exactly do you mean by "Even worse, don't make a response like yours"? I'm not scrutinizing anyone here, I'm just saying that this thread isn't really going anywhere. Yes, it has some posts actually discussing things, but the bulk of the thread consists of people explaining repeteadly why the Kraken cannot be simply deleted to a seemingly ignorant user.

I'm ignorant, how? It's not impossible to remove krakens.

I feel like your post is more ignorant than my posts anyway

Share this post


Link to post
Share on other sites
I'm ignorant, how? It's not impossible to remove krakens.

I feel like your post is more ignorant than my posts anyway

They did remove the kraken; there is no more kraken. There are bugs, but "kraken" is a worse-than-useless term for them (it implies they're all related, when they're not). One does not simply "remove" bugs (insert obligatory image); you can "fix" bugs, but it's a painstaking (though necessary) process that sometimes introduces more bugs. "Remove" implies that it's something easy to do, and the devs are just lazily deciding not to do it. Debugging is actually the single hardest part of software development, and is never complete.

Share this post


Link to post
Share on other sites
I'm ignorant, how? It's not impossible to remove krakens.

I feel like your post is more ignorant than my posts anyway

Debugging is generally considered as one of the hardest aspects of software development. A statement like “I mean it's just a bug so it shouldn't be that hard to get rid of.†raises the impression that, as far as writing software is concerned, the author of such a quote likely has little practical experience with it. Some might even go as far as calling it “ignorantâ€Â

To get an idea how hard it is, the first step in squashing a bug is to be able to reproduce it. So just for giggles, set yourself a task and describe exactly how to invoke a Kraken. Every single time, 100% predictable. “Load this craft, go into this and this orbit. Do this, do that, set warp to 100x, do this, this, and this. Set throttle to 100% and BAM! There's your Kraken† something along those lines. Mind you, it doesn't work if you get the Kraken 9 times out of ten; you have to figure out how to summon it every single time, and leaving out any unnecessary steps in the process. And that's only reproducing the problem. Now you can start trying to fix it.

And just because you know what the problem is doesn't mean it's easy to fix. The Kraken found its origin in the fact that only sixteen decimals of precision doesn't cut it for KSP. But those sixteen decimals are all you get in Unity. Oh, and whatever you do, it shouldn't break existing mods, it shouldn't affect performance and you'd better come up with a solution fast because the users expect the new version to have new features, not "just" bug fixes.

Share this post


Link to post
Share on other sites

I admit, I can't tell if the game even has orbital mechanics, SOI changes, and other things that might make such 'Krakens' visible, so who knows. But, as workarounds exist for floating point errors (which the Kraken that most people refer to was), it's possible he did remove that bug.

However, others likely exist in his program. It's part of coding.

Share this post


Link to post
Share on other sites

As a programmer myself, I know what it feels like dealing with nasty bugs. Heck, with any engine, there are chances of bugs that happen due to the engines themselves. I'm even working on a game right now using my own engine (built in C++ using the SDL 2.0 library), though I'm technically now planning several engines to evolve from previous code.

In terms of my experience of Unity, I have been studying it for some time now (though I experimented with it in the past). And yes, I do have some prior experience with C# considering I have a way of studying several programming languages. Bugs are a never ending battle really since there is always a chance a bug will show up. There are even bugs that remain hidden for years.

Share this post


Link to post
Share on other sites
I would like to clarify a couple things, because they seem to have been entirely overlooked.

First, the original Deep Space Kraken bug cannot be "fixed" or "removed". It is an artefact of floating-point errors; read up on those. It's an unavoidable consequence of using binary to represent non-integer numbers -- you can only go to so much accuracy with only two digits to work with in the underlying machine. While a workaround is in place and working just fine, you may still notice the more minor effects messing up orbits with initial velocities under 750ms-1.

Multiply by the base ten of your precision, perform calculation, divide by the base ten of your precision. Out of memory? Break up all formulas into single expression operations using just two numbers. This is the standard approach in the finance industry where decimal creep from binary operations would really ruin your day.

Share this post


Link to post
Share on other sites
main()

{

print "Hello World";

}

look i wote bugfree code,

Warning: main should return int.

Share this post


Link to post
Share on other sites
Squad seems incapable to fix and tinker their own game.

No multiplayer, they said.

Mod comes with MP, suddenly Squad is making MP.

No 64bit they said, limit of unity they said.

User figures out how to get 64bit and Wham! Ksp just got 64bit.

Now we are waiting for aomeone to make ksp multithreaded so that Bam! squad suddenly introduces multithreading.

And regarding kraken... Was a mod that reduced the kraken and Kablam! squad is able to reduce kraken effects...

See any trend here?

Yep. Modders do all kinds of things, because they don't need to regard even basic software quality principles.

Activating 64Bit? Sure, why not! Although it is proven to be buggy as hell, and would utterly ruin the game.

Squad decided for good reasons to wait with switching the compile target, because they have a close look at Unity3D, and know what issues are still open there.

Multiplayer? Yeah, let's create a half-baked client-server mod which may or may not work. Et voilà, we have multiplayer.

There is a big difference between a proof-of-concept (which Squad already knew anyway), and a proper implementation, which not only works somehow, but is actually fun.

About the Kraken: there were multiple mods that more or less deactivated the physics model, usually by "prebaking" a ship into a single physical entity. This is what usually is called a workaround: not fixing, but avoiding the original issue, usually with a lot of bad side effects.

Squad didn't want to dumb down the physical model, because that would forfeit their vision of the game.

I know there are a lot of very good modders out there. But honestly: no mod ever achieves the software quality that SQUAD delivers - because SQUAD has to, and modders don't.

Share this post


Link to post
Share on other sites

Seems to me that game has as many krakens as every other game, As seen on the bug thread at their forum.

Not hatin on you OP, just stating that every game has bugs, and we all hope and encourage bug removal, however painful it might be.:)

Edited by Jr6150x

Share this post


Link to post
Share on other sites
Mind you, it doesn't work if you get the Kraken 9 times out of ten; you have to figure out how to summon it every single time

9/10 is okay. It just needs to be reproducible pretty reliably. Some bugs are due to race conditions, and those tend to be a bit elusive.

I agree with everything else in your post.

Share this post


Link to post
Share on other sites
*snip

Second, what do you actually mean by "the Kraken"? So many people just slap that name on every damned bug they can find. And it's silly, snip*

omg this, so much this.

Oh really? Cause I know a game dev who uses the same physics engine and has gotten rid of his krakens a long time ago.

snip*

Maybe he got rid of his Krakens (whatever those are), but he hasn't got rid of all his bugs. There is basically no such thing as bug free code, if is simple enough not to contain a bug, then it's not likely to do anything particularly useful. And even the simplest line of code can still contain bugs.

consider this;


answer = some_number * another_number

This is not in any particular language, its just an abstract concept. All it does is add two numbers together using the * multiply operator.

Well multiplying two numbers is quite useful and this is certainly simple enough to not contain any bugs, oh wait hold up.....there's a bug.

Actually the above bug is quite possibly one of the causes of the so called Kraken (I forget which one). In most cases that would correctly multiply two numbers together, but try it with 0.2 * 0.7. You don't get 0.14, you get 0.13999999999999999

This particular problem is to do with floating point precision. In theory the solution is simple, in practise its more complicated.

The point is that even a very simple operation can introduce bugs and as operations interact the problem is compounded. When you add support for different operating systems your problems are scaled by orders of magnitude.

the top voted answer to this question on stackexchange make some very good points about why code can never be bug free.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.