Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Working towards 0.13.0 #195

Merged
merged 43 commits into from
Dec 6, 2024
Merged

Working towards 0.13.0 #195

merged 43 commits into from
Dec 6, 2024

Conversation

tristanpoland
Copy link
Member

@tristanpoland tristanpoland commented Dec 3, 2024

This pull request includes several changes to the server configuration and initialization process, as well as some cleanup and refactoring. We will be updating this as we progress to V 0.13.0

Removal of dhat profiler:

  • Removed dhat dependency from Cargo.toml.
  • Removed dhat global allocator and profiler initialization from main.rs

Updates to server configuration:

  • Added address and port fields to ServerConfig struct in config.rs.
  • Updated server_config.json to include address and port fields.

Modifications to server initialization:

  • Changed ServerConfig usage to use Arc for shared ownership in mod.rs
  • Updated server start function to use address and port from ServerConfig and bind to the full address

Cleanup:

  • Removed old server_config.json file.

Other 0.13.0 tasks (this is the full list of tasks so some were completed outside of this PR)

Done

  • Up to 85% faster startup times
  • Newly patched against library memory leaks
  • Reduced per-player memory
  • Dep count reduced
  • Reduced CPU usage of network operations across the board
  • Stale player cleanup patched
  • Reduced bandwidth-per-player requirements by up to 99.99% (at large player counts) with proper multicasting
  • Refactored and cleaned up codebase
  • New JSON config file format to remove the deprecated YAML system
  • Memory profiling and completed
  • All unwarp()s have been removed and error handling was improved dramatically, Horizon can officially no longer crash
  • Some windows specific issues have been patched out
  • Repo file structure cleaned up
  • Splash screen re-added
  • Startup timings improved and tuned
  • Less verbose and annoying logging
  • Plugin detection script stability improved
  • Binary file size reduced
  • Build time reduced
  • Main file de-cluttered
  • Config file expanded to include basic network config
  • Maestro framework set up
  • Create time of day tracking plugin
  • Plugin startup time tracking

Not done (These will have a PR and branch of their own)

  • Players system is now contained in a plugin for maximum modularity
  • Unit tests for Horizon written
  • Now supporting custom data types for plugins natively without a sidecar library
  • Native API support for PebbleVault (Welcome back to the core PebbleVault!)
  • Player health framework added
  • API framework laid for Enterprise Dashboard
  • Docker images and compose file re-written
  • Server-to-server communication framework via link plugins (Community Link, and Enterprise Link)
  • Dynamic socket actor streaming channels for infinite world size maintaining efficiency


if let Err(e) = socket.emit("auth", &data) {
log_error!(LOGGER, "SOCKET NET", "Failed to send auth: {}", e);
return;
}

// TODO: Implement proper thread management via round robin

Check notice

Code scanning / devskim

A "TODO" or similar was left in source code, possibly indicating incomplete functionality Note

Suspicious comment
@tristanpoland tristanpoland marked this pull request as ready for review December 6, 2024 21:14
@tristanpoland tristanpoland merged commit 628a143 into main Dec 6, 2024
3 checks passed
@tristanpoland tristanpoland deleted the Working-towards-0.13.0 branch December 6, 2024 21:14
@tristanpoland tristanpoland restored the Working-towards-0.13.0 branch December 6, 2024 21:16
@tristanpoland tristanpoland deleted the Working-towards-0.13.0 branch December 6, 2024 21:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

4 participants