Tetris... in Factorio?

This board is to show, discuss and archive useful combinator- and logic-creations.
Smart triggering, counters and sensors, useful circuitry, switching as an art :), computers.
Please provide if possible always a blueprint of your creation.

Tetris... in Factorio?

Postby flyco » Wed Mar 16, 2016 12:01 pm

Having played a few dozen hours, I absolutely love the game... and am particularly intrigued by the circuit-related possibilities.

What do you think... it should be possible to implement a working Tetris game in Factorio, right?
flyco
Burner Inserter
Burner Inserter
 
Posts: 5
Joined: Wed Mar 16, 2016 11:56 am

Re: Tetris... in Factorio?

Postby Hexicube » Wed Mar 16, 2016 6:00 pm

The circuits should be turing complete, so it's theoretically possible to make anything you want with the circuits (limited by space). Whether or not anyone on these forums has the brains and patience to make tetris work is another matter...
Hexicube
Fast Inserter
Fast Inserter
 
Posts: 156
Joined: Wed Feb 24, 2016 9:50 pm

Re: Tetris... in Factorio?

Postby mooklepticon » Wed Mar 16, 2016 8:22 pm

Using combinators and lights as pixels, it theoretically could be done.
mooklepticon
Fast Inserter
Fast Inserter
 
Posts: 233
Joined: Wed Mar 02, 2016 10:09 pm

Re: Tetris... in Factorio?

Postby DaveMcW » Wed Mar 16, 2016 9:01 pm

I'm already working on this. ;)

The 7 colored lights in 0.13 will be perfect.

The main problem is getting player input, it is quite awkward without mods.
User avatar
DaveMcW
Smart Inserter
Smart Inserter
 
Posts: 2107
Joined: Tue May 13, 2014 11:06 am

Re: Tetris... in Factorio?

Postby XKnight » Thu Mar 17, 2016 1:53 am

DaveMcW wrote:I'm already working on this. ;)

The 7 colored lights in 0.13 will be perfect.

The main problem is getting player input, it is quite awkward without mods.


Challenge accepted.
XKnight
Filter Inserter
Filter Inserter
 
Posts: 329
Joined: Thu May 28, 2015 10:40 pm

Re: Tetris... in Factorio?

Postby XKnight » Thu Mar 17, 2016 6:12 am

XKnight wrote:
DaveMcW wrote:I'm already working on this. ;)

The 7 colored lights in 0.13 will be perfect.

The main problem is getting player input, it is quite awkward without mods.


Challenge accepted.


Challenge partially completed:

1.png
1.png (994.34 KiB) Viewed 15195 times


animation.gif
animation.gif (570.51 KiB) Viewed 15195 times


Unfortunately rotation was not implemented, because I am tired and this challenge a little bit boring.
But maybe I will come back to this task tomorrow :)
XKnight
Filter Inserter
Filter Inserter
 
Posts: 329
Joined: Thu May 28, 2015 10:40 pm

Re: Tetris... in Factorio?

Postby DaveMcW » Thu Mar 17, 2016 6:58 am

Some inspiration for rotation (and wall kicks!): https://tetris.wiki/SRS
User avatar
DaveMcW
Smart Inserter
Smart Inserter
 
Posts: 2107
Joined: Tue May 13, 2014 11:06 am

Re: Tetris... in Factorio?

Postby kovarex » Thu Mar 17, 2016 7:00 pm

That looks cool. How do you store the game state?
kovarex
Factorio Staff
Factorio Staff
 
Posts: 6281
Joined: Wed Feb 06, 2013 12:00 am
Location: Prague

Re: Tetris... in Factorio?

Postby XKnight » Thu Mar 17, 2016 7:23 pm

kovarex wrote:That looks cool. How do you store the game state?

1.png
1.png (41.06 KiB) Viewed 15064 times

Simple 2D array with 0/1 in each cell:

0 1 0 0 1 1
0 1 0 1 1 0
0 1 1 1 1 0
0 0 1 1 1 1
0 1 1 0 0 0

Each column can be represented as a single number:

0 1 0 0 1 1 | 16|
0 1 0 1 1 0 | _8|
0 1 1 1 1 0 | _4| => 0 29 7 14 30 18
0 0 1 1 1 1 | _2|
0 1 1 0 0 0 | _1|

Each number is stored as a unique signal
0 29 7 14 30 18 => "A" 0, "B" 29, "C" 7, "D" 14, "E" 30, "F" 18

