Jump to content

Why was Unity used instead of something like Unreal?


Recommended Posts

I'm not asking as a way to poke at squad or anything, I'm honestly curious. In game development, unity is kind of awful, unless you're making a game that needs to be on like eight different platforms including phones.

But KSP is only on desktop, so why was Unity chosen? I'm really curious.

Link to comment
Share on other sites

In game development, unity is a godsend. It allows for easy implementation of object-oriented programming, and the interface allows you to work closely with the code. It allows for easy asset importing, and you can get feedback quickly with the scene editor. It's one of the best game engines out there for small teams.

Link to comment
Share on other sites

In addition, although I am not intimately familiar with Unreal, to the best of my knowledge it's not an engine designed to simulate gravity and other aspects of physics in the way KSP needs them to be simulated to reflect reality to a useful extent.

I could be wrong, of course, but AFAIK Unreal is not really suited to the kind of game KSP is.

Link to comment
Share on other sites

In addition, although I am not intimately familiar with Unreal, to the best of my knowledge it's not an engine designed to simulate gravity and other aspects of physics in the way KSP needs them to be simulated to reflect reality to a useful extent.

That might be considered a feature. After all, physics bugs and performance has been a constant problem all the time. It would have been much better to code a custom physics subsystem for the game - of course, this assumes one is capable of doing so.

From what i know - NOW unreal is a better fit in almost every regard except of the instant feedback in the editor. However, things weren't like this back when dev of KSP started. And of course, back then Unity was the only cool kid on the block, with a low entry barrier. Competitors are catching up, while unity gets ever more retarded - i mean, read up on what's coming in unity 5 - complete garbage, except for 64bit support and a better physics subsystem. I suppose by the time Unity 6 is ready, Gamemaker will look like a sane dev environment, relatively speaking.

Link to comment
Share on other sites

In addition, although I am not intimately familiar with Unreal, to the best of my knowledge it's not an engine designed to simulate gravity and other aspects of physics in the way KSP needs them to be simulated to reflect reality to a useful extent.

I could be wrong, of course, but AFAIK Unreal is not really suited to the kind of game KSP is.

Question that come to me : How many engine are designed to simulate gravity "right" ?

I know for example that many engine have the same problem than Unity/KSP had to simulate things with precision when dealing with "many-digit" distance.

For example : Stars Citizen running on CryEngine 3. (I would have thought all the money sent to them through crowdfunding would have agglomerated into a black-hole)

Link to comment
Share on other sites

The cost of Unreal is well... unreal. They take 5% of your gross profit.

Question that come to me : How many engine are designed to simulate gravity "right" ?

Most of them actually. You can't do physics without some baseline for gravity. Otherwise things would just float. I remember when they first put Half-Life source out, the difference was phenomenal in some aspects (disappointing in others). In the original HL you would kill an enemy and their dead body would just sort of "float". Then Source came along with real physics and bodies "fell" the way they were supposed to.

Edited by Alshain
Link to comment
Share on other sites

Question that come to me : How many engine are designed to simulate gravity "right" ?

I know for example that many engine have the same problem than Unity/KSP had to simulate things with precision when dealing with "many-digit" distance.

For example : Stars Citizen running on CryEngine 3. (I would have thought all the money sent to them through crowdfunding would have agglomerated into a black-hole)

I think it was less that, and more the same reason why, I, for example, consider MyPaint to be an ultimate sketching tool, regardless of how little other functionality it offers that some other programs like Krita do. It's got an infinite canvas. I think I remember it being said that Unity was the only available (and good) engine that did not limit the size of any given "scene", any single "map" it can load, which is kinda important for a space-exploration game. Of course it's possible to find ways around it, kinda like you can just keep resizing a canvas in any conventional graphics application, but why have to deal with that if a good solution is already available?

Link to comment
Share on other sites

My understanding is that when Squad started working on KSP, Unity was the only affordable choice. Tim Sweeney, founder of Unreal Engine's developer Epic Games, said himself in 2014.

