FLACTORIO

What is this?

This a factorio generator in javascript to fetch a blaseball game from sibr and render it in-game.


What

The Society for Internet Blaseball Research decided to ruin everyone's August by having a hackathon to create the most cursed way to view a blaseball game. This is my submission.


Where is the code

https://github.com/dnathe4th/flactorio


How does it work

After fetching the set of game events from SIBR, several dictionaries of data are constructed for use in the replay (list of home team player names, list of away team names, list of scores, etc. etc.). Displays are generated (static or scrolling depending on the use) based on the size required by the data, and Decider Combinator / Arithmatic Combinator / Constant Combinators set with the necessary values are wired up to the displays. A clock ticks the heartbeat of the replay to sync across the various displays and stores.


What

blaseball base layout

Here's a visual layout of a game, very zoomed out. It has the following components:

  1. Storage for all text updates of the game, left section for individual letter rendering, middle section for word rendering, right section to sentence rendering.
  2. Scrolling display for game events.
  3. Static displays for current game state, including blaseball diamond.
  4. Storage for each game event.

Sure but like, does it work?

animated gif of blaseball replay

You be the judge.


Crowvertime?

crowvertime in flactorio

Sure why not.


Doesn't seem very cursed

The blueprint takes A LOT of components, sometimes in the 10's of thousands. A sub-average player like myself would likely need to spend upwards of 15 hours in factorio to get to a point where there are enough machines and robots and such to construct the blueprint.


What if I am willing to cheat?

Factorio has some cheat commands that allow you to give yourselves items and such, that might be a short cut if you REALLY want to watch a game in factorio but can't be bothered to actually play factorio.


OK I built the blueprint, how do I get it to run?

The replay does not start on its own, because there is no way to know whether the construction is "done" before hte game loop starts. You need to connect a single red wire at the components between the Game Events block and the Home Team display. Take a look, you want to turn this:

how to start the replay

into this:

how to start the replay

Where can I read more?

I wrote a lil tweet thread about the development process. Enjoy.


What's next?

Probably bug fixing, or sleep. It took a lot longer than I thought. Also maybe some css so this site isn't ugly as sin.


Final thoughts?

Thanks to the SIBR team for a great event, and a great dataset to work off of. Also thanks to the factorio team work making blueprints really easy to use. Thanks svelte team for a cool little javascript framework I learned for this project. Thanks to my wife for feigning interest in my weird hobbies. Thanks cloudflare workers for ezpz static hosting. Thanks Chorby Short for being a lil frogo.