As a result you can store 2D array with dimensions 180 x 32 inside one combinator.

Second combinator is used to store falling object.
XKnight
Filter Inserter
Filter Inserter
 
Posts: 329
Joined: Thu May 28, 2015 10:40 pm

Re: Tetris... in Factorio?

Postby Bart » Thu Mar 17, 2016 7:44 pm

XKnight wrote:
XKnight wrote:
DaveMcW wrote:I'm already working on this. ;)

The 7 colored lights in 0.13 will be perfect.

The main problem is getting player input, it is quite awkward without mods.


Challenge accepted.


Challenge partially completed:

1.png


animation.gif


Unfortunately rotation was not implemented, because I am tired and this challenge a little bit boring.
But maybe I will come back to this task tomorrow :)


OMFG :shock:
I have the cape.
I make the fucking whoosh noises.
User avatar
Bart
Long Handed Inserter
Long Handed Inserter
 
Posts: 73
Joined: Tue Jan 13, 2015 8:56 pm
Location: The Netherlands

Re: Tetris... in Factorio?

Postby XKnight » Thu Mar 17, 2016 8:44 pm

XKnight wrote:Unfortunately rotation was not implemented, because I am tired and this challenge a little bit boring.
But maybe I will come back to this task tomorrow :)


I decided to start working on the improved version, main goals:
- add rotation
- simplify collision check
- simplify L/R move
- reduce cycle length below 15 ticks at least
- increase interface responsiveness
XKnight
Filter Inserter
Filter Inserter
 
Posts: 329
Joined: Thu May 28, 2015 10:40 pm

Re: Tetris... in Factorio?

Postby kovarex » Thu Mar 17, 2016 9:08 pm

XKnight wrote:
kovarex wrote:That looks cool. How do you store the game state?

1.png

Simple 2D array with 0/1 in each cell:

0 1 0 0 1 1
0 1 0 1 1 0
0 1 1 1 1 0
0 0 1 1 1 1
0 1 1 0 0 0

Each column can be represented as a single number:

0 1 0 0 1 1 | 16|
0 1 0 1 1 0 | _8|
0 1 1 1 1 0 | _4| => 0 29 7 14 30 18
0 0 1 1 1 1 | _2|
0 1 1 0 0 0 | _1|

Each number is stored as a unique signal
0 29 7 14 30 18 => "A" 0, "B" 29, "C" 7, "D" 14, "E" 30, "F" 18

As a result you can store 2D array with dimensions 180 x 32 inside one combinator.

Second combinator is used to store falling object.

Cool, that is the reason there are 30 rows I guess :) (2^31 is the limit of the cominator numbers).

I'm quite surprised, that the setup is not too big, making this using redstone would probably be a lot bigger.

Is the map accessible?

It would be good to have some kind of button + switch entities to play with these kind of things, I'm not sure if we have it in the roadmap for 0.13, but it would be really easy to do.
kovarex
Factorio Staff
Factorio Staff
 
Posts: 6281
Joined: Wed Feb 06, 2013 12:00 am
Location: Prague

Re: Tetris... in Factorio?

Postby XKnight » Fri Mar 18, 2016 8:50 am

kovarex wrote:Is the map accessible?


Sorry, but I can not share the whole map, because it contains several other unique contraptions...
But you can find blueprint string for tetris here: http://factorioblueprints.com/view/hYvDtGfpLg8MjmYaS

You should put 1 green circuit into the "Interface chest" to move figure left, 1 red circuit - to move right.
To erase map you should rebuild "Map" combinator.

Just a small hint: you can place red/greed circuits on your quickbar (under the key "1" and "2"), and do not close chest window while playing.
XKnight
Filter Inserter
Filter Inserter
 
Posts: 329
Joined: Thu May 28, 2015 10:40 pm

Re: Tetris... in Factorio?

Postby flyco » Fri Mar 18, 2016 9:15 am

Blimey. I am filled with speechless amazement.

Wow!
flyco
Burner Inserter
Burner Inserter
 
Posts: 5
Joined: Wed Mar 16, 2016 11:56 am

Re: Tetris... in Factorio?

Postby DaveMcW » Fri Mar 18, 2016 2:01 pm

I am building a 7-color display, so I need 200 unique color signals. (Because colored lamps require a color signal.)

That means every lamp needs its own wire and decoder. Here is the board before it is wired up. This is going to be like my days in IT wiring a patch panel.

tetris1.jpg
tetris1.jpg (305.68 KiB) Viewed 8720 times

