this post was submitted on 14 Sep 2023
702 points (97.8% liked)
Technology
57944 readers
2840 users here now
This is a most excellent place for technology news and articles.
Our Rules
- Follow the lemmy.world rules.
- Only tech related content.
- Be excellent to each another!
- Mod approved content bots can post up to 10 articles per day.
- Threads asking for personal tech support may be deleted.
- Politics threads may be removed.
- No memes allowed as posts, OK to post as comments.
- Only approved bots from the list below, to ask if your bot can be added please contact us.
- Check for duplicates before posting, duplicates may be removed
Approved Bots
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Is there a way to convert it to use Godot or Unreal? I understand nothing about programming a game but... oh damn
Not really. Assets are more or less portable with some effort, but not the logic. There are tools to help you port your code but it more or less requires a complete re-write.
though to be fair, a big part of writing the logic is figuring out the logic, designing the system and interactions etc. so while it is a big task, its much smaller than starting over from scratch
Not necessarily since different toolsets have different logic operators and transformers and the logic isn't always 1-1. I've moved enough code from even the same language but different implementations, nothing to say of entirely different system and languages.
Speedruns show how much of a bodge jobs a lot of games are and how much they could be broken.
Jist like in writing, you run the tool, you proof-read, repeat
Fair enough, but it's still a massive time and resource sink. You also can't really implement new features during the re-write lest project creep gets out of control, and even after the rewrite the product will be less stable than the original for quite a while until it's had sufficient time to mature.
It might be worth the investment to ditch proprietary software from a predatory company and jump to open source though, which can't really pull shit like this in its future.
Something else to think about is that it will potentially make it so there are more patches required, and those patches may take more time to cycle to production. Companies that had deadlines and a work schedule planned are now thrown into disarray.
Not instantly. This could take months or even years of additional work.
Someone has pulled off porting an Unreal map over to Unity before, but a lot of the maps lighting and other effects were completely lost. Look up Stanley parable rocket league. It's definitely possible to port Unity maps to other engines and vice versa, but it would take a lot of work and a lot of rebuilding everything from scratch
So Davey Wreden, writer and creator of the stanley parable, has a brother who is a youtuber, DougDoug. When ultra deluxe dropped Davey joined his brother playing through the game again. Anyway, at one point in the video he mentioned that in order to port over the rocket league map they needed to hire an outside consultant to port it.
You can port over a lot of C# code into Godot, but there are things that are engine specific. However, they are similar enough that you can just work on refactoring without sgarting from scratch.
I've ported a few of my projects from Unity and it's not impossible, it's just a lot of copy and pasting and making a few changes
That's good to hear! I'm thinking of learning Godot, so that means all the knowhow is transferable, yay
While it would potentially be easier to learn all the not-programming stuff that's different whilst sticking with a programming language you're familiar with, I would recommend also having a play with GDScript too. It's well documented and pretty easy to get started with (syntactically it's basically Python.)
It's doable, but a tedious pain in the ass.
Probably not but the good news is a lot of the pains of developing a game is that unlike most projects you need 10 artists for every one programmer
So, while core logic will likely change, all the other assets and planning is done. It shouldn't be as bad as remaking it from scratch
I'm not an artist but some of that work may be done in the engine, and so is not simple imported into it. I assume much is though.
I am not an artist either, so take this with a grain of salt, but a quick Google search suggests the two should be convertible
Migrating really large software is incredibly time consuming and difficult. My background is with backend servers, not games, but some large framework migrations we've done were a multi year effort and IMO they weren't nearly as big or fundamental as game engines can be (though we did have to maintain near perfect uptime, which isn't a concern for an unreleased game).
No, they'd have to start from scratch. They're entirely different engines and everything is very specific to the engine, down to the tooling and languages used.
It depends.
I'm working on a game with Unity and the software design has been done in a way that keeps most the game itself as data, and uses the Unity stuff mainly as something to display multiple views on the state of the data (a 3D view of the game space, multiple UI elements diving into slices of the data an so on) - basically a Model-View-Controller Architecture, so moving from Unity to something else doesn't require a rewrite (in fact such structure makes it possible, for example, to with some ease change the game's visuals from 3D to 2D), though it would still be quite a lot of work.
However my game is survival-management in space (within one or more generated star-systems, so it was simplified down to a 2D plane) which doesn't relly on Unity things like terrain, navigation meshes or even colliders to constrain the movement of objects in the game, so calculating "what happens next" (say, the movement of planets or the guidance of ships going from planet to planet) gets decided using Maths at the data level without going through the Unity layer, and Unity is mainly the means to get user input comes and the layer that gets updated with the state of the data at the end of each cycle (i.e. game objects get moved around) which it the uses for rendering.
Other games which are not reliant on Unity to do the heavy lifting for objects interactiong with other objects on a 3D space, such as 2D platformers, can probably use a similar architecture, but for example something like Valheim or Planet Crafter (were the player controls a humanoid avatar on a 3D world which is mainly terrain) is probably much harder to move out from Unity,
Not to mention I'm sure they use third party tools to help with things. Bigger games like Genshin Impact for example, are on an older version of Unity where they heavily modified the engine to suit their needs. That would take a tremendous amount of work to move, and they'd have to redesign their entire graphics pipeline. Which also Godot has gotten better, but is still far behind the others in terms of high end graphics. That's why it's usually seen as the go to for indies, and not so much high end games. Also they don't plan on making anything like DOTS, but I'm not sure how relevant that actually is.
Third-party tools might or not be a problem depending on whether those tools also support other frameworks or there being equivalent tools for other frameworks.
Again, it depends how tightly coupled the game is to the framework (directly or via 3rd party tools), but yeah, the more work you've sunk into the Unity-specific side of things and the more tightly coupled your game is to it (i.e. doing everything via Unity rather than, as I did, make the game run as a data model which then dictates how the visual layer - which is where Unity mainly is - is updated) the harder it will be to move.
Mind you, the Unity guys really pushed for devs to go via it for everything (it's software design and architecture aren't exactly great) in a sort of spaghetti design, so I expect a lot of indie devs using Unity who don't have quiet as much experience and/or it's not really broad, will get burned due to falling into that specific trap.
The Godot tools are significantly behind Unity. Unity has a much bigger community and a built in store for their addons. Godot has neither, and has been around for less time. Godot doesn't even have a built in terrain tool for example, and the most advanced plug-in for it is still pretty basic.
I don't think one can say "it will be a problem" because there are so many different ways to do a game (do you really think "terrain tools" matter in something like Terraria???!), all one can say is that "it might be a problem", which is what I'm saying, and judging from my experience with it it will be more of a problem for people doing 3D worlds with terrain, pathing and so on than for people doing 2D or, like me using 3D as a sort of moving gallery to show in a nice way what would otherwise be pretty bland.
Whilst I'm currently on vacations, next week I'll have to start evaluating both Godot and Unreal for my project - which, as I said, whilst it does show things in a 3D view, is architectured so that the game essentially runs in data space with user-input coming from the framework (and it's pretty easy to change that because it's centralized) and on the other side the framework rendering visual views of the data.
My plans to upgrate to the latest Unity are now shelved and I've already planned how I'll remove the last pieces of Unity influence (basically Vector2) from my data layer and make sure it's totally separate.
Oh my...what a waste of time, money, old games will be removed I imagine, knowledge. All to gain what? Developers are already moving away from Unity. It's one company after another going to hell and causing damage.
I love OSs and I contribute to a few projects, but using godot for a project of silksong calibre is asking for a disaster
I'm desperate. I loved Hollow Knight so much.
Have you worked with Godot? The developers of Cassette Beasts seem pretty happy with it.