unknown-horizons / godot-port

Unknown Horizons Godot Engine Port
https://www.unknown-horizons.org
GNU General Public License v2.0
665 stars 83 forks source link

Why porting? #59

Closed Wuzzy2 closed 3 years ago

Wuzzy2 commented 4 years ago

I like to question the motivation behind the “port” (which actually looks like a near-complete start from scratch) to Godot.

OK, the libs you use might be outdated and no longer maintained. But the question is: Is it really so bad?

What are the specific problems with the libraries you use? Is there any problem in the libs that is a complete showstopper and can't be worked around at all? Is working with the libraries so painful that proceeding programming can not be continued? Frankly, I doubt that. Even if there are serious problems, I doubt that any problem is so bad that the game cannot be finished at all.

The fact is, the current UH (2019.1) is already pretty far-depeloped and very functional and playable. I have played it, and had a blast! :) If the libraries are really that bad, I wonder how UH could possibly have made it so far already.

The problem I see with this move is that you're throwing away a lot of work and reset yourselves back to square one. All the work you have done to create Unknown Horizons … it's all for nothing. The work you will invest into the Godot “port” is work in which the project will not advance at all. You will spent a LONG time in repeating work that you have already all done (possibly also repeating old bugs that were already fixed before). Would the decision to go Godot have been in an earlier stage, where not much functionality was implemented, it would have made more sense, but now, at this fairly advanced stage, I'm afraid it's probably just too late.

Also, I see there's no actual Godot code written yet. It appears to me this idea of the Godot “port” is a non-starter. It seems that progress on the project has come to a near-standstill because of this decision, since work on the original project is de facto “forbidden” right now.

I also question why Godot was chosen specifically, seeing that the team probably has no experience in Godot yet (otherwise, you wouldn't ask for help).

Maybe the decision to move to Godot is not a good idea, and should be revised. Julius from FreeGameDev forums is also confused about this decision.

Also: https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/

LinuxDonald commented 4 years ago

The engine that we use is no more maintained for years now. And we have/had problems with fife engine and the gui lib (fifechan). I have searched for an long time for new engine developers. But no one want to work on it. Because a lot of work is needed. Maybe some parts need to be rewritten. Godot engine is an really active engine. That have an big community. We have an active godot Porter. He is still working to port UH to Godot Engine. It's an really slow progress but no one should forget that only one person works on it. And we still accept patches on fife based version. But there is no active developer anymore.

aaronfranke commented 4 years ago

Also, I see there's no actual Godot code written yet.

Actually, there's a ton of Godot code written so far. For example, the menus are highly functional already, some units have logic for moving etc, and most (all?) of the assets from the old version have been imported.

LinuxDonald commented 3 years ago

Maybe we should write something into the Wiki why we do this.

ScottMichaud commented 3 years ago

Also Netscape's rewrite became the basis of Firefox ~four years after Wuzzy2's linked blog post was written. Had it not happened, it's possible that W3C standards would have drowned under some combination of ActiveX, Java, Flash, and Shockwave.

Rewrites can have a lot of benefits. You are no longer constrained by past decisions and technical debt. Unfortunately, you are also forced to remake all the past decisions (up to the scope of the rewrite) so it will throw you into a pit until you can crawl back out. Sometimes that's worth it, and sometimes it's not. It's a very risky decision that needs to be made carefully, but it's not always a bad decision.

artism90 commented 3 years ago

It's always a hard choice to leave a far advanced project behind and start from the ground up, giving up perhaps like ten years of active development work in this particular case. Yes, it will most certainly take up a lot of time to rebuild the mechanics and it will take even more to reach a playable state, but then again, anyone who was watching the progress on the original project knows how dramatically slow it was advancing for the last few years, long before the official abandoning and with no serious additions in that time (like tier 5 elements and military). Since then, the project had been in a comatose state with the number of core team members declining and no one to succeed the vacancies and while leaving a ton of pending maintenance work yet to be done.

At that point it's better to cut strings and adapt to a strategy that works out more fruitful for this game in aspects like maintainability, extendibility and, most importantly, contributor accessibility. And switching to an established engine taking away the burden to maintain lots of (now) obscure low-level code and allowing to focus on the actual gameplay will be beneficial in the long run, and Godot certainly isn't the worst choice on that matter.

Jeeppler commented 3 years ago

Most of the original developers moved away, some years ago. @LinuxDonald took the project over. However, it could not attract many developers. In my opinion, porting the game to Godot is the right move in the long run.

Porting a game to a new engine is not exactly the same as starting from scratch. I assume a lot of the logic and maybe assets can be reused.

Wuzzy2 commented 3 years ago

I don't think this needs to be kept open. I think it is very clear now why you're going for this. Thanks for the information!