Sign in to follow this  
Keenan

Cooking sneak peek...

Recommended Posts

Retrograde is going to kill me (which is nothing new), but I'm overly excited and wanted to tease everyone regarding the expandability Tich built into cooking.

 

https://gist.github.com/xorith/be8b52f3c5dd78fd43864f9ca29350fa

 

That's one of the recipes that will be distributed to WU. I'll be working with Retrograde to give him more information to put out soon, including the full schema for these files.

 

So how long until the community has a tool made up for creating new recipes? ;)

  • Like 3

Share this post


Link to post
Share on other sites

I really like the way this is set up. It's fairly intuitive, and storing recipes outside the JAR files means server admins will be able to modify recipe lists very easily.

 

EDIT: I'm not 100% sure how recipe difficulty is calculated, so let me see if I have this right for this example.

  1. Base difficulty, from the "result" block, is 11.
  2. Cooker adds the specified difficulty, so 5 more for a campfire or 10 more for a forge.
  3. Ingredients add a specified difficulty, so if I add salt, that's another 5 ingredients.
  4. Minimum difficulty for this recipe, then, is 16, for exactly one non-herb ingredient, no salt, in an oven.
Edited by Ostentatio
  • Like 1

Share this post


Link to post
Share on other sites

in theory it should be possible to even make a program that can export/import from a spreadsheet :P

Share this post


Link to post
Share on other sites
7 hours ago, Keenan said:

Retrograde is going to kill me (which is nothing new), but I'm overly excited and wanted to tease everyone regarding the expandability Tich built into cooking.

 

https://gist.github.com/xorith/be8b52f3c5dd78fd43864f9ca29350fa

 

That's one of the recipes that will be distributed to WU. I'll be working with Retrograde to give him more information to put out soon, including the full schema for these files.

 

So how long until the community has a tool made up for creating new recipes? ;)

How do we connect the recipe to any applicable artwork? I didn't see any linkage info in the doc although I may have missed it?

 

The rest of your example looks really cool.

Edited by Nappy

Share this post


Link to post
Share on other sites
13 minutes ago, Nappy said:

How do we connect the recipe to any applicable artwork? I didn't see any linkage info in the doc although I may have missed it?

 

The rest of your example looks really cool.

 

At the bottom you specify the "id" of the item. Essentially recipes are means toward making items in the game. In the example above, you can change the description and name of the casserole, but it's still a casserole.

Share this post


Link to post
Share on other sites

Is there any functionality to make the recipes... do something? The recipe shown seems to display making a new item, but does it do anything special, and can we configure that?

Share this post


Link to post
Share on other sites

I can see this being useful for folks who don't know how to code. You can add new recipes with just text pad. And perhaps someone will make a intiutivie nice GUI app to generate those .json file.

 

But for use that are used to using mod launcher, it seems it will be better to skip the .json business and directly invoke the java object related recipe code.

Share this post


Link to post
Share on other sites
On 11/28/2016 at 10:35 PM, Sindusk said:

Is there any functionality to make the recipes... do something? The recipe shown seems to display making a new item, but does it do anything special, and can we configure that?

 

What do you mean by "do something"? They are a means to create food in the cooking system. Temp affinities, CCFP, etc are all based on what goes into a recipe.

 

55 minutes ago, joedobo said:

I can see this being useful for folks who don't know how to code. You can add new recipes with just text pad. And perhaps someone will make a intiutivie nice GUI app to generate those .json file.

 

But for use that are used to using mod launcher, it seems it will be better to skip the .json business and directly invoke the java object related recipe code.

 

We do not hard-code recipes in Wurm Online. We're using the same format as provided above, so I'm not sure how a mod loader would work best. It would add a layer of complication that could break, so would not be recommended. We will be providing a good number of recipes to Wurm Unlimited, so there will be plenty of examples to learn from.

 

If you wanted to change how the cooking system works or add components and things, that would require modding.

Share this post


Link to post
Share on other sites
1 hour ago, Keenan said:

