chore: Add linux support and containerize the project#5
chore: Add linux support and containerize the project#5
Conversation
…r linux, add template for perpetuum.ini, add Makefile for some helper commands, update server to take DistributedTransactions as argument to be able to disable it for linux
…date server image to include GDI+
|
Regarding using DistributedTransactions, we use a single database and the connection string doesn't change. Therefore, using DistributedTransactions is not necessary. I'm not very knowledgeable about the intricacies of database operation, but after reading the documentation, I found out that:
Therefore, you can remove: TransactionManager.ImplicitDistributedTransactions = true; in PerpetuumBootstrapper.cs With these changes, I was able to launch the server on Linux. And there are no errors when working with the database. I hope this information will at least be useful. |
…ipt and fix migration when using a directory
This PR disables it but I have left a default value (true) to keep the same behavior to keep compatibility for the Windows build. If removing the |
…creen issue on client when trying to enter a zone. Now the client seems to work (feature validation is in progress). Disabled EnlistTransaction to ensure DistributedTransactions are disabled
|
At this point, the PR is almost ready for review. The client is able to connect and perform all actions tested (chat, enter/leave chat, buy from market, unpack item, activate bot, undock/dock, move, assignments, looting, combat, tutorial, rift) What is left todo?
|
… the EnlistTransaction configurable with the DistributedTransactions state
|
At this point, the documentation has been added and the DistributedTransactions config is now correctly applied in the codebase. |
…d of SKSurface, update usage of canvas.DrawText to fix Y position by taking into account the font size since the origin is on top left instead of bottom left.
Context
Setting up development environment for OpenPerpetuum requires Windows, clone of 3 repositories (OPResource, OPDB, PerpetuumServer2), Steam with the official PerpetuumServer installed to get access to database seed + some data files (customDictionnary, map layers, plantrules). Developing on linux is not possible without modifications. We also need to setup the database with migration script, setup the OPResource as a file server, then you can start the PerpetuumServer2 to connect a game client.
The goal of this PR is to reduce that friction to get started more quickly and support multiple development platform by using containers to be compatible on windows, mac, linux. Note: for windows, using linux containers would be a requirement to keep the initial implementation simple.
When porting the application to linux, one issue came up with the database DistributedTransactions. It turns out the .NET on linux does not support it. For now, it has been disabled but I'll try to find a solution or an alternative.
Description
asset) and OPDB (asdb)System.DrawingintoSkiaSharpHow to setup
Read the
README.mdfile.Some technical information
mssql-dataopenperpetuum-dataImprovements