August 24th-27th 2012 :: Theme: Evolution

Back to Browse Entries

Survival of Polyminos

by Kalabasa - 48 Hour Compo Entry

ARROW KEYS - Move
Z,X - Rotate
I'm sorry I didn't support other keyboard layouts :(

I uploaded the source late.
No hard drop. Sorry!

Just like the falling block game.
The pieces evolve based on your actions.
Sorry for any English-language-related mistakes!

Explanations of inner things (to add value to the game :D )...


//----------------------------------------
//How They Evolve
//----------------------------------------

The area on the right contains the current population of polyminoes.
The starting population is composed of monominoes.
Polyminoes breed and reproduce in that area.
You get your pieces from this pool.

Pieces that were played well (by you) will have lower chances of reproducing, while bad pieces will be returned to the pool to reproduce more. See for yourself!

This means the pieces will eventually become harder to play and easy (weak) pieces will eventually be extinct.
This also means that pieces that you find hard to play will keep bothering you until you lose.

The fittest (baddest) species will soon dominate the population.

"Natural" selection by you + crossover + mutation -> Interactive Evolution!

I didn't implement mutation.


//----------------------------------------
// How They Breed
//----------------------------------------

Each polymino is represented by a tree data structure, with four children for each node.
The two parent trees are combined by swapping branches.

Example: T-tetramino + S-tetramino
R - root node
O - nodes
_ - empty

T-tetramino:

_O_
ORO

[Root]
. |_[Up]
. |_[Left]
. |_[Right]

S-tetramino:

_RO
OO_

[Root]
. |_[Right]
. |_[Down]
. . |_[Left]

Child:
The base tree was from T-tetramino. The Left node was swapped for S-tetramino's Down node.

_O_
_RO
OO_

[Root]
. |_[Up]
. |_[Down]
. | . |_[Left]
. |_[Right]


References:
http://en.wikipedia.org/wiki/Genetic_algorithm
http://www.obitko.com/tutorials/genetic-algorithms/crossover-mutation.php

Notes for post-compo(?):
- Hard drop
- Piece land pause
- Rotate before land pause
- Slide before land pause
- Line clear pause
- Bug: rotation collision
- Speed up evolution
- Prevent too much complex pieces
- Game is too punishing
- Phylogenetic(?)/evolutionary tree of all evolved species at game end
- Choose starting pieces
- Evolution is not too obvious

(You can't make those snakes in the game)

Downloads and Links


Ratings

Coolness82%
#90Innovation3.58
#96Theme3.68
#316Overall3.07
#336Fun2.85
#595Humor1.38
#627Audio1.00
#634Mood2.00
#677Graphics2.05

Comments

arzi says ...
Aug 27, 2012 @ 11:20am

I didn't really figure out what the screen on the right means.

Andrew says ...
Aug 27, 2012 @ 11:22am

Cool idea but explaining how my actions make the shapes evolve would help.

SpectreNectar says ...
Aug 27, 2012 @ 11:26am

So annoyingly good ;)
Reminds me of a game I once made only mine had only 5 piece pieces so this is far more brilliant ^^
Score: 2100

michax says ...
Aug 27, 2012 @ 11:26am

Tetris is always fun. But nothing more.

Khayet says ...
Aug 27, 2012 @ 11:36am

A very solid and fun concept. I love the fact that the pieces can take so very different shapes - that's quite challenging.
Music and sound would have made this game even more fun and an explanation what the right screen represents would have been nice, too.

Kalabasa says ...
Aug 27, 2012 @ 11:54am

I updated the description :)

dvdking says ...
Aug 27, 2012 @ 5:10pm

It is strangest tetris I've ever seen.
Quite interesting idea though.

wumpus says ...
Aug 27, 2012 @ 5:11pm

Can't go wrong with a bit of tetris and theme was worked in quite nicely. It seemed unable to reset properly though as any subsequent goes, I got no score and the pieces were still complicated. Nice, tidy game though.

Kalabasa says ...
Aug 27, 2012 @ 5:27pm

Thanks!
This was rushed, so I picked a simple Tetris mechanic.
My first idea was a shooter game with evolving enemies, then it got complicated.
I haven't implemented a reset button. Refresh?

Shmarah says ...
Aug 29, 2012 @ 4:32am

This is REALLY cool and super complicated... I'm surprised you did this much RESEARCH in the time allotted. (Unless you knew this stuff beforehand.) Complicated but awesome idea you came up with, and even if people don't really understand it... they can still enjoy a Tetris-y game.

jwin says ...
Aug 29, 2012 @ 4:46am

I really like the idea, although it takes a bit before it gets interesting.

5n4k3 says ...
Aug 29, 2012 @ 3:14pm

