All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- .
- .
- .
- player can now change maps when standing on map exit locations by pressing 'm'
- graphical glitch showing caret after window resize resolved by dependency update
- dependencies updated
- server now backs up the world every 60 seconds
- server will try to load from backup on start, else create a new world
- player can now choose which item to drop
- player can now choose which stats to increase on level up
- added messages for picking up and dropping items
- monster collision checking with other monsters now exists
- improved monster movement, wandering, and return to spawn behaviour
- monsters now change target if attacked
- entities can now be attacked by multiple entities in the same tick
- system messages now have colours
- health regen now only applies when out of combat
- don't send drop item request to server if player inventory empty
- don't send pickup item request to server if nothing to pickup
- prevent entities from occupying the same tile by accident
- stop monsters from following disconnected players
- fix players not disappearing when disconnecting
- combat can no longer occur after player has moved away from target
- fix potential server crash when calculating loop sleep duration
- client map download now via tcp to avoid issues with large data over unreliable connections on udp
- updated dependencies
- code tidying and more sensible module names
- server tick ecs systems streamlined for efficiency
- collision detection more efficient
- ecs systems and various iterators now run multithreaded where possible
- converted all nested vecs to ndimensional arrays for better performance
The combat, stats, levelling, and inventory update!
- PvE combat with monsters
- PvP combat with players
- player stats now actually used:
- str increases damage
- dex increases accuracy
- con increases health and regen rate
- player sidebar now displays and updates values in realtime
- death and respawning for players and monsters
- exp gain, levelling up, and stat gains
- inventory system
- picking up items
- dropping items
- default weapons and armour (used in combat calculations)
- system messages and combat notifications displayed in bottom of client window
- look command changed to L key
- client window can now be dynamically resized
- a slightly larger default map with more variety
- gracefully logout without causing server errors (only if you use ctrl-q)
- look command now displays monster name correctly
- look command now shows underneath items in all situations
- no longer crashes when player enters top row of map
- clippy::cargo and clippy::pedantic warnings resolved
- network code efficiency improved (no more MaxPacketSize issues)
- CHANGELOG.md added
- dependencies updated
- link time optimisations enabled for release build
- a lot of code refactoring and tidying
v0.2.2 - 2022-07-13
- enable large map data
- updated dependencies
- refactoring and tidying of messaging code
v0.2.1 - 2021-11-21
- updated dependencies
- updated rust edition to 2021
v0.2.0 - 2021-02-27
The monsters update!
- initial implementation of monsters
- ability to load monsters and spawns from .json assets
- player and monster stats
- stat window and map location display
- implemented look command
- fixed bug with logged out player being collidable
- updated dependencies
- updated logo
v0.1.1 - 2021-02-17
- support multiple players
- connectivity improvements
- added --debug logging switch
- implement player rejoin & check if player exists
- bind to 0.0.0.0 by default for simplicity
- implemented collisions between player entities
- added DisplayDetails to entity updates
- better exception handling
- updated some dependencies
- refactored method locations into appropriate modules
- limited pub methods to pub(crate)
v0.1.0 - 2021-02-12
- implemented client/server
v0.1.0-alpha.3 - 2021-02-07
- use release-drafter.yml
v0.1.0-alpha.2 - 2021-02-05
- ability to load a map from a file
v0.1.0-alpha.1 - 2021-02-03
- first version of working code