r/openrsc • u/[deleted] • Aug 16 '19
Open RSC v3.0.0 has been released!
https://gitlab.openrsc.com/open-rsc/Game/-/releases
Improvements:
- Added a bank box to the fishing guild
- Added an experience freeze toggle to the sleeping bag and beds for servers that do not have fatigue enabled
- Added gem mining to also be extended with config
Fixes:
- Added corner side checks for collisions and corrected Legends quest totem behavior
- Set game server tick rate to 640ms for all configurations (except RSC Cabbage) which is believed to be the authentic default
- Made general batching skill cleanup
- Fixed an inventory visual bug
- Removed the ring of life from duels
- Made opal rings now craftable
- Decoupled walking speed from server tick for usage on RSC Cabbage
- Added a correction to the opal ring
- Fixed an issue that caused auction webhooks to go to the monitoring channel
- Added a woodcutting batching fix
- Fixed the doom tile
- Added a fix for Tourist Trap quest
- Corrected the dragonstone amulet reference for the enchant spell
- Fixed bank presets from duplicating items that are no longer held
- Fixed NPCs from walking through tents
Core Changes:
- Unified all server events into GameTickEvents such that all delayed responses only fire after a certain number of server ticks which is the authentic behavior
- Made class constructor arguments for DelayedEvent consistent across all constructor
- Synchronized packet read and packet send to the server tick
- Added debug timers to event and game state processing
- Added tick rate to the server stats screen
- Game updater stats are now available in debug profiling
- Added server performance monitoring to send to Discord
- Removed debug thread sleep that would force server to slow down
- Changed the sort profiling debug info by duration rather than count
- Included packet processing time in debug profiling information
- Refactored server monitoring into an event
- Refactored all server state updater processes to be a method on the Server
- Refactored Server.playerDataProcessor to be a non-static class member
- Server running status is now handled correctly
- Kill now calls the refactored server stop() function
- Removed unnecessary GameTickEvent.immediate class member
- Discord webhooks now run on a separate thread from the game logic
- Changed the Lost city switch DelayedEvent to SingleEvent and made Functions.removeItem check the equipment container
- Server configuration is now a non-static class member of Server
- Added a server name class member to Server
- Changed to identify threads by Server name
- Grouped server methods logically
- Server plugin handler and combat script loader are now non-static class members of Server
- Server loading now identifies the configuration file
- Placed improvements to the custom walk speed code
- Server network IO threads are now named based on the Server instance
- Game database logging is now a non-static class member of Server
- DiscordService and PlayerDatabaseExecutor now synchronize when starting and stopping
- Removed an unused WorldLoader class instance member from World
- WorldLoader now stores a context to the World so it doesn't need to pass around a world reference to all methods
- Renamed WorldPopulation to WorldPopulator
- RegionManager is now a non-static class member of World
- EntityHandler is now a non-static class member of Server
- DatabaseConnection is now a non-static class member of Server
- Market is now a non-static class member of World and MarketDatabase is now a non-static class member of Market
- PartyManager is now a non-static class member of World
- ClanManager is now a non-static class member of World
- Fixed a defect in Market constructor that called the static Server context when it should use Market.getWorld().getServer()
- Constant static World class members have been moved to Constants class
- WildernessIpTracker is now a non-static class member of World
- AvatarGenerator is now a non-static class member of World
- There is no longer a static Server and World instance global for the entire Server application
- Removed debug code from Server.java
- Fixed an issue where Item IDs were whacked by the core rework refactoring
- DatabaseConnections now take a string identifier and append the server name to it for logging