User talk:Zaz

From Stardew Valley Wiki
Jump to: navigation, search
This is Zaz's talk page, where you can send messages and comments to Zaz.
  • Sign and date your posts by typing four tildes (~~~~).
  • Put new text below old text.
  • Be polite.
  • Assume good faith.
  • Don't delete discussions.

Crop Tables

Hello Zaz!

I have some feedback about the crop growth tables.

Creating a separate template for each crop is probably going to be a nightmare for translators in the other 6 languages' wikis. Although templates are the more elegant solution, I think it would be better to hard-code the info. on each page.

Perhaps an even better idea would be to create a new page called something like "Crop Growth Tables" that would contain all the tables on one page (perhaps organized by season first, then alphabetically). Then we could transclude the appropriate section on each crop's page. The syntax is {{#lst:Name of Page|Section Name}}. No extra templates required.

I like the fact that you've included the % of growth increase, because it shows that Speed-Gro without Agriculturist and Agriculturist without Speed-Gro are the same (10% increase).

I have some more minor formatting suggestions, I could do without the transparent white background in the headers and the roundedborders on the inner tables. The white background for headers don't match the rest of the wiki, and the roundedborders take up valuable width. I'm not sure we need to make the tables collapsable either, I think it would be fine if they were just there, uncollapsed, like on the Strawberry page.

Final question: How did you validate the data? Did you look at the game code or test in-game? I believe I looked at the game code for fertilizer, and found that it always rounds up, which benefits the player with decreased growth time. I can't remember if I ever looked at the code for Agriculturist, to see if it works the same way (rounding up instead of truncating decimal values).

All in all, good work! Let me know your thoughts. Regards, -- margotbean (talk) 19:06, 4 December 2017 (UTC)

Hi, and thank you for your feedback. I split the post into separate threads, see below for responses to each comment. --Zaz (talk) 11:55, 5 December 2017 (UTC)

Page organization & localization

Creating a separate template for each crop is probably going to be a nightmare for translators in the other 6 languages' wikis. Although templates are the more elegant solution, I think it would be better to hard-code the info. on each page.

Perhaps an even better idea would be to create a new page called something like "Crop Growth Tables" that would contain all the tables on one page (perhaps organized by season first, then alphabetically). Then we could transclude the appropriate section on each crop's page. The syntax is {{#lst:Name of Page|Section Name}}. No extra templates required. -- margotbean (talk) 19:06, 4 December 2017 (UTC)

Whatever you feel is best. The single-page way certainly sounds easier. I'll start working on a proof-of-concept for that. It would definitely make translating easier, hopefully the translators know about find-replace. :) --Zaz (talk) 11:55, 5 December 2017 (UTC)
After several months of moderating the wiki in 7 languages, I'm going to plead "no comment" on that last part.  ;) margotbean (talk) 18:49, 5 December 2017 (UTC)
I'm trying to do the transclude page thing, but I'm having trouble, is it because the page I'm targeting is in userspace? --Zaz (talk) 22:13, 5 December 2017 (UTC)
Nevermind I figured it out: Green Bean --Zaz (talk) 22:20, 5 December 2017 (UTC)

Formatting

I have some more minor formatting suggestions, I could do without the transparent white background in the headers and the roundedborders on the inner tables. The white background for headers don't match the rest of the wiki, and the roundedborders take up valuable width. I'm not sure we need to make the tables collapsable either, I think it would be fine if they were just there, uncollapsed, like on the Strawberry page. -- margotbean (talk) 19:06, 4 December 2017 (UTC)

I did it one way because any way is better than no way, but it is a very easy thing to just change the generated output from my scripts and run them again. I'll post a few different suggestions in my user space. The headers' css is just copied from other headers on the wiki, and should match but doesn't probably because it layers multiple semi-transparent elements on top of each other. My reasoning for the collapsible segment was just that these tables claim a lot of article space, and since these edits hadn't been seen by anyone else I didn't want to introduce too many visual changes to the pages. --Zaz (talk) 11:55, 5 December 2017 (UTC)
Agreed. Formatting is secondary to content, and can always be tweaked. In looking at your example page, I think I like roundedborders better... but the width is still a concern. I wouldn't mind seeing "Regular" and "Agriculturist" rotated 90°, just to see if it would work better or not. I also wouldn't mind if the main table heading 'Agriculturist and Speed-gro comparison" were made larger and left-aligned (as an actual heading)... But I could go on making suggested changes forever, so, I'll just stop and let you have fun with it.  :D margotbean (talk) 18:49, 5 December 2017 (UTC)

