Page 1 of 2

Status for the new industry chain

Posted: 09 Feb 2006 08:42
by epsilon
Hey,

I was once involved in developing a patch for slightly extending the existing industry chain. Could someone quickly fill me in on the status of this? Is it done? Will it be done? I'm a bit too lazy to search the posts from the last 10 months or so...

TIA

If it's abandoned and/or waiting to be done I might be willing to volunteer to help.

Posted: 09 Feb 2006 16:37
by MeusH
Hey Epsilon, great to see you back :)

It's pity there was a low (or none at all) progress on more industries and cargoes. It's abandoned.

OTTD went to gameplay enchancements featuring cloning vehicles, autoreplacing vehicles. There are some big user-made projects that are about to enchance OTTD much more, like GPMI and Map Rewrite.
0.4.5 has been relased recently, featuring 13 new scenarios
http://wiki.openttd.org/index.php/Scenarios

GPMI by TrueLight and Igor2Code. It will result in players being able to write their own AI scripts etc.
http://wiki.openttd.org/index.php/OpenTTD.GPMI

Map Rewrite by The French Connection team
http://wiki.openttd.org/index.php/The_French_Connection



TTDP got a major boost on new stations (Project Generic Stations) and new cargoes+industries (Extended Cargo Scheme). Trams and building on tunnel enterances are major features, too.
http://www.tt-forums.net/viewtopic.php?t=20277 ECS

OTTD is keeping up with newgrfs. New stations support is on the way, but as for new cargoes and industries, there is no progress yet.

Re: Status for the new industry chain

Posted: 09 Feb 2006 17:03
by Born Acorn
epsilon wrote:Hey,

I was once involved in developing a patch for slightly extending the existing industry chain. Could someone quickly fill me in on the status of this? Is it done? Will it be done? I'm a bit too lazy to search the posts from the last 10 months or so...

TIA

If it's abandoned and/or waiting to be done I might be willing to volunteer to help.
It would be easier to implement the newgrf feature newindustries from TTDPatch, so people can use their own industry set etc, but with only a few working on newgrf, its progressing slowly.

However, I did improve upon some of the original graphics I drew, if you still want to poke them in.

Re: Status for the new industry chain

Posted: 09 Feb 2006 17:43
by Korenn
Born Acorn wrote:
epsilon wrote:Hey,

I was once involved in developing a patch for slightly extending the existing industry chain. Could someone quickly fill me in on the status of this? Is it done? Will it be done? I'm a bit too lazy to search the posts from the last 10 months or so...

TIA

If it's abandoned and/or waiting to be done I might be willing to volunteer to help.
It would be easier to implement the newgrf feature newindustries from TTDPatch, so people can use their own industry set etc, but with only a few working on newgrf, its progressing slowly.
I don't know if it would be easier... not in the long run probably.
It would probably be faster though.

No offence to the magic the ttdpatch team is doing, but ttdpatch basically has a hack at its fundementals and that does not promote code simplicity.
The bits of code that did use (copy) the same way as ttdpatch to implement features have been rewritten lots of times to make them more readable and logical, while (most of) the features that were properly designed and fitted into the game are still the same.

Posted: 09 Feb 2006 17:46
by Born Acorn
I meant the design factor. If we were to implement a new industry system, it would require months of planning testing and balancing to make a good system. But with the newgrf newindustries, you choose your own set.

Posted: 09 Feb 2006 18:06
by Korenn
Born Acorn wrote:I meant the design factor. If we were to implement a new industry system, it would require months of planning testing and balancing to make a good system. But with the newgrf newindustries, you choose your own set.
oh sorry :)

Re: Status for the new industry chain

Posted: 09 Feb 2006 20:45
by DaleStan
Korenn wrote:
Born Acorn wrote:It would be easier to implement the newgrf feature newindustries from TTDPatch, so people can use their own industry set etc, but with only a few working on newgrf, its progressing slowly.
I don't know if it would be easier... not in the long run probably.
It would probably be faster though.
I'd say that it's harder in the short run but easier in the long run.

