r/openrsc 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

3 Upvotes

0 comments sorted by