Amazing ideia, with some more polish could be a great game for android and ios.

Qaterknan says ...
Aug 30, 2012 @ 8:46am

I dont know whether the game was trying to help me, ruin me or it was just random evolution. But the pieces became totally useless. But i like the principle, maybe post compo could be good idea.

localcoder says ...
Aug 30, 2012 @ 8:49am

Very cool idea.

While I was playing, I felt that I didn't have time to (or any motivation to) look at the artificial life simulation.

This meant I didn't really appreciate the evolution that was happening. Although I did notice once the most difficult polyminoes started reappearing!

Skulls says ...
Aug 30, 2012 @ 8:51am

You made the most annoying version of tetris possible :/ and I loved it :D

evilseanbot says ...
Aug 30, 2012 @ 8:55am

Man, this game should be called "Sean doesn't know how what to do with the little tree looking thing"

This was really cool, but I wish that the game made the whole genetic algorithm thing more explicit - Maybe with little messages like "Small little dots going extinct from your expertise! Messed up little pointy thing dominating because you're so bad at this!"

infernet89 says ...
Aug 30, 2012 @ 10:49am

Bow down to the idea, it was amazing (innovation = 5), but maybe it needs to be explained or be more clear in the game.. When you play you can't really understand the reason or the role of the pool on the right..

dekart says ...
Aug 31, 2012 @ 3:00pm

Really nice, common mechanics, which makes it even more interesting. Probably some graphics will make it even since it was kinda challenging to spot pale figures on the gray background. Anyway, i like it

pentaphobe says ...
Aug 31, 2012 @ 3:01pm

Very neat idea - took me a while to see the benefits of the breeding, but boy - when it took off it really got complex quickly!

Quite good fun, and just awesomely original

Kalabasa says ...
Aug 31, 2012 @ 3:39pm

Thanks for comments. I just realized that the game cheats somehow. Hard pieces will repeat incessantly, which is not a good design.

@dekart
If you allow pale figures to go through then camouflage will emerge/evolve (I think)

ubear says ...
Aug 31, 2012 @ 3:56pm

Great game.

Kayelgee says ...
Aug 31, 2012 @ 3:59pm

very intriguing. But in the end I had no pieces that fit into each other at all. score 8000-ish

dector says ...
Aug 31, 2012 @ 5:16pm

Have similar (but more simple) idea. But I like your implementation. And I think, better to speed-up evolution at the beginning (too simple :)). Nice. Good luck!

Jeremias says ...
Aug 31, 2012 @ 5:34pm

I hope I understood the gameplay, but I'm not absolutely sure what you mean with "bad pieces". Interesting idea, that the complexity of shapes is affected by the way the player plays.

If I run your linked website, I didn't see a part of the screen's bottom (1st tetris-row).

diki says ...
Aug 31, 2012 @ 5:53pm

Excellent idea, evolution picks up a little slow though - either that, or my tetris skills are just too bad to get the ball rolling ;)

kirill says ...
Sep 1, 2012 @ 6:22pm

Cool and geeky idea! I like the theme interpretation.
Maybe I would have liked them to evolve faster - it takes a while till it gets exciting.
Also I never managed to evolve complex "snakes" like you have in the screenshot.

Haddy22 says ...
Sep 5, 2012 @ 10:47pm

evolving tetris- clever idea, and very fun. Nice1

kddekadenz says ...
Sep 6, 2012 @ 4:22pm

Before reading the description it was just a Tetris clone..
Afterwards it was still not very good.

frogmaster says ...
Sep 6, 2012 @ 4:41pm

I LOVE IT! Amazing work You've done!

csanyk says ...
Sep 8, 2012 @ 4:38pm

This is pretty brilliant. One change I would suggest is to allow free-floating islands of bricks from the stack to resume falling. Once the shapes became difficult, it was too common for me to build "bridges" where there were gaps below; I felt when I completed a line in such a way that it left some blocks hanging in space that I really wanted to see them fall down until they hit a solid surface again.

Add some music and sound effects, and maybe make the breeding pool a little larger so that it's easier to see what's happening in there, and you really have a fun game.

Chinchilla says ...
Sep 10, 2012 @ 5:38pm

I love this, brilliantly innovative. It's crying out for some sound effects/music and an on-screen indication of how you rotate pieces (for impatient people like me that don't read instructions :) )

airdeck says ...
Sep 15, 2012 @ 3:37pm

Wow, this was a really cool idea. My only criticism is that it takes too long for the pieces to start to evolve past simple shapes, which is at the point where the game starts to become really interesting. But at that point the speed is also faster (as it should) but I died pretty quickly. I think it would be more fun if the complex shapes started sooner.

You must sign in to comment.


[cache: storing page]