OpenTTD reprogramming from scratch
Moderator: OpenTTD Developers
OpenTTD reprogramming from scratch
I decided to place this topic here because it's rather a serious proposal for discussion not ordinary suggestion. There are many ideas in the suggestion corner which are rejected by developers for the sake of preserving original coding and main data structures. I know - as a programmer - that it's pretty difficult to change crucial elements of the program.
What I mean is to preserve main conception of game mechanics and economy and enhance graphics and bring some new features. I don't want to choose here what would be worth to include in brand new release of OpenTTD and which would not. It should be the matter of further discussion. Of course, it would be rather new project inspired by this good old game.
If anybody had similar ideas I would be able to join the group and participate in both designing and some programming.
What I mean is to preserve main conception of game mechanics and economy and enhance graphics and bring some new features. I don't want to choose here what would be worth to include in brand new release of OpenTTD and which would not. It should be the matter of further discussion. Of course, it would be rather new project inspired by this good old game.
If anybody had similar ideas I would be able to join the group and participate in both designing and some programming.
I prefer to dedicate my free time rather to free and open software and organizations than private corporations that are, if not evil, money eager.
Re: OpenTTD reprogramming from scratch
Please read this article. I'd like to hear (after you've read the article!) why you think this is a good idea.
Re: OpenTTD reprogramming from scratch
With regard to "rejected features"; the code is used to implement features, not because of the sake of the code itself. If new features, improvements for existing features or fixes are suggested, changes in the code are not a big concern as long as they are correct, clear, documented correctly and splitted in small, functional parts that make reviewing and commit a less time-consuming task. Another one of the usual concerns with suggestions and new features is savegame compatibility. OpenTTD is intended to maintain savegame compatibility forever, which makes some changes complicated or impossible. Last but not least, OpenTTD attempts to stay true to the spirit of the original game. Suggestions that deviate wildly from it are not considered. Besides that also have to take into account the usual concerns for game balance, avoiding exploits and so on. There might be another "big concerns" that make a suggestion truly impossible, but I would like to make clear that "changes the code a lot" is not one of them. It just requires more work from the coder because of our code quality requirements.liquid wrote:There are many ideas in the suggestion corner which are rejected by developers for the sake of preserving original coding and main data structures. I know - as a programmer - that it's pretty difficult to change crucial elements of the program.
You may encounter comments from developers that contain a long list of things to be changed that make the commented feature or patch seem impossible. But unless the list includes a problem with the feature itself like the ones I mentioned in my previous paragraph, the post is not saying that a certain feature is not going to be included. It is just pointing all of the problems that anyone that desires to implement the feature has to solve, and it should not be interpreted as a "no", but as a "you will need to work on it more than you think".
With regard to your suggestion of rewriting OpenTTD itself; if you want to do a game identical to OpenTTD but with a clear design from scratch I would like to point you (in addition to the article linked by Yexo) to a page that summarizes the effort already spent in OpenTTD. IMO it would be more productive to work in improving the existing code base than trying to rewrite years of work.
If you are not thinking on rewriting it but on creating a new game inspired on it, you may be interested in other existing projects trying to do a game similar to OpenTTD, but redesigned from scratch. Given the big task that creating a game supposes, it might be better to help with one of the existing projects than start another one. I'm not following any of them, but I know that there are some at these forums.
Spanish translation of OpenTTD
Extended heightmaps
Have fun, don't quarrel too much and add as many advanced settings as you can.
Extended heightmaps
Have fun, don't quarrel too much and add as many advanced settings as you can.
Re: OpenTTD reprogramming from scratch
I wonder about quality of estimate from https://www.ohloh.net/p/openttd/estimated_cost (it is about 10 times more that what I expected)
Correct me If I am wrong - PM me if my English is bad
AIAI - AI for OpenTTD
AIAI - AI for OpenTTD
Re: OpenTTD reprogramming from scratch
To give you an idea of the amount of work that's waiting:
smallfly did a count recently of how many code lines there are in OpenTTD, and he came up with 300,000 lines. I just did a rough count, and came up with 320,000 lines (counting every line), so that seems right.
In my single programmer FreeRCT project (there are more people involved, but not in programming) that started a year ago, I now have 20,000 lines of code (18,000 c++, 2,500 Python). Thus, to reach the current line count without mistakes and without vacation (with a normal 40 hours job next to it), you need about 15 years of coding, just to get where OpenTTD is now.
FreeRCT is still expanding mostly, there have not been big rewrites yet. In OpenTTD that did happen already, so 2 or 3 times that amount seems reasonable. (3 may seem a lot, but when I write a patch, I normally need 3 tries before I get every detail right).
Obviously, this all under the assumption that OpenTTD does not move in those 20-25+ years.
With more people it'll go faster, but it decreases slower then by just dividing by the number of developers.
Last but not least, expect that you are going to have to do this all by yourself. In my project, I have seen uncountable many people saying "great, I want this to succeed", 3 new people claiming to be willing to help with programming through email, but they all disappeared at the first try to compile the code. I have yet to receive the first actual patch. I don't expect new programmers until things become actually playable, in a few years.
Maybe you'll be more lucky though.
smallfly did a count recently of how many code lines there are in OpenTTD, and he came up with 300,000 lines. I just did a rough count, and came up with 320,000 lines (counting every line), so that seems right.
In my single programmer FreeRCT project (there are more people involved, but not in programming) that started a year ago, I now have 20,000 lines of code (18,000 c++, 2,500 Python). Thus, to reach the current line count without mistakes and without vacation (with a normal 40 hours job next to it), you need about 15 years of coding, just to get where OpenTTD is now.
FreeRCT is still expanding mostly, there have not been big rewrites yet. In OpenTTD that did happen already, so 2 or 3 times that amount seems reasonable. (3 may seem a lot, but when I write a patch, I normally need 3 tries before I get every detail right).
Obviously, this all under the assumption that OpenTTD does not move in those 20-25+ years.
With more people it'll go faster, but it decreases slower then by just dividing by the number of developers.
Last but not least, expect that you are going to have to do this all by yourself. In my project, I have seen uncountable many people saying "great, I want this to succeed", 3 new people claiming to be willing to help with programming through email, but they all disappeared at the first try to compile the code. I have yet to receive the first actual patch. I don't expect new programmers until things become actually playable, in a few years.
Maybe you'll be more lucky though.
Re: OpenTTD reprogramming from scratch
Isn't helping with transport empire an option for you?
EDIT: This topic rises the question, though: what would the criteria be for openttd 2.0? Answering this question could help with giving some direction to development.
EDIT: This topic rises the question, though: what would the criteria be for openttd 2.0? Answering this question could help with giving some direction to development.
Re: OpenTTD reprogramming from scratch
sorry the dev, it make long time I would like to tell you something...
if you make a pool, I'm sure you will get 90% for approuval.
Sorry to be rude, it's a good excuse to refuse wide features (infra share, distribution...)
result : developpers give up, some of them try to maintain their patch few month, few year with no hope to reach the trunk.
In the past, first OTTD developpers welcomed new ones : you. Then you were able to add great feature (yexo : noAI...)
but now, it looks closed. It would be great you get same opeminded spirit as them.
By review log weekly, you get :
5 days ago : Update from WebTranslator v3.0
4 days ago : Update from WebTranslator v3.0
3 days ago : Update from WebTranslator v3.0
3 days ago : gcc compilation fix
2 days ago : Update from WebTranslator v3.0
1 day ago : Update from WebTranslator v3.0
and this is like this for almost one year now...
we all know you have a life, a familly, other thing to do, we don't ask you to commit new feature every day.
just lets enter new dev, they are motivated,
and the few mistake they will do, it will fixed quickly.
Please, take that risk !
you know what : OTTD is dying...
I loved all what you made on OTTD, don't leave it die...
Regards
it is question about marketshare, it's out of purpose for OTTD, isn't it ?Yexo wrote:Please read this article. I'd like to hear (after you've read the article!) why you think this is a good idea.
This is (one of) the main problem, why not breaking about savegame every two year for adding exciting feature ?Terkhen wrote:OpenTTD is intended to maintain savegame compatibility forever...
if you make a pool, I'm sure you will get 90% for approuval.
ho.. you can keep the only the end : "splitted in small functional parts"...Terkhen wrote:changes in the code are not a big concern as long as they are correct, clear, documented correctly and splitted in small, functional parts that make reviewing and commit
Sorry to be rude, it's a good excuse to refuse wide features (infra share, distribution...)
result : developpers give up, some of them try to maintain their patch few month, few year with no hope to reach the trunk.
In the past, first OTTD developpers welcomed new ones : you. Then you were able to add great feature (yexo : noAI...)
but now, it looks closed. It would be great you get same opeminded spirit as them.
By review log weekly, you get :
5 days ago : Update from WebTranslator v3.0
4 days ago : Update from WebTranslator v3.0
3 days ago : Update from WebTranslator v3.0
3 days ago : gcc compilation fix
2 days ago : Update from WebTranslator v3.0
1 day ago : Update from WebTranslator v3.0
and this is like this for almost one year now...
we all know you have a life, a familly, other thing to do, we don't ask you to commit new feature every day.
just lets enter new dev, they are motivated,
and the few mistake they will do, it will fixed quickly.
Please, take that risk !
you know what : OTTD is dying...
I loved all what you made on OTTD, don't leave it die...
Regards
Re: OpenTTD reprogramming from scratch
[sarcasm]No, its about "how to beat yourself to death". [/sarcasm]fabca2 wrote:sorry the dev, it make long time I would like to tell you something...
it is question about marketshare, it's out of purpose for OTTD, isn't it ?Yexo wrote:Please read this article. I'd like to hear (after you've read the article!) why you think this is a good idea.
****. This is more than hell.fabca2 wrote:This is (one of) the main problem, why not breaking about savegame every two year for adding exciting feature ?Terkhen wrote:OpenTTD is intended to maintain savegame compatibility forever...
if you make a pool, I'm sure you will get 90% for approuval.
No really, I don't really like that if after some version, theres an incompatibility. This breaks the long-run of people's games, as well as scenario, NewGRF, etc. (yes, im 100% sure that some would) compatibility. Thats it. Theres A LOT of people who download OpenTTD today or five years ago, then see it again 5 years later or today.
And I think you HAVE NOT played a succesful, nice game of OpenTTD that you very love (I think every dev should do it too...), and I think you don't really liking OpenTTD. You place yourself as a general coder, right ? Not as players, not as a developer of OpenTTD.
My suggestion : Play a nice game of OpenTTD for three weeks. You'll know how it feels to love the game.
--------
Full 32bpp sprites ! Yay !Expresso wrote:EDIT: This topic rises the question, though: what would the criteria be for openttd 2.0? Answering this question could help with giving some direction to development.
(waiting for Zbase....)
Last edited by YNM on 07 Oct 2012 15:20, edited 1 time in total.
YNM = yoursNotMine - Don't get it ?
「ヨーッスノットマイン」もと申します。
「ヨーッスノットマイン」もと申します。
Re: OpenTTD reprogramming from scratch
No, it is that "rewrite everything" offers less benefits than many think.fabca2 wrote:it is question about marketshareYexo wrote:Please read this article. I'd like to hear (after you've read the article!) why you think this is a good idea.
Sorry, but the problem is rather lack of interested people.fabca2 wrote: just lets enter new dev, they are motivated,
and the few mistake they will do, it will fixed quickly.
And killing it by starting gigantic and pointless project is a poor idea.fabca2 wrote: you know what : OTTD is dying...
I loved all what you made on OTTD, don't leave it die...
Correct me If I am wrong - PM me if my English is bad
AIAI - AI for OpenTTD
AIAI - AI for OpenTTD
Re: OpenTTD reprogramming from scratch
Then you have to rephrase it: would you like it when OpenTTD would not support any custom content (AIs, NewGRFs, game scripts) and any scenarios/savegames at a two year interval? In other words, every two years OpenTTD removes ALL AIs, NewGRFs, game scripts and your savegames and scenarios.fabca2 wrote:This is (one of) the main problem, why not breaking about savegame every two year for adding exciting feature ?
if you make a pool, I'm sure you will get 90% for approuval.
Given the average age of content on bananas, and the most famous content not even using the newest versions of the NewGRF format, I would assume it would take several years to regain all custom content again.
Also, the reason that cargodist, infrastructure sharing and many of these features are yet accepted has little to nothing to do with savegame compatability.
The main reasons those features are not accepted is due to some (serious) gameplay issues.
The reason there aren't more active OpenTTD developers is because there don't seem to be people interested in going through the hassle to become one.
Finally... these kinds of attacks on the developers do not necessarily make them prioritize OpenTTD higher.
Re: OpenTTD reprogramming from scratch
fyi, we welcomed a new dev just over a month ago.fabca2 wrote:just lets enter new dev
Re: OpenTTD reprogramming from scratch
I didn't meant to break everything.Rubidium wrote:Then you have to rephrase it: would you like it when OpenTTD would not support any custom content (AIs, NewGRFs, game scripts) and any scenarios/savegames at a two year interval? In other words, every two years OpenTTD removes ALL AIs, NewGRFs, game scripts and your savegames and scenarios.fabca2 wrote:This is (one of) the main problem, why not breaking about savegame every two year for adding exciting feature ?
if you make a pool, I'm sure you will get 90% for approuval.
but I fill unnecessary to keep savegame compatibility to ottd 0.3 for example ?
it there so many people that have 0.3 savegame to play in 1.1 ?
NewGRF is the "basic" extension and should not be removed, of course. I never that that.
Sorry Rubidium you felt like an attack, yes I was rude, but look at figures, commit count are decreasing.Rubidium wrote:Finally... these kinds of attacks on the developers do not necessarily make them prioritize OpenTTD higher.
in a past, I looked on svn log every day to see interresting changes or adds.
my hope is to let enter more dev (and after, yes, it depends on the level you require to hire them)
-
- Tycoon
- Posts: 1660
- Joined: 16 Dec 2007 22:24
- Location: Idaho, USA
Re: OpenTTD reprogramming from scratch
Yes. Yes it is and yes there are.fabca2 wrote:I didn't meant to break everything.
but I fill unnecessary to keep savegame compatibility to ottd 0.3 for example ?
it there so many people that have 0.3 savegame to play in 1.1 ?
Also, I don't know which commit log you're reading, but the one I have here shows dozens of new features over the past couple months... (if you like I can go into detail).
Eyecandy Road Vehicles | Fake Subways | Supercheese's NewObjects
"Fashions and cultures change, but steam trains shall always be majestic."
-Professor Hershel Layton
"Fashions and cultures change, but steam trains shall always be majestic."
-Professor Hershel Layton
Re: OpenTTD reprogramming from scratch
It's not an excuse in any way, and if you look at e.g. the YACD repository you'll see that this splitting is no problem at all. It takes more effort than just producing a pile of unorganized code though, which is probably why most people can't be bothered with it.fabca2 wrote: ho.. you can keep the only the end : "splitted in small functional parts"...
Sorry to be rude, it's a good excuse to refuse wide features (infra share, distribution...)
-- Michael Lutz
- planetmaker
- OpenTTD Developer
- Posts: 9432
- Joined: 07 Nov 2007 22:44
- Location: Sol d
Re: OpenTTD reprogramming from scratch
And for what it's worth: Infrastructure sharing was and is not refused; it actually had a sound code base. It was not merged into trunk on grounds of unresolved gameplay questions around the topic of how it should work in the various border cases. Which was stated by its author himself.Michi_cc wrote:It's not an excuse in any way, and if you look at e.g. the YACD repository you'll see that this splitting is no problem at all. It takes more effort than just producing a pile of unorganized code though, which is probably why most people can't be bothered with it.fabca2 wrote: ho.. you can keep the only the end : "splitted in small functional parts"...
Sorry to be rude, it's a good excuse to refuse wide features (infra share, distribution...)
OpenTTD: manual | online content | translations | Wanted contributions and patches
#openttdcoop: blog | wiki | public server | DevZone | NewGRF web translator
DevZone - home of the free NewGRFs: OpenSFX | OpenMSX | OpenGFX | Swedish Rails | OpenGFX+ Trains|RV|Industries|Airports|Landscape | NML
Re: OpenTTD reprogramming from scratch
Well, you played a 0.3 savegame but never saved afterward?Supercheese wrote:Yes. Yes it is and yes there are.fabca2 wrote:I didn't meant to break everything.
but I feel unnecessary to keep savegame compatibility to ottd 0.3 for example ?
it there so many people that have 0.3 savegame to play in 1.1 ?
because if you open a 0.3 in ottd 1.1 , play with it and then save, it becomes a 1.1 savegame.
I may be wrong, but I think it's works like this.
if it's the case, is it harfull to say : "ottd 1.5 can't open savegame before 0.5" ?
Before ottd 1.5 is released, it's possible to open old savegame by any version of ottd and save it again to makes them compatible.
I don't know if savegame compatibility is blocking so much for new features, but if it is, it could be worth ?
Regards
-
- Tycoon
- Posts: 2781
- Joined: 22 Feb 2011 18:34
Re: OpenTTD reprogramming from scratch
I have always understood that it is because there is code in place to convert the savegame from 0.3 to 1.1... So why remove that code? To add new features, while the 1.1 savegame can be converted to that new version? I'm not a dev, but I think it's highly unlikely that that will happenfabca2 wrote:Well, you played a 0.3 savegame but never saved afterward?Supercheese wrote:Yes. Yes it is and yes there are.fabca2 wrote:I didn't meant to break everything.
but I feel unnecessary to keep savegame compatibility to ottd 0.3 for example ?
it there so many people that have 0.3 savegame to play in 1.1 ?
because if you open a 0.3 in ottd 1.1 , play with it and then save, it becomes a 1.1 savegame.
I may be wrong, but I think it's works like this.
if it's the case, is it harfull to say : "ottd 1.5 can't open savegame before 0.5" ?
Before ottd 1.5 is released, it's possible to open old savegame by any version of ottd and save it again to makes them compatible.
I don't know if savegame compatibility is blocking so much for new features, but if it is, it could be worth ?
Regards
Coder of the Dutch Trackset | Development support for the Dutch Trainset | Coder of the 2cc TrainsInNML
Re: OpenTTD reprogramming from scratch
so how many people have to tell you "it is not", before you believe it?fabca2 wrote: I don't know if savegame compatibility is blocking so much for new features, but if it is, it could be worth ?
Regards
besides, savegame compatibility is not really about whether 0.3 savegames can be loaded in 1.3. it is about whether 1.2 savegames can be loaded in 1.3. the rest is rather trivial to achieve.
Re: OpenTTD reprogramming from scratch
If I remember correctly, there was something with the extra large maps patch and savegame issues.
But then again, maps the size of 16384*16384 would consume quite a bit of hard drive space (over 2GB per save (some filesystems can't handle files that large), if not compressed)... and who wants to play with maps that size?
But then again, maps the size of 16384*16384 would consume quite a bit of hard drive space (over 2GB per save (some filesystems can't handle files that large), if not compressed)... and who wants to play with maps that size?
Re: OpenTTD reprogramming from scratch
Sorry but I was replying to Terkhen, he's a dev, then I think he knows better than you and I.Eddi wrote:so how many people have to tell you "it is not", before you believe it?fabca2 wrote: I don't know if savegame compatibility is blocking so much for new features, but if it is, it could be worth ?
Regards
He said :
Then check with him if "savegame compatibility is blocking or not some changes"...Terkhen wrote:Another one of the usual concerns with suggestions and new features is savegame compatibility. OpenTTD is intended to maintain savegame compatibility forever, which makes some changes complicated or impossible.
On my side, I said that I didn't know, but if it is, it could be worth thinking about it. (it's an "idea")
You, you looks to know better, ok, great.
But, ok, if thinking about that hurt you so much, I won't spoke about that anymore.
Bye.
Who is online
Users browsing this forum: No registered users and 43 guests