Face customization patch - TESTING requested!

Forum for technical discussions regarding development. If you have a general suggestion, problem or comment, please use one of the other forums.

Moderator: OpenTTD Developers

KUDr
OpenTTD Developer
OpenTTD Developer
Posts: 219
Joined: 11 Jan 2006 21:36
Location: Czech Republic

Post by KUDr »

jez wrote:KUDr: Yeah, because so many people care about faces from old savegames staying the same.
I accept your ignorance as "it is also a way". But don't force others to be same ignorant. Devs explained you that up to now we are 100% compatible with old savegames from version 0.1.0. It was long and difficult run. All devs want to continue this way.

Then you come with the patch that has no added value to the game play but instead it breaks savegame compatibility. No problem. We discussed the way how it could be fixed. But you don't care and become angry instead.
jez wrote:As I said to you before (and you readily accepted), those who don't care about faces won't notice. Those who do will quickly customize them as they wish. Within a couple of weeks of 0.5 being released, 99% of savegames will be in the new format anyway.
True and I agree with you. But I also understand that it really breaks the result of hard work all devs have done (to achieve the 100% savegame compatibility). And I understand why they don't want to break it by such patch that has some value only for few users. So please try to be more constructive and think more about whole project. You are thinking too much about yourself, your patch and about your injured vanity.
jez wrote: And peter was able to totally revamp the livery dialog so it was MUCH more complex than before; did that need a 'rollout button'? I mentioned it at the time but it was dismissed. Talk about a double standard.
Yes it is true that if devs work on some feature it has different acceptance procedure (much simpler). It is the same as on any other project. And it must be so, because otherwise it wouldn't work.
User avatar
jez
Traffic Manager
Traffic Manager
Posts: 158
Joined: 23 Aug 2003 21:24

Post by jez »

KUDr wrote:
jez wrote: And peter was able to totally revamp the livery dialog so it was MUCH more complex than before; did that need a 'rollout button'? I mentioned it at the time but it was dismissed. Talk about a double standard.
Yes it is true that if devs work on some feature it has different acceptance procedure (much simpler). It is the same as on any other project. And it must be so, because otherwise it wouldn't work.
My point is that it's just inconsistent. You originally had a very simple livery window and a very simple face window. Surely both should become more complex (because of ability to customize stuff) or _both_ should have the added functionality only in a 'flyout'. Having them different ways is weird. The livery dialog also has the added nastiness that its interface uses nonstandard UI components, and should definitely be simplified.
=== Jez ===
User avatar
Darkvater
Tycoon
Tycoon
Posts: 3053
Joined: 24 Feb 2003 18:45
Location: Hong Kong

Post by Darkvater »

Loop wrote:Secondly, I completely don't understand the devs. If the idea of the patch isn't welcome - why did you help him clean up the code in the first place?
...
So jez is cleaning the code, following the guidelines, and when he finishes his work... you say suddenly: no, we don't want this patch!
I would like to clarify one thing. And if any flames continues afterwards I will close this topic and any other opened with respect to the face-patch, or flames towards me.

It has been clear from the start, to everyone, yes even jez, that the patch is not welcome in trunk/ It has been said countless times on IRC and he knows it; everybody knows it.

We usually help with people writing patches, asking about how to do something, giving (limited) advice when we have time, etc. This definitely does not mean a patch is getting in, or will even be considered. Jez went around speaking to each developer trying to find one that will commit the face patch. Apparently KUDr was interested in helping.

