Jump to content

KSP's unity engine


Recommended Posts

Hello

i was just wondering can KSP change from unity to other engines ? Unity is good but there is better right ? i don't know much about programming

or "engines" but is it possible to change ?

Link to comment
Share on other sites

yea i know but it would be cool rewriting would be easier because they already know the programming thingy right ?

You speak English and that is a language, French is also a language so you should be able to learn it real easy, right?

I'm not trying to be facetious here, but It seemed like a good example for a non-programmer. The engine is the core of what drives the game, KSP itself is an implementation of the Unity engine. Simply knowing how to program doesn't mean you know all of the API of a potentially new engine, that would be just like you learning French.

(I'm assuming you don't already know French btw, if you do pick any other language you don't know)

It's actually easier to move between programming languages than it is to move between engines. For example, if you know how to program Java real well, then you already know the basic concepts required to program in Visual Basic and the rest is minor syntax. C#, C++, and Java are even closer, Visual Basic is kind of the black sheep of modern languages because it's syntax is different, but it's core concepts are the same. This isn't true of game engines which are done at a much higher level than a programming language.

Edited by Alshain
Link to comment
Share on other sites

You speak English and that is a language, French is also a language so you should be able to learn it real easy, right?

I'm not trying to be facetious here, but It seemed like a good example for a non-programmer. The engine is the core of what drives the game, KSP itself is an implementation of the Unity engine. Simply knowing how to program doesn't mean you know all of the API of a potentially new engine, that would be just like you learning French.

(I'm assuming you don't already know French btw, if you do pick any other language you don't know)

I'm going to expand upon this analogy, because it's a good one.

A publisher wants you to translate a large and complicated book from English to French.

Not only do you have to learn French, but you have to learn it in less than six months... or face the wrath of the publisher. You must learn the vast majority of French words in this time.

Then, you have to translate the book into French. Not only must you translate the words properly, but you must type every single word correctly. If you don't do so, the publisher will be livid, and you'll have to fix any and all typos immediately. Furthermore, you must periodically add additional chapters to the book, revise sentences, elaborate on topics, and so on. All in French.

Replace "French" with "Another Programming Language," "A Book" with "KSP," and "The Publisher" with "KSP's audience." This is the kind of thing that the devs would have to go through.

I shudder just thinking about it.

(Also, modders would probably start some sort of mob, and rightfully so. They have worked on KSP too, sometimes for years. This would mean that all their work just went up in smoke. Not great.)

Link to comment
Share on other sites

(Also, modders would probably start some sort of mob, and rightfully so. They have worked on KSP too, sometimes for years. This would mean that all their work just went up in smoke. Not great.)

I actually hadn't thought about that part before. It would be a bloodbath.

As a programmer, learning a new language is not so hard once you've got the basics of how computers work down. But it would still be a long and time consuming process, perhaps it would be best if we waited until a later date.

Link to comment
Share on other sites

Think about it like this: the people who build satellites for science aren't the same people who launch it -- they pay companies like SpaceX because they would rather focus on building the payload instead of splitting their efforts between that AND the delivery system.

Link to comment
Share on other sites

Well, KSP will not change it's engine, but it's interesting to talk about what engines are, etc.

There are several engines on the market nowadays, known ones are are Unity, Unreal, Frostbite, crytek and so on.

Every of them have it's own unique licencing, and it's often worth to develop your own, like the guys at https://www.seedofandromeda.com/ are doing.

In resume it's the very core of the game, changing to a new engine is way too complicated and often requires rewriting so much that it would be better to start the project over.

For that reason SQUAD has decided that the engine will not change, Unity is not the best but it's not bad, and it receives somewhat frequent updates.

Updating is way simpler than completely moving to a new one, and KSP updates it when it's stable enough.

Link to comment
Share on other sites

Often re-writing can make things worse or even give off a perception of making it worse, even if the engine itself is better. Half-Life: Source is a good example of this. Though the Source engine's technical physics capabilities were better, the game was not really all that different from the original and in some cases the physics were implemented quickly and poorly. Half-Life was a critical success, as was the Source engine when used with HL2 and Portal, but combining the two was a disaster.

Link to comment
Share on other sites

I think for a KSP2 Squad will need to consider their engine choice, and it may even warrant a custom engine. After all, general-purpose engines target game worlds the size of buildings, towns, maybe planets at most, not the sheer scale of a solar system, and it's from KSP's scale that a lot of the issues and kludges arise. Not to mention there's more choice now. When Squad started developing KSP, Unity was one of very few off-the-shelf engine options that didn't cost a bomb just to get started with.

Link to comment
Share on other sites

For the translation analogy, you're also stuck using a different keyboard on your French typewriter, and no key quite does precisely what the keys did on your English typewriter (oh, you thought that key was a q, no, bzzt, in this language it's an a; oh, you thought that key was for a quote mark, nope, it's for an accent). So you have to relearn how to type.

Also, you don't have a French-English dictionary ; you just have a poorly-maintained wiki and answers on franc-exchange many of which weren't quite right when they were written and actually refer to middle english and old french, not the modern dialects.

Meanwhile, your readers are all reading this through a babel fish, so they mostly don't care what language you're writing in (ok, the romance bits are a bit more flowery when the source language is French, but only a few aficionados will notice); and they want to know when the next chapter is coming out.

Link to comment
Share on other sites

The language-translation analogy is even worse than that.

A literal translation is not usually a good or even useful translation. In anything you need to translate the concepts as well as the instantiation. Homer's "wine-dark sea" for instance (eg; http://clarkesworldmagazine.com/hoffman_01_13/) nice bit of poetic analogy or because ancient Greek had no word for "blue"? If the latter and for some odd reason ancient Greek became all the rage again, how would you translate "blue sky thinking"? "Wine-dark" might have rather too many suggestions of being drunk!

Abdu - in some ways you are right because at least by this stage of development a team has a better idea of what they want, what does and doesn't work in (play) practice, what appeals most to customers; all things that could only be outlined at best before the programme was released. For the actual programming it's usually quicker and easier to throw away everything you've written so far and start again, making much faster progress because of your improved experience and understanding, plus resuable graphics, etc. Nevertheless it's a lot of extra work so there has to be a very compelling reason to change this close to completion.

Edited by Pecan
Link to comment
Share on other sites

I think for a KSP2 Squad will need to consider their engine choice, and it may even warrant a custom engine. After all, general-purpose engines target game worlds the size of buildings, towns, maybe planets at most, not the sheer scale of a solar system, and it's from KSP's scale that a lot of the issues and kludges arise. Not to mention there's more choice now. When Squad started developing KSP, Unity was one of very few off-the-shelf engine options that didn't cost a bomb just to get started with.

KSP2? I wouldn't hold my breath ... there's no point in creating a sequel for a game that already does pretty much everything right. Remember, this isn't EA ... KSP is a game that will be refined and expanded upon with DLC.

Link to comment
Share on other sites

Writting a custom engine is a waste of time unless your game uses a specific technology that available engines don't implement. if you write an engine you spend a lot of time redoing what was done hundreds of time before and adding your own bugs to it. You also have to work on stuff you may not be an expert on and end up with sub optimal solution

That time is better spent on the game itself.

Link to comment
Share on other sites

I am gonna say that is a horrible idea, because Duke Nukem Forever...

While not the same anlogy, Falcon 4.0 was an example of chasing technology (like the OP's thought) and never releasing a finished product. The community ended up heavily modding it to the point of greatness :).

Edited by Papa_Joe
Link to comment
Share on other sites

The KSP engine isn't going to change before 1.0, and I can't really see it changing long term either, unless they hit a critical blockage with it where it becomes impossible to reasonably implement a strongly desired feature.

Here's another analogy for why it won't happen. You've got a Ford, but the engine is getting a bit dodgy. There's a GM with wrecked bodywork, but a good engine. You can't just pull the good engine and slot it in anywhere; everything has to be compatible (or adapted to become compatible), from the engine mounts, to the transmission, instrumentation, auxiliaries (hydraulics, compressors, cooling, etc), and so on.

Conceptually, you can replace one software engine with another, if they both provide the same functionality. Practically, they are all completely incompatible with each other, and it becomes more or less a complete rewrite to do the job properly. Old bugs and performance issues come back, all previous QA/testing/etc time is completely lost, new workarounds need to be invented to deal with new problems originating with the new engine, etc. On very rare occasions, there may be exceptions to that, such as where a new engine has been specifically designed to easily replace an old one.

Link to comment
Share on other sites

I'm going to expand upon this analogy, because it's a good one.

A publisher wants you to translate a large and complicated book from English to French.

Not only do you have to learn French, but you have to learn it in less than six months... or face the wrath of the publisher. You must learn the vast majority of French words in this time.

Then, you have to translate the book into French. Not only must you translate the words properly, but you must type every single word correctly. If you don't do so, the publisher will be livid, and you'll have to fix any and all typos immediately. Furthermore, you must periodically add additional chapters to the book, revise sentences, elaborate on topics, and so on. All in French.

Replace "French" with "Another Programming Language," "A Book" with "KSP," and "The Publisher" with "KSP's audience." This is the kind of thing that the devs would have to go through.

I shudder just thinking about it.

(Also, modders would probably start some sort of mob, and rightfully so. They have worked on KSP too, sometimes for years. This would mean that all their work just went up in smoke. Not great.)

Expanding even further... Some languages (enignes) are similar and wouldn't need a full translation, just some tweaks and grammar, but some are so different you might as well write it again.

Link to comment
Share on other sites

Even if the underlying programming language of two engines is similar, it's likely they would need to rewrite most of their code completely, just because the names of functions and variables that need to be accessed from the engine would be completely different, and may even take slightly different input values.

It really isn't worth the time, no matter how similar the proposed engine may be.

If Squad ever decide that KSP 1.0 is "finished" or near enough to, and decide to make a sequel, then that may be the time to pick a new engine, and/or code from scratch. Either option would yield something completely different than what we currently consider KSP. The underlying concepts may be almost identical, but the end result would be quite different.

Link to comment
Share on other sites

The way I see it, is that if the devs have not changed engine by version 1.0, than they will not be changing until a long time into the future, if at all. I think that it would make sense that after the bulk of the game is finished AFTER version 1.0, the devs should start work on transferring KSP over to a new engine. Once they have that whole job of rewriting and re-implementing done, than KSP version 2.0 is born. The engine could be their own custom engine, or could just be a different, more well-fitted engine for KSP and KSP's genre.

Link to comment
Share on other sites

This suggestion appears under the "don't suggest" stickied topic. Because, well, it's hard, and not a good use of time.

I cannot overstate how hard moving to a new engine is. Even upgrading to the latest Unity would've been a lot of work. A new engine means making a new game that re-uses most of the design and the assets (sounds, meshes, textures, bitmaps, etc) of the old one, with some tweaks and conversion. It's a great way to set progress back a couple of years.

Here's another analogy for why it won't happen. You've got a Ford, but the engine is getting a bit dodgy. There's a GM with wrecked bodywork, but a good engine. You can't just pull the good engine and slot it in anywhere; everything has to be compatible (or adapted to become compatible), from the engine mounts, to the transmission, instrumentation, auxiliaries (hydraulics, compressors, cooling, etc), and so on.

It's worse than that. It's more like "You have a Ford with a wrecked engine, and a small jet engine from a Learjet that you want to use instead. Unfortunately it takes different fuel, it needs somewhere to send the searing hot exhaust, it's the wrong size, and it spins thousands of times too fast to use for direct drive of the transmission. So you land up taking the Ford apart, heavily modifying a few parts, and re-using them on the completely new vehicle you build around the new engine. It takes five years, and the result still doesn't work as well as either vehicle did originally."

If you don't write software it's hard for me to fully describe how huge a job changing a game engine is. It's like rewriting a program from running on a local desktop to running web-based. It's *huge*.

Edited by ringerc
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...