I am optimizing for speed, which means massively parallel circuit design. Each of the 200 lamps has its own memory cell. Each memory cell has 11 built-in functions with direct memory access.

tetris-memory.jpg
tetris-memory.jpg (393.17 KiB) Viewed 8720 times

I'm a bit worried this will drop Factorio below 60 FPS. :)
User avatar
DaveMcW
Smart Inserter
Smart Inserter
 
Posts: 2107
Joined: Tue May 13, 2014 11:06 am

Re: Tetris... in Factorio?

Postby piriform » Mon Mar 21, 2016 12:46 am

Not sure if I've got this right
200 cells@ 65 tiles/ cell + ~500 for the display ~13500/1024 =13+ chunks = EPIC! :lol:
piriform
Fast Inserter
Fast Inserter
 
Posts: 117
Joined: Mon Jan 25, 2016 10:02 pm

Re: Tetris... in Factorio?

Postby Dr. Walrus » Mon Mar 21, 2016 3:54 am

DaveMcW wrote:The main problem is getting player input, it is quite awkward without mods.

Kovarex wrote:It would be good to have some kind of button + switch entities to play with these kind of things, I'm not sure if we have it in the roadmap for 0.13, but it would be really easy to do.

XKnight wrote:You should put 1 green circuit into the "Interface chest" to move figure left, 1 red circuit - to move right.
To erase map you should rebuild "Map" combinator.


This sort of situation is the exact reason I made the pressure plates mod. Using three pressure plates to control the left, right, and rotate functions would be a lot easier than placing things into a chest. I would be super happy if my mod could help make such a great build possible.
Last edited by Dr. Walrus on Mon Mar 21, 2016 9:31 pm, edited 3 times in total.
Visit my profile on mods.factorio to see some unique, off the wall mods: Mod page for madmaster5000 (me)

Older mods:
Pressure Plates
User avatar
Dr. Walrus
Long Handed Inserter
Long Handed Inserter
 
Posts: 90
Joined: Fri Nov 20, 2015 6:30 am

Re: Tetris... in Factorio?

Postby ssilk » Mon Mar 21, 2016 5:51 pm

The bottom line for this week FFF is clear now. :)
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
User avatar
ssilk
Global Moderator
Global Moderator
 
Posts: 10392
Joined: Tue Apr 16, 2013 10:35 pm
Location: Würzburg, Germany

Re: Tetris... in Factorio?

Postby XKnight » Thu Mar 24, 2016 10:26 am

XKnight wrote:
XKnight wrote:Unfortunately rotation was not implemented, because I am tired and this challenge a little bit boring.
But maybe I will come back to this task tomorrow :)


I decided to start working on the improved version, main goals:
- add rotation
- simplify collision check
- simplify L/R move
- reduce cycle length below 15 ticks at least
- increase interface responsiveness


Finally I found some time to finish this Tetris...

- removed global clock generator. This is the most significant improvement, because using GCG always means dirty and slow solution, but this solution can be implemented very fast. As a result, new main cycle has variable length (6 or 7 ticks) and it is about 3 times faster than previous build (20 ticks). I even had to put 3 smart inserters more, because one smart insert is not capable to handle new speed.
- lots of things were simplified: previous build used 150 combinators, new one - 125.
- added possibility to rotate object.
- added possibility to perform several rotation/moves per one fall (by default 4 moves).
- added possibility to temporary increase falling speed (x5).

Known issues: slow filled line processing (due to incompatibility with new data representation); may be improved in future.
Also wall kicks (from original tetris) may be easily added, the only missed thing is an array with predefined offsets.

1.png
1.png (1.49 MiB) Viewed 8548 times
animation.gif
animation.gif (931.07 KiB) Viewed 8548 times


Details you can find here: http://factorioblueprints.com/view/abdtJi9NCcQAYyyw7
Last edited by XKnight on Thu Mar 24, 2016 8:20 pm, edited 1 time in total.
XKnight
Filter Inserter
Filter Inserter
 
Posts: 329
Joined: Thu May 28, 2015 10:40 pm

Re: Tetris... in Factorio?

Postby Phribos » Thu Mar 24, 2016 10:46 am

Awesome! :shock:
"if speed one day kills me don't be sad because i was smiling"
Paul Walker
User avatar
Phribos
Inserter
Inserter
 
Posts: 30
Joined: Mon Mar 21, 2016 9:44 am

Next

Return to Combinator Creations

Who is online

Users browsing this forum: No registered users and 2 guests