After I have talked to him we decided as above.
Loop wrote:Many people wanted to play sometimes without the el_rails. But you considered it a stupid request, and did nothing to make it custom (I know about the cheat, but it's not the same).
This is an option we are thinking about of making a true setting for the next release, given enough time or anyone. Especially for multiplayer games it could come in use.

[no-flame]It has been said countless times that if people don't like the code, or how things are run, they're welcome to fork and work on their own version, nothing is stopping you.
TrueLight: "Did you bother to read any of the replies, or you just pressed 'Reply' and started typing?"
<@[R-Dk]FoRbiDDeN> "HELP, this litte arrow thing keeps following my mouse, and I can't make it go away."
KUDr
OpenTTD Developer
OpenTTD Developer
Posts: 219
Joined: 11 Jan 2006 21:36
Location: Czech Republic

Post by KUDr »

Loop wrote:Secondly, I completely don't understand the devs. If the idea of the patch isn't welcome - why did you help him clean up the code in the first place?
The idea isn't welcome. The idea is just accepted. By some devs it is accepted without big problems, by some others it is hardly accepted. We all understand that for some sort of users it can be funny to play with faces. But the game is about something else. So even if it will meet all technical requirements to be accepted as a patch, it will stay a very low priority task.

And why i helped him to cleanup the code? It will be bit longer reading:
1. Jez was loud enough on IRC and talking about "community" that wants this patch. When we started to talk about it i had no idea what it does.
2. I looked at the face customization dialog screenshots and understood what it is about. And even i don't like this idea at all, i tried to help him as i know how painful the acceptance process could be.
3. When i looked into code (his original patch) i told me "oh my god! why i wasn't rather silent. why i offered him the help without looking into code first!"
4. So i explained Jez that there is no way how to get this cryptic code into trunk. It needed to be rewritten from the scratch. So we simply started - two weekends we worked together (VNC + Skype). Each round was like: 10 minutes when Jez explained me what some piece of code is supposed to do, 5 minutes of me fixing it, then 20-40 minutes of hard arguing why it needs to be fixed and then 5 minutes me having nicotine break. Uff. Terrible work. Alone I would have it done in few hours, but i wasn't able to understand the original code.
5. When finished, I started discussion with devs what more we need to do before it can be committed.
6. After fixing of few overlooked formatting issues (to be coding guidelines compliant) i needed to explain how it works, what was changed from original ottd code, and so on.
7. Then devs realized that it breaks the savegame compatibility and we started discussions what we can do with it. The result is that such feature is definitely not so important that we need it also at the cost of broken savegame compatibility. It was already told, that 0.5.0 will keep 100% backward compatibility as it continuously requested by large number of users.
8. There is also another issue. Many users would like to keep the face dialog as simple as possible, they like the randomizer and they don't ask us for more comprehensive face customization. Therefore the idea about hiding right side of dialog on default.

Loop wrote:It looks very, very strange. He starts his work. You help him with it, work on it together. It is obvious, that when the devs interfere with mortal-patches, they want them IN the trunk.
Hehehe. Totally wrong assumptions. You are bit demagogic in your way of explanation.

1) He started his work long time before we started any interactions. No devs asked him to do it. Nobody promised that it will go into trunk.
2) The only what was obvious was that the code can't be committed as it was. Nobody except Jez and few others here have expressed that he wants it IN trunk. No. I tried to help Jez to get the patch accepted. Then the commit would be just few seconds task.

Loop wrote:So jez is cleaning the code, following the guidelines, and when he finishes his work... you say suddenly: no, we don't want this patch!
Again totally wrong.
1) Jez is not cleaning the code. Jez heavily defended each part of his original cryptic code against cleanup. I did the cleanup. He helped me to don't break the functionality (explained how it works, checked all my changes and tested it, helped to hunt all my errors).
2) No, the work is not yet finished. period.
3) No, nobody told "No". It just passed the first round of iteration process and it passed it well. Few minor changes are needed and if done properly, the next round can be the last one and then commit.
4) Jez has problems to accept it. Not we.
User avatar
bobingabout
Tycoon
Tycoon
Posts: 1850
Joined: 21 May 2005 15:10
Location: Hull, England

Post by bobingabout »

KUDr wrote: 7. Then devs realized that it breaks the savegame compatibility and we started discussions what we can do with it. The result is that such feature is definitely not so important that we need it also at the cost of broken savegame compatibility. It was already told, that 0.5.0 will keep 100% backward compatibility as it continuously requested by large number of users.
can't this be fixed? i mean, the original face format worked, you should be able to save the face using the original formatting, retaining savegame format.
KUDr wrote:8. There is also another issue. Many users would like to keep the face dialog as simple as possible, they like the randomizer and they don't ask us for more comprehensive face customization. Therefore the idea about hiding right side of dialog on default.
how about adding an "advanced" or "Costom Face" button, which brings up the costomisation window.
JPG SUX!!! USE PNG!!!
There are times when JPG is useful, TTD screenshots is not one of them. Please use PNG instead.

[/url]
KUDr
OpenTTD Developer
OpenTTD Developer
Posts: 219
Joined: 11 Jan 2006 21:36
Location: Czech Republic

Post by KUDr »

both your questions were already answered before:
bobingabout wrote:
KUDr wrote: 7. Then devs realized that it breaks the savegame compatibility and we started discussions what we can do with it. The result is that such feature is definitely not so important that we need it also at the cost of broken savegame compatibility. It was already told, that 0.5.0 will keep 100% backward compatibility as it continuously requested by large number of users.
can't this be fixed? i mean, the original face format worked, you should be able to save the face using the original formatting, retaining savegame format.
As i already told, the original face code is messy and not easy to work with. It was not designed to change only one particular attribute without changing others. The new format introduced by Jez is lot better and much easier to work with and/or to understand. It is really bad idea to return to the previous format.