We do not hard-code recipes in Wurm Online. We're using the same format as provided above, so I'm not sure how a mod loader would work best. It would add a layer of complication that could break, so would not be recommended. We will be providing a good number of recipes to Wurm Unlimited, so there will be plenty of examples to learn from.

 

"complication", what?  the .json file is the extra step of compilation. I guaranteed you guys are using the .json file to construct java objects which the code uses to do its thing. I could very well be wrong but it seems to me it would be far easier for a modder to just directly create those java objects.

 

Do either...

1. fill out that verbose .json txt file format. It's not self-documenting with intuitive named methods. No ide support that helps with auto-completion or hints about argument names/types.

2. Do something like this which is a tool Ago added to modloader: (this is a pelt substitute crafted from cotton)

ItemTemplateBuilder towel = new ItemTemplateBuilder("jdbTowel");
towelTemplateId = IdFactory.getIdFor("jdbTowel", IdType.ITEMTEMPLATE);
towel.name("towel", "towels", "A thick piece of cloth with many looped strings protruding from the surface.");
towel.size(3);
//towel.descriptions();
towel.itemTypes(new short[]{ItemTypes.ITEM_TYPE_CLOTH, ItemTypes.ITEM_TYPE_BULK});
towel.imageNumber((short) 640);
towel.behaviourType((short) 1);
towel.combatDamage(0);
towel.decayTime(3024000L);
towel.dimensions(towelX, towelY, towelZ);
towel.primarySkill(-10);
//towel.bodySpaces();
towel.modelName("model.resource.yard.");
towel.difficulty(towelDifficulty);
towel.weightGrams(towelGrams);
towel.material((byte) 17);
towel.value(towelValue);
towel.isTraded(true);
//towel.armourType();
try {
	towel.build();
} catch (IOException e) {
	e.printStackTrace();
}

 

edit...

oh, I get it. If a player is just adding recipes there is no reason to use a mod loader. Although, In my case I'm always using modloader because I want to change functionality. If I'm already using modloader it would be better to do as I have said.

Edited by joedobo

Share this post


Link to post
Share on other sites

Even with a mod loader, I would not personally put data in the code. It may seem a bit more work, but separating the data from the logic is a basic principle of proper programming. I was trying to find some quotes from respected folks in the area, but my searches didn't really yield much.

 

Essentially though, the reason for it is that you should write your code so it works regardless of the data passed in. The example above of the towel, what if I wanted to tweak the description? I'd have to edit the code, and just in by doing that I could add bugs and problems to the program. If it were in a JSON file, the program should be robust enough to detect my fat-fingered typo and perform accordingly.

 

Now before people start going on about how the code doesn't follow this at the moment: We know. It's been on our wish list for a long time, but to fundamentally change how the code is written would be a huge undertaking. Tich saw a use for json here and ran with it, and I'm pleased with the results.

 

I will say though that a year ago I'd have agreed with you. I've spent the last year not only supporting Wurm, but also working professionally in the field. I've had to handle (and fix) junior code all over the place. It's taught me quite a bit. :)

 

So even if you use the mod loader, I'd still highly recommend using the json files. The extra layer of complication is the code itself. An error in code can lead to indeterministic results, whereas an error in your data should simply lead to the data being sanitized at best or ignored at worst.

 

  • Like 1

Share this post


Link to post
Share on other sites

Hi all,

 

To continue with the sneaking and peeking, I present you the schema used for the json file above.

 

https://gist.github.com/xorith/247232be00a072a838809e2fec2cb123

 

Schemas can be a bit dry to read, even confusing, but the idea is that it defines what that file should be. What goes where, etc.

 

We'll be working on getting files out with what values are supported for the "id" fields, of which all translate to things in-game. Item names, skill names, etc.

Share this post


Link to post
Share on other sites
On 12/2/2016 at 10:05 AM, Keenan said:

We will be providing a good number of recipes to Wurm Unlimited, so there will be plenty of examples to learn from.

 

 