With UE3, pro developers could license the engine -- "it's typically cost millions of dollars... negotiating has involved teams of lawyers," Sweeney said. That is changing.

"Looking at the shape of the industry now we realize it's an outdated model," he said. "looking at the possibilities for the engine, we started out from scratch. We came up with an entirely new business model for the Unreal Engine which we are announcing today."

Source: http://www.gamasutra.com/view/news/213517/Epic_radically_changes_licensing_model_for_Unreal_Engine.php

When he was talking about this and when UE4 was released on said new business model, Kerbal Space Program had been out for over two years.

Link to comment
Share on other sites

Because Unity is a pay-once engine that was affordable, accessible, easy to use, and within the range of the devs. Remember that KSP was never meant to blow up this way, they didn't even think they would get half the audience they now have. There's no way they could've afforded Unreal Engine back then.

Link to comment
Share on other sites

Because Unity is a pay-once engine that was affordable, accessible, easy to use, and within the range of the devs. Remember that KSP was never meant to blow up this way, they didn't even think they would get half the audience they now have. There's no way they could've afforded Unreal Engine back then.

So much this. There was never any guarantee that the game would get out of the physics/engineering major market, let alone reach the much broader success the game has enjoyed since.

There is also the fact that Unreal's engine at the start of KSP development was seven or eight years old.

Link to comment
Share on other sites

Wikipedia says KSP version 0.7.3 was released in June 2011. It was only in March 2014 that Unreal and Cryengine and everyone else started up their "free" license program, till then Unity was the only guy in town.

I think it was less that, and more the same reason why, I, for example, consider MyPaint to be an ultimate sketching tool, regardless of how little other functionality it offers that some other programs like Krita do. It's got an infinite canvas. I think I remember it being said that Unity was the only available (and good) engine that did not limit the size of any given "scene", any single "map" it can load, which is kinda important for a space-exploration game. Of course it's possible to find ways around it, kinda like you can just keep resizing a canvas in any conventional graphics application, but why have to deal with that if a good solution is already available?

My understanding was Unity still has a scene size limitation, KSP just fudges a solution by resizing everything in steps, using the ship as the origin etc. No reason you couldn't do that in another engine.

Link to comment
Share on other sites

I will admit I don't know much about the subject. But what would be involved with porting it now to a better engine? Would it involve a complete rework (ie. starting from day one..) or would models, textures, logic, etc. all pan over pretty easily and it would just be a matter of reworking certain bits of code to make it work?