So it can be fixed by conversion after load - maybe using the old parsing code (from original drawing routine) and set all attributes to the new face code.
bobingabout wrote:
KUDr wrote:8. There is also another issue. Many users would like to keep the face dialog as simple as possible, they like the randomizer and they don't ask us for more comprehensive face customization. Therefore the idea about hiding right side of dialog on default.
how about adding an "advanced" or "Costom Face" button, which brings up the costomisation window.
This was the idea. But not in different dialog. The part with customization controls should pop out to the right. Would you have problem with it?
User avatar
jez
Traffic Manager
Traffic Manager
Posts: 158
Joined: 23 Aug 2003 21:24

Post by jez »

KUDr wrote:This was the idea. But not in different dialog. The part with customization controls should pop out to the right. Would you have problem with it?
I think you've been quite cruel about my patch in your last couple of posts, but I'll respond to this anyway...

I don't have a 'problem' with the idea, other than the fact that it would probably involve a significant amount of extra work and code for virtually no benefit. I don't accept that you can be 'confused' by a face dialog with a few attributes and a 'randomize' button. People who like the simplicity can select gender/eth, and click 'randomize' a few times. Shock horror. That's too 'complex'? Sorry, but this 'simplification' just sounds like a bizarre request.
=== Jez ===
User avatar
bobingabout
Tycoon
Tycoon
Posts: 1850
Joined: 21 May 2005 15:10
Location: Hull, England

Post by bobingabout »

i must agree. you quibble about the complexity of the face costomisation patch, but look what happened to the company colours dialog... imo, you should have to press an advanced button there too.
JPG SUX!!! USE PNG!!!
There are times when JPG is useful, TTD screenshots is not one of them. Please use PNG instead.

[/url]
richk67
Tycoon
Tycoon
Posts: 2363
Joined: 05 Jun 2003 16:21
Location: Up North
Contact:

Post by richk67 »

Just to point out that there is nothing complex about the company colours dialog. Instead of one colour drop down, when you have the "All" or company setting selected, there are now two drop down colour selections. That is the only difference to its old functionality.

In effect the other options *are* already in a flyout, that is only visible when you click on a vehicle type. And yes, when you click that it gets complicated...
OTTD NewGRF_ports. Add an airport design via newgrf.Superceded by Yexo's NewGrf Airports 2
Want to organise your trains? Try Routemarkers.
--- ==== --- === --- === ---
Firework Photography
Idoliside
Engineer
Engineer
Posts: 13
Joined: 26 Oct 2006 09:39

Post by Idoliside »

A little idea perhaps (slightly off-topic from the argument)
Why not have both modes in (i know crazy but hear me out)

The original mode: Can be autodetected on loading of a saved game, so if it is an "old" version it will run the old face generation program

New mode: Started on new games or autodetected on new Saved games so that the new face maker is put in.

There must be no-option to switch it within the game, people that run their old games must live with having only one set of faces whereas if they want new one's they must run a new game.
Kills two birds with one stone, although i suspect this may involve a hell of A LOT of coding issues so it may not be worked on at all

Just my idea for this...
KUDr
OpenTTD Developer
OpenTTD Developer
Posts: 219
Joined: 11 Jan 2006 21:36
Location: Czech Republic

Post by KUDr »

jez wrote: I think you've been quite cruel about my patch in your last couple of posts, but I'll respond to this anyway...
I think i wasn't. I told here that from the functionality POV or FaceCode bitfields layout design POV it is really well done. It was about the original (before your patch applied) face code that it was messy and improperly designed.

