Implementation of classic Tetris game using Unity engine.
Player needs to combine falling figures on limited field to create full lines, which add scores. Game is finished when a new figure cannot be placed on field.
You can play it here.
- Up - rotate
- Left/Right - move left/right
- Down - speed up (move down one unit)
- Keyboard input
- Simple 3D graphics
- Local leaderboard
- Player/AI mode
- Animations
- Sounds
- EntryPoint - composition of presenters and GameLoop
- Presenter - views to reflect read only game state changes
- Service - game logic, separated to different classes; uses writable game state; GameLoop as a services composition
- Settings - required configuration, separated to global and scene settings
- State - raw game data, separated to writable and read only representations
- Editor/GeneticTrainer - genetic algorithm trainer to detect better AI parameters
- Service/GeneticPlayer - AI implementation selecting better movements based on set of parameters
- Service/GeneticDebugger - AI debug utility to investigate move selection logic using game logs in html format:
Assets used:
- Arcade Coin-Up II by MattiaGiovanetti
- redux-demo-session-11-08-2018/stick.wav by herraportti
- game over by Leszek_Szary