Friday Facts #392 - Parametrised blueprints
-
- Manual Inserter
- Posts: 1
- Joined: Thu Jan 11, 2024 1:33 pm
- Contact:
Re: Friday Facts #392 - Parametrised blueprints
Super cool idea tbh, can't wait to see what people do with it!
Re: Friday Facts #392 - Parametrised blueprints
This is really cool! I tried to do a similar experiment myself to get Bing chat to play Bitburner (not minecraft) a while back, but I didn't have the sort of organized prompts or iterative prompting that they set up in that paper, and with the response limit per conversation for the Bing chat, it did not go well.Blitz4 wrote: ↑Sat Jan 06, 2024 8:20 am...
Allow me to show you one extreme example to that theory. Could be the future, who knows. So nVidia, they wrote a paper for an AI that would beat Minecraft, but more than that. It wrote instructions to perform the tasks in the game that are required to beat Minecraft as fast a possible. It improved those instructions through a variety of ways, primarily by learning & testing over many iterations. Cool right. It gets better. This was crated using ChatGPT4. Doing so allows the AI to receive instructions from the player. The AI can be playing as if they were the player at every moment to decide what's the most efficient path to the end goal (beating the game), but not share what they're thinking to the player. (I just said AI is thinking, oh boy). What's cool is if the player needs help at any time, they can say, "What's the best thing for me todo right now?" Or "What's the fastest way to build a boat from where I'm at?"
Video covering it in good detail "Minecraft AI - NVIDIA uses GPT-4 to create a SELF-IMPROVING autonomous agent.":
https://www.youtube.com/watch?v=7yI4yfYftfM
...
What's really interesting to me is how the skill library in their agent is so similar to blueprints in Factorio. Instead of prompting it for every action, they prompt it to create skills, iterate on them until they work properly, then store them to be used at later times. As it progresses, it abstracts groups of smaller tasks into one task, allowing it to manage larger tasks without getting bogged down with those smaller tasks.
-
- Manual Inserter
- Posts: 1
- Joined: Mon Jan 15, 2024 6:12 pm
- Contact:
Re: Friday Facts #392 - Parametrised blueprints
I didn't have a chance to read through this entire thread, so forgive me if this has already been mentioned, but...:
In addition to parameterized blueprints, it would be very useful to have some kind of "smart upgrader" that could be placed along with the blueprint. What it would do is "watch" for changes to a linked blueprint (located in the blueprint book), and any time that blueprint is updated, it would automatically deconstruct/reconstruct anything that changed in the blueprint. It would have to look at the previous version first to find anything that's been removed, then the new version for additions/changes.
In my megabase this would allow me to make updates and fixes to things like train loaders or entire city blocks, and they propagate automatically throughout.
In addition to parameterized blueprints, it would be very useful to have some kind of "smart upgrader" that could be placed along with the blueprint. What it would do is "watch" for changes to a linked blueprint (located in the blueprint book), and any time that blueprint is updated, it would automatically deconstruct/reconstruct anything that changed in the blueprint. It would have to look at the previous version first to find anything that's been removed, then the new version for additions/changes.
In my megabase this would allow me to make updates and fixes to things like train loaders or entire city blocks, and they propagate automatically throughout.
- Unknow0059
- Long Handed Inserter
- Posts: 99
- Joined: Tue Aug 08, 2017 7:37 pm
- Contact:
Re: Friday Facts #392 - Parametrised blueprints
I wasn't clamoring for this but it's useful to have.
Re: Friday Facts #392 - Parametrised blueprints
Very cool. For a few type of games, I believe the paper is more useful than most perceive at first glance. Automated & interactive tutorials are one benefit. Also higher game completion rate would be another benefit. But the big one to me that'd noticeably change games forever would be: dynamic difficulty.Zanthra wrote: ↑Sun Jan 14, 2024 8:25 pmThis is really cool! I tried to do a similar experiment myself to get Bing chat to play Bitburner (not minecraft) a while back, but I didn't have the sort of organized prompts or iterative prompting that they set up in that paper, and with the response limit per conversation for the Bing chat, it did not go well.Blitz4 wrote: ↑Sat Jan 06, 2024 8:20 am...
Allow me to show you one extreme example to that theory. Could be the future, who knows. So nVidia, they wrote a paper for an AI that would beat Minecraft, but more than that. It wrote instructions to perform the tasks in the game that are required to beat Minecraft as fast a possible. It improved those instructions through a variety of ways, primarily by learning & testing over many iterations. Cool right. It gets better. This was crated using ChatGPT4. Doing so allows the AI to receive instructions from the player. The AI can be playing as if they were the player at every moment to decide what's the most efficient path to the end goal (beating the game), but not share what they're thinking to the player. (I just said AI is thinking, oh boy). What's cool is if the player needs help at any time, they can say, "What's the best thing for me todo right now?" Or "What's the fastest way to build a boat from where I'm at?"
Video covering it in good detail "Minecraft AI - NVIDIA uses GPT-4 to create a SELF-IMPROVING autonomous agent.":
https://www.youtube.com/watch?v=7yI4yfYftfM
...
What's really interesting to me is how the skill library in their agent is so similar to blueprints in Factorio. Instead of prompting it for every action, they prompt it to create skills, iterate on them until they work properly, then store them to be used at later times. As it progresses, it abstracts groups of smaller tasks into one task, allowing it to manage larger tasks without getting bogged down with those smaller tasks.
That means, no more choosing Easy, Medium or Hard in a game. To me, that's often the first boss of a game, typically it's a boss that fights with hidden rules and causes you to battle yourself. It's not a good feeling and then to have near every player experience it before the game begins.
Had that on my whiteboard for a while. Yes it is about game design and yes stating something like 1 & 2 does mean the game is being designed to be a "fun experience" instead of the best game it can be. Meaning focusing on how others will perceive your work, instead of your vision and what you find fun, adds a constraint to the design. So I put it in the context of only being used when "AI creates challenges for the players." It's a big conversation and a waste of time when you attempt to define player challenges, as solving challenges is a part of every game. The idea is to find ways to use that paper to create dynamic difficulty for the player. How players perceive and go about solving challenges vary from player to player, so having an AI able to create the correct challenge at the right time. Yet for PC games, that is hard. Most all PC games today have some form of sandbox element to them. How could it be used right now to create dynamic difficulty?AI creates challenges for the players:
1. Challenging for the pro's
2. Fun for the casual's
RimWorld. A game that uses "story agents" which throw varying amounts of challenges at the player the agent you chose. Since the AI was tasked to solve a linear problem (beat the game as fast as possible) and studied patterns from a variety of players. It'd have to know how to beat the game as fast as possible at any stage in the game. Then it could assign a +- of how the player is progressing toward the end goal, like a chess engine. If the player is going too fast, the AI could throw some big challenges their way. If the player is going too slow, then it could throw some free items their way. That would fit the definition of dynamic difficulty and shows a way it could be used in a sandbox game.
I don't know how it'd be used in Factorio exactly. I like the "Base in a blueprint book" idea. Another one, you just finished building something and don't know what to work on, that AI would know and could prove whatever it suggested. I'm curious if playing around with it in a short scenario would be a faster way of playing with it, as that'd reduce the training time & resources needed. There's a lot of awesome scenarios in the game.
Funny, I just played bitburner first time this year. Took me about 90 minutes until I understood, I'm reading the game's API guide with the intention of creating a worm in JS. That's when I knew that the old "hacking" games are old, lol
Re: Friday Facts #392 - Parametrised blueprints
Rimworlds storytellers are dogshit. The only meaningful way to play is randy random, which is literally random, instead of stupid scaling according to your "wealth".
Any scaling according to the player in general is detrimental to any progression feeling.
There is no reward for getting better, no feeling of accomplishment.
Any scaling according to the player in general is detrimental to any progression feeling.
There is no reward for getting better, no feeling of accomplishment.
Pony/Furfag avatar? Opinion discarded.
Re: Friday Facts #392 - Parametrised blueprints
No , the AI didn't tried to beat the game as fast as possible this is the alpha-go or stockfish AI in chess, this is not chatGPT. What the AI presented in the video does is repeat what it thinks human would do based on what it gathered from the internet. It would the same way tell you how to play soccer, without having any actual clue from its own , only repeating things considered "trusted".
Had the AI tried to beat the game itself as fast as possible,it would do something similar to a speedrung using all glitches possible and bugs from the program itself, and it would be just very bad experience as tutorial.
Re: Friday Facts #392 - Parametrised blueprints
Good point.
Re: Friday Facts #392 - Parametrised blueprints
Oh, this is fantastic!
Re: Friday Facts #392 - Parametrised blueprints
I love this!
I had a similar issue with overengineering train stations which i wired to check supply and demand of whatever they were loading or unloading. And quickly figured I can't do a generic solution for each product in the game and doing all of them by hand would take forever (It would also torment me once done because I would have to redo them all if I came up with a better plan later on, which happens all the time.)
My solution was to create a blueprint that loaded or unloaded spidertrons, and export the blueprint string.
I was reading on the forum about how the blueprint string format works and figured out how to decompres and decode it back to json. Then search and replace every occurence of spidertron in it to ... everything else. put all of the thusly generated code in a new blueprint book as described here: https://wiki.factorio.com/Blueprint_string_format
then redid the encoding and compression originally undone and import it to get a blueprint book with a unloading and loading station for each item.
It was a fun project, and with your improvement obviously obsolete.
But that is how improvement is done, and I won't have to search a humongously large blueprint book for the specific station type I want anymore either.
I had a similar issue with overengineering train stations which i wired to check supply and demand of whatever they were loading or unloading. And quickly figured I can't do a generic solution for each product in the game and doing all of them by hand would take forever (It would also torment me once done because I would have to redo them all if I came up with a better plan later on, which happens all the time.)
My solution was to create a blueprint that loaded or unloaded spidertrons, and export the blueprint string.
I was reading on the forum about how the blueprint string format works and figured out how to decompres and decode it back to json. Then search and replace every occurence of spidertron in it to ... everything else. put all of the thusly generated code in a new blueprint book as described here: https://wiki.factorio.com/Blueprint_string_format
then redid the encoding and compression originally undone and import it to get a blueprint book with a unloading and loading station for each item.
It was a fun project, and with your improvement obviously obsolete.
But that is how improvement is done, and I won't have to search a humongously large blueprint book for the specific station type I want anymore either.
Re: Friday Facts #392 - Parametrised blueprints
I don't see the point of this feature - it seems to be an added complexity that puts further menus over the top of the game that is supposed to be being played. Instead of looking at say a train stop blueprint, now I'm looking at an over complicated editor that is like a programming language that probably only programmers will understand.
We've always wanted a blueprint editor, why not make one instead? If you want to quickly replace filters, IE replace a filter of a green circuit for a red, click a filter in the blueprint, it should pop up as always. Change it, and it should say do you want to replace all filters with the same recipe? IE green and change to red. Yes - boom, done. Or use the tried & true, copy & paste, with an option to paste-all of same type.
Why make something completely new that obfuscates the issue?
We've always wanted a blueprint editor, why not make one instead? If you want to quickly replace filters, IE replace a filter of a green circuit for a red, click a filter in the blueprint, it should pop up as always. Change it, and it should say do you want to replace all filters with the same recipe? IE green and change to red. Yes - boom, done. Or use the tried & true, copy & paste, with an option to paste-all of same type.
Why make something completely new that obfuscates the issue?
Re: Friday Facts #392 - Parametrised blueprints
Shingen wrote: ↑Fri Jan 05, 2024 12:25 pmfor some usecases it's really cool, but i do have my doubts about some parts of it.
1. what would happen if you selected a recipe with 2 ingredients? what about 4?
2. the formulas allowing for certain ratios of ingredients make the blueprints 'generalized'... but only for recipes with the exact same ratios of ingredients (and posiibly also the count of ingredients [1]), which is only 1 step away from just having a blueprint for a specific recipe. doesn't seem that hugely useful.
3. while parameters 1-3 may easily exist as filters in blueprinted train stop inserters, in what manner does the parameter 0 exist in the blueprinted factory? will i need, for example, a constant combinator with that signal placed somewhere while blueprinting?
Same thought here. Is there a way to get the ingredient count from the recipe or the recipe time?
For iron gear wheels I want to request a lot of iron ahead of time given how fast that gets consumed. For centrifuges on the other hand a very small multiplier will suffice. And for electronic circuits I want 2 iron plates to 3 copper plates as per the ratio in the recipe.
Re: Friday Facts #392 - Parametrised blueprints
I have to agree. The way the new menus are presented, at least at the moment, there are a features that are only useful for specific playstyles, and the effect of each control is non-obvious if you aren't using that exact playstyle. We're going to see a whole new set of mods and workarounds to make them work for other users. Much simpler to let the user change, copy and paste settings the same way they do everywhere else.Dune wrote: ↑Thu Feb 22, 2024 4:26 am
We've always wanted a blueprint editor, why not make one instead? If you want to quickly replace filters, IE replace a filter of a green circuit for a red, click a filter in the blueprint, it should pop up as always. Change it, and it should say do you want to replace all filters with the same recipe? IE green and change to red. Yes - boom, done. Or use the tried & true, copy & paste, with an option to paste-all of same type.
Why make something completely new that obfuscates the issue?
My mods: Multiple Unit Train Control, Smart Artillery Wagons
Maintainer of Vehicle Wagon 2, Cargo Ships, Honk
Maintainer of Vehicle Wagon 2, Cargo Ships, Honk
- NotRexButCaesar
- Smart Inserter
- Posts: 1133
- Joined: Sun Feb 16, 2020 12:47 am
- Contact:
Re: Friday Facts #392 - Parametrised blueprints
That is a completely separate word. One is para-meter-isation, and the other is para-metric-isation (the c is left off and the <i>s merge.)mmmPI wrote: ↑Sat Jan 06, 2024 11:34 pmThat's how it's spelled in french, but apparently it's also a valid spelling in english , or at least in mathematics.Annihilannic wrote: ↑Sat Jan 06, 2024 10:54 pmIt's "parameterisation" (UK) or "parameterization" (US)... pretty sure it is "parametrisation" nowhere?
https://en.wikipedia.org/wiki/Parametri ... (geometry)In mathematics, and more specifically in geometry, parametrization (or parameterization; also parameterisation, parametrisation) is the process of finding parametric equations of a curve, a surface, or, more generally, a manifold or a variety, defined by an implicit equation
Ⅲ—Crevez, chiens, si vous n'étes pas contents!
Re: Friday Facts #392 - Parametrised blueprints
uh ? In the wikipage they say " "To parameterize" by itself means "to express in terms of parameters".NotRexButCaesar wrote: ↑Wed Apr 24, 2024 4:31 amThat is a completely separate word. One is para-meter-isation, and the other is para-metric-isation (the c is left off and the <i>s merge.)mmmPI wrote: ↑Sat Jan 06, 2024 11:34 pmThat's how it's spelled in french, but apparently it's also a valid spelling in english , or at least in mathematics.
https://en.wikipedia.org/wiki/Parametri ... (geometry)In mathematics, and more specifically in geometry, parametrization (or parameterization; also parameterisation, parametrisation) is the process of finding parametric equations of a curve, a surface, or, more generally, a manifold or a variety, defined by an implicit equation
There this other page of disambiguation : https://en.wikipedia.org/wiki/Parametrization.
To me they are the same word with the same meaning, like parametric equation of a circle https://www.mathopenref.com/coordparamcircle.html
To me that seem fitting to use the math word/spelling. Even if there are several regional variations for it.In the above equations, the angle t (theta) is called a 'parameter'. This is a variable that appears in a system of equations that can take on any value (unless limited explicitly) but has the same value everywhere it appears. A parameter values are not plotted on an axis.
What would para-metric-isation means ? if not the same as "para-meter-isation".
Re: Friday Facts #392 - Parametrised blueprints
Any plans to add this to 2.0? Can this be done with a mod?
-
- Fast Inserter
- Posts: 120
- Joined: Sun Feb 25, 2024 10:23 am
- Contact:
Re: Friday Facts #392 - Parametrised blueprints
Now that I played with this parametrization a bit, I'd really like this feature request to be implemented. Having formulas that can depend not only on other variables but also on some object properties (like stack size of an item selected in another parameter) would be really cool! For now I need extra constant and selector combinators for this.
Re: Friday Facts #392 - Parametrised blueprints
You can already do that. Lets say your item is P0, p0_s will give you stack size of that item and you can use that in formulas for other values.fly wrote: ↑Fri Nov 01, 2024 6:52 pmNow that I played with this parametrization a bit, I'd really like this feature request to be implemented. Having formulas that can depend not only on other variables but also on some object properties (like stack size of an item selected in another parameter) would be really cool! For now I need extra constant and selector combinators for this.
Re: Friday Facts #392 - Parametrised blueprints
Oh, awesome, thanks! I didn't see this in the FFF.ElderAxe wrote: ↑Fri Nov 01, 2024 7:05 pmYou can already do that. Lets say your item is P0, p0_s will give you stack size of that item and you can use that in formulas for other values.fly wrote: ↑Fri Nov 01, 2024 6:52 pmNow that I played with this parametrization a bit, I'd really like this feature request to be implemented. Having formulas that can depend not only on other variables but also on some object properties (like stack size of an item selected in another parameter) would be really cool! For now I need extra constant and selector combinators for this.