And up to now i have changed only the form of the code to eliminate all the magic numbers and cryptic math.
jez wrote: I don't have a 'problem' with the idea, other than the fact that it would probably involve a significant amount of extra work and code for virtually no benefit. I don't accept that you can be 'confused' by a face dialog with a few attributes and a 'randomize' button. People who like the simplicity can select gender/eth, and click 'randomize' a few times. Shock horror. That's too 'complex'? Sorry, but this 'simplification' just sounds like a bizarre request.
Yes, it can look so. But the fact is that the dialog which from 3 buttons (Male/Female/NewFace) explodes into 22 buttons (didn't count OK/Cancel) over night, can really seem too complicated for some sort of people. I could tell the ammount of such people is comparable to the amount of people in the "community" you was talking about that wants this patch applied. But those people usually don't post to such forums.
How can such people determine that those two arrow buttons at the bottom right plus the 'Randomize' button can serve their expected behavior? Heh. This i can't call simplicity.

Yes, it would need to spend few more hours over the code. And it will not bring new options how to customize the face. This is all true. But is it really so difficult? You was able to come with perfectly working face customization dialog with 22 new functions controlled by buttons. Will be this one more button really so painful for you? Or is it just your personality what tells you "NO, DON'T DO IT"?
KUDr
OpenTTD Developer
OpenTTD Developer
Posts: 219
Joined: 11 Jan 2006 21:36
Location: Czech Republic

Post by KUDr »

Idoliside: good idea, not hard to do. Except that we would need to keep there two different implementations for the same thing. This thing (face customization) is not essectial for the transport simulator, so I wouldn't do it. From the code maintenance POV it is the worst option.
User avatar
bobingabout
Tycoon
Tycoon
Posts: 1850
Joined: 21 May 2005 15:10
Location: Hull, England

Post by bobingabout »

erm... why not have the face generator use 1 format, and then convert it back to the original format for game usage and savegames. then if you want to edit the face, it is converted back to the new format.

this won't break anything.
JPG SUX!!! USE PNG!!!
There are times when JPG is useful, TTD screenshots is not one of them. Please use PNG instead.

[/url]
KUDr
OpenTTD Developer
OpenTTD Developer
Posts: 219
Joined: 11 Jan 2006 21:36
Location: Czech Republic

Post by KUDr »

bobingabout wrote:erm... why not have the face generator use 1 format, and then convert it back to the original format for game usage and savegames. then if you want to edit the face, it is converted back to the new format.

this won't break anything.
Uff. Even more complicated. Nobody knows how to compose the old format. There are some obscure decomposing code fragments in the original drawing routine, but it was never composed. It is just random number.

So if you are good in math, you can try it. I hope you will enjoy it.
User avatar
bobingabout
Tycoon
Tycoon
Posts: 1850
Joined: 21 May 2005 15:10
Location: Hull, England

Post by bobingabout »

ok, i'll give that a try, but first, i need to know 2 things:
what is the current format?
what is the original format?
i dunno, maybe post or PM code or something, i can't access that kind of information from here, i don't have the software, nor the admin rights to install it.
JPG SUX!!! USE PNG!!!
There are times when JPG is useful, TTD screenshots is not one of them. Please use PNG instead.

[/url]
User avatar
jez
Traffic Manager
Traffic Manager
Posts: 158
Joined: 23 Aug 2003 21:24

Post by jez »

Original post now contains v11 of patch.

Maintains the 'simple' face selection dialog until you click 'Advanced'.
=== Jez ===
KUDr
OpenTTD Developer
OpenTTD Developer
Posts: 219
Joined: 11 Jan 2006 21:36
Location: Czech Republic

Post by KUDr »

bobingabout: the original format is not fully documented. You can derive it from the original drawing routine (function DrawPlayerFace() in http://svn.openttd.org/cgi-bin/trac.cgi ... c?rev=6932).

The new format is well documented: http://mazanec1.netbox.cz/svn/ottdp/ott ... e.h?rev=49 around the line 22.

Sprite numbers for each attribute are in http://mazanec1.netbox.cz/svn/ottdp/ott ... s.c?rev=49 in the new DrawPlayerFace() routine (at very beginning of the functions).

Please try to do old -> new conversion first as this one will be definitelly needed. You do not need to compose the new format directly. We have accessor functions for them.

Any understandable pseudocode will be appreciated.

thanks
User avatar
Darkvater
Tycoon
Tycoon
Posts: 3053
Joined: 24 Feb 2003 18:45
Location: Hong Kong

Post by Darkvater »

I had a go at a WIP for the new face window.

I have chosen to keep most buttons at their place, and the 'new face' and 'randomise' at the same position, as their function is essentially the same. The window has the same minimize-maximize button we know from the finances window. I have added an 'advanced >' button the the "simple" mode as perhaps some people might miss the 'maximize' button; but it could probably go; donnu.

What do you think?
Attachments
face_randomiser.png
face_randomiser.png (12.99 KiB) Viewed 6682 times
TrueLight: "Did you bother to read any of the replies, or you just pressed 'Reply' and started typing?"
<@[R-Dk]FoRbiDDeN> "HELP, this litte arrow thing keeps following my mouse, and I can't make it go away."
User avatar
Invisble
Transport Coordinator
Transport Coordinator
Posts: 341
Joined: 17 May 2005 15:06
Location: England
Contact:

Post by Invisble »

To me that looks good. Though looking at the screenshots I reckon that a few sprites can be salvaged by reducing the number of noses from 90+ to say around 20?? Of course that means more free sprites for more important things like newgrfs. :D
User avatar
bobingabout
Tycoon
Tycoon
Posts: 1850
Joined: 21 May 2005 15:10
Location: Hull, England

Post by bobingabout »

he already did it on the first page:
Image
also, reducing the number of sprites shouldn't do anything for newGRF, because these are the originally loaded sprites from the main GRF files(unless i missed something).
JPG SUX!!! USE PNG!!!
There are times when JPG is useful, TTD screenshots is not one of them. Please use PNG instead.

[/url]
Post Reply

Return to “OpenTTD Development”

Who is online

Users browsing this forum: No registered users and 1 guest