Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Hypersplit – Like Infinite Craft but in reverse (lantto.github.io)
61 points by hopfog 6 months ago | hide | past | favorite | 23 comments
Hypersplit is like Neal's Infinite Craft but turned upside down. Instead of crafting your way up from the four elements, you start big and go small, down to quarks.

It's using GPT-4 to split the words, but a big difference from Infinite Craft is that I can precalculate the possible paths since they are limited (sooner or later you hit a quark or a loop). This means that I can ship it with the whole dictionary locally instead of hitting an LLM every split.

While it started with just the splitting, I quickly got the urge to split things faster... which turned the app into the incremental clicker it is now. It's pretty short and starts lagging a lot once things get crazy with a lot of chain reactions (turning off Effects helps a bit), but I plan to focus on optimizations next.

I also wanted to try and build something without any graphical assets. The whole game is all just emojis and CSS. A big gotcha is that you can't rely on emojis looking the same on different platforms (for example, on Windows, the explosions are misaligned).




Love to automate these types of things. Unfortunately there isn't much benefit to automating the shopping/leveling, as this performs far better than any passive bonus those provide

  let stop = false;
  let play = () => {
    const button = document.querySelector('[data-word-button]');
    if (stop || !button) return;
   button.click();
    setTimeout(play, 0);
  }

  play(); // to play
  stop = true; // to stop
  localStorage.clear(); location.reload(); // to restart


It was fun until I split "Latitude" and it gave me "Lat" and "itude"! Nice implementation though.


The Infinite Craft game was sending queries up to ChatGPT to make the new items, if I recall correctly. This one is happening so quickly it must be happening locally. Is that right? Is it using a local Javascript LLM?


It just has a giant database of concepts and their splits built-in. Most of the time it's pretty unnecessary to run an LLM (directly).

https://lantto.github.io/hypersplit/assets/index-DhIQc66H.js


Does it use ChatGPT thought? I thought Infinite Craft actually uses a fine-tuned LLama2 model.


> I thought Infinite Craft actually uses a fine-tuned LLama2 model.

Yeah, it does.


Infinite Craft was only sending queries to ChatGPT when it encountered a new combination. Otherwise it was hitting a remote cache, and I think also a local cache before that.

I am assuming that this game can fully pre-load everything, as all splits are predictable.


There aren't any network calls; It's all pre-fetched and stored in the javascript file. The file itself seems to be tagged to the build, but it's in the ./hypersplit/assets/index-<ID>.js file.


There are no network requests when splitting, so I believe it's all local. Not sure a local LLM would be necessary if all the splits are deterministic and pre-computed.


This was cool but then after leaving it running and switching back to the tab caused it to hang until the tab got killed and I lost progress.


Sorry about that! I realized too late that the game is really badly optimized once you hit higher levels and start getting chain reactions. Turning off Effects helps for some things.

I wonder how far you can push the DOM. It gets crazy with so many element updates after a while but there are probably many performance improvements that can be done.


I understand, it would be nice if it periodically wrote out the score/etc to localStorage or similar. I got reset to the level I was on but I was up to ~$2K gold if I had gone to the next level that was reset. Far from the end of the world.


I played about an hour before lunch and then went home and was surprised how stable it was, with everything that was going on...

https://ibb.co/S62sY5Z


Proton should probably be splittable into quarks.


Getting the second resource (can't post emojis here) means you hit a quark, loop or a dead-end. I have a version where it continues splitting to up/down quarks and then fantasy matters but it quickly derails into chaos.


There's a Quark unlock you can buy with the prestige points, maybe it's unlocked by that


https://ibb.co/x2BC9v9 what is going on, help


Try pressing the wizard. I should probably make it clearer on mobile and highlight it once you can afford your first cat.


Innovation > Execution + Creativity > Imagination > Memory > Storage + Retrieval > Re + Trieval


Game idea for someone with more time than me: an LLM powered "roguelike".

You fine-tune the LLM to spit out RPG skills based on the player's chosen class. (Dwarven princess = summon dwarf minions, has a rare bloodline magic, whatever). The classes could get _real_ weird, like a school bus character could summon school children minions and skill up to flying a la The Magic School Bus. (Or that could be a prestige class haha.)

A second model would match the RPG skills to a known/finite set of game mechanics supported by your game. This is ultimately a simple classifier - not really an LLM (though the skills on the input side are language, okay pedants). Determining the set of game mechanics to support shouldn't be too hard - how many different ways of doing damage and (de)buffs could there be? (Okay there can be a shit-ton.) Balancing the game could be done live via reinforcement learning. To constrain the search space, it'd follow the old Zelda format of limiting you to one room/screen until the enemy is defeated (or like Binding of Isaac for those too young.)

It'd have to use 2d/sprite based/placeholder graphics because I don't think the rigging/animation AI is currently good enough... but bad graphics hasn't stopped fun gameplay before. Imagine Charizard vs Death Star. Good luck with the DMCAs.

Another problem is that with simple graphics and literally infinitely variable enemies, there's no learning on the player's side so there's no real "skill" accumulation to improve on for the next run. There would be a lot of reading on the player's part if you decide to just show a stats-list for an enemy type. I suppose you could turn it into a zombie game where new enemies are slowly introduced in a horde of other enemies the player's familiar with.


Hey this is a pretty cool idea. I tried exploring this on a live stream a few months ago where I made an endless RPG with an llm i believe I was using llama 2 at the time. Check it out if you have any ideas to improve let me know --> https://www.youtube.com/watch?v=xPbM5Rs1_8Y


[flagged]


Not only is this unnecessarily rude, it is also not the case, as noted by a comment posted almost three hours before this one.


> BTW, calling LLM shit out for what it is

Calling things out for what you interpret them as falls on a spectrum of “politely raising concerns” and “just being unnecessarily dickish”. You were definitely towards the wrong end of that initially, with the added dimension of being wrong due to assuming things instead of actually taking a second to look at what you are commenting on, and your edits have not improved the impression you are giving of yourself.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: