-
Notifications
You must be signed in to change notification settings - Fork 15
feature: all in one (single) #202
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…gistered multiple times and injected by key
# Conflicts: # src/Core/Core/Networking/ServerBase.cs # src/Core/Extensions/ServiceExtensions.cs # src/Executables/Auth/AuthServer.cs # src/Executables/Auth/Extensions/ServiceExtensions.cs # src/Executables/Auth/appsettings.json # src/Executables/Game/Extensions/ServiceExtensions.cs # src/Executables/Game/Game.csproj # src/Executables/Game/GameConnection.cs # src/Executables/Game/GameServer.cs # src/Executables/Game/appsettings.json # src/QuantumCore.sln
Executables are now just a tiny wrapper around the library to make QuantumCore.Single not depend on executables (causes many issues with build output)
Additionally removed the proto loaders and merged them with their respective manager
# Conflicts: # src/Libraries/Game.Server/AnimationManager.cs # src/Libraries/Game.Server/GameServer.cs # src/Libraries/Game.Server/ItemManager.cs # src/Libraries/Game.Server/MonsterManager.cs # src/Libraries/Game.Server/PlayerUtils/ExperienceManager.cs # src/Libraries/Game.Server/Services/DropProvider.cs # src/Libraries/Game.Server/Services/IDropProvider.cs # src/Libraries/Game.Server/Services/ParserService.cs # src/Libraries/Game.Server/Services/SpawnGroupProvider.cs # src/Libraries/Game.Server/SkillManager.cs # src/Libraries/Game.Server/Types/ItemProtoLoader.cs # src/Libraries/Game.Server/Types/MobProtoLoader.cs # src/Libraries/Game.Server/Types/StructuredFile.cs
Bumped FluentAssertions to 7.0.0-alpha.5 for fluentassertions/fluentassertions#2565
# Conflicts: # src/Core.Networking/PacketReader.cs # src/Executables/Game/Game.csproj # src/Executables/Game/MonsterManager.cs # src/Executables/Game/Packets/Character.cs # src/Executables/Game/Packets/CharacterDetails.cs # src/Executables/Game/Packets/CharacterInfo.cs # src/Executables/Game/Packets/CreateCharacter.cs # src/Libraries/Game.Server/Extensions/GameExtensions.cs # src/Libraries/Game.Server/Extensions/GuildExtensions.cs # src/Libraries/Game.Server/Extensions/GuildPacketExtensions.cs # src/Libraries/Game.Server/GameServer.cs # src/Libraries/Game.Server/ItemManager.cs # src/Libraries/Game.Server/PacketHandlers/TokenLoginHandler.cs # src/Libraries/Game.Server/Packets/ItemOwnership.cs # src/Libraries/Game.Server/PlayerUtils/ExperienceManager.cs # src/Libraries/Game.Server/PlayerUtils/GuildExperienceManager.cs # src/Libraries/Game.Server/Services/DropProvider.cs # src/Libraries/Game.Server/Services/ParserService.cs # src/Libraries/Game.Server/Services/SpawnGroupProvider.cs # src/Libraries/Game.Server/SkillManager.cs # src/Tests/Core.Tests/NetworkingTests.cs # src/Tests/Game.Tests/Game.Tests.csproj
# Conflicts: # src/Libraries/Game.Server/GameConnection.cs # src/Libraries/Game.Server/PacketHandlers/PongHandler.cs # src/Libraries/Game.Server/Packets/Ping.cs # src/Libraries/Game.Server/Packets/Pong.cs
uutkukorkmaz
approved these changes
Nov 15, 2024
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
area/auth
The authentication app is affected
area/dev
The developer experience is affected
area/docs
Improvements or additions to documentation
area/game
The game app is affected
area/hosting
The infrastructure is affected
type/feature
New content
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implemented a single binary to be executed which includes all dependencies required to run QCX (no external dependencies).
Goal
Top notch user experience by having them just run simple binary to startup a server. This is not recommended for production usage but is valid for testing or developing purposes. This greatly reduces setup required to run QCX as developer or as a user.
The only thing required for now is the atlasinfo.txt in the data/ dir
Dependencies
The following dependencies have been mocked / replaced inside the "Single" binary:
InMemoryRedisStore
How does it work?
IHostedService
which are handled byMicrosoft.Extensions.Hosting
as with theAuth
andGame
executables themselves.HostingOptions
. These where converted to NamedOptions to allow multiple configurations in one service collection.Executables/Game
andExectuables/Auth
to separate projects because referencing a executable project from another executable project can cause a lot of issues. ThusGame.Server
andAuth.Server
are now the place for their respective code andGame
andAuth
are just wrappers setting up everything required for the executable only.Points of Interest
ServiceExtensions
because many services have to be adjusted for this change. Since named options are scoped some services had to be made scoped too.IpUtils
for now. Converting IPAddress to int is too easy (BitConverter.ToInt32(host.Ip.GetAddressBytes())
). May be reintroduced by feature: listen on multiple addresses #200World
has itsLoad
split intoLoadAsync
andInitAsync
due to a dependency loop issue when loading in parallel to other servicesInMemoryRedisListWrapper
InMemoryRedisSubscriber
InMemoryRedisStore
- may have race condition issues? Not sure - needs to be tested - good enough for nowOther notes
.editorconfig
...TODOs