Out of the 500+ recipes in the update (thousands once you figure in custom ingredient variations), how many base recipes will WU be getting? 100? 50? 10?

 

This seems like a difficult task for the singleplayer WU who already struggled just figuring out how to get a server running for themselves. Now they get a cooking update stripped of it's meat and bones, so to speak.

 

 

 

 

 

Edited by Brash_Endeavors

Share this post


Link to post
Share on other sites

I hope this is the holding back releasing 1.3 on WU. imo, it isn't needed and definitely isn't worth waiting for all the support system to be in place for it. I mean yes, we need the .json files but those can easily be copied from pastebin or something. What we don't' need are forums and third part gui recipes making tools.

 

To be honest I doubt I'll even use the .json system (beyond whatever default recipes are provided). I know Keenan thinks we should separate data and logic but its just easier for me to put the data in the code and i'll likely do it that way.

Share this post


Link to post
Share on other sites

I hope the delay is twofold:

 

1) Get all those numerous bugs squashed 

2) Rethink this unfortunate concept of stripping content out of the WU cooking update and requiring people to mod it back in.

 

A lot of people may not belong to mega-servers (who don't mind adding server mods as much) -- some people just want singleplayer, or with a few family and friends, and it's already a nightmare just to get it running for some without also forcing them to get mods just for the basic content they were promised would come with WU (all content that goes to WO will come to WU, pledged Rolf). My belief is that at least some of the reason for striupping out recipes was "let's reward WO players by punishing WU, because the WO players will like that,"  added to the idea that "WU people will just spoil the surprise of discovery so we just won't give that part to them."

 

Hopefully I am really really WRONG on that, and devs will explain the rationale for stripping out 85% of the recipes and forcing the players to turn to modders to give them the update content they were promised would be the same for both WO/WU.

 

Some people do not like being forced to use mods just to get basic functionality.

 

Mods should be for "adding in extras" or customizing the normal experience, but in this case, it sounds like it is a requirement if you are going to be able to enjoy the 1.3 patch on WU.

 

 

 

 

 

 

 

Share this post


Link to post
Share on other sites

I don't entirely agree.  I rather have a system in WU where recipes can be added than a lot of "stock" recipes and no way to add new ones.

Adding JSON files with more recipes should be easy enough for a family-run server.  With Steam Workshop it would be even easier.

Share this post


Link to post
Share on other sites
8 hours ago, Brash_Endeavors said:

Hopefully I am really really WRONG on that, and devs will explain the rationale for stripping out 85% of the recipes and forcing the players to turn to modders to give them the update content they were promised would be the same for both WO/WU.

 

 

You've hit the nail on the head with some of your other comments. It's not going to require "mods" to add recipes. You'll mostly likely will just copy and paste a .json file. I do agree Wurm is making the wrong decision. I just wanted to point out it won't be that hard to add recipes.

 

I think a bigger issue is since WO players don't seem to want to share recipes so it's going to take a while to get .json files for all of WO's content.

Share this post


Link to post
Share on other sites
Quote

. It's not going to require "mods" to add recipes. You'll mostly likely will just copy and paste a .json file.

 

This is still "modding" in my book. It may not require them to compile code or program in java, and it may be a relatively "easy" type of mod when compared to other WU mods -- but it is still modding. I've been modding games since 2003 (Morrowind, Neverwinter Nights, Oblivion, Unreal World), sometimes adding quests, adding NPCs & dialogue, reskinning models, retexturing GUIs, and in a few cases even total conversion mods. Some are really really easy and some are really really hard. I know modding when I see it, even if some games it's too complicated for me to participate myself.  Heck, even adding your own custom map to the graphics JAR or making all of your unicorns be neon pink, counts as "modding".

 

Show the average WU player who runs their own family server the JSON template in the first post, and give them the "wonderful" news that around 400-500 recipes are going to be stripped out of the cooking update, but not to worry because the wonderful "expandability" means they can write their own recipes from scratch  and add them all in one at a time using JSON templates, and most of them will blanche and hope to GOD some kind person does most of this for them, since WU developers have decided to make them write their own content now. Meantime they can maybe make butter and fish stew and a few other rough basic recipes, Instead of improving much of the "entry gate" for people running their own personal family server, they have now obfuscated it even more -- which i did not suspect possible. 

 

I didn't mind not getting the Rift system, I wasn't really into that so I didn't really CARE, but the rifts + cooking update seem to be the beginnings of a deliberate decision by the new WO development to deliberately penalize people who bought WU by literally removing update content  then graciously 'allowing" them to mod it back in ... if they can figure out how.

 

 

What was the rationale for removing hundreds and hundreds of recipes in the first place, leaving only a few score boilerplate "templates"?  To not "spoil" surprises for WO players? They already had a month or more on the test servers and another six weeks in WO to "discover" the new content without having it "spoiled".  Will this be the new justification for removing other new content from future WU updates, so WO players won't have to worry that so-called "script kiddies" are going to spoil other new content by sharing basic information about the game?

 

The only way to avoid that -- which they knew before they even launched Wurm Unlimited -- is simply by not giving them some of the content at all.  That breaks the promise that Rolf made when he announced Wurm Unlimited -- that WU players would be getting the  exact same content updates as the WO players.

 

This is not only unethical, it is possibly even illegal. Or at least so it seems -- i am still hoping WU devs will pop in and explain how I have it all wrong. 

 

 

 

 

Edited by Brash_Endeavors

Share this post


Link to post
Share on other sites

While I agree with you on the cooking part, I seem to recall they didn't promise that everything would go in.

Not sure if that was cause of differences in the code or for just sly reasons.

Share this post


Link to post
Share on other sites

Agreed, it is in the strict sense a modification to the game, the .json recipes. It does make sense that the .json file will annoy many. The simple proof of this is all the folks who struggled to setup a single player server and got upset.

 

I doubt illegal activity is going on. I believe there was a TOS we agreed to when we got WU that basically said Wurm can do whatever it wants regarding WU. Although, ethically the current Wurm developers have violated the promises Rolf made regarding WU.

Share this post


Link to post
Share on other sites

There is a long and very American tradition of companies having customers sign EULAs and TOSs and contracts that basically say, a company can do whatever it wants to. That does not make them legal, and courts have often thrown them out, though clearly no one is going to run out and hire an attorney because they didn't get some cooking recipes.

 

It's just sad if this is where they are heading with the promise Rolf made when he launched Wurm Unlimited, that both games would get the same content updates. 

 

Edited by Brash_Endeavors

Share this post


Link to post
Share on other sites
1 minute ago, Brash_Endeavors said:

There is a long and very American tradition of companies having customers sign EULAs and TOSs and contracts that basically say, a company can do whatever it wants to. That does not make them legal, and courts have often thrown them out, though clearly no one is going to run out and hire an attorney because they didn;t get some cooking recipes.

 

It's just sad if this is where they are heading with the promise Rolf made when he launched Wurm Unlimited, that both games would get the same content. 

 

 

I've outlined everything that has been kept out of Wurm Unlimited in other posts. At launch, Wurm Unlimited did not include the coupon system, macro prevention system, as well as other anti-cheat and payment systems. That alone sets a precedent that Wurm Online and Wurm Unlimited will not be clones of each other. The rift system was kept out of Wurm Unlimited, and now we are being selective over the recipes being included. Note: They haven't been stripped out as they were never included to begin with. You might say I'm picking out context, but you're using context to make an argument, as well as strong words such as "legal".

 

The reasons we are not releasing all recipes were also made clear. There are several, but two factors are to prevent ruining of the player experience on Wurm Online - something several of you have blatantly expressed an interest in doing, and that some recipes were never intended to be distributed to WU at all. There will be Wurm Online recipes. That's a fact that's not up for debate or argument.

 

As I did with the Rift system, I remind you now: Wurm Online has every right to "mod" it's own game (in a sense). Just as server administrators may write custom content with no obligation to release it in full, Wurm Online may also have unique content.

 

As for the delay, it's more complicated than just some "json". It's implementing systems to ensure that we can make this update - and future updates - without causing issue to existing server configurations and not requiring end-users to have to do anything technical to apply the update. In other words the update has to work, be configurable, and ensure zero data loss. This goes for both recipes (ones users may write and add themselves) and the schemas.

 

There will be no more commentary on what or why things are included or not included. I'd rather put my energy towards finalizing the beta and pushing it out than arguing that which will not be changing.

  • Like 4

Share this post


Link to post
Share on other sites
1 hour ago, Brash_Endeavors said:

 

This is still "modding" in my book. It may not require them to compile code or program in java, and it may be a relatively "easy" type of mod when compared to other WU mods -- but it is still modding. I've been modding games since 2003 (Morrowind, Neverwinter Nights, Oblivion, Unreal World), sometimes adding quests, adding NPCs & dialogue, reskinning models, retexturing GUIs, and in a few cases even total conversion mods. Some are really really easy and some are really really hard. I know modding when I see it, even if some games it's too complicated for me to participate myself.  Heck, even adding your own custom map to the graphics JAR or making all of your unicorns be neon pink, counts as "modding".

 

Show the average WU player who runs their own family server the JSON template in the first post, and give them the "wonderful" news that around 400-500 recipes are going to be stripped out of the cooking update, but not to worry because the wonderful "expandability" means they can write their own recipes from scratch  and add them all in one at a time using JSON templates, and most of them will blanche and hope to GOD some kind person does most of this for them, since WU developers have decided to make them write their own content now. Meantime they can maybe make butter and fish stew and a few other rough basic recipes, Instead of improving much of the "entry gate" for people running their own personal family server, they have now obfuscated it even more -- which i did not suspect possible. 

 

I didn't mind not getting the Rift system, I wasn't really into that so I didn't really CARE, but the rifts + cooking update seem to be the beginnings of a deliberate decision by the new WO development to deliberately penalize people who bought WU by literally removing update content  then graciously 'allowing" them to mod it back in ... if they can figure out how.

 

 

What was the rationale for removing hundreds and hundreds of recipes in the first place, leaving only a few score boilerplate "templates"?  To not "spoil" surprises for WO players? They already had a month or more on the test servers and another six weeks in WO to "discover" the new content without having it "spoiled".  Will this be the new justification for removing other new content from future WU updates, so WO players won't have to worry that so-called "script kiddies" are going to spoil other new content by sharing basic information about the game?

 

The only way to avoid that -- which they knew before they even launched Wurm Unlimited -- is simply by not giving them some of the content at all.  That breaks the promise that Rolf made when he announced Wurm Unlimited -- that WU players would be getting the  exact same content updates as the WO players.

 

This is not only unethical, it is possibly even illegal. Or at least so it seems -- i am still hoping WU devs will pop in and explain how I have it all wrong. 

 

 

 

 

I made many of the same points you are mentioning here at the time of the rift decision. A promise is a promise and when it's attached to a sales agreement it tends to carry heavier weight however at the end of the day is anyone likely to start a court case or steam appeal process over this? I doubt it and I suspect the officials do too.

 

Unfortunately it had much bigger impacts then that. As soon as WO decided to stop honouring the promise to provide what they said they would provide, there was a definite change in people's thoughts around sharing back from WU to WO. In the end I think WO gave up way more then they saved when they went back on their word. WU is where people are going to try new things. Some, not all, of those things could have a dramatic impact on WO. The chance of the information getting back to WO so they can profit from the learning goes down with each choice they make to reduce WU.

 

 

Share this post


Link to post
Share on other sites

As far as recipes goes, one of the best way we can deal with this is to start sharing recipes. Once we have the WO recipes documented it shouldn't be too hard to generate some .json files and package them up in a archive.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this