In other words do other engines offer similar coding (C# I believe) but offer more features?

Link to comment
Share on other sites

I will admit I don't know much about the subject. But what would be involved with porting it now to a better engine? Would it involve a complete rework (ie. starting from day one..) or would models, textures, logic, etc. all pan over pretty easily and it would just be a matter of reworking certain bits of code to make it work?

In other words do other engines offer similar coding (C# I believe) but offer more features?

You'd basically have to almost totally rewrite your code, unless you had specifically planned your project to make it easy to change engines (even then, there'd be a fair amount of rewriting). It has nothing to do with the programming language; it's that KSP uses Unity for core parts of the game, and everything interfacing with Unity would have to be rewritten. Even parts that don't directly call Unity functions have design logic driven by Unity's behavior. If you want to make it easy to swap engines, you could make your own intermediate layer to sit on top of the engine and only talk to the intermediate layer, so changing engines only makes you change the intermediate layer (though how you do things at a higher level might have to change for performance reasons, because something efficient in Unity might be slow in Unreal or vice versa). Unity itself abstracts away a lot of OS-specific stuff, as does .NET/Mono, which is part of the reason why it's easy to make one game for Mac, Windows, and Linux; however, to make it easy to change engines, you'd have to add a second layer of your own, which I doubt Squad has done.

Link to comment
Share on other sites

-unity costs $0 to start making stuff, as opposed to ~$500 a month

-unity does not limit your scene, it simply gives you a warning "well, ur going outside kraken making boundaries, go further at ur own risk...."

-unity is pre-made, it takes years and years and (more years) to make a game engine by yourself or with a small team (Harvestr was at first the only KSP dev, not "specialized" in coding, so imagine him making it all by himself in say ~6 months)

-unity already supports Windows, Mac and Linux

-unity has reasonable api documentation (as opposed to most free engines)

-unity has a large community (to answer your questions + to make tutorials + hiring is theoretically easier)

etc.

Link to comment
Share on other sites

My understanding was Unity still has a scene size limitation, KSP just fudges a solution by resizing everything in steps, using the ship as the origin etc. No reason you couldn't do that in another engine.

Not really. KSP just re-centers the coordinate system on your ship every once in a while (it "moves the universe"), to keep the numbers from getting too high to cause Krakens in the physics engine. Without the unlimited scene it wouldn't have been able to keep the entire solar system loaded and displayed as a map without even more code trickery.

Link to comment
Share on other sites

-unity costs $0 to start making stuff, as opposed to ~$500 a month

This indeed was true back when KSP was started, but now unreal for all practically purposes costs 20$ ONCE, and then NOTHING, while unity will constantly cost revenue. Again, this is the difference between "back then" and "now". At the time KSP dev started, unity indeed was the cheapest option, and other engines like unreal were unaffordable. Now however, the roles have reversed - the competitors are so desperate for marketshare, that they will do everything but stop short of outrightly giving their tools away FOR FREE.

Basically, unity started out as financially viable but technically inferior (if you ignore ease of cross-platform releases). Then as the need for a cheap entry dev IDE gained speed (pioneered by unity), the market momentum REVERSED: Unity relatively became more expensive and less fit, while the desperate and panicking competition outdeveloped unity in terms of tech and conditions. The reason unity still is capable of holding its current marketshare is MOMENTUM, not actual meat on the table!

To any unity fan, this should be alarming! It means the competion is desperate to level the field (even going as far, as giving game devs *directly debugging access the the engine devs, for 20 bucks a month! Something unity has never ever done... google around for the reports. The competition is giving devs direct chat contact to the engine devs, while unity devs get no more than the equivalent of a run-of-the-mill hotline)... yet, given unity5 press announcements, the vendor behind unity apparently sees no need yet to up the game - instead deciding to milk it's cashcow, instead of investing into future competition.

The people behind unity feel save and secure in their market position, even while the competition is practically selling below cost. The only reason for a vendor to ignore such an obvious market situation, is to either sell-off it's "asset", or to consider its own benefits way beyond the competiotion - if the later is the case, i think part of the complains behind KSP, and plenty of other unity-based games, tell you the reality of unity's marklet position: Up til now it rose to it's position by simply being the "least evil" if a low-entry-barrier and multiplatform releases are a requirement.

"Least evil" is not a "comfortable" market leader position, unless you have means to via unethical but legal ways simply eliminate opposition (think microsoft, EA, etc).

Link to comment
Share on other sites

I will admit I don't know much about the subject. But what would be involved with porting it now to a better engine? Would it involve a complete rework (ie. starting from day one..) or would models, textures, logic, etc. all pan over pretty easily and it would just be a matter of reworking certain bits of code to make it work?

In other words do other engines offer similar coding (C# I believe) but offer more features?

It would involve rewriting the code bottoms up, and likely in another language. Not only that, but for example on Unreal Engine, it would imply people need to pay to be able to create mods for the game.

This indeed was true back when KSP was started, but now unreal for all practically purposes costs 20$ ONCE, and then NOTHING, while unity will constantly cost revenue.

...No? Unity is still a pay once option, and Unreal Engine costs $20USD a month, as well as taking 5% the total revenues of your game.

Link to comment
Share on other sites

...No? Unity is still a pay once option, and Unreal Engine costs $20USD a month, as well as taking 5% the total revenues of your game.

It has both options, actually. You can either pay $1500 all at once for Unity Pro (plus extra for various add-ons), or you can get the free Unity version, and use a $75-per-month subscription to the Pro version, with a minimum of 12 months duration. If you can crank out a game in less than a year's time in Unity, you can save money by using the subscription, but for a long-term project you can grab a permanent (or as they call it, "perpetual") license and just keep using that.

And yeah, it doesn't cost revenue or anything.

General

Are there any annual or maintenance fees?

No, Unity does not charge an annual fee or maintenance fee.

Are there royalties or a per-title fee?

No, Unity does not charge on a per title basis and you do not pay royalties or pay revenue share, even for games and applications made with the free version.

Can I sell my commercial game using Unity free?

Yes you can create and sell a game with the free version of Unity, without paying royalties or any revenue share. However, Unity Free, which includes the free platform add-on products, may not be licensed or used by a commercial entity with annual gross revenues (based on prior fiscal year) in excess of US$100,000, or by an educational, academic, non-profit or government entity with a total annual budget for the entire entity (based on prior fiscal year) in excess of US$100,000.

Link to comment
Share on other sites

There's now a game engine made explicitly for space games: Space Engine. It's going to be its own game as well after the engine is complete, but IIRC, the developer is putting it out as a game engine for developers as well. Now, I'm not saying KSP should be on Space Engine, just pointing out something relevant. EDIT: TO be clear, Not Space Engineers. Space Engine.

Link to comment
Share on other sites

There's now a game engine made explicitly for space games: Space Engine. It's going to be its own game as well after the engine is complete, but IIRC, the developer is putting it out as a game engine for developers as well. Now, I'm not saying KSP should be on Space Engine, just pointing out something relevant. EDIT: TO be clear, Not Space Engineers. Space Engine.

Space Engine is more an engine for "space games" a-la Noctis, or space combat and trading sims like Elite et al. It's a good engine, but it's not built for the sort of rigid-body physics simulation KSP routinely requires. I'd definitely like to see some games made on it though. ^_^

Link to comment
Share on other sites

Because Unity is a pay-once engine that was affordable, accessible, easy to use, and within the range of the devs. Remember that KSP was never meant to blow up this way, they didn't even think they would get half the audience they now have. There's no way they could've afforded Unreal Engine back then.

Well since upgrade to Unity 5 costs money, it's more of "pay-twice" now :D

Link to comment
Share on other sites

This indeed was true back when KSP was started, but now unreal for all practically purposes costs 20$ ONCE, and then NOTHING.

Incorrect. You still owe 5% of revenue, even if you cancel your subscription after you release a product using UE4 (though it's only 5% from revenue exceeding 3k$ per quarter, so you can make $1k/month for free using UE4). There are few more catches with their license (like counting a revenue-before-store-deductions for games sold in Steam/*Stores, which negatively impacts a bottom line), but this is mostly it.

Edited by asmi
Link to comment
Share on other sites

Without the unlimited scene it wouldn't have been able to keep the entire solar system loaded and displayed as a map without even more code trickery.

There are practical limits to Unitiy's scene size, dictated by rounding errors and render quality. (and it does not need to be unlimited in order to fit a solar system of finite size)

http://forum.unity3d.com/threads/scene-size-limit.183992/

That is why Squad uses no only a form of floating origin ('Kraken bane'), but also uses two differently scaled versions of the KSP universe, mixing and transitioning between those as the situation requires.

There are several engines where the only thing that scales as the player moves through the universe is the LOD of objects in the game space (Celestia, Space Engine, Outtera). But those are either not game engines (Celestia), or are not even close to being ready to be licensed. About Celestia i know it uses floating origin (without any jumping as KSP does), the other two probably also use floating origin to get around rounding errors.

At the time Unity was the logical choice for Squad, and a rewrite in a different engine would probably take years.

Harvester at Unite 2013

The Setup of the Universe

Spaces in Subscenes

http://youtu.be/mXTxQko-JH0?t=10m50s

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