Survival of Polyminos

Survival of Polyminos

This game is from the old Ludum Dare platform. You can try viewing the original page on Web Archive
(may not load correctly).
audio: 1.00
coolness: 0.82
fun: 2.85
graphics: 2.05
humor: 1.38
innovation: 3.58
mood: 2.00
overall: 3.07
theme: 3.68
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)
Found a bug?
Tell us on Discord