Skip to content

Latest commit

 

History

History
142 lines (142 loc) · 8.26 KB

Changelog.md

File metadata and controls

142 lines (142 loc) · 8.26 KB

Changelog

v1.42

  • Fixed bug where server could send packets from players without a defined protocol
  • Players connecting with protocols < 4 now defaults to protocol 4
  • Some tweaks to entity typing system
  • Fixed memory management issues with shared pointers
  • Some optimizations with entity and player updating
  • Players are no longer updated once disconnected
  • Playercells no longer autosplit while force merging
  • Settings are now loaded from JSON file #11
  • Added leaderboard with game_leaderboardLength config
  • Added player_skinNameTags config and removed player_cellRemoveTime config
  • Refactored & reduced some of map's methods
  • Added methods to Buffer class to read/write UTF8 & Unicode strings without the wstring type
  • Added kick command
  • Implemented playerbots with MultiOgar AI (for now..)
  • Fixed minions having incorrect skin names
  • Fixed crash with setname command
  • Fixed bug where ejected cells spawned by the replace command were intangible
  • Added current game tick and average player score to debug command
  • Added clampX & clampY methods to Vec2 class for spectator viewbox
  • Added apt update to install_uws.sh
  • Added contains method to QuadTree (mostly for debugging purposes)
  • Moving entities are now updated in reverse order to reduce cell switching
  • Added startup graphics
  • Fixed seemingly random crash caused by clearing a buffer that does not exist
  • setmass command now sets absolute mass of the player instead of the mass of each cell
  • Minions no longer respawn unless their owner is in-game
  • Small refactoring to logger
  • Added logName, logFolder, logBackupFolder configs
  • Added cmake support
  • Added pstring command to print debug information about a player
  • Added server playerbots config
  • Added server minionsperplayer config
  • Combined install_uws.bat into compile.bat and made it actually work
  • Combined install_uws.sh into compile.sh and made it actually work
  • Other optimizations and performance improvements

v1.07

  • Added server_host configuration
  • Implemented minions with Q controls
  • Replaced doubles with floats where they were more appropriate
  • Switched to using flags for entity states rather than multiple booleans
  • Reorganized some methods for Entity class
  • Added vanilla feature where orphaned playercells snap back to their last coordinate when pushed away
  • Fixed bug where food and viruses spawn after one was eaten until the max amount was reached
  • Fixed bug where players could sometimes auto split over the max cell amount
  • Significantly improved virus explosions
  • Fixed crash that would happen when orphaned playercells were split
  • Added vanilla feature where playercells under 625 mass cannot grow from playercells at 18 mass or below
  • Fixed some memory management issues with entities
  • Added vanilla feature where viruses splitting from stationary ejected mass will shoot to the right
  • Small refactoring of Game class and added updateTime for monitoring server performance
  • Fixed seemingly random crashes from updating playercells
  • Cleaned up Map class
  • Fixed food being able to spawn near ejected mass
  • Removed "An unnamed cell" as the default name for players
  • Fixed ghosting caused by updating visible nodes incorrectly
  • Added vanilla feature where orphaned playercells remain on the map for all eternity
  • Fixed excess newlines in console output on linux
  • Fixed crash on server shutdown due to players being deleted before entities
  • Refactored and reorganized Commands class
  • Added aliases for some commands
  • Changed command format from command(args...) to command <args>... and removed case sensitivity
  • Added ability to execute player commands on groups of players using -p, -b, and -m flags
  • Reformatted help command
  • Added pause, minion, setname, setskin, spawnmass, explode, speed, color, split, and replace commands
  • Added install_uws.sh to aid in importing the uWebSockets library for linux
  • Fixed compiling on Windows #10
  • Spelling & grammar corrections
  • Other optimizations and performance improvements

v0.75

  • Rewrote and reorganized how packets are handled and interpreted
  • Fixed bug where uWS server would never start if it wasn't fast enough
  • Rename Vector2 module to Vec2
  • Removed 'get' portion of 'getter' function names (I like it better this way)
  • Reformatted and reorganized Entity and Player classes
  • Implemented merging for playercells along with baseRemergeTime configuration
  • Implemented auto-splitting
  • Implemented (experimental) virus explosions along with minVirusSplitMass configuration
  • Fixed bug where groups of viruses shot from the same virus would collide with each other
  • Fixed bug where moving ejected cells would not collide with ones that have stopped moving
  • Rewrote collision, move, and eat engines
  • Added Entity::toString() method
  • Fixed bug where eaten viruses would respawn regardless if the current amount was greater than the start amount
  • Fixed bug where eaten playercells would not be removed from their owner's vector
  • Implemented playercells freezing after their owner has disconnected, along with cellRemoveTime configuration
  • Added the ability to linesplit
  • Fixed bug where newly-split playercells would spawn at a random point on the map
  • Implemented vanilla feature where newly ejected cells do not collide with their creator until it has stopped moving
  • Added configurations to change logger severity and logger colors
  • Added Game::startLogger() method for use with new configurations
  • Small refactoring to Game constructor
  • Added map::spawnUnsafe() method for use with spawning accelerating entities
  • Added map::acceleratingEntities variable to store and update all accelerating entities at once
  • Write methods in Buffer class now return references to themselves
  • Mostly fixed bug where dangling pointers to removed entities were being passed through collision/move/eat engine
  • Added kill(), clr(), pop(), and merge() commands
  • Added ability for ejected cells to spawn at random velocities and speeds when spawned using the spawn() command
  • Refactored how players are updated
  • Implemented updating for each player state
  • Added ability to spawn from ejected mass, along with chanceToSpawnFromEjected configuration
  • Added ability to freeroam, along with maxFreeroamScale and maxFreeroamSpeed configurations
  • Added ability to spectate the largest player
  • Improved playercell splitting and added collisionIgnoreTime configuration
  • Fixed bug where some players would not be removed from list of clients after disconnecting
  • Added dot() and round() methods to Vec2 (previously Vector2) class
  • Fixed compiling on linux, now using g++-7 for c++17 features
  • Other optimizations and performance improvements

v0.38

  • Added support for linux (please note that running this on Linux is still buggy)
  • Fixed invalid UpdateNodes packet being sent and added writeStrNull() method to Buffer class, thanks to @B0RYS :)
  • Reorganized where files are placed
  • Added variadic arguments to logging methods
  • Refactored entity class
  • Added entity acceleration and deceleration
  • Added (experimental) playercell and virus splitting
  • Added (experimental) ability to eject mass
  • Added (experimental) method for collision resolution between cells
  • Added border check for Entitity::setPosition()
  • Fixed playercells moving too fast
  • Now using pre-loaded configs rather than loading from json
  • Switched to using shared_ptr for entities
  • Added a few extra settings
  • Refactored namespace map
  • Minor tweaks to visible node updating
  • Reformatted and tweaked playerlist() and spawn() commands
  • Moved and renamed Position class from Utils.cpp/hpp to Vector2 in Vector2.cpp/hpp
  • Added compile.sh and compile.bat files to aid in compiling this project
  • Added Changelog.md

v0.18

  • Rename size to radius
  • Added and renamed some configs
  • Fixed player viewbox center
  • Removed and changed some methods from utilities
  • Refactored Commands class to improved how commands are parsed
  • Refactored Entity class
  • Added flags for each entity type along with canEat, and avoidSpawningOn variables for efficient consumption and safe spawning
  • Refactored map to comply with new entity flags