Jump to content

Hey Klei, I made this for you!


Recommended Posts

Hey Klei!
Happy Klei Fest and congrats on new Content Pack release!

Remember last Content Pack for ONI? The one with pixels and automation? During "Rhymes with Developers" twitch stream, one of you said something like "You know what? I'd like to see somebody making The Game of Life using those pixel packs!". You thought nobody would be insane enough to do this? Well, here I am! And this save file is for you! Happy Klei Fest everybody!

(You must have DLC to load the save. For best experience, I suggest loading the save with "Useful Tags Lite" mod by Ronivan, I used tags to make some labels. It is not required to run the game, however)

So how does it work?

Here is the main screen, you can see how the game develops here. To start the game, press PWR button.

Spoiler

mainScreen.thumb.png.8653556a609605e073751141504c2dd4.png

Use this screen to setup initial board state. The game uses Multiplexers to switch between data from initial board or calculated memory state. The multiplexers are controlled by logic counter that counts game clock signals and is cleared when the power button is turned off.

Spoiler

step0.thumb.png.04910625c6f1b0b43c6d97fc5263b4f4.png

This is single calculation unit. It reads value of a pixel and broadcasts it using DLC Signal Broadcaster. This is used to reduce wire mess I ended up with when I tried to do this before the DLC... Signals from 8 surrounding cells are recived by related Signal Receivers. Each of them turns ceiling light on or off, based on pixel value. Total wattage is being measured by 2 pairs of Power Sensors: 1s pair checks >19 && <21 condition (exactly 2 neighbour cells alive), 2nd pair checks >29 && <31 condition (exactly 3 cells alive). The result, along with information if the processed cell is currently alive is used to determine if the cell should be alive during next step. 

To run the game on 8x8 board, 64 of those units are required.

Spoiler

calculate.thumb.png.7239afe30997ccb8e199b76d01db1e3f.png

This is single memory unit. It is controlled by clock signal and stores information about each cell status. Output of it is connected to the main screen.

Spoiler

memory.png.46bb6b8a02aa5ce6cabb57ec8d3b9d8b.png

Game clock is made out of BUFFER-FILTER-NOT gates, to allow easy reset on PWR signal change. CLK signal is AND-ed with PWR, to avoid clock ticking when the PWR is off. Also, CLK is connected to Logic Counter to determine if the game should use initial, user-defined state or calculated one. Border mode defines constant value of cells that are not visible (beyond the game border). By default it is 0, but you can set it to 1 to see some patterns appearing on the screen.

Spoiler

PwrClk.thumb.png.04c0ee11626e153b0063595e0b1d0c9b.png

Duplicants are happy and alive. Spawn them more food if they will go hungry.

Spoiler

base.thumb.png.ab8694c30c2f25e904a43dbbd8cc8f21.png

I made an aligment error for my design, and ended up with tones of free space below. I used it to showcase some Game of Life basic patterns that move, oscilate, or remain unchanged. I still got many unused cells, so Idk, use sandbox to populate them with life?

Limitations and areas for improvement:
- I found no way to make playing screen in 12x12 or 16x16 size, 8x8 is max square I could do.
- Signal Broadcasters and Receivers will not work if there is too many solid tiles above them. 8 layers is max.
- CLK frequency cannot be too small or you will see garbage due to gate response time. 2 seconds is a safe value. If you want faster animation, increase game speed, not CLK settings.
- Whole system depends on Ceiling Lights glowing when reciving signal. When they overheat, everything breaks.
- Step0 board could be displayed on main screen, it would be nice.

If anyone has better ideas how to make bigger board, animate steps faster or improve the design in any way, please share save files with your designs :) 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...