In one go, you can implement ECS, in all of its near-infinite configurations, Pikka's UK Renewal Industries, and every other industry and cargo set that will ever be thought up.

Re: Status for the new industry chain

Posted: 10 Feb 2006 10:51
by Korenn
DaleStan wrote:
Korenn wrote:
Born Acorn wrote:It would be easier to implement the newgrf feature newindustries from TTDPatch, so people can use their own industry set etc, but with only a few working on newgrf, its progressing slowly.
I don't know if it would be easier... not in the long run probably.
It would probably be faster though.
I'd say that it's harder in the short run but easier in the long run.

In one go, you can implement ECS, in all of its near-infinite configurations, Pikka's UK Renewal Industries, and every other industry and cargo set that will ever be thought up.
and then you're left with horrible spaghetti code that no-one can read, slowing down any further patches considerably.

Posted: 10 Feb 2006 15:18
by orudge
I did work on the new industry chain ages ago, as was originally planned here. Since then though, TTDPatch gained new industry support, and OpenTTD really should aim to be compatible with that.

Re: Status for the new industry chain

Posted: 10 Feb 2006 16:31
by DaleStan
Korenn wrote:and then you're left with horrible spaghetti code that no-one can read, slowing down any further patches considerably.
Even if I did grant that newgrf causes more spaghetti than we already have (which I don't[0]), who needs further patches? Once you've got newgrf support, there's no reason to go adding strange special cases; that all goes in the GRF files.
And GRF files are far easier to test and vaildate than C code.

Or do you really think
if(_ECSTownvector){}
if(_ECSWoodvector){}
if(_ECSChemvector){}
if(_ECSMachineryvector){}
if(_ECSAgrivector){}
if(_UKRenewalIndust){}
if(_IndustrySetNoOneHasConceivedOfYet){}
is somehow an improvement?

[0] Maybe Open's newgrf is convoluted, but at least three, and maybe five or more, of TTDPatch's devs have messed with newgrf, and that doesn't seem to imply "spaghetti" to me.

Posted: 10 Feb 2006 18:02
by Korenn
meh I have no interest of discussing things with you Dalestan, I find your tone offensive and your reasoning annoying.

On topic: orudge, are there any devs on the case then? or just another item on the todo-list.

Posted: 10 Feb 2006 19:05
by DaleStan
Peter1138 is working on newgrf, but I don't think any one else is.

There are several people (Patchman and myself included) who are quite willing to help any OpenTTD newgrf dev understand the newgrf spec, if specific questions are asked.

I just don't take kindly to unsupported assertions. Unsupported assertions of adding "horrible spaghetti code" to OpenTTD are doubly bad, since Open is, at least last I heard, basically one big pile of spaghetti code in the first place.

Posted: 16 Feb 2006 08:15
by AlienDNA
I think that if the TTDPatch way of implementing newgrf is based on hacks, or if there are obvious improvements possible based on the fact that OpenTTD is completely adaptable opposed to the hackish patch, then we should NOT try to be compatible with that newgrf, and in stead work on our own, improved type.

But, it's true that it has been quite a while since we have seen anything about the extended industry chain. Even then, the roadmap does show some very interesting things to come.

Posted: 16 Feb 2006 08:45
by DaleStan
Patchman wrote:It seems to me like there are really two options here:
  1. Write a program that takes your "plain text" spec file and converts it to NFO, then use the already-(mostly-)working NFO support in OTTD and be done. [1]
  2. Write a program that takes your "plain text" spec file and converts it to some other, yet-to-be-specified easily computer-readable format. Then start from scratch implementing this format (which for NFO took many, many months and won't be significantly faster no matter how nicely you design your new one), fixing bugs, redoing the specs because you find things you need to do that can't be done, restart coding yet again, fixing the limitations of specs. Deal with the headaches of supporting two incompatible formats internally (unless you want to drop support for all existing graphics). Repeat as necessary.
My point is, why not use a format that works, can do just about everything that needs to be done[2], that there are many people out there who know how it works, and that OTTD mostly supports already? Why bother making all the mistakes that TTDPatch made all over again in a new design?

I'm not saying NFO is perfect. It has warts, and some things aren't designed as cleverly or cleanly as they could've been (because it's a grown design that grew as artist's demands increased). However, it is very simple for doing simple things (you can make a new train with four or five lines of very simple "code". It can get very complex too, but only when complex things need to be done. You cannot remove the complexity without losing its power and sophistication. Any new design will need to be just as complex if it needs to be able to do what NFO can do[3].

If the hex-ness of NFO is the only thing that bothers you, then it's the only thing that needs fixing. This means either improving/fixing GRFMaker, or writing a "plain text"->NFO converter. A variation of the latter would need to be written even if you come up with your own format.

So why not NFO?

[1] Whether the graphics are 8bpp or 32bpp or 256bpp does not matter here. The way sprites are encoded in the file is irrelevant. NFO can work just as well no matter what type of sprites you have. [It doesn't even matter if you have 3D meshes and no sprites at all -- DaleStan]
[2] And can relatively easily be extended to support new things.
[3] For example Locomotion has a very simple format. As a result it can only do simple things. No repainting of wagons after N years to show a new historical livery. No showing of dirt as vehicles get older. No random variations in colours. No seasonal cargo acceptance/production of industries. No sophisticated animation control. No sophisticated station designs. No simple support for trainsets, other than defining a new vehicle ID for each loco and each wagon in each train set. Etc...
And the rest of that thread

Posted: 16 Feb 2006 10:28
by bobingabout
thats the post i said sums it up nicely, as you can see my opinions in that link, i think everything should stay TTDP NewGRF compatable, only maybe make a new way of writing the NFO. maybe also interperate it differently, but evertually, still have the same effect.

Posted: 16 Feb 2006 21:31
by Korenn
the file format has nothing to do with how you deal with loading that data and how you parse it...

meh, now I'm reacting again, nvm.

Posted: 16 Feb 2006 21:44
by peter1138
The file format has quite a lot to do with how you read and parse it.
How you use the data once it's loaded is another matter, though... :-)

Posted: 18 Feb 2006 22:01
by orudge
I really don't think OpenTTD should define its own format. Extend newgrf sensibly, perhaps, but there is a huge archive of work out there just waiting to be used. All we need are capable developers to help peter1138 and the rest of the team implement full newgrf support, and Bob's your uncle!

Posted: 26 Feb 2006 07:26
by epsilon
This discussion seems to have gotten a little bit off track... the main question is whether the devs (or the masses) would like to see the several new industries proposed in this thread: http://www.tt-forums.net/viewtopic.php?t=9038

Several people have worked hard to prepare excellent graphics which match the style and feel of original TTD visuals. It would really be a pity to see that all of their effort was meaningless. Graphics would be stored in the format that is being used now (I'm not sure whether what I'm saying is correct, since I know almost nothing about OTTD/TTD graphics formats - but I know there once were OTTD-specific extensions and it wasn't a problem).
Born Acorn wrote:If we were to implement a new industry system, it would require months of planning testing and balancing to make a good system. But with the newgrf newindustries, you choose your own set.
Please keep in mind that the "extended" industry chains once agreed upon were very delicate with only two new industries per climate (+2 common for the whole game), fitting smoothly into the existing chain. My intention was not to shake things up and keep the sacred balance in the game, while making it more fun for the experienced players at the same time.

If I were to do a second take on this I would deifnitely need the devs' blessing, so I won't end up with code that nobody wants.

So - what do you think about this? Should I take care of this matter with the graphics authors and implement some extensions or do we wait for newgrf support and leave this be?

Posted: 26 Feb 2006 11:22
by MeusH
So - what do you think about this? Should I take care of this matter with the graphics authors and implement some extensions or do we wait for newgrf support and leave this be?
Umm... both?

Take a look how does beter1138 implement newstations. Newgrf support is being expanded part-by-part.

If you take the new industries, you will both implement the extensions and expand the newgrf support.