diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..62163f1 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,141 @@ +## [1.0] - 2025-10-09 + +### 🚀 Features + +- *(assets)* Add icon +- *(engine)* Add LoadImageFromMemory() +- Set window icon +- *(gameover)* Only allow the user to switch state after the gameover sound has been played. +- *(gameover)* Make gameover state abit more interesting. +- *(assets)* Adding logo data +- *(menu)* Draw logo +- *(menu)* Put entries rendering into its own function + +### 🐛 Bug Fixes + +- *(audio)* Implement IsPlaying() correctly + +### ⚙️ Miscellaneous Tasks + +- Fix build for windows +- *(makefile)* Add .PHONY target again +- Add editorconfig +- Update readme and add license +## [0.13.0] - 2025-09-24 + +### 🚀 Features + +- Add basic state machine implementation +- Refactor gameplay logic from main.go to a state machine handler. +- Add basic menu state +- Add basic game over state +- Register menu and gameover states. +- Start the machine in the menu state +- Detect game over condition and switch state. +- *(render)* Add DrawTextCenter() +- *(fsm)* Make the special state "quit" exit the fsm. +- Improve menu +- *(assets)* Add menu sound effects +- *(menu)* Play sound effects. +- *(assets)* Add gameover sound +- *(gameover)* Play gameover sound +- *(gameover)* Center text + +### 🐛 Bug Fixes + +- Reset state on Enter() +## [0.12.0] - 2025-09-21 + +### 🚀 Features + +- *(assets)* Add sound files +- Engine audio code +- *(assets)* Add sound library +- Initialize and use audio subsystem. +- Add sound on shape locked and row clear +## [0.11.0] - 2025-09-17 + +### 🚀 Features + +- Add game/shape_queue.go +- Use ShapeQueue to implement shape RNG +## [0.10.0] - 2025-09-17 + +### 🚀 Features + +- Draw next shape +## [0.9.0] - 2025-09-15 + +### 🚀 Features + +- Add score type +- Show score and increment when lines are cleared +## [0.8.0] - 2025-09-15 + +### 🚀 Features + +- *(grid)* Add IsRowFull() +- *(grid)* Add ClearRow() +- *(grid)* Add MoveRowDown() +- *(grid)* Add ClearFullRows() +- Clear full lines after locking shape +## [0.7.0] - 2025-09-15 + +### 🚀 Features + +- Soft drop +## [0.6.0] - 2025-09-15 + +### 🚀 Features + +- *(shape)* Add RotateCW() and RotateCCW() +- Rotate shape when UP is pressed. +## [0.5.0] - 2025-09-15 + +### 🚀 Features + +- *(collision)* Check grid bounds in x axis. +- Add shape movement + +### ⚙️ Miscellaneous Tasks + +- Update go.mod +## [0.4.0] - 2025-09-14 + +### 🚀 Features + +- *(collision)* Check for collision against blocks in the grid. + +### 🐛 Bug Fixes + +- Check bound before placing a block in LockShape() +## [0.3.0] - 2025-09-14 + +### 🚀 Features + +- Lock and spawn shapes + +### 🚜 Refactor + +- Cleanup main loop code by moving related code into update/render functions respectively. +## [0.2.0] - 2025-09-14 + +### 🚀 Features + +- Add engine/core/vec2.go +- Add shape struct +- *(draw)* Add grid.DrawBlock() +- *(draw)* Add DrawShape() +- Draw shape on grid. +- Add engine/core/interval_timer.go +- Implement shape drop +- Add CheckShapeCollision() +- Add collision check on shape drop. +## [0.1.0] - 2025-09-14 + +### 🚀 Features + +- *(assets)* Add constant with the size of blocks in the sprite texture. +- Add game/block.go +- Add game/grid.go +- Make rendering work with the grid struct.