Data Validation

Final question: How did you validate the data? Did you look at the game code or test in-game? I believe I looked at the game code for fertilizer, and found that it always rounds up, which benefits the player with decreased growth time. I can't remember if I ever looked at the code for Agriculturist, to see if it works the same way (rounding up instead of truncating decimal values). -- margotbean (talk) 19:06, 4 December 2017 (UTC)

Good point. I only own the game on Switch, so I can't decompile the source myself. I've been using https://github.com/crosslife/StawdewValley but I can't comment on that source's accuracy. I also haven't found a reliable source for %Game%\Data\Crops.xnb so I've been using the "all crops stages" tab from https://docs.google.com/spreadsheets/d/16vjeFnexYJ4n2Ib_nA9JubB6mvUcJanf9zu0SjpvPSI/edit#gid=770413564 as a source for now. That spreadsheet definitely has errors though, (ex: currently the Green Bean calendar is wrong in some places, but thats the only wrong calendar of those I've posted) so I'm hoping to find a reliable Crops.xnb before posting the real calendars. I've detailed my current findings here: User:Zaz/CropCalendarValidation Speed-Gro Mechanics --Zaz (talk) 11:55, 5 December 2017 (UTC)
The source code you posted looks accurate to me. My decompiler does things a little differently, but the end result is the same, I believe. I took about 20 minutes to compare, and it looks correct.
I've posted the current Crops.xnb data here: Crops Data. However, I think the only part of it that you need is the # of days spent in each growth period, and that's already listed on the Crops page. But, the data is in both places now, for what it's worth.
I'm going to comment out the incorrect green bean tables for now. Otherwise, keep up the good work, and let me know if I can help in any way! margotbean (talk) 18:49, 5 December 2017 (UTC)
I've been working a lot on the data validation this afternoon, and I found so many bugs, both in my sources and in my validation scripts (!) that I actually bought the game and played through half a season just to collect verifiably true data I could compare my findings to.
That also gave me a true Crops.xnb and a true decompiled source which enabled me to find a possible subtle difference in the way it calculates speed-gro etc. Lets take Green Beans for example, it has crop stages {1, 1, 1, 3, 4}. The sum becomes 10. Then comes this part:
       int discount = (int) Math.Ceiling( (double) sum * (double) percent );
Which looks fine, right? Problem is, this is the actual code:
       int discount = (int) Math.Ceiling( (double)( (float) sum * (float) percent ) );
Let's say percent is 0.1. With doubles that is fine, the result becomes Math.Ceiling( 1 ). With floats, you get precision errors: Math.Ceiling( 1.00000001490116 )
Anyway, I've now updated my source data, validated parts of it against gameplay and all of it against the decompiled code and data. I hereby declare the data validation done and approved. (The data is currently saved here: https://github.com/Zazcallabah/StardewScripts/blob/master/data.csv fwiw) --Zaz (talk) 22:13, 5 December 2017 (UTC)
Wow, that's incredible!
I did notice the cast to float was missing, but did not notice that it was inside a call to Math.Ceiling. That makes a difference! I don't know if the compiler ever casts ints to floats or doubles when it's not in the source code... but you've done in-game testing as well just to be sure. I'm blown away.
Once again, excellent work, and thank you! If you have interest in digging into the source code after this project is finished, I have several areas from my "to do" list that I could suggest.... :P margotbean (talk) 22:52, 5 December 2017 (UTC)


Merging quality crop tables

I think it's a great idea, go for it!

I have a confession to make -- in looking at the page history for Fertilizer, it seems I added the quality crop ratio tables to the page, but I have no memory of doing so. Where did I get those numbers? I feel like it was based on your calculations for some reason, but can't find any source for this feeling.

In addition, the user who added the table to the Farming page commented that he got the data from "other places on the wiki" but I can't seem to find those.

Do make sure the numbers are accurate, would you? If you can point me to the original source of the numbers, that would be a bonus.  :D

It would make me happy if you added the table to one page and then transcluded it on the other(s). FYI - Basic Fertilizer and Quality Fertilizer currently transclude the tables on the Fertilizer page.

Again, great idea, and thank you! margotbean (talk) 17:00, 18 February 2018 (UTC)

I definitely remember moving a lot of calculations from a main page to a talk page, but cannot remember which! I am my own worst enemy.  :(
I definitely didn't delete any calculations completely. I know that much. For what good it does... -- margotbean (talk) 21:02, 18 February 2018 (UTC)