This is an interesting kind of game. The drudgery of all the clicks and drags make you long for a more efficient way to get to the payoff of seeing new combinations. But the more efficient the mechanics are, the less of a game it is and more of just a spreadsheet showing the combinations.
You need a way to make the actual discovery process fun. So you could build a factorio-style pipeline that makes discovery more efficient over time. So that way the mind stays engaged for longer. I wonder what minimal set of game mechanics would fall out if you kept working on it.
This was a cool little game and even after I gave up at 32 and checked here (https://littlealchemyguide.com/) for how to make stuff, it still amused me.
I kept seeing Ice in the random hints, and I'm like HOW DO I MAKE ICE??
So I typed Ice into the guide and it gave me Cold + Water. Duh, but how do I make Cold? Human + Rain. WTF?
So how do I make Human? I can't even make Plant! And this spiral started(I chose a combo that I had at least one of):
Human = Earth + Life
Life = Energy + Swamp
Swamp = Grass + Mud
Grass = Earth + Plant
Plant = Earth + RAIN..... Facepalm.
The combinations are also an interesting look into the developers minds and can be pretty funny. For example, Bird + Ocean = Seagull. Of course! Bird + Earth? Ostrich. Haha
I played this years ago, it's better to think of this separate from each other. As in remove the context of previous ingredients when making new things
Then you can run this Python code to extract/merge into one single file:
import json
with open('res.json', 'r') as f, open('names.json', 'r') as ff:
res = json.load(f)
names = json.load(ff)
for res_id, res_name in names.iteritems():
print("%s:" % res_name)
for id1, id2 in res[str(res_id)].get('parents', []):
print("\t %s + %s" % (names[str(id1)], names[str(id2)]))
Expected output:
glacier:
ice + mountain
cart:
wheel + wood
nerd:
human + glasses
doctor:
human + hospital
wagon:
cart + horse
newspaper:
paper + paper
paper:
wood + pressure
I wanted to see it in graph form, so a wrote I did pretty much the same but printed a dot code and piped that into dot. It was a disaster: A huge, unreadable mess. Try yourself if you're feeling adventurous:
import json
with open('base.560.json') as f:
base = json.load(f)
with open('names.560.json') as f:
names = json.load(f)
print('digraph {')
for elnum, name in names.items():
print(f'e{elnum} [label="{name}"];')
for elnum, body in base.items():
for el1, el2 in body.get('parents', ()):
print(f'e{el1} -> e{elnum};')
print(f'e{el2} -> e{elnum};')
print('}')
# python3.6 code.py | dot -Tpng dot.png
There's a fun iOS game called GlyphQuest that works something like this -- there's a hexagonal grid of elements, and a monster. Connecting enough "like" elements (and, later on, combinations of elements) causes attacks on the monsters. Cute graphics, some nice leveling up mechanisms, well done.
So it looks like earth is in the "C" slot. Why is it that when I type "C", a text field appears and starts filtering out elements by name?
After seeing this happen, I tried typing out the whole word "earth" and hitting enter. Nothing. I tried typing "?" for help. Still nothing... "/" opens a find search box. By opening that and typing "fire", and then hitting escape, I've got fire hilighted. So I hit enter... nothing. I hit space... now the useless text field is there.
>Earth looks like it's in the "C" field because you have very few elements. The more elects you create starting with "C" the less it looks like that.
There's no way for a fresh visitor to know that! The game should have some sort of basic instructions and at least consider the onboarding experience... and I say this as some who has created web games that fail on this front.
Is any way to select things with the keyboard? I've got an somewhat injured wrist and can't be doing hundreds of repeated click and drag motions via the mouse or touchpad.
(Yes, the slash behavior defaulting to search is part of FF, but it's also used to bring up keyboard shortcuts on Slack and many, many other sites)
Update: I see how the game works now. If it hadn't been on the front page of HN, I definitely would have just gone through the steps in my comment above, clicked on a couple of icons and bounced. Hope the feedback helps (assuming the creator reads this and wants people not to bounce)
function combRep(arr, l) {
if (l === void 0) l = arr.length; // Length of the combinations
var data = Array(l), // Used to store state
results = [
]; // Array of results
(function f(pos, start) { // Recursive function
if (pos === l) { // End reached
results.push(data.slice()); // Add a copy of data to results
return;
}
for (var i = start; i < arr.length; ++i) {
data[pos] = arr[i]; // Update data
f(pos + 1, i); // Call f recursively
}
}) (0, 0); // Start at index 0
return results; // Return results
}
var parents = [];
for(b in bases.base) {
if (bases.base[b].parents != undefined) {
for (p of bases.base[b].parents) {
parents[p.sort().join('-')] = b;
}
}
}
function gethints() {
combinations = combRep([1, 2, 3, 4].concat(game.progress), 2);
for (c of combinations) {
let idx = c.sort().join('-');
if (parents[idx] != undefined && game.progress.find((e, i, a) => parents[idx] == e) == undefined) {
console.log(bases.names[c[0]], bases.names[c[1]]);
}
}
}
unfortunately it stopped working for me after about 25; some kind of bug. i could no longer drop new things onto the canvas; they were not "droppable."
This happened to me immediately after dropping the first two things on the canvas. There was a message in the console from their drag-and-drop implementation about some variable being undefined. It seems like they don't handle long latencies gracefully; the assets took more than 2 minutes to appear. (Before that, everything was just a boring beaker with some text.)
IMO Sometimes finding the goal is part of the fun. Minecraft similarly has no end goal for the game, at least initially. The goal driven storyline was added later I believe.
For me recognizing that the count on the left is simply new items I discover out of possible 560 was part of the fun aspect of this surprisingly simple but engaging game
Minecraft still doesn't have a storyline. Unless you count the achievement system, I guess. Or the separate point-and-click that has nothing to do with the actual game.
The goal is to turn yourself into a neural network adapting to the peculiarities of the environment in order to solve the given task as quickly as possible.
Playing this game has given me more insights into the intersection between human problem solving and algorithmic problem solving than any puzzle I've worked on since Sudoku.
I'm at 284 elements discovered and I don't think I'll only go through this once. I may end up downloading the tree, and writing programs to traverse it.
You need a way to make the actual discovery process fun. So you could build a factorio-style pipeline that makes discovery more efficient over time. So that way the mind stays engaged for longer. I wonder what minimal set of game mechanics would fall out if you kept working on it.